815 lines
28 KiB
INI
815 lines
28 KiB
INI
#textdomain wesnoth
|
|
[schema]
|
|
identifier="re ^[a-zA-Z0-9_ ]+$"
|
|
symbol="re ^[A-Z][A-Z0-9_]*$"
|
|
string="re ^[^\x7f\x80]+$"
|
|
integer="re ^(\+|-)?[0-9]+$"
|
|
float="re ^(\+|-)?[0-9]+(\.[0-9]*)?$"
|
|
boolean="enum true,false,yes,no"
|
|
pathimage="re ^([a-zA-Z0-9_\-.+]+/)*[a-zA-Z0-9_\-.+]+(~(TC|RC|PAL|FL|GS|CS|CROP|SCALE|BL|O|R|G|B|NOP|RIGHT)\(.*\))*$" # TODO: Some 'path' must be changed to 'pathimage'
|
|
path="re ^[a-zA-Z0-9_\-.+\/]*[a-zA-Z0-9_\-.+]$"
|
|
direction="enum n,ne,se,s,sw,nw"
|
|
[root]
|
|
# All possible root elements
|
|
_about="repeated about"
|
|
_advanced_preference="repeated advanced_preference"
|
|
_binary_path="repeated binary_path"
|
|
_campaign="repeated campaign"
|
|
_fonts="optional fonts"
|
|
_game_config="optional game_config"
|
|
_help="optional help"
|
|
_hotkey="repeated hotkey"
|
|
_lua="repeated lua"
|
|
_terrain_graphics="repeated terrain_graphics"
|
|
_textdomain="repeated textdomain"
|
|
_theme="repeated theme"
|
|
_units="optional units"
|
|
_section="optional section"
|
|
_topic="repeated topic" # TODO: Somehow, has to say that depends on the 'section'
|
|
_terrain_type="repeated terrain_type"
|
|
_scenario="optional scenario"
|
|
_multiplayer="optional scenario"
|
|
_test="optional scenario"
|
|
_tutorial="optional scenario"
|
|
[/root]
|
|
|
|
[about]
|
|
[description]
|
|
text="_ A section of the credits
|
|
-title is the title of this section
|
|
-text is displayed before the entries"
|
|
[/description]
|
|
_entry="repeated entry"
|
|
|
|
text="optional string translatable"
|
|
title="optional string translatable"
|
|
[/about]
|
|
[about-campaign:about]
|
|
[description]
|
|
text="_ -images is a list of the background images for the credits"
|
|
[/description]
|
|
images="optional path list"
|
|
[/about-campaign:about]
|
|
about_preference_type="enum boolean,int"
|
|
[advanced_preference]
|
|
[description]
|
|
text="_ The interface for an advanced preference
|
|
-field identifies the preference
|
|
-name is the user-visible name
|
|
-type indicates the type of setting, only if is an int do min, max and step have meaning"
|
|
[/description]
|
|
default="optional string"
|
|
description="optional string translatable"
|
|
field="required identifier"
|
|
name="required string translatable"
|
|
type="required about_preference_type"
|
|
|
|
min="optional integer"
|
|
max="optional integer"
|
|
step="optional integer"
|
|
[/advanced_preference]
|
|
[ai]
|
|
_aspect="repeated aspect"
|
|
_stage="repeated stage"
|
|
|
|
description="required string" #maybe string translatable?
|
|
id="required identifier"
|
|
[/ai]
|
|
[ais]
|
|
_ai="repeated ai"
|
|
_default_config="required default_config"
|
|
[/ais]
|
|
[binary_path]
|
|
path="required path"
|
|
[/binary_path]
|
|
[campaign]
|
|
_about="repeated about-campaign"
|
|
|
|
abbrev="required identifier translatable"
|
|
define="required symbol"
|
|
description="required string translatable"
|
|
difficulties="required symbol list"
|
|
difficulty_descriptions="required string" #TODO: this one's especially complicated
|
|
extra_defines="optional string list"
|
|
first_scenario="required identifier need-file-in(scenarios)"
|
|
icon="optional pathimage"
|
|
id="required string"
|
|
image="optional path"
|
|
name="required string translatable"
|
|
rank="required integer"
|
|
[/campaign]
|
|
[entry]
|
|
[description]
|
|
text="_ An entry for the credits"
|
|
[/description]
|
|
comment="optional string"
|
|
email="optional string"
|
|
ircuser="optional string"
|
|
name="required string optional-translatable"
|
|
wikiuser="optional string"
|
|
[/entry]
|
|
[female:unit_type]
|
|
id="forbidden identifier"
|
|
inherit="optional boolean"
|
|
[/female:unit_type]
|
|
interval="re ^(\d+|\d+-\d+)$"
|
|
[font]
|
|
codepoints="required interval list"
|
|
name="required path"
|
|
[/font]
|
|
[fonts]
|
|
_font="repeated font"
|
|
|
|
order="required path list"
|
|
[/fonts]
|
|
# this is a list of path:integer
|
|
flag_image_type="re ^((([a-zA-Z0-9_\-.+]+/)*[a-zA-Z0-9_\-.+]+):[0-9]+,)*(([a-zA-Z0-9_\-.+]+/)*[a-zA-Z0-9_\-.+]+):[0-9]+$"
|
|
hexlist="re ^([0-9a-f]{6},)*[0-9a-f]{6}$"
|
|
[game_config]
|
|
_color_palette="repeated color_palette"
|
|
_color_range="repeated color_range"
|
|
_server="repeated server"
|
|
|
|
# Maybe these aren't required...
|
|
ally_ball_image="required path"
|
|
base_income="optional integer"
|
|
buttons_x="optional integer"
|
|
buttons_y="optional integer"
|
|
buttons_padding="optional integer"
|
|
cross_image="required path"
|
|
default_defeat_music="required path list"
|
|
default_victory_music="required path list"
|
|
#defense_color_scale="
|
|
ellipsis_image="required path"
|
|
enemy_ball_image="required path"
|
|
energy_image="required path"
|
|
flag_icon_image="required path"
|
|
flag_image="required flag_image_type"
|
|
flag_rgb="optional identifier"
|
|
footprint_prefix="required path list"
|
|
footprint_teleport_enter="required path"
|
|
footprint_teleport_exit="required path"
|
|
grid_image="required path"
|
|
hp_bar_scaling="required float"
|
|
icon="required path"
|
|
kill_experience="optional integer"
|
|
level_image="required path"
|
|
lobby_music="required path" #maybe list
|
|
lobby_refresh="optional integer"
|
|
logo="required path"
|
|
logo_x="required integer"
|
|
logo_y="required integer"
|
|
moved_ball_image="required path"
|
|
observer_image="required path"
|
|
partmoved_ball_image="required path"
|
|
poison_amount="optional integer"
|
|
recall_cost="optional integer"
|
|
red_green_scale="optional hexlist"
|
|
red_green_scale_text="optional hexlist"
|
|
rest_heal_amount="optional integer"
|
|
terrain_mask_image="required path"
|
|
tip_padding="required integer"
|
|
tip_width="required integer"
|
|
tip_x="required integer"
|
|
title="required path list"
|
|
title_music="required path" #maybe list
|
|
tod_bright_image="required path"
|
|
unmoved_ball_image="required path"
|
|
unreachable_image="required path"
|
|
village_income="optional integer"
|
|
#wesnothd_name=
|
|
xp_bar_scaling="required float"
|
|
[/game_config]
|
|
[help]
|
|
_section="repeated section"
|
|
_topic="repeated topic"
|
|
_toplevel="required toplevel"
|
|
[/help]
|
|
[hotkey]
|
|
alt="optional boolean"
|
|
cmd="optional boolean"
|
|
command="required identifier"
|
|
ctrl="optional boolean"
|
|
key="required string"
|
|
shift="optional boolean"
|
|
[/hotkey]
|
|
[lua]
|
|
code="required string"
|
|
[/lua]
|
|
[male:unit_type]
|
|
id="forbidden identifier"
|
|
inherit="optional boolean"
|
|
[/male:unit_type]
|
|
[movetype]
|
|
_defense="required defense"
|
|
_movement_costs="required movement_costs"
|
|
_resistance="required resistance"
|
|
|
|
flies="optional boolean"
|
|
name="required identifier"
|
|
[/movetype]
|
|
[partialresolution]
|
|
_add="optional add"
|
|
_change="repeated change"
|
|
_remove="repeated remove"
|
|
|
|
height="required integer"
|
|
id="required identifier"
|
|
inherits="required identifier"
|
|
width="required integer"
|
|
[/partialresolution]
|
|
side_of_screen="enum both,left,right"
|
|
[portrait]
|
|
image="required path"
|
|
mirror="optional boolean"
|
|
side="required side_of_screen"
|
|
size="required integer"
|
|
[/portrait]
|
|
[race]
|
|
_trait="repeated trait"
|
|
|
|
description="optional string translatable"
|
|
female_name="optional string translatable"
|
|
female_names="optional string translatable"
|
|
id="required identifier"
|
|
ignore_global_traits="optional boolean"
|
|
male_name="optional string translatable"
|
|
male_names="optional string translatable"
|
|
markov_chain_size="optional integer"
|
|
name="optional string translatable"
|
|
num_traits="optional integer" # FIXME: are we sure this is optional?
|
|
plural_name="optional string translatable"
|
|
[/race]
|
|
[resolution]
|
|
_label="repeated label-theme"
|
|
_main_map="optional main_map"
|
|
_main_map_border="optional map_map_border"
|
|
_menu="repeated menu"
|
|
_mini_map="optional mini_map"
|
|
_panel="repeated panel"
|
|
#_replay
|
|
#_screen
|
|
_status="optional status"
|
|
|
|
height="required integer"
|
|
id="optional identifier"
|
|
inherits="optional identifier"
|
|
width="required integer"
|
|
[/resolution]
|
|
sort_topics_type="enum yes,no,generated,"
|
|
[section]
|
|
generator="optional identifier"
|
|
id="required identifier"
|
|
sections_generator="optional identifier"
|
|
sort_sections="optional boolean"
|
|
sort_topics="optional sort_topics_type"
|
|
title="required string translatable"
|
|
topics="optional string list"
|
|
[/section]
|
|
#[terrain_graphics]
|
|
# #subtags here
|
|
#
|
|
# map="optional string"
|
|
# no_flag="optional string"
|
|
# probability="
|
|
#[/terrain_graphics]
|
|
[textdomain]
|
|
name="required string"
|
|
path="optional path" # required for UMC, implicit for mainline
|
|
[/textdomain]
|
|
[theme]
|
|
_partialresolution="repeated partialresolution"
|
|
_resolution="repeated resolution"
|
|
|
|
name="required string"
|
|
[/theme]
|
|
[topic]
|
|
generator="optional string" #TODO: maybe a special kind of identifier
|
|
id="required string" #TODO: see above
|
|
text="optional string translatable"
|
|
title="required string translatable"
|
|
[/topic]
|
|
[toplevel]
|
|
sections="required string" #TODO: should be list of identifiers
|
|
topics="required string" #TODO: see above
|
|
[/toplevel]
|
|
[units]
|
|
_movetype="repeated movetype"
|
|
_race="repeated race"
|
|
_trait="repeated trait"
|
|
_unit_type="repeated unit_type"
|
|
[/units]
|
|
alignments="enum chaotic,neutral,lawful"
|
|
[unit_type]
|
|
_abilities="optional abilities"
|
|
_advancement="repeated advancement"
|
|
_animation="repeated animation"
|
|
#.*_anim
|
|
#[element]
|
|
# freq="repeated"
|
|
# match="re ^[a-z_]+_anim$"
|
|
# name="animation"
|
|
#[/element]
|
|
_attack="repeated attack"
|
|
_death="repeated animation"
|
|
_defend="repeated animation"
|
|
_defense="optional defense"
|
|
_female="optional female"
|
|
_male="optional male"
|
|
_movement_costs="optional movement_costs"
|
|
_portrait="repeated portrait"
|
|
_resistance="optional resistance"
|
|
_trait="repeated trait"
|
|
_variation="repeated variation"
|
|
|
|
#TODO: make [base_unit] do its job
|
|
advances_to="optional identifier list" #should be required
|
|
alignment="optional alignments" # required
|
|
cost="optional integer" # required
|
|
description="optional string translatable"
|
|
die_sound="optional path list"
|
|
do_not_list="optional boolean"
|
|
ellipse="optional path"
|
|
experience="optional integer" # required
|
|
flag_rgb="optional string" # list of integers
|
|
gender="optional string" # enum male,female
|
|
halo="optional string" # should be animlist: list of imagepaths with animation length
|
|
hide_help="optional boolean"
|
|
hitpoints="optional integer" # required
|
|
id="required identifier"
|
|
ignore_race_traits="optional boolean"
|
|
image="optional path" # required
|
|
level="optional integer" # required
|
|
movement="optional integer" # required
|
|
movement_type="optional identifier" # required
|
|
name="optional string translatable" # required
|
|
profile="optional path"
|
|
race="optional identifier" # required
|
|
undead_variation="optional identifier"
|
|
usage="optional identifier" # required
|
|
zoc="optional boolean"
|
|
[/unit_type]
|
|
[variation:unit_type]
|
|
id="forbidden identifier"
|
|
inherit="optional boolean"
|
|
variation_name="required identifier"
|
|
[/variation:unit_type]
|
|
[terrain_type]
|
|
symbol_image="required path"
|
|
editor_image="optional path"
|
|
id="required string"
|
|
name="required string translatable"
|
|
description="optional string translatable"
|
|
editor_name="optional string"
|
|
string="required string"
|
|
unit_height_adjust="optional integer"
|
|
submerge="optional float limit(0,1)"
|
|
light="optional integer"
|
|
max_light="optional integer"
|
|
min_light="optional integer"
|
|
heals="forbidden integer"
|
|
gives_income="optional boolean"
|
|
recruit_onto="optional boolean"
|
|
recruit_from="optional boolean"
|
|
aliasof="optional string list"
|
|
def_alias="optional string list"
|
|
mvt_alias="optional string list"
|
|
income_description="optional string translatable"
|
|
income_description_ally="optional string translatable"
|
|
income_description_enemy="optional string translatable"
|
|
income_description_own="optional string translatable"
|
|
editor_group="required string list"
|
|
hidden="optional boolean"
|
|
hide_help="optional boolean"
|
|
[/terrain_type]
|
|
[scenario]
|
|
_music="repeated music"
|
|
_story="optional story"
|
|
# TODO: _label=...
|
|
# TODO: _item=...
|
|
# TODO: _time...
|
|
# TODO: _time_area=...
|
|
_side="repeated side"
|
|
# TODO: _event=...
|
|
# TODO: _generator=...
|
|
|
|
id="required string"
|
|
next_scenario="required string need-file-in(.)"
|
|
description="optional string translatable"
|
|
name="required string translatable"
|
|
map_data="required string" # TODO: Complex case
|
|
turns="optional integer"
|
|
turn_at="optional integer"
|
|
random_start_time="optional integer list"
|
|
music="optional path"
|
|
defeat_music="optional path list"
|
|
victory_music="optional path list"
|
|
theme="optional string"
|
|
victory_when_enemies_defeated="optional boolean"
|
|
remove_from_carryover_on_defeat="optional boolean"
|
|
disallow_recall="optional boolean"
|
|
experience_modifier="optional integer"
|
|
# TODO: And attributes for multiplayer?
|
|
[/scenario]
|
|
[music]
|
|
name="required string"
|
|
append="optional boolean"
|
|
play_once="optional boolean"
|
|
immediate="optional boolean"
|
|
ms_before="optional integer" # TODO: Incompatible with 'play_once=yes' or 'immediate=yes'
|
|
ms_after="optional integer"
|
|
shuffle="optional boolean"
|
|
[/music]
|
|
[story]
|
|
_part="repeated part"
|
|
[/story]
|
|
[part]
|
|
# TODO: _background_layer="optional ..." # TODO: Required 'background' defined
|
|
# TODO: _image=...
|
|
|
|
background="optional string" # TODO: Can be improved to check if the image file really exists
|
|
scale_background="optional boolean" # TODO: Required 'background' defined
|
|
story="required string translatable"
|
|
show_title="optional boolean"
|
|
title="optional string translatable" # TODO: Incompatible with 'show_title=yes'
|
|
music="optional string" # TODO: Can be improved to check if the music file really exists
|
|
sound="optional string list"
|
|
[/part]
|
|
typescontroller="enum ai,human,null"
|
|
[side]
|
|
# TODO: _fog_override=...
|
|
_ai="repeated ai"
|
|
# TODO: _village=...
|
|
# TODO: _unit=...
|
|
# TODO: _leader=...
|
|
|
|
side="optional integer limit-lower(1)" # TODO: If it is multiplay, then 'limit(1,9)'
|
|
controller="optional typescontroller"
|
|
no_leader="optional boolean"
|
|
canrecruit="optional boolean"
|
|
type="optional string" # TODO: Can be improved be verified that the unit exists or not | TODO: Required if have a leader
|
|
id="optional string"
|
|
name="optional string translatable"
|
|
unrenamable="optional boolean"
|
|
profile="optional string need-file-in(../images)"
|
|
recruit="optional string list" # TODO: Can be improved be verified that the unit exists or not
|
|
gold="optional integer"
|
|
income="optional integer"
|
|
hidden="optional boolean"
|
|
fog="optional boolean"
|
|
fog_data="optional string" # TODO: Complex case
|
|
shroud="optional boolean"
|
|
shroud_data="optional string" # TODO: Complex case
|
|
persistent="optional boolean" # TODO: Required 'save_id'
|
|
save_id="optional integer"
|
|
previous_save_id="optional string" # TODO: Only multiplay
|
|
team_name="optional string"
|
|
user_team_name="optional string translatable"
|
|
current_player="optional string translatable"
|
|
color="optional string" # TODO: Can be improved be verified if the value exists in data/core/team_colors.cfg
|
|
flag="optional string" # TODO: Complex case
|
|
flag_image="optional string need-file-in(../images)"
|
|
village_gold="optional integer"
|
|
village_support="optional integer"
|
|
recall_cost="optional integer"
|
|
share_maps="optional boolean"
|
|
share_view="optional boolean"
|
|
scroll_to_leader="optional boolean"
|
|
suppress_end_turn_confirmation="optional boolean"
|
|
facing="optional direction"
|
|
# TODO: And attributes for multiplayer?
|
|
[/side]
|
|
typesgrouping="enum offensive,defensive,no"
|
|
typesrecruitment_pattern="enum scout,fighter,archer,healer,mixed fighter"
|
|
[ai]
|
|
#TODO: _attacks=...
|
|
#TODO: _avoid=...
|
|
#TODO: _goal=...
|
|
#TODO: _leader_goal=...
|
|
|
|
time_of_day="optional string" # TODO: Can be improved be verified if the value exists in data/core/macros/schedules.cfg
|
|
turns="optional string" # TODO: Complex case
|
|
ai_algorithm="optional string" # TODO: Incompatible with 'time_of_day' and/or 'turns'
|
|
advancements="optional string list" # TODO: Can be improved be verified that the unit exists or not
|
|
aggression="optional float limit-max(1)"
|
|
caution="optional float"
|
|
grouping="optional typesgrouping"
|
|
leader_aggression="optional float"
|
|
leader_ignores_keep="optional boolean"
|
|
leader_value="optional float limit-lower(0)"
|
|
passive_leader="optional boolean"
|
|
passive_leader_shares_keep="optional boolean"
|
|
recruitment_ignore_bad_combat="optional boolean"
|
|
recruitment_pattern="optional typesrecruitment_pattern list"
|
|
scout_village_targeting="optional float"
|
|
simple_targeting="optional boolean"
|
|
support_villages="optional boolean"
|
|
village_value="optional float limit-lower(0)"
|
|
villages_per_scout="optional float limit-lower(0)"
|
|
[/ai]
|
|
[/schema]
|
|
|
|
## Things that still need to be converted, in a similar format.
|
|
## Note that this is derived from the old wmlgrammar, which was incomplete
|
|
#
|
|
## Attempt to keep everything alphabetically ordered
|
|
#[abilities]
|
|
# [ 'heals', 'hides', 'illuminates', 'leadership', 'regenerate', { 'resistance' : 'resistance-ability' }, 'skirmisher', 'teleport', { re.compile('\w+') : 'ability-dummy' }, ]
|
|
# []
|
|
#[/abilities]
|
|
#[ability-dummy]
|
|
# [], #TODO: the filters and adjacent_description
|
|
# [ 'affect_allies', 'affect_enemies', 'affect_self', 'cumulative', 'description', 'description_inactive', 'female_name', 'female_name_inactive', 'id', 'name', 'name_inactive', ]
|
|
#[/ability-dummy]
|
|
#[add]
|
|
# 'resolution'
|
|
# []
|
|
#[/add]
|
|
#[advancement]
|
|
# [ 'effect', ]
|
|
# [ 'description', 'id', 'image', 'max_times', 'require_amla', 'strict_amla', ]
|
|
#[/advancement]
|
|
#[animation]
|
|
# #TODO: add filter, filter_second
|
|
# [ 'filter_attack', 'filter_second_attack', # Filters
|
|
# { 'else' : 'else-animation' }, 'frame',
|
|
#{ re.compile('\w+_frame') : 'frame' },
|
|
#{ 'if' : 'if-animation' }, ], # The contents
|
|
# [ 'apply_to', 'direction', 'frequency', 'hits', 'swing', 'terrain', 'value', # Filters
|
|
# re.compile('(\w+_)?alpha'), re.compile('(\w+_)?blend_with'), re.compile('(\w+_)?blend_ratio'), re.compile('(\w+_)?halo'), re.compile('(\w+_)?halo_mod'), re.compile('(\w+_)?halo_x'), re.compile('(\w+_)?halo_y'), re.compile('(\w+_)?image_mod'), re.compile('(\w+_)?layer'), re.compile('(\w+_)?offset'), re.compile('(\w+_)?start_time'), re.compile('(\w+_)?submerge'), re.compile('(\w+_)?x'), re.compile('(\w+_)?y'), ] # Frame data, got them from the wiki, I'm assuming these are all valid
|
|
#[/animation]
|
|
#[attack]
|
|
# [ 'specials', ]
|
|
# [ 'attack_weight', 'damage', 'defense_weight', 'description', 'icon', 'movement_used', 'name', 'number', 'range', 'type', ]
|
|
#[/attack]
|
|
#[attacks]
|
|
# TagPlus('special-dummy', ([], [ 'add', 'backstab', 'cumulative', 'multiply', 'value', ]) ),
|
|
#[/attacks]
|
|
#[berserk]
|
|
# TagPlus('special-dummy', ([], [ 'value', ]) ),
|
|
#[/berserk]
|
|
#[chance_to_hit]
|
|
# TagPlus('special-dummy', ([], [ 'add', 'backstab', 'cumulative', 'multiply', 'value', ]) ),
|
|
#[/chance_to_hit]
|
|
#[change]
|
|
# []
|
|
# [ 'font_size', 'id', 'image', 'items', 'rect', 'ref', ] #TODO: unfinished
|
|
#[/change]
|
|
#[color_palette]
|
|
# []
|
|
# [ 'ellipse_red', 'flag_green', 'magenta', ]
|
|
#[/color_palette]
|
|
#[color_range]
|
|
# []
|
|
# [ 'id', 'name', 'rgb', ]
|
|
#[/color_range]
|
|
#[damage]
|
|
# TagPlus('special-dummy', ([], [ 'add', 'backstab', 'cumulative', 'multiply', 'value', ]) ),
|
|
#[/damage]
|
|
#[death]
|
|
# 'animation',
|
|
#[/death]
|
|
#[defend]
|
|
# 'animation',
|
|
#[/defend]
|
|
#[defense]
|
|
# 'movement_costs',
|
|
#[/defense]
|
|
#[drains]
|
|
# 'special-dummy',
|
|
#[/drains]
|
|
#[effect]
|
|
# [ 'defense', 'movement_costs', 'resistance', ], #TODO: point tags to where they should go (specials, contents of filter_attack,
|
|
#{ set_specials : specials }, abilities)
|
|
# [ 'apply_to', 'times', 'unit_type', re.compile("\w+"), ]
|
|
#[/effect]
|
|
#[else-animation]
|
|
# 'animation',
|
|
#[/else-animation]
|
|
#[filter_attack]
|
|
# []
|
|
# [ 'name', 'range', 'special', 'type', ]
|
|
#[/filter_attack]
|
|
#[filter_second_attack]
|
|
# 'filter_attack',
|
|
#[/filter_second_attack]
|
|
#[filter_weapon]
|
|
# 'filter_attack',
|
|
#[/filter_weapon]
|
|
#[firststrike]
|
|
# 'special-dummy',
|
|
#[/firststrike]
|
|
#[frame]
|
|
# []
|
|
# [ 'alpha', 'begin', 'blend_color', 'blend_ratio', 'duration', 'end', 'halo', 'halo_mod', 'halo_x', 'halo_y', 'image', 'image_diagonal', 'image_mod', 'layer', 'offset', 'sound', 'submerge', 'text', 'text_color', 'x', 'y', ]
|
|
#[/frame]
|
|
#[gold-theme]
|
|
# []
|
|
# [ 'font_rgb', 'font_size', 'id', 'prefix', 'prefix_literal', 'rect', 'ref', 'xanchor', 'yanchor', ]
|
|
#[/gold-theme]
|
|
#[heals]
|
|
# TagPlus('ability-dummy', ([], [ 'poison', 'value', ]) ),
|
|
#[/heals]
|
|
#[hides]
|
|
# TagPlus('ability-dummy', ([], [ 'alert', ]) ),
|
|
#[/hides]
|
|
#[if-animation]
|
|
# 'animation',
|
|
#[/if-animation]
|
|
#[income]
|
|
# 'gold-theme',
|
|
#[/income]
|
|
#[illuminates]
|
|
# TagPlus('ability-dummy', ([], [ 'max_value', 'value', ]) ),
|
|
#[/illuminates]
|
|
#[image]
|
|
# []
|
|
# [ 'base', 'center', 'layer', 'name', ]
|
|
#[/image]
|
|
#[label-theme]
|
|
# []
|
|
# [ 'font_rgb', 'font_size', 'icon', 'id', 'image', 'text', 'rect', 'ref', 'xanchor', 'yanchor', ]
|
|
#[/label-theme]
|
|
#[leadership]
|
|
# TagPlus('ability-dummy', ([], [ 'value', ]) ),
|
|
#[/leadership]
|
|
#[main_map]
|
|
# []
|
|
# 'panel'
|
|
#[/main_map]
|
|
#[main_map_border]
|
|
# []
|
|
# [ 'background_image', 'border_image_bottom_even', 'border_image_bottom_odd', 'border_image_left', 'border_image_right', 'border_image_top_even', 'border_image_top_odd', 'border_size', 'corner_image_bottom_left', 'corner_image_bottom_right_even', 'corner_image_bottom_right_odd', 'corner_image_top_left','corner_image_top_right_even', 'corner_image_top_right_odd', 'tile_image', ]
|
|
#[/main_map_border]
|
|
#[menu]
|
|
# []
|
|
# [ 'auto_tooltip', 'id', 'image', 'is_context_menu', 'items', 'title', 'title2', 'tooltip', 'type', 'rect', 'ref', 'xanchor', 'yanchor', ]
|
|
#[/menu]
|
|
#[mini_map]
|
|
# []
|
|
# 'panel'
|
|
#[/mini_map]
|
|
#[movement_costs]
|
|
# []
|
|
# [ re.compile('\w+'), ]
|
|
#[/movement_costs]
|
|
#[num_units]
|
|
# 'gold-theme',
|
|
#[/num_units]
|
|
#[observers]
|
|
# 'gold-theme',
|
|
#[/observers]
|
|
#[panel]
|
|
# []
|
|
# [ 'id', 'image', 'rect', 'ref', 'xanchor', 'yanchor', ]
|
|
#[/panel]
|
|
#[plague]
|
|
# TagPlus('special-dummy', ( [], [ 'type', ] ) ),
|
|
#[/plague]
|
|
#[poison]
|
|
# 'special-dummy',
|
|
#[/poison]
|
|
#[position]
|
|
# 'gold-theme',
|
|
#[/position]
|
|
#[regenerate]
|
|
# TagPlus('ability-dummy', ([], [ 'poison', 'value', ]) ),
|
|
#[/regenerate]
|
|
#[remove]
|
|
# []
|
|
# [ 'id', ]
|
|
#[/remove]
|
|
#[replay]
|
|
# 'partialresolution'
|
|
# []
|
|
#[/replay]
|
|
#[report_clock]
|
|
# 'gold-theme',
|
|
#[/report_clock]
|
|
#[report_countdown]
|
|
# 'gold-theme',
|
|
#[/report_countdown]
|
|
#[resistance-ability]
|
|
# TagPlus('ability-dummy', ([], [ 'active_on', 'add', 'apply_to', 'max_value', 'multiply', 'value', ]) ),
|
|
#[/resistance-ability]
|
|
#[resistance]
|
|
# []
|
|
# [ re.compile('\w+'), ]
|
|
#[/resistance]
|
|
#[screen]
|
|
# []
|
|
# [ 'id', 'rect' ]
|
|
#[/screen]
|
|
#[server]
|
|
# []
|
|
# [ 'address', 'name', ]
|
|
#[/server]
|
|
#[side_playing]
|
|
# []
|
|
# [ 'id', 'rect', 'ref', 'xanchor', 'yanchor', ]
|
|
#[/side_playing]
|
|
#[skirmisher]
|
|
# 'ability-dummy',
|
|
#[/skirmisher]
|
|
#[slow]
|
|
# 'special-dummy',
|
|
#[/slow]
|
|
#[special-dummy]
|
|
# [] #TODO: filters
|
|
# [ 'active_on', 'apply_to', 'description', 'description_inactive', 'id', 'name', 'name_inactive', ]
|
|
#[/special-dummy]
|
|
#[specials]
|
|
# [ 'attacks', 'berserk', 'chance_to_hit', 'damage', 'drains', 'firststrike', 'plague', 'poison', 'slow', 'petrifies', 'swarm', { re.compile('\w+') : 'special-dummy' }, ]
|
|
##TODO: add the rest of them
|
|
# []
|
|
#[/specials]
|
|
#[status]
|
|
# [ { 'gold' : 'gold-theme' }, 'income', 'num_units', 'observers', 'panel', 'position', 'report_clock', 'report_countdown', 'side_playing',
|
|
#{ 'terrain' : 'terrain-theme' }, 'time_of_day', 'turn', 'unit_abilities', 'unit_advancement_options', 'unit_alignment', 'unit_amla', 'unit_hp', 'unit_image', 'unit_level', 'unit_moves', 'unit_name', 'unit_race', 'unit_side', 'unit_status', 'unit_traits',
|
|
#{ 'unit_type' : 'unit_type-theme' } , 'unit_weapons', 'unit_xp', 'upkeep', 'villages', ]
|
|
# []
|
|
#[/status]
|
|
#[petrifies]
|
|
# 'special-dummy',
|
|
#[/petrifies]
|
|
#[swarm]
|
|
# TagPlus('special-dummy', ([], ['swarm_attacks_min', 'swarm_attacks_max',]) ),
|
|
#[/swarm]
|
|
#[teleport]
|
|
# 'ability-dummy',
|
|
#[/teleport]
|
|
#[terrain_type]
|
|
# []
|
|
# [ 'aliasof', 'default_base', 'def_alias', 'description', 'editor_group', 'editor_image', 'gives_income', 'heals', 'hidden', 'id', 'light', 'mvt_alias', 'name', 'recruit_from', 'recruit_onto', 'string', 'submerge', 'symbol_image', 'unit_height_adjust', ]
|
|
#[/terrain_type]
|
|
#[terrain-theme]
|
|
# 'gold-theme',
|
|
#[/terrain-theme]
|
|
#[tile]
|
|
# [ 'image', ]
|
|
# [ 'no_flag', 'pos', 'set_flag', 'type', 'x', 'y', ]
|
|
#[/tile]
|
|
#[time_of_day]
|
|
# 'side_playing',
|
|
#[/time_of_day]
|
|
#[trait]
|
|
# [ 'effect', ]
|
|
# [ 'availability', 'description', 'female_name', 'id', 'male_name', 'name', ]
|
|
#[/trait]
|
|
#[turn]
|
|
# 'gold-theme',
|
|
#[/turn]
|
|
#[unit_abilities]
|
|
# 'gold-theme',
|
|
#[/unit_abilities]
|
|
#[unit_advancement_options]
|
|
# 'gold-theme',
|
|
#[/unit_advancement_options]
|
|
#[unit_alignment]
|
|
# 'gold-theme',
|
|
#[/unit_alignment]
|
|
#[unit_amla]
|
|
# 'gold-theme',
|
|
#[/unit_amla]
|
|
#[unit_hp]
|
|
# 'gold-theme',
|
|
#[/unit_hp]
|
|
#[unit_image]
|
|
# 'gold-theme',
|
|
#[/unit_image]
|
|
#[unit_level]
|
|
# 'gold-theme',
|
|
#[/unit_level]
|
|
#[unit_moves]
|
|
# 'gold-theme',
|
|
#[/unit_moves]
|
|
#[unit_name]
|
|
# 'gold-theme',
|
|
#[/unit_name]
|
|
#[unit_race]
|
|
# 'gold-theme',
|
|
#[/unit_race]
|
|
#[unit_side]
|
|
# 'gold-theme',
|
|
#[/unit_side]
|
|
#[unit_status]
|
|
# 'gold-theme',
|
|
#[/unit_status]
|
|
#[unit_traits]
|
|
# 'gold-theme',
|
|
#[/unit_traits]
|
|
#[unit_type-theme]
|
|
# 'gold-theme',
|
|
#[/unit_type-theme]
|
|
#[unit_weapons]
|
|
# 'gold-theme',
|
|
#[/unit_weapons]
|
|
#[unit_xp]
|
|
# 'gold-theme',
|
|
#[/unit_xp]
|
|
#[villages]
|
|
# 'gold-theme',
|
|
#[/villages]
|
|
#[upkeep]
|
|
# 'gold-theme',
|
|
#[/upkeep]
|