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 / scenario-utils.cfg < prev    next >
Encoding:
Text File  |  2010-03-08  |  5.3 KB  |  167 lines

  1. #textdomain wesnoth
  2. # Utility macros for scenario-objective control.
  3.  
  4. # These macros don't depend on any others.  Please don't change this.
  5. # ! in comments is used in generating HTML documentation, ignore it otherwise.
  6.  
  7. # Max number of turns in a scenario, mainly for use as a turn upper bound
  8. # in ai declarations for aggression, etc.
  9. #define FOREVER
  10. 999 #enddef
  11.  
  12. # The effectively infinite radius.
  13. #define INFINITY
  14. 999 #enddef
  15.  
  16. # Everywhere on the map.  For filters that would otherwise touch recall lists.
  17. #define EVERYWHERE
  18. x,y=1-999,1-999 #enddef
  19.  
  20. #define SET_OBJECTIVES SIDE SUMMARY_TEXT NOTE_TEXT CONDITION_WML
  21.     # Sets the objectives for a given player
  22.     # Side 0 means every player. Does not affect gameplay,
  23.     # except that it tells the player what the objectives of a scenario are.
  24.     #
  25.     # For example, we could set the objective for all players to: "survive for
  26.     # 3 turns" with this:
  27.     #! {SET_OBJECTIVES 0 "Survive for 3 turns" () ()}
  28.     #
  29.     [objectives]
  30.         side = {SIDE}
  31.         summary = {SUMMARY_TEXT}
  32.         note = {NOTE_TEXT}
  33.         {CONDITION_WML}
  34.     [/objectives]
  35. #enddef
  36.  
  37. #define VICTORY_CONDITION DESCRIPTION
  38.     # Used in conjunction with SET_OBJECTIVES this sets a victory condition
  39.     # (marked green).
  40.     #
  41.     # For example we could tell player 2 to win by killing all other players
  42.     #! {SET_OBJECTIVES 0 "Kill eachother." (
  43.     #!    {VICTORY_CONDITION "Kill all other players."}
  44.     #! )}
  45.     #
  46.     [objective]
  47.         condition = "win"
  48.         description = {DESCRIPTION}
  49.     [/objective]
  50. #enddef
  51.  
  52. #define DEFEAT_CONDITION DESCRIPTION
  53.     # Used in conjunction with SET_OBJECTIVES this sets a defeat condition
  54.     # (marked red).
  55.     #
  56.     # For example we could tell all players that they lose if they die.
  57.     #! {SET_OBJECTIVES 0 "Survive." (
  58.     #!    {DEFEAT_CONDITION "Death of your leader."}
  59.     #! )}
  60.     #
  61.     [objective]
  62.         condition = "lose"
  63.         description = {DESCRIPTION}
  64.     [/objective]
  65. #enddef
  66.  
  67. #define SIDE_PLAYER SIDE TEAM_NAME DESCRIPTION GOLD_AMOUNT INCOME_AMOUNT SIDE_WML
  68.     # Defines a multiplayer side in a scenario that is controllable by the player.
  69.     #
  70.     # For example we can set side 1 to be a player belonging to team "Good Guys"
  71.     # starting with 200g and no income:
  72.     #! {SIDE_PLAYER 1 "Good Guys" "Good Guy #1" 200 -2 ()}
  73.     [side]    # wmllint: validate-off
  74.         user_team_name={DESCRIPTION}
  75.         side={SIDE}
  76.         team_name={TEAM_NAME}
  77.         canrecruit=yes
  78.         controller=human
  79.         gold={GOLD_AMOUNT}
  80.         income={INCOME_AMOUNT}
  81.         {SIDE_WML}
  82.     [/side]    # wmllint: validate-on
  83. #enddef
  84.  
  85. #define SIDE_COMPUTER SIDE TEAM_NAME DESCRIPTION GOLD_AMOUNT INCOME_AMOUNT SIDE_WML AI_WML
  86.     # Defines a multiplayer side in a scenario that is controllad by
  87.     # the computer.
  88.     #
  89.     # For example, we can set side 4 to be a computer belonging to
  90.     # team "Evil Guys" starting with 666g and 999 income.
  91.     # We also make it more aggressive:
  92.     #! {SIDE_COMPUTER 4 "Evil Guys" "Evil One" 666 999 (
  93.     #!    aggression=0.95
  94.     #! )}
  95.     #
  96.     [side]    # wmllint: validate-off
  97.         user_team_name={DESCRIPTION}
  98.         side={SIDE}
  99.         team_name={TEAM_NAME}
  100.         canrecruit=yes
  101.         controller=ai
  102.         allow_player=no
  103.         disallow_observers=yes
  104.         gold={GOLD_AMOUNT}
  105.         income={INCOME_AMOUNT}
  106.         {SIDE_WML}
  107.         [ai]
  108.             {AI_WML}
  109.         [/ai]
  110.     [/side]    # wmllint: validate-on
  111. #enddef
  112.  
  113. #define NO_MAP_DATA
  114.     # The display code in the game becomes confused if you give it a
  115.     # scenario with no map data (like, a text epilog).  Use this
  116.     # macro to feed it dummy map data that won't actually be used.
  117.     map_data="usage=map
  118. border_size=1
  119.  
  120. Gg          , Gg          , Gg          , Gg          
  121. Gg          , 1 Gg        , 2 Gg        , Gg          
  122. Gg          , Gg          , Gg          , Gg         
  123. "
  124. #enddef
  125.  
  126. #define AI_CANT_PLAY SIDES
  127.     # Displays a standard warning at the start of the first AI turn for each
  128.     # given side about the AI not knowing how to play this side properly. Use
  129.     # this to tag sides intended solely for human players in special multiplayer
  130.     # scenarios (ones with shops, custom right-click options and such).
  131.     #
  132.     # Example:
  133.     # ! {AI_CANT_PLAY 1,2,3,4}
  134.     [event]
  135.         name=ai turn
  136.         first_time_only=no
  137.  
  138.         [if]
  139.             [have_unit]
  140.                 side=$side_number
  141.  
  142.                 [and]
  143.                     side={SIDES}
  144.                 [/and]
  145.             [/have_unit]
  146.  
  147.             [variable]
  148.                 name=side_$side_number|_ai_warning_displayed
  149.                 not_equals=yes
  150.             [/variable]
  151.  
  152.             [then]
  153.                 [message]
  154.                     speaker=narrator
  155.                     message= _ "The computer player might not be able to play side $side_number properly in this scenario. Side $side_number is intended to be played by a human player."
  156.                     image=images/wesnoth-icon.png
  157.                 [/message]
  158.  
  159.                 [set_variable]
  160.                     name=side_$side_number|_ai_warning_displayed
  161.                     value=yes
  162.                 [/set_variable]
  163.             [/then]
  164.         [/if]
  165.     [/event]
  166. #enddef
  167.