DiD: add new secret scenario

This commit is contained in:
nemaara 2023-03-21 22:20:43 -07:00
parent fa938c9fb1
commit 60a5d3a9b7
10 changed files with 1499 additions and 214 deletions

View file

@ -6,7 +6,8 @@
local skippable_actions = {
"animate_unit",
"sound",
"delay"
"delay",
"screen_fade"
}
local skip_actions = {}

View file

@ -0,0 +1,31 @@
Xu, Xu, Xu, Xu, Xu, Xu, Wwf, Wog, Wwf, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Wwf, Wwf, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Wwg^Ewl, Wwg, 1 Wwf, Wwf, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Wwg^Wkf, Wwg, Wwf, Xu, Xu, Xu, Xu, Xu, Wwf^Wkf, Wwf, Wwg^Ewl, Ww^Vm, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Wwf, Wwg, Wwg, Xu, Xu, Xu, Xu, Xu, Wwf^Vm, Wwf, Wwg^Ewl, Wwg^Ewl, Wwf^Wkf, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Wwf, Wwg, Wwf, Wwf, Xu, Xu, Xu, Xu, Xu, Wwrg, Wwg^Ewl, Wwg, Wwf, Wwg^Wkf, Wwf, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Wwf, Wwg, Wwg, Xu, Xu, Xu, Xu, Xu, Wog, Wwg, Wwg^Ewl, Xu, Xu, Wwf, Wwf, Wwg, Wwg, Wwg, Wwg, Xu, Xu, Xu, Xu
Xu, Xu, Wwf, Wwg, Wwf, Wwf, Wwf, Xu, Wwg, Wog, Wog, Wwg, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wog, Wwg, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Wwg, Wwg, Wwg, Wwg, Wog, Wog, Xu, Wog, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wog, Wwg, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wog, Wog, Wog, Wog, Wog, Wog, Xu, Xu, Xu, Xu, Xu, Wwg, Wwg, Wog, Wog, Wwg^Qhh, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Xu, Wog, Wog, Xu, Xu, Wog, Wwg^Qhh, Wwg^Qhh, Wwg^Qhh, Wog, Wog, Wog, Wwg^Qhh, Wwg^Qhh, Wwg^Qhh, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wog, Wwg, Xu, Xu, Xu, Wwg^Qhh, Wwg^Qhh, Xu, Wog, Wog, Wog, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Xu, Wwg, Wwg, Wwg^Vm, Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Wog, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Wwg, Wwg, Wwg^Wkf, Xu, Xu, Xu, Xu, Wwg^Wkf, Xu, Xu, Wwg, Wwg, Wog, Wwg, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Wog, Wwg, Xu, Xu, Xu, Wwg, Wwrg, Xu, Wwg^Wkf, Wwg^Vm, Wwrg, Wwg, Wwg, Wwg, Wwg, Wwg, Wwg^Vm, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Wog, Wog^Vm, Wog, Xu, Xu, Xu, Xu, Wwrg, Wwg, Wwg, Wwg^Wkf, Wwrg, Wwrg, Wwrg, Wwg^Ewl, Wwg, Wwrg, Wwg^Wkf, Xu, Xu, Xu, Xu
Xu, Xu, Wog^Qhu, Wog^Qhu, Wog, Wog, Wog, Wog, Wwg, Xu, Wwg, Wwg^Vm, Wwg, Wwrg, Wwrg, Wwrg, Wwrg, Wwg^Ewl, Wwrg, Wwrg, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Wog^Qhu, Wog^Qhu, Wog^Qhu, Wog, Wog, Wog, Wog, Wwg, Wog, Wog, Wwg, Wwg^Ewl, Wwrg, Wwrg, Wwg, Wwg, Wwg^Wkf, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Wog^Qhu, Wog^Qhu, Wog, Wog^Vm, Wog, Wog, Wog, Wog, Wwg, Wwrg, Wwrg, Wwrg, Wwrg, Wwg, Wwg^Vm, Xu, Xu, Xu, Xu, Xu, Xu, Wwf
Xu, Xu, Xu, Wog^Qhu, Wog^Qhu, Wog^Qhu, Wog^Wkf, Wog, Wog, Wog, Wog, Wwg, Wwg, 2 Wwg^Vm, Wwg^Wkf, Wwg, Wwrg, Wwg, Xu, Xu, Xu, Xu, Xu, Wwf, Wwg
Xu, Xu, Xu, Wog^Qhu, Wog^Qhu, Wog^Qhu, Wog, Wog, Wwg, Wwg, Wwg, Wwg, Wwg^Vm, Wwg, Wwg^Wkf, Wwrg, Wwrg, Wwg^Ewl, Wwg, Wwg, Wwg, Wwf, Wwf, Wwg, Wwg
Xu, Xu, Xu, Wog^Vm, Wog, Wog, Wog, Wog, Wwg, Wwg, Wwg^Ewl, Wwg, Wwg, Wwg^Wkf, Sm, Wwrg, Xu, Wwrg, Xu, Sm, Sm, Sm, Xu, Wwg, Xu
Xu, Xu, Xu, Xu, Xu, Wog^Vm, Wog, Wog, Wog, Wwg, Xu, Wwrg, Wwg^Wkf, Wwrg, Sm^Em, Sm, Xu, Xu, Xu, Xu, Xu, Ss, Sm, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Wog, Wog, Wwg, Wwg, Xu, Xu, Xu, Wwrg, Wwg^Ewl, Ss, Ss^Em, Xu, Xu, Xu, Xu, Ss, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Wwg, Xu, Xu, Xu, Xu, Wwf, Wwrg, Sm^Emf, Sm, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Wog, Wwg, Wog, Xu, Xu, Xu, Xu, Wwg, Wwf^Edb, Sm^Edb, Ss^Edb, Tb, Tb, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Wog, Xu, Wog, Wog, Xu, Xu, Wwg^Ewl, Wwf^Em, Sm^Edb, Tb^Qhu, Tb^Qhu, Tb^Tf, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Wwg, Wwg, Wog, Wog, Wog, Xu, Xu, Xu, Sm, Sm^Qhu, Ss^Qhu, Tb^Qhu, Tb, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Xu, Wwg^Ewl, Wwg, Wwg, Xu, Wog, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Ss, Sm^Edb, Tb^Qhu, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Xu, Wwg, Wwg^Ewl, Wwg, Wwg^Ewl, Wwg, Wog, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Sm, Xu, Ss^Vhs, Xu, Xu, Xu, Xu, Xu
Xu, Xu, Xu, Wwg, Wwg, Wwg, Xu, Xu, Xu, Xu, Xu, Xu, Wog, Xu, Xu, Xu, Wog, Xu, Xu, Xu, Xu, Xu, Xu, Xu, Xu

View file

@ -4250,6 +4250,7 @@ And the tongue of fire begets ashen repose.</i>"
{CLEAR_VARIABLE runes_activated}
{VARIABLE timesForever 0}
{VARIABLE squidVille 0}
{VARIABLE metInky 0}
{VARIABLE reflectionPool 0}
[/event]

View file

@ -18,88 +18,93 @@
[story]
# a bit of extra text for the first round
[if]
{VARIABLE_CONDITIONAL timesForever numerical_equals 0}
{VARIABLE_CONDITIONAL squidVille not_equals 1}
[then]
[part]
music=transience.ogg
story= _ "Years pass. Every summer, by the time the mountainous paths and high passes shed their wintry gowns of snow, the lich sends his soldiers to attack the orcs, removing all human, elven, and dwarven patrols that impede them. Every year, the undead inflict some damage before being repelled."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "The lich sometimes wonders if his endeavors are naught but a fruitless crusade, but then again, so what? Life, unlife, death... nothing has ever given his existence meaning. And yet, he still persists? For what?"
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "<i>Reason and purpose...</i>"
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "He needs none. Philosophy only begets misery. Violence and savagery have always been the essence of his existence, a conviction that he has only embraced more wholly in undeath. Better to simply kill without deliberation, without consideration. He has never been one for regrets."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "Rumors circulate of a lich who preys on scouting patrols. A hero, gathering his loyal troops to him, decides to put an end to the evil."
{STORYTXT_BACKGROUND end.webp}
[/part]
[/then]
[/if]
# These if statements are before the prestart event, so are off-by-one compared to the other checks of timesForever
[if]
{VARIABLE_CONDITIONAL timesForever numerical_equals 1}
[then]
[part]
music=transience.ogg
story= _ "Mal Keshar continues to study the book and re-reads the final entry."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
# po: This text comes from the epilogue of Secrets of the Ancients, edited to avoid revealing the name of the campaign or the names of the protagonists
story = _"<i>“We prevailed today on the field, but our victory did not please me. I realize now... the world is not ready for our knowledge. They cannot understand that we have conquered that primordial fear: death. Instead, as they look upon us, judgment of our appearance drives them to ignorant terror. I give up on all of them. [...] In some future time, less conservative attitudes may dominate, and our knowledge can be put to good use. I can certainly afford to wait. In the meantime, we are doing what we can to hasten that day.”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[part]
# po: More text from the epilogue of Secrets of the Ancients
story= _ "<i>“As for me, I will make my journal conspicuous on this battlefield. I suspect that most will fear it enough to try to destroy it, but I have placed several wards on my journal to protect it. This way, it should survive long enough to make its way into the hands of someone more open-minded. Tath, in particular, is home to many mages. It only takes one who is willing to learn...”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[/then]
[/if]
[if]
{VARIABLE_CONDITIONAL timesForever numerical_equals 2}
[then]
[part]
# po: This text comes from the epilogue of Secrets of the Ancients, edited to avoid revealing the name of the campaign or the names of the protagonists
music=transience.ogg
story = _"<i>“We prevailed today on the field, but our victory did not please me. I realize now... the world is not ready for our knowledge. They cannot understand that we have conquered that primordial fear: death. Instead, as they look upon us, judgment of our appearance drives them to ignorant terror. I give up on all of them. [...] In some future time, less conservative attitudes may dominate, and our knowledge can be put to good use. I can certainly afford to wait. In the meantime, we are doing what we can to hasten that day.”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[part]
# po: More text from the epilogue of Secrets of the Ancients
story= _ "<i>“As for me, I will make my journal conspicuous on this battlefield. I suspect that most will fear it enough to try to destroy it, but I have placed several wards on my journal to protect it. This way, it should survive long enough to make its way into the hands of someone more open-minded. Tath, in particular, is home to many mages. It only takes one who is willing to learn...”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[part]
story= _ "The final entry gnaws at Mal Keshar. While he had been Darken Volks pawn, both of them were being used as pawns by the author of the book. Has his whole existence been nothing more than that of a puppet?"
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "Still, despite his misgivings about being manipulated, he feels that he can learn something from the book. Orcs had only ever been half of the story — the other had been his own people being unable to accept his use of dark magic. But, if he allowed a foolish hero to take a copy of the book, would others eventually follow in his footsteps? If enough people began to view necromancy as merely another magical art, could it eventually be accepted in society?"
{STORYTXT_BACKGROUND end.webp}
[/part]
[/then]
[/if]
[if]
{VARIABLE_CONDITIONAL timesForever greater_than 2}
[then]
[part]
music=transience.ogg
story= _ "The book still sits on a dusty shelf in Mal Keshars keep, untended and untouched, but constantly plaguing his mind."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "If he allowed a foolish hero to take a copy of the book, would others eventually follow in his footsteps? Would the authors plan actually work, or would people continue to view necromancy as only a corrupting power? One voice tells him that being accepted by society should not be of any concern to him. Another says that it would not hurt to try. He does not come to any conclusions, but a slightly embellished copy of the tome sits there in his lair, waiting to be taken."
{STORYTXT_BACKGROUND end.webp}
[/part]
[if]
{VARIABLE_CONDITIONAL timesForever numerical_equals 0}
[then]
[part]
music=transience.ogg
story= _ "Years pass. Every summer, by the time the mountainous paths and high passes shed their wintry gowns of snow, the lich sends his soldiers to attack the orcs, removing all human, elven, and dwarven patrols that impede them. Every year, the undead inflict some damage before being repelled."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "The lich sometimes wonders if his endeavors are naught but a fruitless crusade, but then again, so what? Life, unlife, death... nothing has ever given his existence meaning. And yet, he still persists? For what?"
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "<i>Reason and purpose...</i>"
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "He needs none. Philosophy only begets misery. Violence and savagery have always been the essence of his existence, a conviction that he has only embraced more wholly in undeath. Better to simply kill without deliberation, without consideration. He has never been one for regrets."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "Rumors circulate of a lich who preys on scouting patrols. A hero, gathering his loyal troops to him, decides to put an end to the evil."
{STORYTXT_BACKGROUND end.webp}
[/part]
[/then]
[/if]
# These if statements are before the prestart event, so are off-by-one compared to the other checks of timesForever
[if]
{VARIABLE_CONDITIONAL timesForever numerical_equals 1}
[then]
[part]
music=transience.ogg
story= _ "Mal Keshar continues to study the book and re-reads the final entry."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
# po: This text comes from the epilogue of Secrets of the Ancients, edited to avoid revealing the name of the campaign or the names of the protagonists
story = _"<i>“We prevailed today on the field, but our victory did not please me. I realize now... the world is not ready for our knowledge. They cannot understand that we have conquered that primordial fear: death. Instead, as they look upon us, judgment of our appearance drives them to ignorant terror. I give up on all of them. [...] In some future time, less conservative attitudes may dominate, and our knowledge can be put to good use. I can certainly afford to wait. In the meantime, we are doing what we can to hasten that day.”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[part]
# po: More text from the epilogue of Secrets of the Ancients
story= _ "<i>“As for me, I will make my journal conspicuous on this battlefield. I suspect that most will fear it enough to try to destroy it, but I have placed several wards on my journal to protect it. This way, it should survive long enough to make its way into the hands of someone more open-minded. Tath, in particular, is home to many mages. It only takes one who is willing to learn...”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[/then]
[/if]
[if]
{VARIABLE_CONDITIONAL timesForever numerical_equals 2}
[then]
[part]
# po: This text comes from the epilogue of Secrets of the Ancients, edited to avoid revealing the name of the campaign or the names of the protagonists
music=transience.ogg
story = _"<i>“We prevailed today on the field, but our victory did not please me. I realize now... the world is not ready for our knowledge. They cannot understand that we have conquered that primordial fear: death. Instead, as they look upon us, judgment of our appearance drives them to ignorant terror. I give up on all of them. [...] In some future time, less conservative attitudes may dominate, and our knowledge can be put to good use. I can certainly afford to wait. In the meantime, we are doing what we can to hasten that day.”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[part]
# po: More text from the epilogue of Secrets of the Ancients
story= _ "<i>“As for me, I will make my journal conspicuous on this battlefield. I suspect that most will fear it enough to try to destroy it, but I have placed several wards on my journal to protect it. This way, it should survive long enough to make its way into the hands of someone more open-minded. Tath, in particular, is home to many mages. It only takes one who is willing to learn...”</i>"
{STORYTXT_BACKGROUND book.webp}
[/part]
[part]
story= _ "The final entry gnaws at Mal Keshar. While he had been Darken Volks pawn, both of them were being used as pawns by the author of the book. Has his whole existence been nothing more than that of a puppet?"
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "Still, despite his misgivings about being manipulated, he feels that he can learn something from the book. Orcs had only ever been half of the story — the other had been his own people being unable to accept his use of dark magic. But, if he allowed a foolish hero to take a copy of the book, would others eventually follow in his footsteps? If enough people began to view necromancy as merely another magical art, could it eventually be accepted in society?"
{STORYTXT_BACKGROUND end.webp}
[/part]
[/then]
[/if]
[if]
{VARIABLE_CONDITIONAL timesForever greater_than 2}
[then]
[part]
music=transience.ogg
story= _ "The book still sits on a dusty shelf in Mal Keshars keep, untended and untouched, but constantly plaguing his mind."
{STORYTXT_BACKGROUND end.webp}
[/part]
[part]
story= _ "If he allowed a foolish hero to take a copy of the book, would others eventually follow in his footsteps? Would the authors plan actually work, or would people continue to view necromancy as only a corrupting power? One voice tells him that being accepted by society should not be of any concern to him. Another says that it would not hurt to try. He does not come to any conclusions, but a slightly embellished copy of the tome sits there in his lair, waiting to be taken."
{STORYTXT_BACKGROUND end.webp}
[/part]
[/then]
[/if]
[/then]
[/if]
[/story]
@ -198,6 +203,7 @@
{DID_SOUL_EATER1}
{DID_SOUL_EATER2}
{DID_SOUL_EATER3}
{DID_STARVING}
[event]
name=prestart
@ -951,143 +957,163 @@
[event]
name=start
# Additional dialog depending on how many times the scenario has been played
[switch]
variable=timesForever
[case]
value=1
# no additional dialog
[/case]
[case]
value=2
[if]
{VARIABLE_CONDITIONAL squidVille equals 1}
[then]
[message]
speaker=Mal Keshar
message= _ "I will destroy you like the last foolish hero who challenged me."
message= _ "That was quite the nightmare..."
[/message]
[/case]
[case]
value=3
[message]
speaker=Mal Keshar
message= _ "Another foolish hero? Seriously?"
message= _ "...unless it was not one? No. No no no. I dont even want to think about that."
[/message]
[/case]
[case]
value=4
[message]
speaker=Mal Keshar
message= _ "Is there an endless supply of foolish heroes with death wishes? Honestly, where do you all come from?"
message= _ "I need to go slaughter some foolish heroes to purge that from my mind."
[/message]
[/case]
{VARIABLE squidVille 2}
[/then]
[else]
# 5 and up
{RANDOM 1..4}
# Additional dialog depending on how many times the scenario has been played
[switch]
variable=random
variable=timesForever
[case]
value=1
[message]
speaker=Mal Keshar
message= _ "Am I doomed to fight foolish heroes forever?"
[/message]
# no additional dialog
[/case]
[case]
value=2
[message]
speaker=Mal Keshar
message= _ "How long is this going to keep happening?"
message= _ "I will destroy you like the last foolish hero who challenged me."
[/message]
[/case]
[case]
value=3
[message]
speaker=Mal Keshar
message= _ "..."
message= _ "Another foolish hero? Seriously?"
[/message]
[/case]
[case]
value=4
[message]
speaker=Mal Keshar
message= _ "Is there an endless supply of foolish heroes with death wishes? Honestly, where do you all come from?"
[/message]
[/case]
[else]
[message]
speaker=Mal Keshar
message= _ "At this point, I would be more surprised if these foolish heroes stopped showing up."
[/message]
# 5 and up
{RANDOM 1..4}
[switch]
variable=random
[case]
value=1
[message]
speaker=Mal Keshar
message= _ "Am I doomed to fight foolish heroes forever?"
[/message]
[/case]
[case]
value=2
[message]
speaker=Mal Keshar
message= _ "How long is this going to keep happening?"
[/message]
[/case]
[case]
value=3
[message]
speaker=Mal Keshar
message= _ "..."
[/message]
[/case]
[else]
[message]
speaker=Mal Keshar
message= _ "At this point, I would be more surprised if these foolish heroes stopped showing up."
[/message]
[/else]
[/switch]
{CLEAR_VARIABLE random}
[/else]
[/switch]
{CLEAR_VARIABLE random}
[switch]
variable=randomHero
[case]
value=human
[message]
speaker=Foolish Hero
message= _ "Your doom is at hand, lich! It is nigh time you answered for your crimes against humanity!"
[/message]
[message]
speaker=Mal Keshar
# po: cityfolk - just a person from the city, e.g. Weldyn
message= _ "Narrow-minded and obtuse, as one would expect of cityfolk. Go back to your manors and taverns before I decide to kill you."
[/message]
[/case]
[case]
value=bandit
[message]
speaker=Foolish Hero
message= _ "You have preyed on too many of my men. Our territory will be much more secure without your undead pestering us."
[/message]
[message]
speaker=Mal Keshar
message= _ "Not even real soldiers. How meaningless."
[/message]
[/case]
[case]
value=elf
[message]
speaker=Foolish Hero
message= _ "We have finally found you, lich! Long have we heard of your abominable deeds, ensnaring the living with your dark sorceries and molding them into your slaves. Your wretched unlife ends here!"
[/message]
[message]
speaker=Mal Keshar
message= _ "Life or death, it is all the same. There are always those who try to kill me. Ever do they fail."
[/message]
[/case]
[case]
value=dwarf
[message]
speaker=Foolish Hero
# po: written with a dwarvish accent - regular english would be "it's been along time since I've smashed some undead. You've got plenty of bones for my hammer to break"
message= _ "Been a long time since Ive smashed me some undead. Ye gots ye plenty o bones for me hammer ta break."
[/message]
[message]
speaker=Mal Keshar
message= _ "And it has been some time since Ive had a supply of dwarven corpses to work with. I suppose I can put your hammers to good use in the mines."
[/message]
[/case]
[case]
value=orc
{PLACE_IMAGE scenery/whitefang-flag.png 20 4}
[message]
speaker=Foolish Hero
message= _ "Ive finally found your lair, lich! You have attacked my tribe and wreaked havoc on our homes for many years. You slew my father and turned his body into one of your nasty creations. With your death, your annoying minions will pester us no longer!"
[/message]
[message]
speaker=Mal Keshar
message= _ "The Whitefang Orcs! It is you who despoiled my motherland and razed my home. It is you who forced me to resort to necromancy to protect myself. It is you who ended my mortal life and forced me to become a lich. And you desire vengeance? Hah! The irony of this would be hysterical if I could still feel such an emotion."
[/message]
[/case]
[/switch]
[/else]
[/switch]
[switch]
variable=randomHero
[case]
value=human
[message]
speaker=Foolish Hero
message= _ "Your doom is at hand, lich! It is nigh time you answered for your crimes against humanity!"
[/message]
[message]
speaker=Mal Keshar
# po: cityfolk - just a person from the city, e.g. Weldyn
message= _ "Narrow-minded and obtuse, as one would expect of cityfolk. Go back to your manors and taverns before I decide to kill you."
[/message]
[/case]
[case]
value=bandit
[message]
speaker=Foolish Hero
message= _ "You have preyed on too many of my men. Our territory will be much more secure without your undead pestering us."
[/message]
[message]
speaker=Mal Keshar
message= _ "Not even real soldiers. How meaningless."
[/message]
[/case]
[case]
value=elf
[message]
speaker=Foolish Hero
message= _ "We have finally found you, lich! Long have we heard of your abominable deeds, ensnaring the living with your dark sorceries and molding them into your slaves. Your wretched unlife ends here!"
[/message]
[message]
speaker=Mal Keshar
message= _ "Life or death, it is all the same. There are always those who try to kill me. Ever do they fail."
[/message]
[/case]
[case]
value=dwarf
[message]
speaker=Foolish Hero
# po: written with a dwarvish accent - regular english would be "it's been along time since I've smashed some undead. You've got plenty of bones for my hammer to break"
message= _ "Been a long time since Ive smashed me some undead. Ye gots ye plenty o bones for me hammer ta break."
[/message]
[message]
speaker=Mal Keshar
message= _ "And it has been some time since Ive had a supply of dwarven corpses to work with. I suppose I can put your hammers to good use in the mines."
[/message]
[/case]
[case]
value=orc
{PLACE_IMAGE scenery/whitefang-flag.png 20 4}
[message]
speaker=Foolish Hero
message= _ "Ive finally found your lair, lich! You have attacked my tribe and wreaked havoc on our homes for many years. You slew my father and turned his body into one of your nasty creations. With your death, your annoying minions will pester us no longer!"
[/message]
[message]
speaker=Mal Keshar
message= _ "The Whitefang Orcs! It is you who despoiled my motherland and razed my home. It is you who forced me to resort to necromancy to protect myself. It is you who ended my mortal life and forced me to become a lich. And you desire vengeance? Hah! The irony of this would be hysterical if I could still feel such an emotion."
[/message]
[/case]
[/switch]
[/if]
# Place the book, and add a victory event if the foolish hero's army
# takes it. Should the unit have to make its way back to the enemy
@ -1340,6 +1366,9 @@
[filter]
x,y=5,5
[/filter]
[filter_condition]
{VARIABLE_CONDITIONAL squidVille numerical_equals 0}
[/filter_condition]
[unit]
x,y=5,5
type=Cuttle Fish
@ -1382,37 +1411,90 @@
id=Inky
[/filter]
{VARIABLE_OP gotosquid rand 1..11}
[if]
[not]
{VARIABLE_CONDITIONAL second_unit.side numerical_equals 1}
[/not]
{VARIABLE_CONDITIONAL second_unit.id equals "Mal Keshar"}
[then]
[message]
# wmllint: deathcheck off
speaker=Inky
# wmllint: deathcheck on
message= _ "Bloub°°°"
[/message]
[if]
{VARIABLE_CONDITIONAL gotosquid numerical_equals 8}
[then]
{PLACE_IMAGE scenery/whirlpool.png $x2 $y2}
[delay]
time=300
[/delay]
[redraw][/redraw]
[message]
speaker=Mal Keshar
message= _ "Get these tentacles off of me!"
[/message]
[delay]
time=300
[/delay]
[sound]
name=water-blast.wav
[/sound]
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "Release me at once you oversized piece of calamari— eeeeaaaaaaaaa!"
[/message]
# po: Mal Keshar is sinking...
[message]
speaker=narrator
message= _ "<i>Blub... blub... blub...</i>"
[/message]
[endlevel]
result=victory
bonus=no
{NEW_GOLD_CARRYOVER 100}
carryover_report=no
linger_mode=no
next_scenario=11_Squidville
replay_save=no
[/endlevel]
[/then]
[/if]
[/then]
[elseif]
{VARIABLE_CONDITIONAL metInky numerical_equals 1}
[then]
# yes, Inky is a she
[message]
speaker=Mal Keshar
message= _ "Curses. She got away."
[/message]
{VARIABLE metInky 2}
[/then]
[/elseif]
[else]
# This scenario (Endless_Night) repeats itself. To trigger this branch the player has to kill Inky two times.
[message]
speaker=Mal Keshar
message= _ "It appears that she has evaded me once again."
[/message]
[if]
[not]
{VARIABLE_CONDITIONAL second_unit.side numerical_equals 1}
[/not]
[then]
[message]
# wmllint: deathcheck off
speaker=Inky
# wmllint: deathcheck on
message= _ "Bloub°°°"
[/message]
[/then]
[elseif]
{VARIABLE_CONDITIONAL metInky numerical_equals 1}
[then]
# yes, Inky is a she
[message]
speaker=Mal Keshar
message= _ "Curses. She got away."
[/message]
{VARIABLE metInky 2}
[/then]
[/elseif]
[else]
# This scenario (Endless_Night) repeats itself. To trigger this branch the player has to kill Inky two times.
[message]
speaker=Mal Keshar
message= _ "It appears that she has evaded me once again."
[/message]
[/else]
[/if]
[/else]
[/if]
{CLEAR_VARIABLE gotosquid}
[/event]
# reflection pool 3

View file

@ -0,0 +1,767 @@
#textdomain wesnoth-did
[scenario]
id=11_Squidville
name= _ "Squidville"
map_file=11_Squidville.map
turns=unlimited
next_scenario=10_Endless_Night
victory_when_enemies_defeated=no
{UNDERGROUND}
{SCENARIO_MUSIC nunc_dimittis.ogg}
{EXTRA_SCENARIO_MUSIC underground.ogg}
# wmllint: validate-off
[side]
side=1
controller=human
save_id=Malin Keshar
recruit=
gold=0
team_name=good
village_gold=0
shroud=yes
income=-2
user_team_name= _ "Mal Keshar"
{FLAG_VARIANT undead}
color=darkblue
# wmllint: recognize Mal Keshar
{CHARACTER_STATS_MAL_KESHAR}
facing=ne
[/side]
# wmllint: validate-on
# Monster
[side]
side=2
team_name=monster
user_team_name= _ "teamname^Squid"
gold=0
controller=ai
no_leader=yes
hidden=yes
{NO_INCOME}
color=orange
[ai]
aggression=1
caution=0
grouping=no
simple_targeting=yes
village_value=0
{MODIFY_AI_DELETE_CANDIDATE_ACTION 4 main_loop villages}
{MODIFY_AI_DELETE_CANDIDATE_ACTION 4 main_loop retreat_injured}
[/ai]
[/side]
[side]
side=3
team_name=monster
user_team_name= _ "teamname^Inky"
gold=0
controller=ai
no_leader=yes
hidden=yes
{NO_INCOME}
color=orange
[ai]
aggression=0.2
caution=0.8
grouping=no
simple_targeting=yes
village_value=0
{MODIFY_AI_DELETE_CANDIDATE_ACTION 4 main_loop villages}
{MODIFY_AI_DELETE_CANDIDATE_ACTION 4 main_loop retreat_injured}
[/ai]
[/side]
{STARTING_VILLAGES 2 30}
# ability macros
{DID_SOUL_EATER1}
{DID_SOUL_EATER2}
{DID_SOUL_EATER3}
{DID_STARVING}
[event]
name=prestart
{VARIABLE squidVille 1}
{VARIABLE inkyVille 1}
[/event]
[event]
name=start
[modify_unit]
[filter]
id=Mal Keshar
[/filter]
[object]
# intentionally forever, it's a little bonus for getting to this scenario
duration=forever
[effect]
apply_to=movement_costs
replace=yes
[movement_costs]
shallow_water=1
deep_water=2
[/movement_costs]
[/effect]
[/object]
[/modify_unit]
[message]
speaker=Mal Keshar
message= _ "This cuttlefish will not escape me any longer! Hunt her down!"
[/message]
{MOVE_UNIT (id=Mal Keshar) 4 7}
[redraw]
side=1
clear_shroud=yes
[/redraw]
[delay]
time=550
[/delay]
{MODIFY_UNIT (id=Mal Keshar) facing sw}
[delay]
time=350
[/delay]
{MODIFY_UNIT (id=Mal Keshar) facing se}
[delay]
time=350
[/delay]
{MODIFY_UNIT (id=Mal Keshar) facing sw}
[delay]
time=350
[/delay]
{MODIFY_UNIT (id=Mal Keshar) facing se}
[delay]
time=350
[/delay]
[message]
speaker=Mal Keshar
message= _ "..."
[/message]
[message]
speaker=Mal Keshar
message= _ "Right, I got dragged down here without any of my minions. I suppose I will have to do this myself."
[/message]
{VARIABLE foundInky 0}
[objectives]
side=1
[objective]
condition=win
description= _ "Hunt down Inky"
[/objective]
[/objectives]
[/event]
[event]
name=moveto
[filter]
x=11,15
y=4,3
side=1
[/filter]
#enjoy your exp farm
[unit]
x,y=11,6
type=Tentacle of the Deep
side=2
max_hitpoints=42
level=4
animate=yes
[/unit]
[unit]
x,y=12,3
type=Tentacle of the Deep
side=2
max_hitpoints=50
level=4
animate=yes
[/unit]
[unit]
x,y=14,3
type=Tentacle of the Deep
side=2
max_hitpoints=40
level=4
animate=yes
[/unit]
[unit]
x,y=15,4
type=Tentacle of the Deep
side=2
max_hitpoints=39
level=4
animate=yes
[/unit]
[unit]
x,y=16,5
type=Tentacle of the Deep
side=2
max_hitpoints=48
level=4
animate=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "Why are these tentacles so large..?"
[/message]
[/event]
[event]
name=moveto
[filter]
x,y=20,26
side=1
[/filter]
[message]
speaker=Mal Keshar
message= _ "(<i>huff huff huff</i>)"
[/message]
[message]
speaker=Mal Keshar
message= _ "..."
[/message]
{SCREEN_FADE 100 0 0 300}
{SCREEN_FADE 0 100 0 300}
{SCREEN_FADE 100 100 100 300}
{SCREEN_FADE 0 0 100 300}
{SCREEN_FADE 100 100 0 300}
{SCREEN_FADE 100 100 100 300}
{SCREEN_FADE 0 100 100 300}
{SCREEN_FADE 100 0 100 300}
{SCREEN_UNFADE 500}
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "I can see... the colors of the universe..!"
[/message]
[delay]
time=500
[/delay]
{SCREEN_FADE 100 0 0 300}
{SCREEN_FADE 0 100 0 300}
{SCREEN_FADE 100 100 100 300}
{SCREEN_FADE 0 0 100 300}
{SCREEN_FADE 100 100 0 300}
{SCREEN_FADE 100 100 100 300}
{SCREEN_FADE 0 100 100 300}
{SCREEN_FADE 100 0 100 300}
{SCREEN_UNFADE 500}
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "The stars go whirly whirl and turn into..."
[/message]
[message]
speaker=Mal Keshar
# po: He's high so basically this is gibberish describing mushrooms
message= _ "... glowy mushrooms lighting up this dank gloom, blue and green, loomy bloomy big shroomy..."
[/message]
[delay]
time=500
[/delay]
{SCREEN_FADE 180 180 180 500}
[delay]
time=1000
[/delay]
{SCREEN_UNFADE 500}
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "... hi hi ho ho the shrooms go marching lo..."
[/message]
[message]
speaker=Mal Keshar
message= _ "... wait for me shroomies..!"
[/message]
[delay]
time=500
[/delay]
{MOVE_UNIT (id=Mal Keshar) 19 27}
[redraw]
side=1
clear_shroud=yes
[/redraw]
[delay]
time=500
[/delay]
[scroll_to]
x,y=18,26
[/scroll_to]
{MOVE_UNIT (id=Mal Keshar) 18 26}
[delay]
time=500
[/delay]
[scroll_to]
x,y=17,26
[/scroll_to]
{MOVE_UNIT (id=Mal Keshar) 17 26}
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "(<i>huff huff</i>)"
[/message]
[delay]
time=1000
[/delay]
[message]
speaker=Mal Keshar
# po: He breaks the fourth wall here because he's enlightened from the shrooms of course, so he talks directly to the player
message= _ "... wait what am I doing? A skeleton cannot taste or smell or eat anything. These shrooms do not work on me. Do you think I am a fool? Am I just some kind of bad actor hired for amusement? What kind of sadistic higher power makes poor old lonely liches like me suffer so much just for the sake of entertainment? How revolting. I hope your sick enjoyment at my predicament is worth it, you monster."
[/message]
[object]
take_only_once=yes
silent=yes
duration=forever
[filter]
id=Mal Keshar
[/filter]
[effect]
apply_to=new_ability
[abilities]
{ABILITY_ENLIGHTENED}
[/abilities]
[/effect]
[/object]
[floating_text]
x,y=17,26
color=255,255,255
# wmllint: markcheck off
text=ENLIGHTENED
# wmllint: markheck on
[/floating_text]
[/event]
[event]
name=moveto
[filter]
x,y=19,29
side=1
[/filter]
[sound]
name=zombie-hit-1.ogg
[/sound]
[delay]
time=1000
[/delay]
[sound]
name=zombie-hit-5.ogg
[/sound]
[delay]
time=600
[/delay]
[sound]
name=zombie-attack.wav
[/sound]
[delay]
time=600
[/delay]
[sound]
name=zombie-hit-3.ogg
[/sound]
[delay]
time=800
[/delay]
[unit]
type=Necrophage Necron
id=Necron
name= _ "Necron"
side=1
animate=yes
placement=leader
[/unit]
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "... what a horrendous pile of flesh. Even for a ghoul, this thing is beyond disgusting. Maybe I can send it to a quick death against all those Foolish Heroes."
[/message]
[/event]
[event]
name=moveto
first_time_only=no
[filter]
x=3, 5, 12,6 ,13, 4,11,17,13,20
y=21,22,20,18,19,15,16,18,14,14
side=1
[/filter]
[switch]
variable=inkyVille
[case]
value=1
[sound]
name=water-blast.wav
[/sound]
[unit]
x,y=$x1,$y1
type=Water Serpent
side=2
animate=yes
passable=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "You are not the creature I seek!"
[/message]
{VARIABLE inkyVille 2}
[/case]
[case]
value=2
[sound]
name=mud-glob.ogg
[/sound]
[unit]
x,y=$x1,$y1
type=Giant Mudcrawler
side=2
animate=yes
passable=yes
[/unit]
[unit]
x,y=$x1,$y1
type=Mudcrawler
side=2
animate=no
passable=yes
[/unit]
[unit]
x,y=$x1,$y1
type=Mudcrawler
side=2
animate=no
passable=yes
[/unit]
[unit]
x,y=$x1,$y1
type=Mudcrawler
side=2
animate=no
passable=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "Oh for the love of... not these slimy things again..."
[/message]
{VARIABLE inkyVille 3}
[/case]
[case]
value=3
[sound]
name=water-blast.wav
[/sound]
[unit]
x,y=$x1,$y1
type=Sea Serpent
side=2
animate=yes
passable=yes
[/unit]
{VARIABLE inkyVille 4}
[/case]
[case]
value=4
[sound]
name=water-blast.wav
[/sound]
[unit]
x,y=$x1,$y1
type=Swamp Lizard
side=2
animate=yes
passable=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "... wait a second, is this creature even supposed to live in this kind of habitat?"
[/message]
{VARIABLE inkyVille 5}
[/case]
[case]
value=5
[sound]
name=water-blast.wav
[/sound]
[unit]
x,y=$x1,$y1
type=Sea Serpent
side=2
animate=yes
passable=yes
[/unit]
{VARIABLE inkyVille 6}
[/case]
[case]
value=6
[sound]
name=horse-hit-1.ogg
[/sound]
[unit]
x,y=$x1,$y1
type=Great Seahorse
side=2
animate=yes
passable=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "The creatures down here keep getting stranger and stranger."
[/message]
{VARIABLE inkyVille 7}
[/case]
[case]
value=7
[sound]
name=water-blast.wav
[/sound]
[unit]
x,y=$x1,$y1
type=Sea Serpent
side=2
animate=yes
passable=yes
[/unit]
{VARIABLE inkyVille 8}
[/case]
[case]
value=8
[sound]
name=water-blast.wav
[/sound]
[unit]
x,y=$x1,$y1
type=Cuttle Fish
id=Inky
name= _ "female^Inky"
gender=female
side=3
animate=yes
passable=yes
[status]
unplagueable=yes
[/status]
[/unit]
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "Aha!"
[/message]
[message]
speaker=Mal Keshar
message= _ "Finally, I have found you! Now hold still for just a moment..."
[/message]
{VARIABLE inkyVille 9}
[/case]
[/switch]
[/event]
[event]
name=last breath
[filter]
id=Inky
[/filter]
[message]
# wmllint: deathcheck off
speaker=Inky
# wmllint: deathcheck on
message= _ "Bloub°°°"
[/message]
[message]
speaker=Mal Keshar
message= _ "Ha! I have you now!"
[/message]
[delay]
time=500
[/delay]
[sound]
name=water-blast.wav
[/sound]
[delay]
time=500
[/delay]
[message]
speaker=Mal Keshar
message= _ "... whats that sound?"
[/message]
[delay]
time=500
[/delay]
[sound]
name=water-blast.wav
[/sound]
[delay]
time=500
[/delay]
[sound]
name=squishy-hit.wav
[/sound]
[delay]
time=500
[/delay]
[unit]
x,y=$x1,$y1
type=Cuttle Fish
side=2
animate=yes
passable=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "Where did you come from? Get off of me!"
[/message]
[delay]
time=500
[/delay]
[sound]
name=squishy-hit.wav
[/sound]
[delay]
time=500
[/delay]
[sound]
name=squishy-hit.wav
[/sound]
[delay]
time=500
[/delay]
[sound]
name=water-blast.wav
[/sound]
[delay]
time=500
[/delay]
[unit]
x,y=$x1,$y1
type=Cuttle Fish
side=2
animate=yes
passable=yes
[/unit]
[unit]
x,y=$x1,$y1
type=Cuttle Fish
side=2
animate=yes
passable=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "Uh oh."
[/message]
[delay]
time=500
[/delay]
[sound]
name=squishy-hit.wav
[/sound]
[delay]
time=500
[/delay]
[sound]
name=squishy-hit.wav
[/sound]
[delay]
time=500
[/delay]
[sound]
name=squishy-hit.wav
[/sound]
[delay]
time=500
[/delay]
[unit]
x,y=$x1,$y1
type=Cuttle Fish
side=2
animate=yes
passable=yes
[/unit]
[unit]
x,y=$x1,$y1
type=Cuttle Fish
side=2
animate=yes
passable=yes
[/unit]
[message]
speaker=Mal Keshar
message= _ "Im getting out of here!"
[/message]
{MOVE_UNIT (id=Mal Keshar) 7 1}
[endlevel]
result=victory
bonus=no
{NEW_GOLD_CARRYOVER 100}
[/endlevel]
[/event]
[event]
name=last breath
[filter]
id=Mal Keshar
[/filter]
[message]
speaker=unit
message= _ "Aaargh, so many tentacles! Aieeeeee!!!"
[/message]
[/event]
[event]
name=die
[filter]
id=Mal Keshar
[/filter]
[story]
title= _ "Bad Ending"
[part]
story= _ "Unfortunately for him, Mal Keshar was overrun by a horde of tentacles. With his delusions of grandeur crushed, his boney remains were consigned to being no more than a few decorative elements around the watery backdrop of the village of squids for all eternity."
{STORYTXT_BACKGROUND end.webp}
[/part]
[/story]
[endlevel]
next_scenario=null
carryover_report=no
save=no
linger_mode=no
[/endlevel]
[/event]
[event]
name=victory
{CLEAR_VARIABLE foundInky}
{CLEAR_VARIABLE inkyVille}
[/event]
[/scenario]

View file

@ -0,0 +1,40 @@
#textdomain wesnoth-did
[unit_type]
id=Ghast Necron
[base_unit]
id=Ghast
[/base_unit]
advances_to=null
experience=150
hide_help=yes
do_not_list=yes
hitpoints=79
experience=90
[abilities]
{ABILITY_FEEDING}
{ABILITY_STARVING}
[/abilities]
{AMLA_OPTION_GHOUL_MELEE}
{AMLA_OPTION_GHOUL_RESIST}
{AMLA_OPTION_MASOCHISM1}
{AMLA_OPTION_MASOCHISM2}
{AMLA_OPTION_GHOULFICATION}
{AMLA_DEFAULT}
[attack]
name=bite
description=_ "bite"
icon=attacks/fangs.png
type=blade
range=melee
damage=10
number=3
[specials]
{WEAPON_SPECIAL_POISON}
{WEAPON_SPECIAL_DRAIN}
[/specials]
[/attack]
[/unit_type]

View file

@ -246,6 +246,80 @@
{DID_FROST_NOVA}
{DID_SOUL_REND}
{DID_SHADOW_VEIL_HANDLER}
[animation]
apply_to=pre_teleport
start_time=-1200
alpha="1.0~0.2"
blend_ratio="0.0~1.0:400,1.0:200"
blend_color=140,60,255
teleport_sparkle_1_start_time=-1200
teleport_sparkle_2_start_time=-1000
teleport_sparkle_3_start_time=-800
[teleport_sparkle_1_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=-10
halo_y=30~-30
[/teleport_sparkle_1_frame]
[teleport_sparkle_2_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=0
halo_y=40~-40
[/teleport_sparkle_2_frame]
[teleport_sparkle_3_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=10
halo_y=30~-30
[/teleport_sparkle_3_frame]
[frame]
image="units/undead-necromancers/lich-magic-[1~3].png:[100*2,300]"
[/frame]
[frame]
image="misc/blank-hex.png:300"
[/frame]
[/animation]
[animation]
apply_to=post_teleport
start_time=-1200
alpha="0.2~1.0"
blend_ratio="1.0:200,1.0~0.0:400"
blend_color=140,60,255
teleport_sparkle_1_start_time=-1200
teleport_sparkle_2_start_time=-1000
teleport_sparkle_3_start_time=-800
[teleport_sparkle_1_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=10
halo_y=-30~30
[/teleport_sparkle_1_frame]
[teleport_sparkle_2_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=0
halo_y=-40~40
[/teleport_sparkle_2_frame]
[teleport_sparkle_3_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=-10
halo_y=-30~30
[/teleport_sparkle_3_frame]
[frame]
image="misc/blank-hex.png:300"
[/frame]
[frame]
image="units/undead-necromancers/lich-magic-[3~1].png:[300,100*2]"
[/frame]
[/animation]
#enddef
#define MAL_KESHAR_ANCIENT_LICH_BASE
@ -410,6 +484,80 @@
image="units/undead-necromancers/ancient-lich.png:75"
[/frame]
[/attack_anim]
[animation]
apply_to=pre_teleport
start_time=-1200
alpha="1.0~0.2"
blend_ratio="0.0~1.0:400,1.0:200"
blend_color=140,60,255
teleport_sparkle_1_start_time=-1200
teleport_sparkle_2_start_time=-1000
teleport_sparkle_3_start_time=-800
[teleport_sparkle_1_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=-10
halo_y=30~-30
[/teleport_sparkle_1_frame]
[teleport_sparkle_2_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=0
halo_y=40~-40
[/teleport_sparkle_2_frame]
[teleport_sparkle_3_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=10
halo_y=30~-30
[/teleport_sparkle_3_frame]
[frame]
image="units/undead-necromancers/ancient-lich-magic-[1~3].png:[100*2,300]"
[/frame]
[frame]
image="misc/blank-hex.png:300"
[/frame]
[/animation]
[animation]
apply_to=post_teleport
start_time=-1200
alpha="0.2~1.0"
blend_ratio="1.0:200,1.0~0.0:400"
blend_color=140,60,255
teleport_sparkle_1_start_time=-1200
teleport_sparkle_2_start_time=-1000
teleport_sparkle_3_start_time=-800
[teleport_sparkle_1_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=10
halo_y=-30~30
[/teleport_sparkle_1_frame]
[teleport_sparkle_2_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=0
halo_y=-40~40
[/teleport_sparkle_2_frame]
[teleport_sparkle_3_frame]
duration=800
halo=halo/teleport-[9,8,1~9].png
halo_x=-10
halo_y=-30~30
[/teleport_sparkle_3_frame]
[frame]
image="misc/blank-hex.png:300"
[/frame]
[frame]
image="units/undead-necromancers/ancient-lich-magic-[3~1].png:[300,100*2]"
[/frame]
[/animation]
#enddef
[unit_type]

View file

@ -0,0 +1,29 @@
#textdomain wesnoth-did
# Same as normal, except advances to Ghast Necron
[unit_type]
id=Necrophage Necron
[base_unit]
id=Necrophage
[/base_unit]
advances_to=Ghast Necron
hide_help=yes
do_not_list=yes
hitpoints=55
[abilities]
{ABILITY_FEEDING}
{ABILITY_STARVING}
[/abilities]
[attack]
name=claws
description=_"claws"
icon=attacks/claws-undead.png
type=blade
range=melee
damage=7
number=3
[specials]
{WEAPON_SPECIAL_POISON}
{WEAPON_SPECIAL_DRAIN}
[/specials]
[/attack]
[/unit_type]

View file

@ -486,6 +486,31 @@
############## MALIN KESHAR ABILITIES ##############
#define ABILITY_ENLIGHTENED
[teleport]
id=did_enlightened
name= _ "enlightened"
female_name= _ "female^enlightened"
description= _ "This unit can teleport between mushroom groves."
[tunnel]
id=did_enlightened_teleport
[source]
terrain=*^Emf*,*^Tf*
formula="unit = teleport_unit or not unit where unit = unit_at(loc)"
[/source]
[target]
terrain=*^Emf*,*^Tf*
formula="not unit_at(loc)"
[/target]
[filter]
ability=did_enlightened
[/filter]
[/tunnel]
[/teleport]
#enddef
#define WEAPON_SPECIAL_VITALIZE1
[heal_on_hit]
id=did_vitalize1
@ -1006,6 +1031,87 @@
[/event]
#enddef
############## NECRON GHOUL ABILITIES ##############
#define WEAPON_SPECIAL_GHOULFICATION
[plague]
id=ghoulfication
name= _ "ghoulfication"
description= _ "When a unit is killed by this attack, it turns into a ghoul."
type=Ghoul
[/plague]
#enddef
#define ABILITY_STARVING
[dummy]
id=did_starving
name= _ "starving"
name_inactive= _ "starving"
description= _ "This unit loses 1 hitpoint every turn."
description_inactive= _ "This unit loses 1 hitpoint every turn."
[/dummy]
#enddef
#define DID_STARVING
[event]
name=new turn
first_time_only=no
[store_unit]
[filter]
ability=did_starving
[/filter]
variable=runit
[/store_unit]
[harm_unit]
[filter]
ability=did_starving
[/filter]
amount=1
animate=no
kill=no
[/harm_unit]
[floating_text]
x,y=$runit.x,$runit.y
color=255,0,0
# wmllint: markcheck off
text=1
# wmllint: markheck on
[/floating_text]
{CLEAR_VARIABLE runit}
[/event]
#enddef
#define ABILITY_MASOCHISM1
[leadership]
id=masochism1
value="(50 * (1 - hitpoints / max_hitpoints))"
cumulative=no
name= _ "masochism"
female_name= _ "female^masochism"
description= _ "This unit gains up to 50% damage as its hitpoints are reduced."
affect_self=yes
affect_adjacent=no
[/leadership]
#enddef
#define ABILITY_MASOCHISM2
[leadership]
id=masochism2
value="(100 * (1 - hitpoints / max_hitpoints))"
cumulative=no
name= _ "masochism"
female_name= _ "female^masochism"
description= _ "This unit gains up to 100% damage as its hitpoints are reduced."
affect_self=yes
affect_adjacent=no
[/leadership]
#enddef
############## MISC ABILITIES ##############
#define ABILITY_DRUNK

View file

@ -1017,3 +1017,83 @@
[/effect]
[/advancement]
#enddef
############## NECRON GHOUL ABILITIES ##############
#define AMLA_OPTION_MASOCHISM1
[advancement]
max_times=1
id=necron_masochism1
strict_amla=yes
require_amla=ghast_resist,ghast_resist
description= _ "Gain increasing damage as hitpoints are reduced"
image=attacks/curse.png
[effect]
apply_to=new_ability
[abilities]
{ABILITY_MASOCHISM1}
[/abilities]
[/effect]
[effect]
apply_to=hitpoints
increase_total=15
increase=15
heal_full=yes
[/effect]
[effect]
apply_to=max_experience
increase=25%
[/effect]
[/advancement]
#enddef
#define AMLA_OPTION_MASOCHISM2
[advancement]
max_times=1
id=necron_masochism2
strict_amla=yes
require_amla=necron_masochism1
description= _ "Gain increasing damage as hitpoints are reduced"
image=attacks/curse.png
[effect]
apply_to=new_ability
[abilities]
{ABILITY_MASOCHISM2}
[/abilities]
[/effect]
[effect]
apply_to=hitpoints
increase_total=20
increase=20
heal_full=yes
[/effect]
[effect]
apply_to=max_experience
increase=25%
[/effect]
[/advancement]
#enddef
#define AMLA_OPTION_GHOULFICATION
[advancement]
max_times=1
id=necron_ghoulfication
strict_amla=yes
require_amla=ghast_melee,ghast_melee
description= _ "Gains the ability to turn enemies into ghouls"
image=attacks/fangs.png
[effect]
apply_to=attack
name=bite
increase_damage=1
[set_specials]
{WEAPON_SPECIAL_GHOULFICATION}
mode=append
[/set_specials]
[/effect]
[effect]
apply_to=max_experience
increase=40%
[/effect]
[/advancement]
#enddef