mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-28 17:03:17 +00:00

https://github.com/wesnoth/wesnoth/pull/5481 removed the check that made wmllint: display on and wmllint: display off necessary. This PR removes now redundant wmllint comments. find ./data/ -name '*.cfg' -exec sed -ri '/^ *# *wmllint *:? *display *(on|off) *$/d; s/ *# *wmllint *:? *display *(on|off) *$//' '{}' ';'
1122 lines
46 KiB
INI
1122 lines
46 KiB
INI
#textdomain wesnoth
|
|
|
|
#define AI_CONTROLLER_ALLOW_UNIT_CONTROL CONTROLLER_SIDE UNIT_ID
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
# Right-click content menu item for issuing instructions to an allied AI unit
|
|
[store_unit]
|
|
[filter]
|
|
id={UNIT_ID}
|
|
[/filter]
|
|
|
|
kill=no
|
|
variable=ai_controller_unit
|
|
[/store_unit]
|
|
|
|
[if]
|
|
[variable]
|
|
name=ai_controller_unit.length
|
|
greater_than=0
|
|
[/variable]
|
|
[then]
|
|
[set_menu_item]
|
|
id="ai_controller_unit_control_{UNIT_ID}"
|
|
description= _ "Ask $ai_controller_unit.name to move here"
|
|
[show_if]
|
|
[variable]
|
|
name=side_number
|
|
numerical_equals={CONTROLLER_SIDE}
|
|
[/variable]
|
|
[have_unit]
|
|
id={UNIT_ID}
|
|
[/have_unit]
|
|
[/show_if]
|
|
[command]
|
|
[modify_unit]
|
|
[filter]
|
|
id={UNIT_ID}
|
|
[/filter]
|
|
goto_x,goto_y=$x1,$y1
|
|
[/modify_unit]
|
|
[/command]
|
|
[/set_menu_item]
|
|
[/then]
|
|
[/if]
|
|
|
|
[event]
|
|
name=victory #TODO: any scenario change
|
|
|
|
[clear_menu_item]
|
|
id="ai_controller_unit_control_{UNIT_ID}"
|
|
[/clear_menu_item]
|
|
[/event]
|
|
|
|
{CLEAR_VARIABLE ai_controller_unit}
|
|
#enddef
|
|
|
|
#define AI_CONTROLLER_ALLOW_LEADER_CONTROL CONTROLLER_SIDE CONTROLLED_SIDE
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
# Right-click content menu item for issuing instructions to an allied AI side's leader
|
|
[store_unit]
|
|
[filter]
|
|
side={CONTROLLED_SIDE}
|
|
canrecruit=yes
|
|
[/filter]
|
|
|
|
kill=no
|
|
variable=ally_leader
|
|
[/store_unit]
|
|
|
|
[if]
|
|
[variable]
|
|
name=ally_leader.length
|
|
greater_than=0
|
|
[/variable]
|
|
[then]
|
|
[set_menu_item]
|
|
id=ai_controller_leader_control_{CONTROLLED_SIDE}
|
|
description= _ "Ask $ally_leader.name (leader of side $ally_leader.side) to move here"
|
|
[show_if]
|
|
[variable]
|
|
name=side_number
|
|
numerical_equals={CONTROLLER_SIDE}
|
|
[/variable]
|
|
[have_unit]
|
|
side={CONTROLLED_SIDE}
|
|
canrecruit=yes
|
|
[/have_unit]
|
|
[/show_if]
|
|
[command]
|
|
{CLEAR_AI_ALWAYS_ASPECT_LEADER_GOAL {CONTROLLED_SIDE} }
|
|
{MODIFY_AI_ADD_ASPECT {CONTROLLED_SIDE} leader_goal {AI_ASPECT_LEADER_GOAL_RISKY_MOVE_TO $x1 $y1} }
|
|
[/command]
|
|
[/set_menu_item]
|
|
[/then]
|
|
[/if]
|
|
|
|
[event]
|
|
name=victory #TODO: any scenario change
|
|
|
|
[clear_menu_item]
|
|
id=ai_controller_leader_control_{CONTROLLED_SIDE}
|
|
[/clear_menu_item]
|
|
[/event]
|
|
|
|
{CLEAR_VARIABLE ally_leader}
|
|
#enddef
|
|
|
|
#define AI_CONTROLLER_NOTE
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
# Note for the objectives that instructions can be issued to an allied AI side
|
|
[note]
|
|
description= _ "In this scenario, you may issue instructions to an allied side by right-clicking on a unit that belongs to it."
|
|
[/note]
|
|
#enddef
|
|
|
|
#define AI_CONTROLLER AFFIX PLAYER_SIDES ALLY_SIDES VARIABLES_WML
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
# Right-click content menu item for issuing instructions to an allied AI side
|
|
[event]
|
|
name=prestart
|
|
|
|
[set_variables]
|
|
name=ai_controller_{AFFIX}
|
|
|
|
# This block contains all the default settings and options.
|
|
[literal]
|
|
enabled=yes
|
|
option_name= _ "Instruct ally"
|
|
player_side={PLAYER_SIDES}
|
|
ally_sides={ALLY_SIDES}
|
|
disabled_for_sides=0
|
|
|
|
[overview_message_has_instructions]
|
|
speaker=narrator
|
|
caption= _ "Instruct ally"
|
|
message= _ "$ally_leader.name (side $ally_side|) is carrying out the following instructions:"
|
|
image=wesnoth-icon.png
|
|
[/overview_message_has_instructions]
|
|
|
|
[overview_message_no_instructions]
|
|
speaker=narrator
|
|
caption= _ "Instruct ally"
|
|
message= _ "$ally_leader.name (side $ally_side|) has not been given any instructions and is acting normally."
|
|
image=wesnoth-icon.png
|
|
[/overview_message_no_instructions]
|
|
|
|
################
|
|
|
|
[aggression]
|
|
option_description= _ "Be more aggressive"
|
|
currently_doing_description= _ "aggressive."
|
|
|
|
[show_if]
|
|
[/show_if]
|
|
|
|
[actions_when_applied]
|
|
{MODIFY_AI_ADD_SIMPLE_ASPECT $ally_side aggression set_by_ai_controller "0.9"}
|
|
{MODIFY_AI_ADD_SIMPLE_ASPECT $ally_side caution set_by_ai_controller "0.1"}
|
|
[/actions_when_applied]
|
|
|
|
[message_when_applied]
|
|
[/message_when_applied]
|
|
[/aggression]
|
|
|
|
################
|
|
|
|
[caution]
|
|
option_description= _ "Be more defensive"
|
|
currently_doing_description= _ "defensive."
|
|
|
|
[actions_when_applied]
|
|
{MODIFY_AI_ADD_SIMPLE_ASPECT $ally_side aggression set_by_ai_controller "0.1"}
|
|
{MODIFY_AI_ADD_SIMPLE_ASPECT $ally_side caution set_by_ai_controller "1.0"}
|
|
[/actions_when_applied]
|
|
[/caution]
|
|
|
|
################
|
|
|
|
[focus_on_enemy]
|
|
option_description= _ "Focus on defeating..."
|
|
currently_doing_description= _ "focusing on defeating $ai_controller.side_$ally_side|_current_settings.focus_on_enemy.side_description|."
|
|
|
|
[actions_when_applied]
|
|
[set_variables]
|
|
name=focus_on_enemy_options_message
|
|
|
|
[insert_tag]
|
|
name=value
|
|
variable=header_message
|
|
[/insert_tag]
|
|
[/set_variables]
|
|
|
|
{CLEAR_VARIABLE focus_on_enemy_options_message.option}
|
|
|
|
[store_side]
|
|
side=$ally_side
|
|
variable=stored_ally_side
|
|
[/store_side]
|
|
|
|
{VARIABLE temp_i 1}
|
|
|
|
[while]
|
|
[variable]
|
|
name=temp_i
|
|
less_than=10
|
|
[/variable]
|
|
|
|
[do]
|
|
[store_side]
|
|
side=$temp_i
|
|
variable=stored_other_side
|
|
[/store_side]
|
|
|
|
[if]
|
|
[variable]
|
|
name=stored_ally_side.team_name
|
|
not_equals=$stored_other_side.team_name
|
|
[/variable]
|
|
|
|
[have_unit]
|
|
side=$temp_i
|
|
[/have_unit]
|
|
|
|
[then]
|
|
[if]
|
|
[have_unit]
|
|
side=$temp_i
|
|
canrecruit=yes
|
|
|
|
[filter_vision]
|
|
side=$side_number
|
|
visible=yes
|
|
[/filter_vision]
|
|
[/have_unit]
|
|
|
|
[then]
|
|
[store_unit]
|
|
[filter]
|
|
side=$temp_i
|
|
canrecruit=yes
|
|
[/filter]
|
|
|
|
kill=no
|
|
variable=side_i_leader
|
|
[/store_unit]
|
|
|
|
{VARIABLE this_enemy_image "$side_i_leader.image~TC($temp_i|,$side_i_leader.flag_rgb|)"}
|
|
{VARIABLE this_enemy_label _"Side $temp_i"}
|
|
{VARIABLE this_enemy_description "$side_i_leader.name"}
|
|
[/then]
|
|
|
|
[else]
|
|
{VARIABLE this_enemy_image "misc/blank-hex.png"}
|
|
{VARIABLE this_enemy_label _"Side $temp_i"}
|
|
{VARIABLE this_enemy_description ""}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.focus_on_enemy.side_description _"side $temp_i"}
|
|
[/else]
|
|
[/if]
|
|
|
|
[set_variables]
|
|
name=focus_on_enemy_options_message.option
|
|
mode=append
|
|
|
|
[value]
|
|
image=$this_enemy_image
|
|
label=$this_enemy_label
|
|
description=$this_enemy_description
|
|
|
|
[command]
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.focus_on_enemy.side $temp_i}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.focus_on_enemy.side_description _"side $temp_i ($side_i_leader.name|)"}
|
|
|
|
{MODIFY_AI_ADD_GOAL $ally_side (
|
|
[goal]
|
|
id=set_by_ai_controller
|
|
value=20
|
|
[criteria]
|
|
side=$temp_i
|
|
[/criteria]
|
|
[/goal]
|
|
)}
|
|
[/command]
|
|
[/value]
|
|
[/set_variables]
|
|
[/then]
|
|
[/if]
|
|
|
|
{VARIABLE_OP temp_i add 1}
|
|
[/do]
|
|
[/while]
|
|
|
|
[set_variables]
|
|
name=focus_on_enemy_options_message.option
|
|
mode=append
|
|
|
|
[value]
|
|
label= _ "Back"
|
|
|
|
[command]
|
|
[/command]
|
|
[/value]
|
|
[/set_variables]
|
|
|
|
[insert_tag]
|
|
name=message
|
|
variable=focus_on_enemy_options_message
|
|
[/insert_tag]
|
|
|
|
{CLEAR_VARIABLE stored_ally_side,stored_other_side,focus_on_enemy_options_message,side_i_leader,temp_i,this_enemy_image,this_enemy_label,this_enemy_description}
|
|
[/actions_when_applied]
|
|
[/focus_on_enemy]
|
|
|
|
################
|
|
|
|
[protect]
|
|
option_description= _ "Focus on protecting..."
|
|
currently_doing_description= _ "focusing on protecting $ai_controller.side_$ally_side|_current_settings.protect.side_description|."
|
|
|
|
[actions_when_applied]
|
|
[set_variables]
|
|
name=protect_options_message
|
|
|
|
[insert_tag]
|
|
name=value
|
|
variable=header_message
|
|
[/insert_tag]
|
|
[/set_variables]
|
|
|
|
{CLEAR_VARIABLE protect_options_message.option}
|
|
|
|
[store_side]
|
|
side=$ally_side
|
|
variable=stored_ally_side
|
|
[/store_side]
|
|
|
|
{VARIABLE temp_i 1}
|
|
|
|
[while]
|
|
[variable]
|
|
name=temp_i
|
|
less_than=10
|
|
[/variable]
|
|
|
|
[do]
|
|
[store_side]
|
|
side=$temp_i
|
|
variable=stored_other_side
|
|
[/store_side]
|
|
|
|
[if]
|
|
[variable]
|
|
name=ally_side
|
|
not_equals=$temp_i
|
|
[/variable]
|
|
|
|
[variable]
|
|
name=stored_ally_side.team_name
|
|
equals=$stored_other_side.team_name
|
|
[/variable]
|
|
|
|
[have_unit]
|
|
side=$temp_i
|
|
[/have_unit]
|
|
|
|
[then]
|
|
[if]
|
|
[have_unit]
|
|
side=$temp_i
|
|
canrecruit=yes
|
|
[/have_unit]
|
|
|
|
[then]
|
|
[store_unit]
|
|
[filter]
|
|
side=$temp_i
|
|
canrecruit=yes
|
|
|
|
[filter_vision]
|
|
side=$side_number
|
|
visible=yes
|
|
[/filter_vision]
|
|
[/filter]
|
|
|
|
kill=no
|
|
variable=side_i_leader
|
|
[/store_unit]
|
|
|
|
{VARIABLE this_ally_image "$side_i_leader.image~TC($temp_i|,$side_i_leader.flag_rgb|)"}
|
|
{VARIABLE this_ally_label _"Side $temp_i"}
|
|
{VARIABLE this_ally_description "$side_i_leader.name"}
|
|
[/then]
|
|
|
|
[else]
|
|
{VARIABLE this_ally_image "misc/blank-hex.png"}
|
|
{VARIABLE this_ally_label _"Side $temp_i"}
|
|
{VARIABLE this_ally_description ""}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.protect.side_description _"side $temp_i"}
|
|
[/else]
|
|
[/if]
|
|
|
|
[set_variables]
|
|
name=protect_options_message.option
|
|
mode=append
|
|
|
|
[value]
|
|
image=$this_ally_image
|
|
label=$this_ally_label
|
|
description=$this_ally_description
|
|
|
|
[command]
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.protect.side $temp_i}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.protect.side_description _"side $temp_i ($side_i_leader.name|)"}
|
|
|
|
{MODIFY_AI_ADD_GOAL $ally_side (
|
|
[goal]
|
|
id=set_by_ai_controller
|
|
name=protect_unit
|
|
value=20
|
|
[criteria]
|
|
side=$temp_i
|
|
[/criteria]
|
|
[/goal]
|
|
)}
|
|
[/command]
|
|
[/value]
|
|
[/set_variables]
|
|
[/then]
|
|
[/if]
|
|
|
|
{VARIABLE_OP temp_i add 1}
|
|
[/do]
|
|
[/while]
|
|
|
|
[set_variables]
|
|
name=protect_options_message.option
|
|
mode=append
|
|
|
|
[value]
|
|
label= _ "Back"
|
|
|
|
[command]
|
|
[/command]
|
|
[/value]
|
|
[/set_variables]
|
|
|
|
[insert_tag]
|
|
name=message
|
|
variable=protect_options_message
|
|
[/insert_tag]
|
|
|
|
{CLEAR_VARIABLE stored_ally_side,stored_other_side,side_i_leader,protect_options_message,temp_i,this_ally_image,this_ally_label,this_ally_description}
|
|
[/actions_when_applied]
|
|
[/protect]
|
|
|
|
################
|
|
|
|
#ifdef __UNUSED
|
|
[defend_location]
|
|
type=objective
|
|
|
|
[ai]
|
|
[goal]
|
|
name=protect_location
|
|
[criteria]
|
|
x=$ai_controller.side_$ally_side|_current_settings.defend_location.x
|
|
y=$ai_controller.side_$ally_side|_current_settings.defend_location.y
|
|
[/criteria]
|
|
protect_radius=6
|
|
value=20
|
|
[/goal]
|
|
[/ai]
|
|
|
|
[option]
|
|
label= _ "Defend a location..."
|
|
|
|
[show_if]
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.defend_location.disabled
|
|
not_equals=yes
|
|
[/variable]
|
|
[/show_if]
|
|
|
|
[command]
|
|
{VARIABLE ai_controller_{AFFIX}.defend_location.picker_active yes}
|
|
{VARIABLE ai_controller_{AFFIX}.defend_location.original_controller_invokation_x $x1}
|
|
{VARIABLE ai_controller_{AFFIX}.defend_location.original_controller_invokation_y $y1}
|
|
{VARIABLE ai_controller_finished yes}
|
|
|
|
[print]
|
|
text= _ "Right-click to select a location to defend"
|
|
duration=100
|
|
{COLOR_WHITE}
|
|
[/print]
|
|
|
|
[set_menu_item]
|
|
id=ai_controller_defend_location_picker
|
|
description= _ "Defend this location"
|
|
|
|
[show_if]
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.defend_location.picker_active
|
|
boolean_equals=yes
|
|
[/variable]
|
|
[/show_if]
|
|
|
|
[command]
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.defend_location.x $x1}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.defend_location.y $y1}
|
|
{VARIABLE ai_controller_{AFFIX}.defend_location.picker_active no}
|
|
|
|
{VARIABLE order_type defend_location}
|
|
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.current_objective defend_location}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.currently_doing_objective_description _"focusing on defending the area around $x1|,$y1|."}
|
|
|
|
{MODIFY_AI_ADD_GOAL $ally_side (
|
|
[goal]
|
|
id=set_by_ai_controller
|
|
name=protect_location
|
|
value=20
|
|
[criteria]
|
|
x,y=$x1,$y1
|
|
[/criteria]
|
|
[/goal]
|
|
)}
|
|
|
|
[print]
|
|
text=" " # wmllint: ignore
|
|
duration=1
|
|
[/print]
|
|
|
|
[fire_event]
|
|
name=menu item ai_controller
|
|
|
|
[primary_unit]
|
|
x=$ai_controller_{AFFIX}.defend_location.original_controller_invokation_x
|
|
y=$ai_controller_{AFFIX}.defend_location.original_controller_invokation_y
|
|
[/primary_unit]
|
|
[/fire_event]
|
|
[/command]
|
|
[/set_menu_item]
|
|
|
|
[event]
|
|
name=select,recruit,recall,side turn,menu item ai_controller
|
|
|
|
[if]
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.defend_location.picker_active
|
|
boolean_equals=yes
|
|
[/variable]
|
|
|
|
[then]
|
|
{VARIABLE ai_controller_{AFFIX}.defend_location.picker_active no}
|
|
|
|
[print]
|
|
text= _ "Location selection canceled"
|
|
duration=100
|
|
{COLOR_WHITE}
|
|
[/print]
|
|
[/then]
|
|
[/if]
|
|
[/event]
|
|
[/command]
|
|
[/option]
|
|
[/defend_location]
|
|
#endif
|
|
|
|
################
|
|
|
|
[revoke_objective_orders]
|
|
option_description= _ "Clear objective orders"
|
|
currently_doing_description= _"none set."
|
|
|
|
[actions_when_applied]
|
|
{MODIFY_AI_DELETE_GOAL $ally_side set_by_ai_controller}
|
|
|
|
{CLEAR_VARIABLE ai_controller.side_$ally_side|_current_settings.current_objective}
|
|
[/actions_when_applied]
|
|
[/revoke_objective_orders]
|
|
|
|
################
|
|
|
|
[revoke_behavior_orders]
|
|
option_description= _ "Clear behavior orders"
|
|
currently_doing_description= _"none set."
|
|
|
|
[actions_when_applied]
|
|
{MODIFY_AI_DELETE_ASPECT $ally_side aggression set_by_ai_controller}
|
|
{MODIFY_AI_DELETE_ASPECT $ally_side caution set_by_ai_controller}
|
|
|
|
{CLEAR_VARIABLE ai_controller.side_$ally_side|_current_settings.current_behavior}
|
|
[/actions_when_applied]
|
|
[/revoke_behavior_orders]
|
|
|
|
################
|
|
|
|
[revoke_all_orders]
|
|
option_description= _ "Clear all orders"
|
|
|
|
[actions_when_applied]
|
|
{MODIFY_AI_DELETE_GOAL $ally_side set_by_ai_controller}
|
|
{MODIFY_AI_DELETE_ASPECT $ally_side aggression set_by_ai_controller}
|
|
{MODIFY_AI_DELETE_ASPECT $ally_side caution set_by_ai_controller}
|
|
|
|
{CLEAR_VARIABLE ai_controller.side_$ally_side|_current_settings}
|
|
[/actions_when_applied]
|
|
[/revoke_all_orders]
|
|
[/literal]
|
|
[/set_variables]
|
|
|
|
[set_variables]
|
|
name=ai_controller_{AFFIX}
|
|
mode=merge
|
|
|
|
[literal]
|
|
{VARIABLES_WML}
|
|
[/literal]
|
|
[/set_variables]
|
|
|
|
[set_menu_item]
|
|
id=ai_controller_{AFFIX}
|
|
description=$ai_controller_{AFFIX}.option_name
|
|
|
|
[show_if]
|
|
[have_unit]
|
|
side=$ai_controller_{AFFIX}.ally_sides
|
|
x,y=$x1,$y1
|
|
|
|
[not]
|
|
side=$ai_controller_{AFFIX}.disabled_for_sides
|
|
[/not]
|
|
[/have_unit]
|
|
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.enabled
|
|
equals=yes
|
|
[/variable]
|
|
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.player_side
|
|
contains=$side_number
|
|
[/variable]
|
|
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.defend_location.picker_active
|
|
boolean_equals=no
|
|
[/variable]
|
|
[/show_if]
|
|
|
|
[command]
|
|
[store_unit]
|
|
[filter]
|
|
x,y=$x1,$y1
|
|
[/filter]
|
|
|
|
kill=no
|
|
variable=ally_unit
|
|
[/store_unit]
|
|
|
|
[store_unit]
|
|
[filter]
|
|
side=$ally_unit.side
|
|
canrecruit=yes
|
|
[/filter]
|
|
|
|
kill=no
|
|
variable=ally_leader
|
|
[/store_unit]
|
|
|
|
{VARIABLE ally_side $ally_leader.side}
|
|
|
|
[if]
|
|
[variable]
|
|
name=ai_controller.side_$ally_side|_original_settings.side
|
|
equals=$empty
|
|
[/variable]
|
|
|
|
[then]
|
|
[store_side]
|
|
side=$ally_side
|
|
variable=ai_controller.side_$ally_side|_original_settings
|
|
[/store_side]
|
|
|
|
[set_variables]
|
|
name=ai_controller.side_$ally_side|_original_settings.ai_settings
|
|
|
|
[value]
|
|
side=$ally_side
|
|
|
|
[insert_tag]
|
|
name=ai
|
|
variable=ally_leader.ai
|
|
[/insert_tag]
|
|
[/value]
|
|
[/set_variables]
|
|
[/then]
|
|
[/if]
|
|
|
|
{CLEAR_VARIABLE ai_controller_finished}
|
|
|
|
[while]
|
|
[variable]
|
|
name=ai_controller_finished
|
|
not_equals=yes
|
|
[/variable]
|
|
|
|
[do]
|
|
[if]
|
|
[variable]
|
|
name=ai_controller.side_$ally_side|_current_settings.current_objective
|
|
equals=$empty
|
|
[/variable]
|
|
|
|
[then]
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.currently_doing_objective_description _"none set."}
|
|
[/then]
|
|
[/if]
|
|
|
|
[if]
|
|
[variable]
|
|
name=ai_controller.side_$ally_side|_current_settings.current_behavior
|
|
equals=$empty
|
|
[/variable]
|
|
|
|
[then]
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.currently_doing_behavior_description _"none set."}
|
|
[/then]
|
|
[/if]
|
|
|
|
[if]
|
|
[variable]
|
|
name=ai_controller.side_$ally_side|_current_settings.current_objective
|
|
equals=$empty
|
|
[/variable]
|
|
|
|
[variable]
|
|
name=ai_controller.side_$ally_side|_current_settings.current_behavior
|
|
equals=$empty
|
|
[/variable]
|
|
|
|
[then]
|
|
[set_variables]
|
|
name=ai_controller_{AFFIX}.main_menu_message
|
|
|
|
[insert_tag]
|
|
name=value
|
|
variable=ai_controller_{AFFIX}.overview_message_no_instructions
|
|
[/insert_tag]
|
|
[/set_variables]
|
|
[/then]
|
|
|
|
[else]
|
|
[set_variables]
|
|
name=ai_controller_{AFFIX}.main_menu_message
|
|
|
|
[insert_tag]
|
|
name=value
|
|
variable=ai_controller_{AFFIX}.overview_message_has_instructions
|
|
[/insert_tag]
|
|
[/set_variables]
|
|
[/else]
|
|
[/if]
|
|
|
|
{VARIABLE ai_controller_{AFFIX}.main_menu_message.message "$ai_controller_{AFFIX}.main_menu_message.message"+"
|
|
<span color='black'>-</span>"+"
|
|
"+_"Objective: $ai_controller.side_$ally_side|_current_settings.currently_doing_objective_description
|
|
Behavior: $ai_controller.side_$ally_side|_current_settings.currently_doing_behavior_description"+"
|
|
<span color='black'>-</span>"}
|
|
|
|
[set_variables]
|
|
name=header_message
|
|
[insert_tag]
|
|
name=value
|
|
variable=ai_controller_{AFFIX}.main_menu_message
|
|
[/insert_tag]
|
|
[/set_variables]
|
|
|
|
[set_variables]
|
|
name=ai_controller_{AFFIX}.main_menu_message.option
|
|
|
|
[literal]
|
|
label= _ "Set objective..."
|
|
|
|
[command]
|
|
[set_variables]
|
|
name=set_objective_message
|
|
|
|
[insert_tag]
|
|
name=value
|
|
variable=header_message
|
|
[/insert_tag]
|
|
[/set_variables]
|
|
|
|
{CLEAR_VARIABLE set_objective_message.option}
|
|
|
|
[set_variables]
|
|
name=set_objective_message.option
|
|
|
|
[value]
|
|
label=$ai_controller_{AFFIX}.focus_on_enemy.option_description
|
|
|
|
[insert_tag]
|
|
name=show_if
|
|
variable=ai_controller_{AFFIX}.focus_on_enemy.show_if
|
|
[/insert_tag]
|
|
|
|
[command]
|
|
{VARIABLE objective_picked focus_on_enemy}
|
|
[/command]
|
|
[/value]
|
|
|
|
[value]
|
|
label=$ai_controller_{AFFIX}.protect.option_description
|
|
|
|
[insert_tag]
|
|
name=show_if
|
|
variable=ai_controller_{AFFIX}.protect.show_if
|
|
[/insert_tag]
|
|
|
|
[command]
|
|
{VARIABLE objective_picked protect}
|
|
[/command]
|
|
[/value]
|
|
|
|
[value]
|
|
label=$ai_controller_{AFFIX}.revoke_objective_orders.option_description
|
|
|
|
[insert_tag]
|
|
name=show_if
|
|
variable=ai_controller_{AFFIX}.revoke_objective_orders.show_if
|
|
[/insert_tag]
|
|
|
|
[command]
|
|
{VARIABLE objective_picked revoke_objective_orders}
|
|
[/command]
|
|
[/value]
|
|
|
|
[value]
|
|
label=_"Back"
|
|
|
|
[command]
|
|
[/command]
|
|
[/value]
|
|
[/set_variables]
|
|
|
|
[insert_tag]
|
|
name=message
|
|
variable=set_objective_message
|
|
[/insert_tag]
|
|
|
|
[if]
|
|
[variable]
|
|
name=objective_picked
|
|
not_equals=$empty
|
|
[/variable]
|
|
|
|
[then]
|
|
[insert_tag]
|
|
name=command
|
|
variable=ai_controller_{AFFIX}.$objective_picked|.actions_when_applied
|
|
[/insert_tag]
|
|
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.current_objective $objective_picked}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.currently_doing_objective_description $ai_controller_{AFFIX}.$objective_picked|.currently_doing_description|}
|
|
[/then]
|
|
[/if]
|
|
|
|
{CLEAR_VARIABLE set_objective_message,objective_picked}
|
|
[/command]
|
|
[/literal]
|
|
|
|
[literal]
|
|
label= _ "Set behavior..."
|
|
|
|
[command]
|
|
[set_variables]
|
|
name=set_behavior_message
|
|
|
|
[insert_tag]
|
|
name=value
|
|
variable=header_message
|
|
[/insert_tag]
|
|
[/set_variables]
|
|
|
|
{CLEAR_VARIABLE set_behavior_message.option}
|
|
|
|
[set_variables]
|
|
name=set_behavior_message.option
|
|
|
|
[value]
|
|
label=$ai_controller_{AFFIX}.aggression.option_description
|
|
|
|
[insert_tag]
|
|
name=show_if
|
|
variable=ai_controller_{AFFIX}.aggression.show_if
|
|
[/insert_tag]
|
|
|
|
[command]
|
|
{VARIABLE behavior_picked aggression}
|
|
[/command]
|
|
[/value]
|
|
|
|
[value]
|
|
label=$ai_controller_{AFFIX}.caution.option_description
|
|
|
|
[insert_tag]
|
|
name=show_if
|
|
variable=ai_controller_{AFFIX}.caution.show_if
|
|
[/insert_tag]
|
|
|
|
[command]
|
|
{VARIABLE behavior_picked caution}
|
|
[/command]
|
|
[/value]
|
|
|
|
[value]
|
|
label=$ai_controller_{AFFIX}.revoke_behavior_orders.option_description
|
|
|
|
[insert_tag]
|
|
name=show_if
|
|
variable=ai_controller_{AFFIX}.revoke_behavior_orders.show_if
|
|
[/insert_tag]
|
|
|
|
[command]
|
|
{VARIABLE behavior_picked revoke_behavior_orders}
|
|
[/command]
|
|
[/value]
|
|
|
|
[value]
|
|
label=_"Back"
|
|
|
|
[command]
|
|
[/command]
|
|
[/value]
|
|
[/set_variables]
|
|
|
|
[insert_tag]
|
|
name=message
|
|
variable=set_behavior_message
|
|
[/insert_tag]
|
|
|
|
[if]
|
|
[variable]
|
|
name=behavior_picked
|
|
not_equals=$empty
|
|
[/variable]
|
|
|
|
[then]
|
|
[insert_tag]
|
|
name=command
|
|
variable=ai_controller_{AFFIX}.$behavior_picked|.actions_when_applied
|
|
[/insert_tag]
|
|
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.current_behavior $behavior_picked}
|
|
{VARIABLE ai_controller.side_$ally_side|_current_settings.currently_doing_behavior_description $ai_controller_{AFFIX}.$behavior_picked|.currently_doing_description|}
|
|
[/then]
|
|
[/if]
|
|
|
|
{CLEAR_VARIABLE set_behavior_message,behavior_picked}
|
|
[/command]
|
|
[/literal]
|
|
|
|
[literal]
|
|
label=$ai_controller_{AFFIX}.revoke_all_orders.option_description
|
|
|
|
[insert_tag]
|
|
name=show_if
|
|
variable=ai_controller_{AFFIX}.revoke_all_orders.show_if
|
|
[/insert_tag]
|
|
|
|
[insert_tag]
|
|
name=command
|
|
variable=ai_controller_{AFFIX}.revoke_all_orders.actions_when_applied
|
|
[/insert_tag]
|
|
[/literal]
|
|
|
|
[literal]
|
|
label=_"Exit"
|
|
|
|
[command]
|
|
{VARIABLE ai_controller_finished yes}
|
|
|
|
#ifndef MULTIPLAYER
|
|
[allow_undo]
|
|
[/allow_undo]
|
|
#endif
|
|
[/command]
|
|
[/literal]
|
|
[/set_variables]
|
|
|
|
{CLEAR_VARIABLE header_message}
|
|
|
|
[insert_tag]
|
|
name=message
|
|
variable=ai_controller_{AFFIX}.main_menu_message
|
|
[/insert_tag]
|
|
[/do]
|
|
[/while]
|
|
|
|
{CLEAR_VARIABLE ally_unit,ally_side,ally_leader,ai_controller_{AFFIX}.main_menu_message,ai_controller_finished}
|
|
[/command]
|
|
[/set_menu_item]
|
|
[/event]
|
|
|
|
[event]
|
|
name=victory
|
|
|
|
{CLEAR_VARIABLE ai_controller,ai_controller_{AFFIX}}
|
|
[/event]
|
|
#enddef
|
|
|
|
#define DISABLE_AI_CONTROLLER AFFIX
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
{VARIABLE ai_controller_{AFFIX}.enabled no}
|
|
#enddef
|
|
|
|
#define DISABLE_AI_CONTROLLER_FOR_SIDE AFFIX SIDE
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
[if]
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.disabled_for_sides
|
|
equals=0
|
|
[/variable]
|
|
|
|
[not]
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.disabled_for_sides
|
|
contains={SIDE}
|
|
[/variable]
|
|
[/not]
|
|
|
|
[then]
|
|
{VARIABLE ai_controller_{AFFIX}.disabled_for_sides {SIDE}}
|
|
[/then]
|
|
|
|
[else]
|
|
[if]
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.disabled_for_sides
|
|
contains={SIDE}
|
|
[/variable]
|
|
|
|
[else]
|
|
{VARIABLE ai_controller_{AFFIX}.disabled_for_sides $ai_controller_{AFFIX}.disabled_for_sides|,{SIDE}}
|
|
[/else]
|
|
[/if]
|
|
[/else]
|
|
[/if]
|
|
#enddef
|
|
|
|
#define ENABLE_AI_CONTROLLER_FOR_SIDE AFFIX SIDE
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
[if]
|
|
[variable]
|
|
name=ai_controller_{AFFIX}.disabled_for_sides
|
|
contains={SIDE}
|
|
[/variable]
|
|
|
|
[then]
|
|
[set_variables]
|
|
name=disabled_for_sides_array
|
|
|
|
[split]
|
|
list=ai_controller_{AFFIX}.disabled_for_sides
|
|
key=side
|
|
separator=,
|
|
[/split]
|
|
[/set_variables]
|
|
|
|
[for]
|
|
array=disabled_for_sides_array
|
|
variable=disabled_for_side_i
|
|
[do]
|
|
[if]
|
|
[variable]
|
|
name=disabled_for_sides_array[$disabled_for_side_i].side
|
|
equals={SIDE}
|
|
[/variable]
|
|
|
|
[then]
|
|
{CLEAR_VARIABLE disabled_for_sides_array[$disabled_for_side_i]}
|
|
[/then]
|
|
[/if]
|
|
[/do]
|
|
[/for]
|
|
|
|
[set_variable]
|
|
name=ai_controller_{AFFIX}.disabled_for_sides
|
|
|
|
[join]
|
|
variable=disabled_for_sides_array
|
|
key=side
|
|
separator=,
|
|
[/join]
|
|
[/set_variable]
|
|
|
|
{CLEAR_VARIABLE disabled_for_sides_array}
|
|
[/then]
|
|
|
|
[else]
|
|
{VARIABLE ai_controller_{AFFIX}.ally_sides $ai_controller_{AFFIX}.ally_sides|,{SIDE}}
|
|
[/else]
|
|
[/if]
|
|
#enddef
|
|
|
|
# A stub for scenario 7 of LoW
|
|
#define AI_LOCATION AFFIX STRING RADIUS X Y
|
|
{SET_LABEL {X} {Y} ({STRING})}
|
|
#enddef
|
|
|
|
#define AI_CONTROLLER_FUTURE_STRINGS
|
|
#deprecated 3 1.17 A replacement is not currently provided.
|
|
# These will be used for the special orders menu and the order for telling
|
|
# the ally leader to move someplace
|
|
future_string_1= _ "Set special orders..." #wmllint: ignore
|
|
future_string_2= _ "Move leader to..." #wmllint: ignore
|
|
future_string_3= _ "Right-click to select a location to move leader to" #wmllint: ignore
|
|
future_string_4= _ "Move leader here" #wmllint: ignore
|
|
future_string_5= _ "moving leader to $x1|,$y1|." #wmllint: ignore
|
|
future_string_6= _ "Clear special orders" #wmllint: ignore
|
|
future_string_7= _ "Special: $ai_controller.side_$ally_side|_current_settings.currently_doing_special_description" #wmllint: ignore
|
|
#enddef
|