wesnoth/data/core/macros/conditional-utils.cfg
Eric S. Raymond 5f58e50664 Reindented all macros except utils.cfg,
that has unbalanced FOREACH/NEXT in it and will need to be
hand-checked.
2007-06-29 11:19:19 +00:00

122 lines
2.8 KiB
INI

# Conditionals for MP scenarios.
# These don't depend on any other macros. Please don't change this.
# ! in comments is used in generating HTML documentation, ignore it otherwise.
#define OWN_VILLAGE X Y SIDE
# Test if a given side owns the village at the specified location
[have_location]
owner_side={SIDE}
x={X}
y={Y}
[/have_location]
#enddef
#define IF VAR OP VAL CONTENTS
# Shortcut for IF statements testing the value of a variable. Need to write
# [then] and [else] tags manually.
# Use like this:
#! {IF some_variable equals yes (
#! [then]
#! ...
#! [/then]
#! )}
[if]
[variable]
name={VAR}
{OP}={VAL}
[/variable]
{CONTENTS}
[/if]
#enddef
#define IF_ALIVE PLAYER ACTION
# Condition triggering of ACTION om whether PLAYER has at least one unit left.
# For example, if the player 2 is still alive, kill all his units.
#! {IF_ALIVE 2 (
#! [kill]
#! side=2
#! [/kill]
#! )}
[if]
[have_unit]
side={PLAYER}
[/have_unit]
[then]
{ACTION}
[/then]
[/if]
#enddef
#define IF_DEAD PLAYER ACTION
# Condition triggering of ACTION on whether PLAYER has no units left.
# For example, give player 2 gold if player 1 is dead
#! {IF_DEAD 1 (
#! [gold]
#! side=2
#! amount=25
#! [/gold]
#! )}
[if]
[have_unit]
side={PLAYER}
[/have_unit]
[then]
[/then]
[else]
{ACTION}
[/else]
[/if]
#enddef
#define IF_ALLIED PLAYER1 PLAYER2 ACTION
# Condition that triggers if PLAYER1 and PLAYER2 belong to the same team.
# NOTE: only works if leaders are alive, are the same leader as the game
# started and haven't changed teams.
# For example, if player 3 and 4 is allied, steal 10 gold from each:
#! {IF_ALLIED 3 4 (
#! [gold]
#! side=3
#! amount=-10
#! [/gold]
#! [gold]
#! side=4
#! amount=-10
#! [/gold]
#! )}
[store_unit]
[filter]
side={PLAYER1}
canrecruit=1
[/filter]
variable=leader1
mode=replace
kill=no
[/store_unit]
[store_unit]
[filter]
side={PLAYER2}
canrecruit=1
[/filter]
variable=leader2
mode=replace
kill=no
[/store_unit]
[if]
[variable]
name=leader1.team_name
equals=$leader2.team_name
[/variable]
[then]
{ACTION}
[/then]
[/if]
[clear_variable]
name=leader1
[/clear_variable]
[clear_variable]
name=leader2
[/clear_variable]
#enddef