A new, sane method for placing the dark assassin. Untested yet.
This commit is contained in:
parent
f49e765d0d
commit
2410c8e803
2 changed files with 67 additions and 1461 deletions
|
@ -1359,117 +1359,6 @@
|
|||
|
||||
# When the player enters one of the caves, the cloaked figure pops up
|
||||
# and attacks in a dramatic manner
|
||||
|
||||
# This special macro places the cloaked figure and does the dialogue
|
||||
# once I have found a hex with no cave wall or other obstruction
|
||||
|
||||
#define ASSASSIN_MACRO X Y
|
||||
|
||||
[set_variable]
|
||||
name=found_empty_hex
|
||||
value=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x={X}
|
||||
y={Y}
|
||||
[filter]
|
||||
[not]
|
||||
side=1
|
||||
[/not]
|
||||
[/filter]
|
||||
variable=temp
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=enemy_in_hex
|
||||
value=$temp.length
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=0
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x={X}
|
||||
y={Y}
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
variable=temp
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=ally_in_hex
|
||||
value=$temp.length
|
||||
[/set_variable]
|
||||
|
||||
# if we found a ally or enemy in target hex,
|
||||
# then store and kill it
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=enemy_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
[or]
|
||||
[variable]
|
||||
name=ally_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
[/or]
|
||||
|
||||
[then]
|
||||
# kill/store occupant if there is one
|
||||
|
||||
[store_unit]
|
||||
[filter]
|
||||
x={X}
|
||||
y={Y}
|
||||
[/filter]
|
||||
variable=unit_var
|
||||
[/store_unit]
|
||||
|
||||
[kill]
|
||||
x,y={X},{Y}
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
[unit]
|
||||
type=Dark Assassin1
|
||||
id=Cloaked Figure
|
||||
name= _ "Cloaked Figure"
|
||||
side=5
|
||||
x={X}
|
||||
y={Y}
|
||||
[modifications]
|
||||
{TRAIT_INTELLIGENT}
|
||||
{TRAIT_RESILIENT}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
|
||||
[delay]
|
||||
time=200
|
||||
[/delay]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "Kaleh, I am death incarnate."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "And I shall avenge all those you have killed!"
|
||||
[/message]
|
||||
|
||||
#enddef
|
||||
|
||||
# When Kaleh enters either the left or right hand cave, trigger
|
||||
# call_assassin variable, which makes the cloaked figure appear
|
||||
# the next turn
|
||||
|
@ -1512,9 +1401,7 @@
|
|||
|
||||
# Every turn check to see if the call_assassin flag was fired
|
||||
# When it does, find the location of Kaleh and then find an adjacent
|
||||
# hex the cloaked figure can pop up in. (any hex with a cave floor)
|
||||
# (if a unit is there, then the cloaked figure just replaces it, and
|
||||
# the unit reappears after the cloaked figure dies)
|
||||
# hex the cloaked figure can pop up in. (any hex that is not impassable)
|
||||
|
||||
[event]
|
||||
name=new turn
|
||||
|
@ -1532,458 +1419,35 @@
|
|||
value=2
|
||||
[/set_variable]
|
||||
|
||||
# find location of Kaleh
|
||||
|
||||
[store_locations]
|
||||
[filter]
|
||||
id=Kaleh
|
||||
[/filter]
|
||||
variable=kaleh_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=kaleh_x
|
||||
to_variable=kaleh_loc[0].x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=kaleh_y
|
||||
to_variable=kaleh_loc[0].y
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE kaleh_loc}
|
||||
|
||||
# Find adjacent hex that is cave floor or dirt or
|
||||
# rocky cave or mushrooms; test these hexes. When you
|
||||
# find a hex that is valid, create cloaked figure
|
||||
# there.
|
||||
|
||||
# x+0 y+1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+1 y+0
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+0 y-1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x-1 y+0
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+1 y+1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+1 y-1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x-1 y+1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x-1 y-1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
terrain=Uu, Re, Uu^Vu, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
{FIND_DARK_ASSASSIN_LOCATION}
|
||||
|
||||
[unit]
|
||||
type=Dark Assassin1
|
||||
id=Cloaked Figure
|
||||
name= _ "Cloaked Figure"
|
||||
side=5
|
||||
x,y=$dark_assassin_location.x,$dark_assassin_location.y
|
||||
[modifications]
|
||||
{TRAIT_INTELLIGENT}
|
||||
{TRAIT_RESILIENT}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
|
||||
[delay]
|
||||
time=200
|
||||
[/delay]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "Kaleh, I am death incarnate."
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "And I shall avenge all those you have killed!"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
@ -2013,131 +1477,6 @@
|
|||
speaker=Kaleh
|
||||
message= _ "He just disappeared. That's odd."
|
||||
[/message]
|
||||
|
||||
# if there was an enemy unit in space that the cloaked figure
|
||||
# appeared in then bring enemy back
|
||||
[if]
|
||||
[variable]
|
||||
name=enemy_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
#restore original occupant of hex
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit_var
|
||||
find_vacant=yes
|
||||
[/unstore_unit]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[message]
|
||||
speaker=$unit_var.id
|
||||
message= _ "Huh? What happened? Must have been another stupid elf trick! Well it won't stop me from killing you!"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
#if there was a friendly unit in space that the cloaked figure appeared in
|
||||
[if]
|
||||
[variable]
|
||||
name=ally_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
#restore original occupant of hex
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit_var
|
||||
find_vacant=yes
|
||||
[/unstore_unit]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[message]
|
||||
speaker=$unit_var.id
|
||||
message= _ "What happened? Where am I?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Where did you go?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=$unit_var.id
|
||||
message= _ "I don't know, someone just knocked me out. I didn't get a good look at them."
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# for some reason right after the cloaked figure dies and
|
||||
# a hero reappears, the hero's death event is called, even though it
|
||||
# didn't die. This variable is used to make sure that if the
|
||||
# death event is accidentally called, then it does nothing.
|
||||
# (and doesn't end the scenario)
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$unit_var.id
|
||||
[/set_variable]
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
equals=Nym
|
||||
[/variable]
|
||||
|
||||
[or]
|
||||
[variable]
|
||||
name=temp
|
||||
equals=Zhul
|
||||
[/variable]
|
||||
[/or]
|
||||
|
||||
[or]
|
||||
[variable]
|
||||
name=temp
|
||||
equals=Elyssa
|
||||
[/variable]
|
||||
[/or]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=immortal_hero
|
||||
value=1
|
||||
[/set_variable]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
{CLEAR_VARIABLE unit_var}
|
||||
[/event]
|
||||
|
||||
# if Nym causes the immortal_hero variable to be set to 1, her death event
|
||||
# should reset it back to 0. But just in case it doesn't, this event
|
||||
# resets the variable at the start of the next turn
|
||||
|
||||
[event]
|
||||
name=new turn
|
||||
first_time_only=no
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=immortal_hero
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=immortal_hero
|
||||
value=0
|
||||
[/set_variable]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
#Event 10: victory if Kaleh moves to north edge of map
|
||||
|
|
|
@ -3362,210 +3362,9 @@
|
|||
|
||||
# Event 29: Return of the Assassin/Cloaked Figure (same guy, two names)
|
||||
|
||||
# This special macro places the cloaked figure and does the dialogue
|
||||
# once I have found a hex with no cave wall or other obstruction
|
||||
|
||||
#define ASSASSIN_MACRO2 X Y
|
||||
|
||||
[set_variable]
|
||||
name=found_empty_hex
|
||||
value=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x={X}
|
||||
y={Y}
|
||||
[filter]
|
||||
[not]
|
||||
side=1
|
||||
[/not]
|
||||
[/filter]
|
||||
variable=temp
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=enemy_in_hex
|
||||
value=$temp.length
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=0
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x={X}
|
||||
y={Y}
|
||||
[filter]
|
||||
side=1
|
||||
[/filter]
|
||||
variable=temp
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=ally_in_hex
|
||||
value=$temp.length
|
||||
[/set_variable]
|
||||
|
||||
# if we found a ally or enemy in target hex,
|
||||
# then store and kill it
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=enemy_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
[or]
|
||||
[variable]
|
||||
name=ally_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
[/or]
|
||||
|
||||
[then]
|
||||
# kill/store occupant if there is one
|
||||
|
||||
[store_unit]
|
||||
[filter]
|
||||
x={X}
|
||||
y={Y}
|
||||
[/filter]
|
||||
variable=unit_var
|
||||
[/store_unit]
|
||||
|
||||
[kill]
|
||||
x,y={X},{Y}
|
||||
animate=no
|
||||
fire_event=no
|
||||
[/kill]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# place assassin
|
||||
|
||||
[unit]
|
||||
type=Dark Assassin2
|
||||
id=Cloaked Figure
|
||||
name= _ "Cloaked Figure"
|
||||
side=9
|
||||
x={X}
|
||||
y={Y}
|
||||
[modifications]
|
||||
{TRAIT_INTELLIGENT}
|
||||
{TRAIT_RESILIENT}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "Did you think you escaped me Kaleh? I am your shadow, I will always be there until you pay for what you have done."
|
||||
[/message]
|
||||
|
||||
[hide_unit]
|
||||
x,y={X},{Y}
|
||||
[/hide_unit]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
{PLACE_IMAGE units/orcs/nightstalker-ranged-1.png {X} {Y}}
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[delay]
|
||||
time=250
|
||||
[/delay]
|
||||
|
||||
[removeitem]
|
||||
x={X}
|
||||
y={Y}
|
||||
[/removeitem]
|
||||
|
||||
{PLACE_IMAGE units/orcs/nightstalker-ranged-2.png {X} {Y}}
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[delay]
|
||||
time=250
|
||||
[/delay]
|
||||
|
||||
[removeitem]
|
||||
x={X}
|
||||
y={Y}
|
||||
[/removeitem]
|
||||
|
||||
[unhide_unit]
|
||||
[/unhide_unit]
|
||||
|
||||
[store_unit]
|
||||
[filter]
|
||||
id=Kaleh
|
||||
[/filter]
|
||||
variable=unitstats
|
||||
[/store_unit]
|
||||
|
||||
[set_variable]
|
||||
name=unitstats.status.slowed
|
||||
value="on"
|
||||
[/set_variable]
|
||||
|
||||
[unstore_unit]
|
||||
variable=unitstats
|
||||
[/unstore_unit]
|
||||
|
||||
{CLEAR_VARIABLE unitstats}
|
||||
|
||||
[object]
|
||||
[filter]
|
||||
id=Kaleh
|
||||
[/filter]
|
||||
|
||||
id=SlowKaleh
|
||||
silent=yes
|
||||
|
||||
#ifdef EASY
|
||||
[effect]
|
||||
apply_to=hitpoints
|
||||
increase=-25%
|
||||
[/effect]
|
||||
#endif
|
||||
|
||||
#ifdef NORMAL
|
||||
[effect]
|
||||
apply_to=hitpoints
|
||||
increase=-33%
|
||||
[/effect]
|
||||
#endif
|
||||
|
||||
#ifdef HARD
|
||||
[effect]
|
||||
apply_to=hitpoints
|
||||
increase=-50%
|
||||
[/effect]
|
||||
#endif
|
||||
[/object]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Ow!"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "You want to flee, don't you? But you cannot. They couldn't escape her either. Even death could not save them. She will devour us all. But first I shall have my revenge. Do the dance of death for me, Kaleh! Dance! Dance!"
|
||||
[/message]
|
||||
|
||||
#enddef
|
||||
|
||||
# Every turn check to see if the call_assassin flag was fired
|
||||
# When it does, find the location of Kaleh and then find an adjacent
|
||||
# hex the cloaked figure can pop up in. (any hex that is not cave wall,
|
||||
# water, or chasm) (if a unit is there, then the cloaked figure just
|
||||
# replaces it, and the unit reappears after the cloaked figure dies)
|
||||
# hex the cloaked figure can pop up in. (any hex that is not impassable)
|
||||
|
||||
[event]
|
||||
name=new turn
|
||||
|
@ -3581,513 +3380,46 @@
|
|||
[set_variable]
|
||||
name=call_assassin
|
||||
value=2
|
||||
[/set_variable]
|
||||
|
||||
# find location of Kaleh
|
||||
|
||||
[store_locations]
|
||||
[filter]
|
||||
id="Kaleh"
|
||||
[/filter]
|
||||
variable=kaleh_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=kaleh_x
|
||||
to_variable=kaleh_loc[0].x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=kaleh_y
|
||||
to_variable=kaleh_loc[0].y
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE kaleh_loc}
|
||||
|
||||
# find adjacent hex that is not cave wall or chasm or water
|
||||
# test these hexes
|
||||
# when you find a hex that is valid, create cloaked figure there
|
||||
|
||||
# x+0 y+1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+1 y+0
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+0 y-1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x-1 y+0
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+1 y+1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x+1 y-1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x-1 y+1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# x-1 y-1
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=found_empty_hex
|
||||
numerical_equals=0
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
value=$kaleh_x
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
value=$kaleh_y
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_x
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[set_variable]
|
||||
name=temp_y
|
||||
add=-1
|
||||
[/set_variable]
|
||||
|
||||
[store_locations]
|
||||
x=$temp_x
|
||||
y=$temp_y
|
||||
# 20070127 -- Mordante
|
||||
# removed ^ since unused and K since unused starting pos is Uu
|
||||
terrain=Uu, Re, Uu^Vu, Cud, Ce, Uh, Uu^Uf
|
||||
variable=hex_loc
|
||||
[/store_locations]
|
||||
|
||||
[set_variable]
|
||||
name=temp
|
||||
value=$hex_loc.length
|
||||
[/set_variable]
|
||||
|
||||
{CLEAR_VARIABLE hex_loc}
|
||||
|
||||
[if]
|
||||
[variable]
|
||||
name=temp
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
{ASSASSIN_MACRO2 $temp_x $temp_y}
|
||||
[/then]
|
||||
[/if]
|
||||
[/then]
|
||||
[/if]
|
||||
[/set_variable]
|
||||
|
||||
{FIND_DARK_ASSASSIN_LOCATION}
|
||||
|
||||
[unit]
|
||||
type=Dark Assassin2
|
||||
id=Cloaked Figure
|
||||
name= _ "Cloaked Figure"
|
||||
side=9
|
||||
x,y=$dark_assassin_location.x,$dark_assassin_location.y
|
||||
[modifications]
|
||||
{TRAIT_INTELLIGENT}
|
||||
{TRAIT_RESILIENT}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "Did you think you escaped me Kaleh? I am your shadow, I will always be there until you pay for what you have done."
|
||||
[/message]
|
||||
|
||||
[comment]
|
||||
# commented out like this to preserve the string for now...
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Ow!"
|
||||
[/message]
|
||||
[/comment]
|
||||
|
||||
[message]
|
||||
speaker=Cloaked Figure
|
||||
image=portraits/cloaked.png
|
||||
message= _ "You want to flee, don't you? But you cannot. They couldn't escape her either. Even death could not save them. She will devour us all. But first I shall have my revenge. Do the dance of death for me, Kaleh! Dance! Dance!"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# Each turn check to see if the cloaked figure is alive.
|
||||
# If he is then keep Kaleh slowed.
|
||||
|
||||
[event]
|
||||
name=new turn
|
||||
first_time_only=no
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
id=Cloaked Figure
|
||||
[/have_unit]
|
||||
|
||||
[then]
|
||||
[store_unit]
|
||||
[filter]
|
||||
id=Kaleh
|
||||
[/filter]
|
||||
variable=unitstats
|
||||
[/store_unit]
|
||||
|
||||
[set_variable]
|
||||
name=unitstats.status.slowed
|
||||
value="on"
|
||||
[/set_variable]
|
||||
|
||||
[unstore_unit]
|
||||
variable=unitstats
|
||||
[/unstore_unit]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# When cloaked figure dies, return original occupant of hex
|
||||
# if there was one. Also, if player has already killed both enemy
|
||||
# When cloaked figure dies and if player has already killed both enemy
|
||||
# leaders, then go to victory
|
||||
|
||||
[event]
|
||||
|
@ -4097,11 +3429,6 @@
|
|||
id=Cloaked Figure
|
||||
[/filter]
|
||||
|
||||
[set_variable]
|
||||
name=unslow_kaleh
|
||||
value=1
|
||||
[/set_variable]
|
||||
|
||||
[kill]
|
||||
id=Cloaked Figure
|
||||
animate=no
|
||||
|
@ -4113,66 +3440,6 @@
|
|||
message= _ "Where did he go? How does he disappear like that? And what in Uria's name was he ranting about? Whoever that is is starting to make me get edgy."
|
||||
[/message]
|
||||
|
||||
#if there was an enemy unit in space that the cloaked figure appeared in
|
||||
[if]
|
||||
[variable]
|
||||
name=enemy_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
#restore original occupant of hex
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit_var
|
||||
find_vacant=yes
|
||||
[/unstore_unit]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[message]
|
||||
speaker=$unit_var.id
|
||||
message= _ "Huh? What happened? No time to think, must keep fighting!"
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
#if there was a friendly unit in space that the cloaked figure appeared in
|
||||
[if]
|
||||
[variable]
|
||||
name=ally_in_hex
|
||||
numerical_equals=1
|
||||
[/variable]
|
||||
|
||||
[then]
|
||||
#restore original occupant of hex
|
||||
|
||||
[unstore_unit]
|
||||
variable=unit_var
|
||||
find_vacant=yes
|
||||
[/unstore_unit]
|
||||
|
||||
[redraw]
|
||||
[/redraw]
|
||||
|
||||
[message]
|
||||
speaker=$unit_var.id
|
||||
message= _ "Huh? What happened?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=Kaleh
|
||||
message= _ "Where did you go? Do you remember anything?"
|
||||
[/message]
|
||||
|
||||
[message]
|
||||
speaker=$unit_var.id
|
||||
message= _ "No, someone grabbed me and knocked me out. I have no idea who it was."
|
||||
[/message]
|
||||
[/then]
|
||||
[/if]
|
||||
|
||||
# if cloaked figure was delaying victory event from firing
|
||||
|
||||
[if]
|
||||
|
|
Loading…
Add table
Reference in a new issue