home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 July / maximum-cd-2010-07.iso / DiscContents / wesnoth-1.8-win32.exe / data / core / macros / conditional-utils.cfg < prev    next >
Encoding:
Text File  |  2010-03-08  |  3.0 KB  |  124 lines

  1. #textdomain wesnoth
  2. # Conditionals for MP scenarios.
  3.  
  4. # These don't depend on any other macros.  Please don't change this.
  5. # ! in comments is used in generating HTML documentation, ignore it otherwise.
  6.  
  7. #define OWN_VILLAGE X Y SIDE
  8.     # Test if a given side owns the village at the specified location
  9.     [have_location]
  10.         owner_side={SIDE}
  11.         x={X}
  12.         y={Y}
  13.     [/have_location]
  14. #enddef
  15.  
  16. #define IF_VAR VAR OP_NAME VALUE CONTENTS_WML
  17.     # Shortcut for IF statements testing the value of a variable.
  18.     # Need to write [then] and [else] tags manually.
  19.     # Use like this:
  20.     #! {IF_VAR some_variable equals yes (
  21.     #!     [then]
  22.     #!         ...
  23.     #!     [/then]
  24.     #! )}
  25.     [if]
  26.         [variable]
  27.             name={VAR}
  28.             {OP_NAME}={VALUE}
  29.         [/variable]
  30.  
  31.         {CONTENTS_WML}
  32.     [/if]
  33. #enddef
  34.  
  35. #define IF_ALIVE SIDE ACTION_WML
  36.     # Condition triggering of ACTION_WML on whether SIDE has at least one unit left.
  37.     # For example, if the player 2 is still alive, kill all his units.
  38.     #! {IF_ALIVE 2 (
  39.     #!   [kill]
  40.     #!       side=2
  41.     #!   [/kill]
  42.     #! )}
  43.     [if]
  44.         [have_unit]
  45.             side={SIDE}
  46.         [/have_unit]
  47.         [then]
  48.             {ACTION_WML}
  49.         [/then]
  50.     [/if]
  51. #enddef
  52.  
  53. #define IF_DEAD SIDE ACTION_WML
  54.     # Condition triggering of ACTION_WML on whether SIDE has no units left.
  55.     # For example, give player 2 gold if player 1 is dead
  56.     #! {IF_DEAD 1 (
  57.     #!   [gold]
  58.     #!       side=2
  59.     #!       amount=25
  60.     #!   [/gold]
  61.     #! )}
  62.     [if]
  63.         [have_unit]
  64.             side={SIDE}
  65.         [/have_unit]
  66.         [then]
  67.         [/then]
  68.         [else]
  69.             {ACTION_WML}
  70.         [/else]
  71.     [/if]
  72. #enddef
  73.  
  74. #define IF_ALLIED PLAYER1_SIDE PLAYER2_SIDE ACTION_WML
  75.     # Condition that triggers if PLAYER1_SIDE and PLAYER2_SIDE belong
  76.     # to the same team.
  77.     # NOTE: only works if leaders are alive, are the same leader as the game
  78.     # started and haven't changed teams.
  79.     # For example, if player 3 and 4 is allied, steal 10 gold from each:
  80.     #! {IF_ALLIED 3 4 (
  81.     #!   [gold]
  82.     #!       side=3
  83.     #!       amount=-10
  84.     #!   [/gold]
  85.     #!   [gold]
  86.     #!       side=4
  87.     #!       amount=-10
  88.     #!   [/gold]
  89.     #! )}
  90.     [store_unit]
  91.         [filter]
  92.             side={PLAYER1_SIDE}
  93.             canrecruit=yes
  94.         [/filter]
  95.         variable=leader1
  96.         mode=replace
  97.         kill=no
  98.     [/store_unit]
  99.     [store_unit]
  100.         [filter]
  101.             side={PLAYER2_SIDE}
  102.             canrecruit=yes
  103.         [/filter]
  104.         variable=leader2
  105.         mode=replace
  106.         kill=no
  107.     [/store_unit]
  108.     [if]
  109.         [variable]
  110.             name=leader1.team_name
  111.             equals=$leader2.team_name
  112.         [/variable]
  113.         [then]
  114.             {ACTION_WML}
  115.         [/then]
  116.     [/if]
  117.     [clear_variable]
  118.         name=leader1
  119.     [/clear_variable]
  120.     [clear_variable]
  121.         name=leader2
  122.     [/clear_variable]
  123. #enddef
  124.