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

@ -17,6 +17,9 @@
[story]
# a bit of extra text for the first round
[if]
{VARIABLE_CONDITIONAL squidVille not_equals 1}
[then]
[if]
{VARIABLE_CONDITIONAL timesForever numerical_equals 0}
[then]
@ -102,6 +105,8 @@
[/part]
[/then]
[/if]
[/then]
[/if]
[/story]
{DID_TRACK {JOURNEY_10_NEW}}
@ -198,6 +203,7 @@
{DID_SOUL_EATER1}
{DID_SOUL_EATER2}
{DID_SOUL_EATER3}
{DID_STARVING}
[event]
name=prestart
@ -951,6 +957,24 @@
[event]
name=start
[if]
{VARIABLE_CONDITIONAL squidVille equals 1}
[then]
[message]
speaker=Mal Keshar
message= _ "That was quite the nightmare..."
[/message]
[message]
speaker=Mal Keshar
message= _ "...unless it was not one? No. No no no. I dont even want to think about that."
[/message]
[message]
speaker=Mal Keshar
message= _ "I need to go slaughter some foolish heroes to purge that from my mind."
[/message]
{VARIABLE squidVille 2}
[/then]
[else]
# Additional dialog depending on how many times the scenario has been played
[switch]
variable=timesForever
@ -1088,6 +1112,8 @@
[/message]
[/case]
[/switch]
[/else]
[/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,6 +1411,55 @@
id=Inky
[/filter]
{VARIABLE_OP gotosquid rand 1..11}
[if]
{VARIABLE_CONDITIONAL second_unit.id equals "Mal Keshar"}
[then]
[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]
[else]
[if]
[not]
{VARIABLE_CONDITIONAL second_unit.side numerical_equals 1}
@ -1413,6 +1491,10 @@
[/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