Tune the lich transformation sequence a bit.

This commit is contained in:
Lari Nieminen 2008-02-03 13:53:58 +00:00
parent 6a5c0b4c64
commit fc2706ef79
3 changed files with 121 additions and 84 deletions

View file

@ -147,28 +147,6 @@
{MODIFY_UNIT (description=Malin Keshar) hitpoints 12}
{MODIFY_UNIT (description=Malin Keshar) status.poisoned on}
# Place and store the new Malin
[unit]
# Malin's new look
type=Lich DiD
side=1
description=Mal Keshar
user_description=_ "Mal Keshar"
unrenamable=yes
canrecruit=1
profile=portraits/malinlich.png
x,y=1,1
hitpoints=5
advanceto="Ancient Lich"
[/unit]
[store_unit]
[filter]
description=Mal Keshar
[/filter]
variable=malinAsLich
kill=yes
[/store_unit]
# Castle trolls - all difficulties
{GEN_GUARD (Troll) 2 14 7}
{GEN_GUARD (Troll) 2 8 7}
@ -252,24 +230,65 @@
{PLACE_IMAGE (scenery/slab1.png) 6 31}
# Malin dies
# I really want to black out the screen, but it doesn't seem to want to let me do that with [place_shroud], so I'll settle for scrolling to a shrouded part
[scroll_to]
x,y=25,32
[/scroll_to]
[kill]
description=Malin Keshar
fire_event=no
[/kill]
# this is used for fading the screen to black and back
#define FADE_STEP LIGHTNESS DELAY
[colour_adjust]
red,green,blue={LIGHTNESS},{LIGHTNESS},{LIGHTNESS}
[/colour_adjust]
[redraw]
[/redraw]
#enddef
{FADE_STEP -32 5}
{FADE_STEP -64 5}
{FADE_STEP -96 5}
{FADE_STEP -128 5}
{FADE_STEP -160 5}
{FADE_STEP -192 5}
{FADE_STEP -224 5}
{FADE_STEP -255 5}
[redraw]
[/redraw]
{DELAY 1000}
{DIALOGUE_DID_LICH1}
{FADE_STEP -224 5}
{FADE_STEP -192 5}
{FADE_STEP -160 5}
{FADE_STEP -128 5}
{FADE_STEP -96 5}
{FADE_STEP -64 5}
{FADE_STEP -32 5}
{FADE_STEP 0 5}
#undef FADE_STEP
# and is reborn as a lich
{VARIABLE_OP malinAsLich.x format $x1}
{VARIABLE_OP malinAsLich.y format $y1}
[unstore_unit]
variable=malinAsLich
find_vacant=no
animate=yes
[/unstore_unit]
{CLEAR_VARIABLE malinAsLich}
[redraw]
[unit]
type=Lich DiD
side=1
description=Mal Keshar
user_description=_ "Mal Keshar"
unrenamable=yes
canrecruit=1
profile=portraits/malinlich.png
x,y=$x1,$y1
hitpoints=7
advanceto="Ancient Lich"
animate=yes
[/unit]
[redraw]
[/redraw]
# He's not necessariliy totally happy about this

View file

@ -28,6 +28,13 @@
number=3
[specials]
{WEAPON_SPECIAL_MAGICAL}
[+chance_to_hit]
[filter_opponent]
[not]
type=Mirror
[/not]
[/filter_opponent]
[/chance_to_hit]
[/specials]
[/attack]
[attack]
@ -133,8 +140,8 @@
begin=-150
end=0
image=units/dark-mage-sword1.png
sound=sword-1.ogg
[/frame]
{SOUND:HIT_AND_MISS sword-1.ogg {SOUND_LIST:MISS} -100}
[frame]
begin=0
end=200

View file

@ -2,7 +2,7 @@
# Reflects (melee) damage
[unit]
id=Mirror
name= _ "Mirror"
name=""
race=mechanical
image="scenery/slab1.png"
[defend]
@ -16,34 +16,33 @@
movement_type=none
movement=1
[defense]
deep_water=100
shallow_water=100
swamp_water=100
grassland=100
sand=100
forest=100
hills=100
mountains=100
village=100
castle=100
cave=100
tundra=100
canyon=100
cavewall=100
fungus=100
deep_water=1
shallow_water=1
swamp_water=1
grassland=1
sand=1
forest=1
hills=1
mountains=1
village=1
castle=1
cave=1
tundra=1
canyon=1
cavewall=1
fungus=1
[/defense]
[resistance]
blade=0
pierce=0
impact=0
fire=0
cold=0
arcane=0
blade=100
pierce=100
impact=100
fire=100
cold=100
arcane=80
[/resistance]
experience=150
level=0
alignment=neutral
alignment=chaotic
advanceto=null
{AMLA_DEFAULT}
cost=1
@ -58,39 +57,51 @@
range=melee
damage=1
number=0
icon=
icon=attacks/blank-attack.png
[specials]
[chance_to_hit]
id=reflect_cth
name=""
description=""
value=100
cumulative=yes
apply_to=both
[/chance_to_hit]
[/specials]
[/attack]
[event]
# this only works for Malin or someone else with a short sword
name=attacker_hits
first_time_only=no
[filter_second]
type=Mirror
[/filter_second]
[special_filter]
weapon=short sword
[or]
weapon=rusty sword
[/or]
[/special_filter]
name=start
[store_unit]
[filter]
x,y=$x1,$y1
description=Malin Keshar
[/filter]
variable=tempStore
kill=no
variable=stored_Malin
[/store_unit]
{VARIABLE_OP reflectedDamage format $tempStore.attack[0].damage}
{VARIABLE_OP reflectedDamage multiply (-1)}
{VARIABLE_OP tempStore.hitpoints add $reflectedDamage}
{VARIABLE_OP reflectedDamage multiply (-1)}
[store_unit]
[filter]
type=Mirror
[/filter]
kill=no
variable=stored_mirror
[/store_unit]
{VARIABLE stored_mirror.attack.damage $stored_Malin.attack[0].damage}
{VARIABLE stored_mirror.attack.number $stored_Malin.attack[0].number}
{VARIABLE stored_mirror.attack.type $stored_Malin.attack[0].type}
{VARIABLE stored_mirror.attack.icon $stored_Malin.attack[0].icon}
[unstore_unit]
variable=tempStore
variable=stored_mirror
find_vacant=no
{COLOR_HARM}
text=$reflectedDamage
[/unstore_unit]
{CLEAR_VARIABLE reflectedDamage}
{CLEAR_VARIABLE tempStore}
{CLEAR_VARIABLE stored_Malin}
{CLEAR_VARIABLE stored_mirror}
[/event]
[/unit]