mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-04 20:01:15 +00:00
334 lines
5.7 KiB
INI
334 lines
5.7 KiB
INI
#this file contains utility macros
|
|
|
|
#macro to define a 'quantity' differently based on difficulty levels
|
|
#define QUANTITY ATTRIBUTE ON_EASY ON_NORMAL ON_HARD
|
|
#ifdef EASY
|
|
{ATTRIBUTE}={ON_EASY}
|
|
#endif
|
|
|
|
#ifdef NORMAL
|
|
{ATTRIBUTE}={ON_NORMAL}
|
|
#endif
|
|
|
|
#ifdef HARD
|
|
{ATTRIBUTE}={ON_HARD}
|
|
#endif
|
|
#enddef
|
|
|
|
#macro to define AI attack depth for different difficulty levels
|
|
#define ATTACK_DEPTH ON_EASY ON_NORMAL ON_HARD
|
|
{QUANTITY attack_depth {ON_EASY} {ON_NORMAL} {ON_HARD}}
|
|
#enddef
|
|
|
|
#macro to define number of turns for different difficulty levels
|
|
#define TURNS ON_EASY ON_NORMAL ON_HARD
|
|
{QUANTITY turns {ON_EASY} {ON_NORMAL} {ON_HARD}}
|
|
#enddef
|
|
|
|
#macro to make an AI team not recruit scouts
|
|
|
|
#define NO_SCOUTS
|
|
villages_per_scout=0
|
|
#enddef
|
|
|
|
|
|
#macro to add a hero icon to the unit
|
|
#define IS_HERO
|
|
overlays="misc/hero-icon.png"
|
|
#enddef
|
|
|
|
#macro which will let you go {GOLD x y z} to set
|
|
#the gold depending on easy/medium/hard - x/y/z
|
|
|
|
#define GOLD ON_EASY ON_NORMAL ON_HARD
|
|
{QUANTITY gold {ON_EASY} {ON_NORMAL} {ON_HARD}}
|
|
#enddef
|
|
|
|
#define INCOME ON_EASY ON_NORMAL ON_HARD
|
|
#ifdef EASY
|
|
income={ON_EASY}
|
|
#endif
|
|
|
|
#ifdef NORMAL
|
|
income={ON_NORMAL}
|
|
#endif
|
|
|
|
#ifdef HARD
|
|
income={ON_HARD}
|
|
#endif
|
|
#enddef
|
|
|
|
#define DOT X Y
|
|
[image]
|
|
x,y={X},{Y}
|
|
file=misc/dot.png
|
|
delay=500
|
|
[/image]
|
|
#enddef
|
|
|
|
#define CROSS X Y
|
|
[image]
|
|
x,y={X},{Y}
|
|
file=misc/cross.png
|
|
delay=500
|
|
[/image]
|
|
#enddef
|
|
|
|
|
|
#macro to quickly pick a random value (in the $random variable, to avoid
|
|
#cluterring up savegames with such temporary variables)
|
|
|
|
#define RANDOM RANGE
|
|
[set_variable]
|
|
name=random
|
|
random={RANGE}
|
|
[/set_variable]
|
|
#enddef
|
|
|
|
#macro to initialize a variable
|
|
|
|
#define VARIABLE VAR VALUE
|
|
[set_variable]
|
|
name={VAR}
|
|
value={VALUE}
|
|
[/set_variable]
|
|
#enddef
|
|
|
|
#macro to do mathematical operations on variables
|
|
|
|
#define VARIABLE_OP VAR OP ARG
|
|
[set_variable]
|
|
name={VAR}
|
|
{OP}={ARG}
|
|
[/set_variable]
|
|
#enddef
|
|
|
|
#define CLEAR_VARIABLE VAR
|
|
[clear_variable]
|
|
name={VAR}
|
|
[/clear_variable]
|
|
#enddef
|
|
|
|
#macro to iterate over an array
|
|
#define FOREACH ARRAY VAR
|
|
{VARIABLE {VAR} 0}
|
|
[while]
|
|
[variable]
|
|
name={VAR}
|
|
less_than=${ARRAY}.length
|
|
[/variable]
|
|
[do]
|
|
#enddef
|
|
|
|
#define NEXT VAR
|
|
[set_variable]
|
|
name={VAR}
|
|
add=1
|
|
[/set_variable]
|
|
[/do]
|
|
[/while]
|
|
{CLEAR_VARIABLE {VAR}}
|
|
#enddef
|
|
|
|
#define DEBUG_MSG MSG
|
|
[message]
|
|
speaker=narrator
|
|
message={MSG}
|
|
[/message]
|
|
#enddef
|
|
|
|
#macro to make a side start a scenario with villages
|
|
|
|
#define STARTING_VILLAGES SIDE RADIUS
|
|
[event]
|
|
name=prestart
|
|
[store_starting_location]
|
|
side={SIDE}
|
|
variable=temp_starting_location
|
|
[/store_starting_location]
|
|
[store_locations]
|
|
x,y=$temp_starting_location.x,$temp_starting_location.y
|
|
radius={RADIUS}
|
|
variable=temp_starting_locs
|
|
|
|
#all the types of villages
|
|
terrain=AaBbDeLptUvVZY
|
|
[/store_locations]
|
|
|
|
{FOREACH temp_starting_locs i}
|
|
{VARIABLE_OP temp_x_var to_variable temp_starting_locs[$i].x}
|
|
{VARIABLE_OP temp_y_var to_variable temp_starting_locs[$i].y}
|
|
[capture_village]
|
|
side={SIDE}
|
|
x,y=$temp_x_var,$temp_y_var
|
|
[/capture_village]
|
|
{NEXT i}
|
|
|
|
{CLEAR_VARIABLE temp_x_var}
|
|
{CLEAR_VARIABLE temp_y_var}
|
|
{CLEAR_VARIABLE temp_starting_location}
|
|
{CLEAR_VARIABLE temp_starting_locs}
|
|
{CLEAR_VARIABLE i}
|
|
[/event]
|
|
#enddef
|
|
|
|
#define MENU_IMG_TXT IMG TXT
|
|
"&"+{IMG}+"="+{TXT}#enddef
|
|
|
|
#define MENU_IMG_TXT2 IMG TXT1 TXT2
|
|
"&"+{IMG}+"="+{TXT1}+"="+{TXT2}#enddef
|
|
|
|
#
|
|
#USAGE {UNIT (Elvish Fighter) (Myname) ( _ "Myname") 1 1 1}
|
|
#
|
|
|
|
#define UNIT TYPE DESCRIPTION UDESCRIPTION SIDE X Y
|
|
[unit]
|
|
type={TYPE}
|
|
description={DESCRIPTION}
|
|
user_description={UDESCRIPTION}
|
|
side={SIDE}
|
|
x={X}
|
|
y={Y}
|
|
[modifications]
|
|
{TRAIT_LOYAL}
|
|
[/modifications]
|
|
[/unit]
|
|
#enddef
|
|
|
|
#define UNDEAD_UNIT TYPE SIDE X Y
|
|
[unit]
|
|
type={TYPE}
|
|
side={SIDE}
|
|
x={X}
|
|
y={Y}
|
|
[modifications]
|
|
{TRAIT_UNDEAD}
|
|
{TRAIT_LOYAL}
|
|
[/modifications]
|
|
[/unit]
|
|
#enddef
|
|
|
|
#define PLACE_IMAGE IMAGE_FILE X Y
|
|
[item]
|
|
x={X}
|
|
y={Y}
|
|
image={IMAGE_FILE}
|
|
[/item]
|
|
#enddef
|
|
|
|
#define TREMOR
|
|
[sound]
|
|
name="rumble.ogg"
|
|
[/sound]
|
|
[scroll]
|
|
x=5
|
|
y=0
|
|
[/scroll]
|
|
[scroll]
|
|
x=-10
|
|
y=0
|
|
[/scroll]
|
|
[scroll]
|
|
x=5
|
|
y=5
|
|
[/scroll]
|
|
[scroll]
|
|
x=0
|
|
y=-10
|
|
[/scroll]
|
|
[scroll]
|
|
x=0
|
|
y=5
|
|
[/scroll]
|
|
#enddef
|
|
|
|
|
|
#macro to easily replace image_defensive and image_defensive_range
|
|
|
|
#define IMAGE_DEFENSIVE IMAGE_FILE
|
|
[defend]
|
|
[frame]
|
|
begin=-150
|
|
end=150
|
|
image={IMAGE_FILE}
|
|
[/frame]
|
|
[/defend]
|
|
#enddef
|
|
|
|
#define IMAGE_DEFENSIVE_RANGE IMAGE_FILE
|
|
[defend]
|
|
range=ranged
|
|
[frame]
|
|
begin=-150
|
|
end=150
|
|
image={IMAGE_FILE}
|
|
[/frame]
|
|
[/defend]
|
|
#enddef
|
|
|
|
#define IMAGE_DEFENSIVE_SHORT IMAGE_FILE
|
|
[defend]
|
|
range=melee
|
|
[frame]
|
|
begin=-150
|
|
end=150
|
|
image={IMAGE_FILE}
|
|
[/frame]
|
|
[/defend]
|
|
#enddef
|
|
|
|
# a macro to define a common set of magenta color values which different
|
|
# units can be color shifted by using the team color system
|
|
|
|
#define MAGENTA_IS_THE_TEAM_COLOR
|
|
flag_rgb=244,154,193,63,0,22,85,0,42,105,0,57,123,0,69,140,0,81,158,0,93,177,0,105,195,0,116,214,0,127,236,0,140,238,61,150,239,91,161,241,114,172,242,135,182,246,173,205,248,193,217,250,213,229,253,233,241
|
|
#enddef
|
|
|
|
#define DEFAULT_MUSIC_PLAYLIST
|
|
[music]
|
|
name=gameplay01.ogg
|
|
ms_before=12000
|
|
[/music]
|
|
[music]
|
|
name=gameplay02.ogg
|
|
ms_before=12000
|
|
append=yes
|
|
[/music]
|
|
[music]
|
|
name=gameplay03.ogg
|
|
ms_before=12000
|
|
append=yes
|
|
[/music]
|
|
[music]
|
|
name=main_menu.ogg
|
|
ms_before=12000
|
|
append=yes
|
|
[/music]
|
|
[music]
|
|
name=wesnoth-1.ogg
|
|
ms_before=12000
|
|
append=yes
|
|
[/music]
|
|
[music]
|
|
name=wesnoth-2.ogg
|
|
ms_before=12000
|
|
append=yes
|
|
[/music]
|
|
#enddef
|
|
|
|
#define COLOR_HEAL
|
|
green=255
|
|
#enddef
|
|
|
|
#define COLOR_HARM
|
|
red=255
|
|
#enddef
|
|
|
|
#define COLOR_WHITE
|
|
red=255
|
|
green=255
|
|
blue=255
|
|
#enddef
|
|
|