mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-30 18:41:14 +00:00

...made each objective and other note be prefixed with a bullet, added support for an optional caption= key to [objective], added a few new helper macros for adding footnotes to objectives and converted all current alternative and bonus objective texts accordingly.
179 lines
5.3 KiB
INI
179 lines
5.3 KiB
INI
#textdomain wesnoth
|
|
# Utility macros for scenario-objective control.
|
|
|
|
# These macros don't depend on any others. Please don't change this.
|
|
# ! in comments is used in generating HTML documentation, ignore it otherwise.
|
|
|
|
# Max number of turns in a scenario, mainly for use as a turn upper bound
|
|
# in ai declarations for aggression, etc.
|
|
#define FOREVER
|
|
999 #enddef
|
|
|
|
# The effectively infinite radius.
|
|
#define INFINITY
|
|
999 #enddef
|
|
|
|
# Everywhere on the map. For filters that would otherwise touch recall lists.
|
|
#define EVERYWHERE
|
|
x,y=1-999,1-999 #enddef
|
|
|
|
#define SET_OBJECTIVES SIDE SUMMARY_TEXT NOTE_TEXT CONDITION_WML
|
|
# Sets the objectives for a given player
|
|
# Side 0 means every player. Does not affect gameplay,
|
|
# except that it tells the player what the objectives of a scenario are.
|
|
#
|
|
# For example, we could set the objective for all players to: "survive for
|
|
# 3 turns" with this:
|
|
#! {SET_OBJECTIVES 0 "Survive for 3 turns" () ()}
|
|
#
|
|
[objectives]
|
|
side = {SIDE}
|
|
summary = {SUMMARY_TEXT}
|
|
note = {NOTE_TEXT}
|
|
{CONDITION_WML}
|
|
[/objectives]
|
|
#enddef
|
|
|
|
#define OBJECTIVE_FOOTNOTE TEXT
|
|
"<span foreground='white'><small> " + {TEXT} + "</small></span>"
|
|
#enddef
|
|
|
|
#define ALTERNATIVE_OBJECTIVE_CAPTION
|
|
caption= _ "Alternative objective:"
|
|
#enddef
|
|
|
|
#define BONUS_OBJECTIVE_CAPTION
|
|
caption= _ "Bonus objective:"
|
|
#enddef
|
|
|
|
#define VICTORY_CONDITION DESCRIPTION
|
|
# Used in conjunction with SET_OBJECTIVES this sets a victory condition
|
|
# (marked green).
|
|
#
|
|
# For example we could tell player 2 to win by killing all other players
|
|
#! {SET_OBJECTIVES 0 "Kill eachother." (
|
|
#! {VICTORY_CONDITION "Kill all other players."}
|
|
#! )}
|
|
#
|
|
[objective]
|
|
condition = "win"
|
|
description = {DESCRIPTION}
|
|
[/objective]
|
|
#enddef
|
|
|
|
#define DEFEAT_CONDITION DESCRIPTION
|
|
# Used in conjunction with SET_OBJECTIVES this sets a defeat condition
|
|
# (marked red).
|
|
#
|
|
# For example we could tell all players that they lose if they die.
|
|
#! {SET_OBJECTIVES 0 "Survive." (
|
|
#! {DEFEAT_CONDITION "Death of your leader."}
|
|
#! )}
|
|
#
|
|
[objective]
|
|
condition = "lose"
|
|
description = {DESCRIPTION}
|
|
[/objective]
|
|
#enddef
|
|
|
|
#define SIDE_PLAYER SIDE TEAM_NAME DESCRIPTION GOLD_AMOUNT INCOME_AMOUNT SIDE_WML
|
|
# Defines a multiplayer side in a scenario that is controllable by the player.
|
|
#
|
|
# For example we can set side 1 to be a player belonging to team "Good Guys"
|
|
# starting with 200g and no income:
|
|
#! {SIDE_PLAYER 1 "Good Guys" "Good Guy #1" 200 -2 ()}
|
|
[side] # wmllint: validate-off
|
|
user_team_name={DESCRIPTION}
|
|
side={SIDE}
|
|
team_name={TEAM_NAME}
|
|
canrecruit=yes
|
|
controller=human
|
|
gold={GOLD_AMOUNT}
|
|
income={INCOME_AMOUNT}
|
|
{SIDE_WML}
|
|
[/side] # wmllint: validate-on
|
|
#enddef
|
|
|
|
#define SIDE_COMPUTER SIDE TEAM_NAME DESCRIPTION GOLD_AMOUNT INCOME_AMOUNT SIDE_WML AI_WML
|
|
# Defines a multiplayer side in a scenario that is controllad by
|
|
# the computer.
|
|
#
|
|
# For example, we can set side 4 to be a computer belonging to
|
|
# team "Evil Guys" starting with 666g and 999 income.
|
|
# We also make it more aggressive:
|
|
#! {SIDE_COMPUTER 4 "Evil Guys" "Evil One" 666 999 (
|
|
#! aggression=0.95
|
|
#! )}
|
|
#
|
|
[side] # wmllint: validate-off
|
|
user_team_name={DESCRIPTION}
|
|
side={SIDE}
|
|
team_name={TEAM_NAME}
|
|
canrecruit=yes
|
|
controller=ai
|
|
allow_player=no
|
|
disallow_observers=yes
|
|
gold={GOLD_AMOUNT}
|
|
income={INCOME_AMOUNT}
|
|
{SIDE_WML}
|
|
[ai]
|
|
{AI_WML}
|
|
[/ai]
|
|
[/side] # wmllint: validate-on
|
|
#enddef
|
|
|
|
#define NO_MAP_DATA
|
|
# The display code in the game becomes confused if you give it a
|
|
# scenario with no map data (like, a text epilog). Use this
|
|
# macro to feed it dummy map data that won't actually be used.
|
|
map_data="usage=map
|
|
border_size=1
|
|
|
|
Gg , Gg , Gg , Gg
|
|
Gg , 1 Gg , 2 Gg , Gg
|
|
Gg , Gg , Gg , Gg
|
|
"
|
|
#enddef
|
|
|
|
#define AI_CANT_PLAY SIDES
|
|
# Displays a standard warning at the start of the first AI turn for each
|
|
# given side about the AI not knowing how to play this side properly. Use
|
|
# this to tag sides intended solely for human players in special multiplayer
|
|
# scenarios (ones with shops, custom right-click options and such).
|
|
#
|
|
# Example:
|
|
# ! {AI_CANT_PLAY 1,2,3,4}
|
|
[event]
|
|
name=ai turn
|
|
first_time_only=no
|
|
|
|
[if]
|
|
[have_unit]
|
|
side=$side_number
|
|
|
|
[and]
|
|
side={SIDES}
|
|
[/and]
|
|
[/have_unit]
|
|
|
|
[variable]
|
|
name=side_$side_number|_ai_warning_displayed
|
|
not_equals=yes
|
|
[/variable]
|
|
|
|
[then]
|
|
[message]
|
|
speaker=narrator
|
|
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."
|
|
image=wesnoth-icon.png
|
|
[/message]
|
|
|
|
[set_variable]
|
|
name=side_$side_number|_ai_warning_displayed
|
|
value=yes
|
|
[/set_variable]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
#enddef
|