# 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
