Merge branch 'master' into travis
1
.gitignore
vendored
|
@ -55,5 +55,6 @@ locales
|
|||
.kdev_include_paths
|
||||
.kdev4
|
||||
!po/wesnoth*
|
||||
!po/wesnoth*/wesnoth*.pot
|
||||
Project.cbp
|
||||
Project.layout
|
||||
|
|
|
@ -291,6 +291,11 @@ if env["prereqs"]:
|
|||
return conf.CheckBoost("system") and \
|
||||
conf.CheckBoost("thread")
|
||||
|
||||
def CheckAsio(conf):
|
||||
return conf.CheckLib("pthread") and \
|
||||
conf.CheckBoost("system") and \
|
||||
conf.CheckBoost("asio", header_only = True)
|
||||
|
||||
if env['host'] in ['x86_64-nacl', 'i686-nacl']:
|
||||
# libppapi_cpp has a reverse dependency on the following function
|
||||
env.Append(LINKFLAGS = ['-Wl,--undefined=_ZN2pp12CreateModuleEv'])
|
||||
|
@ -327,8 +332,7 @@ if env["prereqs"]:
|
|||
client_env = env.Clone()
|
||||
conf = client_env.Configure(**configure_args)
|
||||
have_client_prereqs = have_server_prereqs and \
|
||||
conf.CheckBoost("system") and \
|
||||
conf.CheckBoost("asio", header_only = True) and \
|
||||
CheckAsio(conf) and \
|
||||
conf.CheckPango("cairo", require_version = "1.24.4") and \
|
||||
conf.CheckPKG("fontconfig") and \
|
||||
conf.CheckBoost("program_options", require_version="1.35.0") and \
|
||||
|
|
|
@ -59,6 +59,9 @@
|
|||
[textdomain]
|
||||
name="wesnoth-help"
|
||||
[/textdomain]
|
||||
[textdomain]
|
||||
name="wesnoth-ai"
|
||||
[/textdomain]
|
||||
[textdomain]
|
||||
name="wesnoth-units"
|
||||
[/textdomain]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[ai]
|
||||
id=ai_default_rca
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
{core/macros/ai_candidate_actions.cfg}
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#textdomain wesnoth
|
||||
# wmllint: no translatables
|
||||
{ai/ais/ai_generic-rush.cfg}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#textdomain wesnoth
|
||||
# wmllint: no translatables
|
||||
{ai/ais/ai_default_rca.cfg}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#textdomain wesnoth
|
||||
# wmllint: no translatables
|
||||
{ai/dev/idle_ai.cfg}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#textdomain wesnoth
|
||||
# wmllint: no translatables
|
||||
{ai/ais/ai_default_rca.cfg}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
{core/macros}
|
||||
|
||||
[ai]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
[ai]
|
||||
id=formula_ai # id is needed to uniquely identify a MP AI, it is not needed in the scenario AI
|
||||
description=_"Formula AI dev" # this description is, again, needed for MP AI (it shows in AI list under this description
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[ai]
|
||||
id=default_ai_poisoning
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
[ai]
|
||||
id=ai_idle
|
||||
description=_"Idle AI"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[ai]
|
||||
id=testing_ai_recruitment
|
||||
|
|
|
@ -14,7 +14,7 @@ return {
|
|||
-- how to set up an interactive parameter selection dialog
|
||||
|
||||
local T = H.set_wml_tag_metatable {}
|
||||
local _ = wesnoth.textdomain "wesnoth"
|
||||
local _ = wesnoth.textdomain "wesnoth-ai"
|
||||
|
||||
local tooltip_enemy_weight = _"Enemy unit weight: The (negative) weight given to each enemy unit that can reach a potential target location. Default: 100"
|
||||
local tooltip_my_unit_weight = _"My unit weight: The (positive) weight given to each of the AI's units that can reach a potential target location. Default: 1"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=The_Elves_Besieged
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
#define ANIMAL_AI_DESCRIPTIONS1
|
||||
_"<u>General</u>: These AI's are set up to simulate (to some extent) how these animals behave in real life. This includes that they are animals, meaning that they are not super smart. As an example, the wolves generally hunt in a pack, but are easily distracted by prey coming into range. They are also decent, but not great at cornering deer. For the most part, this is intentional.
|
||||
|
@ -24,7 +24,7 @@
|
|||
|
||||
[test]
|
||||
id=animals
|
||||
name=_"Animals"
|
||||
name= _ "Animals"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/animals.map}"
|
||||
|
@ -37,14 +37,14 @@
|
|||
side=1
|
||||
controller=human
|
||||
hidden=no
|
||||
name=Rutburt
|
||||
name= _ "Rutburt"
|
||||
id=Rutburt
|
||||
max_moves=99
|
||||
type=Outlaw
|
||||
persistent=no
|
||||
|
||||
team_name=humans
|
||||
user_team_name=_"Humans"
|
||||
user_team_name= _ "Humans"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Ruffian,Footpad,Thug,Poacher
|
||||
|
@ -73,7 +73,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=ghasts
|
||||
user_team_name=_"Ghasts"
|
||||
user_team_name= _ "Ghasts"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -88,7 +88,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=spiders
|
||||
user_team_name=_"Spiders"
|
||||
user_team_name= _ "Spiders"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -103,7 +103,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=yetis
|
||||
user_team_name=_"Yetis"
|
||||
user_team_name= _ "Yetis"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -118,7 +118,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=wolves
|
||||
user_team_name=_"Wolves"
|
||||
user_team_name= _ "Wolves"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -133,7 +133,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=whelps,forest
|
||||
user_team_name=_"Whelps"
|
||||
user_team_name= _ "Whelps"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -211,7 +211,7 @@
|
|||
# The right-click menu items
|
||||
[set_menu_item]
|
||||
id=m01_end_animals
|
||||
description=_"End scenario"
|
||||
description= _ "End scenario"
|
||||
image=items/ring-red.png~CROP(26,26,20,20)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals animals}
|
||||
|
@ -355,17 +355,17 @@
|
|||
|
||||
[message]
|
||||
speaker=narrator
|
||||
caption=_"Question for the Player"
|
||||
caption= _ "Question for the Player"
|
||||
image=wesnoth-icon.png
|
||||
# wmllint: unbalanced-on
|
||||
message=_"It is possible to include a human-controlled Side 1, so that the action stops once every turn for looking around (or to mess with things in debug mode).
|
||||
message= _ "It is possible to include a human-controlled Side 1, so that the action stops once every turn for looking around (or to mess with things in debug mode).
|
||||
|
||||
Note that there is no end to this scenario. For demonstration purposes, any unit that is killed is replaced by another unit of the same type at the beginning of the next turn. In order to end the scenario, there's a right-click option - but that only works in human-controlled mode. In AI-only mode, you have to press 'Esc' or reload a previous savefile.
|
||||
|
||||
Also note: The Animal AIs are coded as Micro AIs. A Micro AI can be added and adapted to the need of a scenario easily using only WML and the [micro_ai] tag. Check out the <span color='#00A000'>Micro AI wiki page</span> at http://wiki.wesnoth.org/Micro_AIs for more information."
|
||||
# wmllint: unbalanced-off
|
||||
[option]
|
||||
message=_"<span font='16'>I'll just watch the animals.</span>"
|
||||
message= _ "<span font='16'>I'll just watch the animals.</span>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=1
|
||||
|
@ -378,23 +378,23 @@ Also note: The Animal AIs are coded as Micro AIs. A Micro AI can be added and ad
|
|||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message=_"<span font='16'>I want to have control of Side 1.</span>"
|
||||
message= _ "<span font='16'>I want to have control of Side 1.</span>"
|
||||
[/option]
|
||||
[/message]
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
summary=_"Watch the animals do their things"
|
||||
summary= _ "Watch the animals do their things"
|
||||
[objective]
|
||||
description=_"Use right-click option"
|
||||
description= _ "Use right-click option"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Rutburt"
|
||||
description= _ "Death of Rutburt"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[note]
|
||||
description=_"Check out the right-click menu options for additional actions"
|
||||
description= _ "Check out the right-click menu options for additional actions"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=bottleneck-defense
|
||||
name=_"Bottleneck Defense"
|
||||
name= _ "Bottleneck Defense"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/bottleneck-defense.map}"
|
||||
|
@ -35,7 +35,7 @@
|
|||
controller=ai
|
||||
type=Orcish Leader
|
||||
id=Big Bad Orc
|
||||
name=_"Big Bad Orc"
|
||||
name= _ "Big Bad Orc"
|
||||
persistent=no
|
||||
|
||||
canrecruit=yes
|
||||
|
@ -94,14 +94,14 @@ Note: The Bottleneck Defense AI is coded as a Micro AI. A Micro AI can be added
|
|||
|
||||
[message]
|
||||
speaker=narrator
|
||||
caption=_"Question for the Player"
|
||||
caption= _ "Question for the Player"
|
||||
image=wesnoth-icon.png
|
||||
message=_"In this scenario, the AI playing the humans in the east is instructed to form a defensive line at the pass and hold off the orcs for as long as possible. Do you want to play the orc side or let the default (RCA) AI do that?"
|
||||
message= _ "In this scenario, the AI playing the humans in the east is instructed to form a defensive line at the pass and hold off the orcs for as long as possible. Do you want to play the orc side or let the default (RCA) AI do that?"
|
||||
[option]
|
||||
message=_"<span font='16'>I'll watch the two AI's fight it out.</span>"
|
||||
message= _ "<span font='16'>I'll watch the two AI's fight it out.</span>"
|
||||
[/option]
|
||||
[option]
|
||||
message=_"<span font='16'>I'll play the orcs.</span>"
|
||||
message= _ "<span font='16'>I'll play the orcs.</span>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=2
|
||||
|
@ -112,17 +112,17 @@ Note: The Bottleneck Defense AI is coded as a Micro AI. A Micro AI can be added
|
|||
[/message]
|
||||
|
||||
[objectives]
|
||||
summary=_"Take the pass"
|
||||
summary= _ "Take the pass"
|
||||
[objective]
|
||||
description=_"Defeat all humans"
|
||||
description= _ "Defeat all humans"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Big Bad Orc"
|
||||
description= _ "Death of Big Bad Orc"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Only one orc remains"
|
||||
description= _ "Only one orc remains"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=dragon
|
||||
|
@ -17,7 +17,7 @@
|
|||
no_leader=yes
|
||||
|
||||
team_name=Rowck
|
||||
user_team_name=_"Rowck"
|
||||
user_team_name= _ "team_name^Rowck"
|
||||
persistent=no
|
||||
|
||||
gold=200
|
||||
|
@ -30,7 +30,7 @@
|
|||
type=Dread Bat
|
||||
controller=human
|
||||
id=Dreadful Bat
|
||||
name=_"Dreadful Bat"
|
||||
name= _ "Dreadful Bat"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Vampire Bat,Giant Rat,Giant Scorpion
|
||||
|
@ -52,7 +52,7 @@
|
|||
|
||||
[unit]
|
||||
id=Rowck
|
||||
name=_"Rowck"
|
||||
name= _ "Rowck"
|
||||
unrenamable=yes
|
||||
type=Fire Dragon
|
||||
side=1
|
||||
|
@ -96,17 +96,17 @@ Note: The Hunter AI is coded as a Micro AI. A Micro AI can be added and adapted
|
|||
# wmllint: unbalanced-off
|
||||
|
||||
[objectives]
|
||||
summary=_"Move the bats around to explore how Rowck reacts"
|
||||
summary= _ "Move the bats around to explore how Rowck reacts"
|
||||
[objective]
|
||||
description=_"Defeat Rowck"
|
||||
description= _ "Defeat Rowck"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Move the lead bat to the signpost"
|
||||
description= _ "Move the lead bat to the signpost"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of the bat leader"
|
||||
description= _ "Death of the bat leader"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=goto
|
||||
name=_"Goto"
|
||||
name= _ "Goto"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/goto.map}"
|
||||
|
@ -21,7 +21,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=Vaddan,humans
|
||||
user_team_name=_"Vaddan"
|
||||
user_team_name= _ "Vaddan"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Ruffian,Footpad,Thug,Poacher
|
||||
|
@ -37,7 +37,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=humans,hum_wood
|
||||
user_team_name=_"Humans"
|
||||
user_team_name= _ "Humans"
|
||||
scroll_to_leader=no
|
||||
|
||||
canrecruit=yes
|
||||
|
@ -56,7 +56,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=woodsmen,hum_wood
|
||||
user_team_name=_"Woodsmen"
|
||||
user_team_name= _ "Woodsmen"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Woodsman
|
||||
|
@ -74,7 +74,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=saurians,Vaddan,woodsmen
|
||||
user_team_name=_"Saurians"
|
||||
user_team_name= _ "Saurians"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Saurian Augur,Saurian Skirmisher
|
||||
|
@ -93,7 +93,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=humans,hum_wood
|
||||
user_team_name=_"Humans"
|
||||
user_team_name= _ "Humans"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Spearman,Bowman
|
||||
|
@ -112,7 +112,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=humans,hum_wood
|
||||
user_team_name=_"Humans"
|
||||
user_team_name= _ "Humans"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Spearman,Bowman
|
||||
|
@ -129,7 +129,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=Vaddan,hum_wood,saurians
|
||||
user_team_name=_"Animals"
|
||||
user_team_name= _ "team_name^Animals"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -322,7 +322,7 @@
|
|||
# The right-click menu items
|
||||
[set_menu_item]
|
||||
id=m01_new_footpad
|
||||
description=_"Place Side 1 Footpad"
|
||||
description= _ "Place Side 1 Footpad"
|
||||
image=units/human-outlaws/footpad.png~CROP(26,17,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals goto}
|
||||
|
@ -333,7 +333,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m02_kill_unit
|
||||
description=_"Kill Unit under Cursor"
|
||||
description= _ "Kill Unit under Cursor"
|
||||
image=items/potion-poison.png~CROP(24,29,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals goto}
|
||||
|
@ -346,7 +346,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m03_null_control
|
||||
description=_"Turn off human control of Side 1"
|
||||
description= _ "Turn off human control of Side 1"
|
||||
image=items/ring-gold.png~CROP(26,26,20,20)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals goto}
|
||||
|
@ -362,7 +362,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m04_end_animals
|
||||
description=_"End scenario"
|
||||
description= _ "End scenario"
|
||||
image=items/ring-red.png~CROP(26,26,20,20)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals goto}
|
||||
|
@ -402,17 +402,17 @@ Note: The Goto AI is coded as a Micro AI. A Micro AI can be added and adapted t
|
|||
|
||||
[objectives]
|
||||
side=1
|
||||
summary=_"Watch the AI units do their things"
|
||||
summary= _ "Watch the AI units do their things"
|
||||
[objective]
|
||||
description=_"Use right-click option"
|
||||
description= _ "Use right-click option"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Vaddan"
|
||||
description= _ "Death of Vaddan"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[note]
|
||||
description=_"Check out the right-click menu options for additional actions"
|
||||
description= _ "Check out the right-click menu options for additional actions"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
@ -423,11 +423,11 @@ Note: The Goto AI is coded as a Micro AI. A Micro AI can be added and adapted t
|
|||
|
||||
[message]
|
||||
speaker=messenger1
|
||||
message=_"The bridge is out. What do we do now?"
|
||||
message= _ "The bridge is out. What do we do now?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=messenger2
|
||||
message=_"Looks like we need to take the long way around to get to General Minry."
|
||||
message= _ "Looks like we need to take the long way around to get to General Minry."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
|
@ -436,7 +436,7 @@ Note: The Goto AI is coded as a Micro AI. A Micro AI can be added and adapted t
|
|||
|
||||
[message]
|
||||
speaker=leader3
|
||||
message=_"Chaps, ignore everybody except for that swindler Vaddan and his men. Stay in place until any of his units gets within 8 hexes of you.
|
||||
message= _ "Chaps, ignore everybody except for that swindler Vaddan and his men. Stay in place until any of his units gets within 8 hexes of you.
|
||||
|
||||
Note: This is a demonstration of how the Goto Micro AI can be used to code guardian units, although one of the dedicated Guardian Micro AIs will often be better suited for that purpose."
|
||||
[/message]
|
||||
|
@ -447,7 +447,7 @@ Note: This is a demonstration of how the Goto Micro AI can be used to code guard
|
|||
[message]
|
||||
side=7
|
||||
type=Vampire Bat
|
||||
message=_"Us four bats switch between running off to the corners of the map (each one to a different corner), and getting back in a group right here. Either behavior is set up with a single [micro_ai] tag, one with 'unique_goals=yes', the other without."
|
||||
message= _ "Us four bats switch between running off to the corners of the map (each one to a different corner), and getting back in a group right here. Either behavior is set up with a single [micro_ai] tag, one with 'unique_goals=yes', the other without."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
|
@ -461,11 +461,11 @@ Note: This is a demonstration of how the Goto Micro AI can be used to code guard
|
|||
|
||||
[message]
|
||||
speaker=messenger2
|
||||
message=_"I'll take the route straight through the mountains. It's much shorter than following the trail all the way around in the south."
|
||||
message= _ "I'll take the route straight through the mountains. It's much shorter than following the trail all the way around in the south."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=messenger1
|
||||
message=_"You're crazy. It might be shorter as the crow flies, but it will take you forever to get through those mountains.
|
||||
message= _ "You're crazy. It might be shorter as the crow flies, but it will take you forever to get through those mountains.
|
||||
|
||||
Note: The messengers are controlled by Goto Micro AI definitions that differ by a single line, 'use_straight_line=yes/no'."
|
||||
[/message]
|
||||
|
@ -505,7 +505,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=unit
|
||||
message=_"I told you so!"
|
||||
message= _ "I told you so!"
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
|
@ -515,7 +515,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=leader5
|
||||
message=_"Men, head down to the River Fort and get your orders from Sergeant Aethubry. I want each and every one of you to report to him before going east to fight those saurians."
|
||||
message= _ "Men, head down to the River Fort and get your orders from Sergeant Aethubry. I want each and every one of you to report to him before going east to fight those saurians."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
|
@ -524,7 +524,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=leader6
|
||||
message=_"Hah, that's that pencil pusher Gadoc for you! Men, I want you to move toward the River Fort as well, but it's good enough for one of you to report to Sergeant Aethubry. Once that has happened, the rest of you can head into battle directly."
|
||||
message= _ "Hah, that's that pencil pusher Gadoc for you! Men, I want you to move toward the River Fort as well, but it's good enough for one of you to report to Sergeant Aethubry. Once that has happened, the rest of you can head into battle directly."
|
||||
[/message]
|
||||
[/event]
|
||||
|
||||
|
@ -542,7 +542,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=unit
|
||||
message=_"$unit.type $unit.name from Lieutenant Gadoc's squadron reporting for duty, sir."
|
||||
message= _ "$unit.type $unit.name from Lieutenant Gadoc's squadron reporting for duty, sir."
|
||||
[/message]
|
||||
|
||||
[fire_event]
|
||||
|
@ -558,11 +558,11 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=fort_commander
|
||||
message=_"Ready to fight those saurians, soldier?"
|
||||
message= _ "Ready to fight those saurians, soldier?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=unit
|
||||
message=_"Yes, sir."
|
||||
message= _ "Yes, sir."
|
||||
[/message]
|
||||
|
||||
[event]
|
||||
|
@ -570,7 +570,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=fort_commander
|
||||
message=_"Very good, $unit.type. Now go help your comrade get rid of that saurian infestation in the swamps."
|
||||
message= _ "Very good, $unit.type. Now go help your comrade get rid of that saurian infestation in the swamps."
|
||||
[/message]
|
||||
|
||||
[event]
|
||||
|
@ -578,7 +578,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=fort_commander
|
||||
message=_"Maybe if I ignore them, they'll just go away?"
|
||||
message= _ "Maybe if I ignore them, they'll just go away?"
|
||||
[/message]
|
||||
[/event]
|
||||
[/event]
|
||||
|
@ -597,19 +597,19 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
|
||||
[message]
|
||||
speaker=unit
|
||||
message=_"Lieutenant Senvan's men reporting for duty, sir."
|
||||
message= _ "Lieutenant Senvan's men reporting for duty, sir."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=fort_commander
|
||||
message=_"Ah, Lieutenant Senvan... Is every single one of you going to bother me individually as well?"
|
||||
message= _ "Ah, Lieutenant Senvan... Is every single one of you going to bother me individually as well?"
|
||||
[/message]
|
||||
[message]
|
||||
speaker=unit
|
||||
message=_"No, sir. Lieutenant Senvan ordered us to head into battle as soon as I have reported to you."
|
||||
message= _ "No, sir. Lieutenant Senvan ordered us to head into battle as soon as I have reported to you."
|
||||
[/message]
|
||||
[message]
|
||||
speaker=fort_commander
|
||||
message=_"Well, that's a relief. Somebody knows how to use his ... I mean, very well, off you go then.
|
||||
message= _ "Well, that's a relief. Somebody knows how to use his ... I mean, very well, off you go then.
|
||||
|
||||
" + {WHISPER _"I wouldn't say anything negative about one of my superior officers now, would I?"}
|
||||
[/message]
|
||||
|
@ -649,7 +649,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
[message]
|
||||
side=7
|
||||
type=Vampire Bat
|
||||
message=_"We've all made it to the corners, let's get back together again."
|
||||
message= _ "We've all made it to the corners, let's get back together again."
|
||||
[/message]
|
||||
|
||||
# Send the bats back to their starting point
|
||||
|
@ -692,7 +692,7 @@ Note: The messengers are controlled by Goto Micro AI definitions that differ by
|
|||
[message]
|
||||
side=7
|
||||
type=Vampire Bat
|
||||
message=_"We're back together, let's head out to the corners again."
|
||||
message= _ "We're back together, let's head out to the corners again."
|
||||
[/message]
|
||||
|
||||
# Make the bats go to the corners of the map
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
#define HOME_GUARDIAN X Y
|
||||
# Meant to be used as a suffix to a unit-generating macro call.
|
||||
|
@ -14,7 +14,7 @@
|
|||
|
||||
[test]
|
||||
id=guardians
|
||||
name=_"Guardians"
|
||||
name= _ "Guardians"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{/multiplayer/maps/4p_Paths_of_Daggers.map}"
|
||||
|
@ -27,7 +27,7 @@
|
|||
side=1
|
||||
controller=human
|
||||
id=Kraa
|
||||
name=_"Kraa"
|
||||
name= _ "Kraa"
|
||||
unrenamable=yes
|
||||
type=Gryphon
|
||||
x,y=3,5
|
||||
|
@ -45,7 +45,7 @@
|
|||
side=2
|
||||
type=Orcish Leader
|
||||
id=Another Bad Orc
|
||||
name=_"Another Bad Orc"
|
||||
name= _ "Another Bad Orc"
|
||||
x,y=33,24
|
||||
|
||||
canrecruit=yes
|
||||
|
@ -92,7 +92,7 @@
|
|||
type=Dwarvish Guardsman
|
||||
side=2
|
||||
id=guardian1
|
||||
name=_"Guardian 1"
|
||||
name= _ "Guardian 1"
|
||||
x,y=12,1
|
||||
ai_special=guardian
|
||||
[variables]
|
||||
|
@ -103,7 +103,7 @@
|
|||
type=Dwarvish Guardsman
|
||||
side=2
|
||||
id=guardian2
|
||||
name=_"Guardian 2"
|
||||
name= _ "Guardian 2"
|
||||
x,y=15,1
|
||||
ai_special=guardian
|
||||
[variables]
|
||||
|
@ -116,7 +116,7 @@
|
|||
type=Giant Rat
|
||||
side=2
|
||||
id=coward1
|
||||
name=_"Coward 1"
|
||||
name= _ "Coward 1"
|
||||
x,y=14,21
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
|
@ -139,7 +139,7 @@
|
|||
type=Giant Rat
|
||||
side=2
|
||||
id=coward2
|
||||
name=_"Coward 2"
|
||||
name= _ "Coward 2"
|
||||
x,y=16,21
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
|
@ -164,7 +164,7 @@
|
|||
type=Giant Rat
|
||||
side=2
|
||||
id=coward3
|
||||
name=_"Coward 3"
|
||||
name= _ "Coward 3"
|
||||
x,y=18,21
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
|
@ -190,7 +190,7 @@
|
|||
type=Giant Rat
|
||||
side=2
|
||||
id=coward4
|
||||
name=_"Coward 4"
|
||||
name= _ "Coward 4"
|
||||
x,y=12,21
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
|
@ -220,7 +220,7 @@
|
|||
type=Troll
|
||||
side=2
|
||||
id=return1
|
||||
name=_"Return Guardian 1"
|
||||
name= _ "Return Guardian 1"
|
||||
x,y=20,2
|
||||
[variables]
|
||||
label=_"return 20,2"
|
||||
|
@ -240,7 +240,7 @@
|
|||
type=Troll Whelp
|
||||
side=2
|
||||
id=return2
|
||||
name=_"Return Guardian 2"
|
||||
name= _ "Return Guardian 2"
|
||||
x,y=21,9
|
||||
[variables]
|
||||
label=_"return 21,9"
|
||||
|
@ -261,7 +261,7 @@
|
|||
type=Troll Whelp
|
||||
side=2
|
||||
id=home1
|
||||
name=_"Home Guard 1"
|
||||
name= _ "Home Guard 1"
|
||||
x,y=19,2
|
||||
[variables]
|
||||
label=_"home 19,2"
|
||||
|
@ -273,7 +273,7 @@
|
|||
type=Troll
|
||||
side=2
|
||||
id=home 2
|
||||
name=_"Home Guard 2"
|
||||
name= _ "Home Guard 2"
|
||||
x,y=21,10
|
||||
[variables]
|
||||
label=_"home 21,10"
|
||||
|
@ -286,7 +286,7 @@
|
|||
type=Skeleton Archer
|
||||
side=2
|
||||
id=stationed1
|
||||
name=_"Stationed Guardian 1"
|
||||
name= _ "Stationed Guardian 1"
|
||||
x,y=1,12
|
||||
[variables]
|
||||
label=_" stationed r=4
|
||||
|
@ -309,7 +309,7 @@ s=2,14 g=3,13"
|
|||
type=Skeleton
|
||||
side=2
|
||||
id=stationed2
|
||||
name=_"Stationed Guardian 2"
|
||||
name= _ "Stationed Guardian 2"
|
||||
x,y=6,14
|
||||
[variables]
|
||||
label=_" stationed r=4
|
||||
|
@ -333,7 +333,7 @@ s=4,14 g=7,13"
|
|||
type=Troll
|
||||
side=2
|
||||
id=zone1
|
||||
name=_"Gate Keeper"
|
||||
name= _ "Gate Keeper"
|
||||
x,y=5,25
|
||||
[modifications]
|
||||
{TRAIT_STRONG}
|
||||
|
@ -359,7 +359,7 @@ s=4,14 g=7,13"
|
|||
type=Dwarvish Guardsman
|
||||
side=2
|
||||
id=zone2
|
||||
name=_"Home Keeper"
|
||||
name= _ "Home Keeper"
|
||||
x,y=2,27
|
||||
[modifications]
|
||||
{TRAIT_STRONG}
|
||||
|
@ -389,7 +389,7 @@ separate attack Zone"
|
|||
type=Naga Fighter
|
||||
side=2
|
||||
id=zone3
|
||||
name=_"Water Guardian"
|
||||
name= _ "Water Guardian"
|
||||
x,y=29,8
|
||||
[variables]
|
||||
label=_"Zone Guard"
|
||||
|
@ -428,7 +428,7 @@ separate attack Zone"
|
|||
# The right-click menu items
|
||||
[set_menu_item]
|
||||
id=m01_guardian
|
||||
description=_"Standard WML Guardian"
|
||||
description= _ "Standard WML Guardian"
|
||||
image=units/dwarves/guard.png~CROP(28,24,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals guardians}
|
||||
|
@ -439,7 +439,7 @@ separate attack Zone"
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m02_return
|
||||
description=_"Return Guardian"
|
||||
description= _ "Return Guardian"
|
||||
image=units/trolls/grunt.png~CROP(31,7,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals guardians}
|
||||
|
@ -455,7 +455,7 @@ separate attack Zone"
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m03_home
|
||||
description=_"Home Guard"
|
||||
description= _ "Home Guard"
|
||||
image=units/trolls/grunt.png~CROP(31,7,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals guardians}
|
||||
|
@ -467,7 +467,7 @@ This also demonstrates how to combine candidate actions from Formula AI and Lua
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m04_stationed
|
||||
description=_"Stationed Guardian"
|
||||
description= _ "Stationed Guardian"
|
||||
image=units/undead-skeletal/archer.png~CROP(24,16,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals guardians}
|
||||
|
@ -484,7 +484,7 @@ This also demonstrates how to combine candidate actions from Formula AI and Lua
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m05_coward
|
||||
description=_"Coward"
|
||||
description= _ "Coward"
|
||||
image=units/monsters/giant-rat.png~CROP(30,30,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals guardians}
|
||||
|
@ -499,7 +499,7 @@ This also demonstrates how to combine candidate actions from Formula AI and Lua
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m06_zone
|
||||
description=_"Zone Guardian"
|
||||
description= _ "Zone Guardian"
|
||||
image=units/nagas/fighter.png~CROP(25,19,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals guardians}
|
||||
|
@ -528,21 +528,21 @@ Another note: Most of the Guardian AIs are coded as Micro AIs. A Micro AI can be
|
|||
{CLEAR_VARIABLE profile}
|
||||
|
||||
[objectives]
|
||||
summary=_"Move the Gryphons around to explore how the guardians react"
|
||||
summary= _ "Move the Gryphons around to explore how the guardians react"
|
||||
[objective]
|
||||
description=_"Defeat all enemy units"
|
||||
description= _ "Defeat all enemy units"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Move Kraa to the signpost"
|
||||
description= _ "Move Kraa to the signpost"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Kraa"
|
||||
description= _ "Death of Kraa"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[note]
|
||||
description=_"Check out the right-click menu options for information on each guardian type"
|
||||
description= _ "Check out the right-click menu options for information on each guardian type"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=healer_support
|
||||
name=_"Healer Support"
|
||||
name= _ "Healer Support"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{multiplayer/maps/2p_The_Freelands.map}"
|
||||
|
@ -18,7 +18,7 @@
|
|||
type=Elvish Ranger
|
||||
|
||||
team_name=Rebels1
|
||||
user_team_name=_"Rebels 1"
|
||||
user_team_name= _ "Rebels 1"
|
||||
recruit=Elvish Archer,Elvish Fighter,Elvish Scout,Elvish Shaman,Mage,Merman Hunter,Wose
|
||||
persistent=no
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
|||
type=Elvish Marksman
|
||||
|
||||
team_name=Rebels2
|
||||
user_team_name=_"Rebels 2"
|
||||
user_team_name= _ "Rebels 2"
|
||||
recruit=Elvish Archer,Elvish Fighter,Elvish Scout,Elvish Shaman,Mage,Merman Hunter,Wose
|
||||
persistent=no
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
#define MINIMUM CONTAINER VAR
|
||||
# Get the minimum value of CONTAINER.VAR
|
||||
|
@ -169,7 +169,7 @@
|
|||
|
||||
[test]
|
||||
id=lurkers
|
||||
name=_"Lurkers of the Swamp"
|
||||
name= _ "Lurkers of the Swamp"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/lurkers.map}"
|
||||
|
@ -182,13 +182,13 @@
|
|||
side=1
|
||||
controller=human
|
||||
id=Pekzs
|
||||
name=Pekzs
|
||||
name= _ "Pekzs"
|
||||
unrenamable=yes
|
||||
type=Saurian Soothsayer
|
||||
persistent=no
|
||||
|
||||
team_name=Pekzs
|
||||
user_team_name=_"Pekzs"
|
||||
user_team_name= _ "team_name^Pekzs"
|
||||
recruit=Saurian Augur,Saurian Skirmisher
|
||||
|
||||
gold=261
|
||||
|
@ -204,7 +204,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=lurkers_mai2
|
||||
user_team_name=_"Micro AI Lurkers (saurians, stationary)"
|
||||
user_team_name= _ "Micro AI Lurkers (saurians, stationary)"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -221,7 +221,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=lurkers_mai3
|
||||
user_team_name=_"Micro AI Lurkers (saurians, wanderers)"
|
||||
user_team_name= _ "Micro AI Lurkers (saurians, wanderers)"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -238,7 +238,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=lurkers_mai4
|
||||
user_team_name=_"Micro AI Lurkers (nagas)"
|
||||
user_team_name= _ "Micro AI Lurkers (nagas)"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -255,7 +255,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=lurkers_wml
|
||||
user_team_name=_"WML Lurkers (saurians)"
|
||||
user_team_name= _ "WML Lurkers (saurians)"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -271,7 +271,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=lurkers_fai
|
||||
user_team_name=_"Formula AI Lurkers (saurians)"
|
||||
user_team_name= _ "Formula AI Lurkers (saurians)"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -370,7 +370,7 @@
|
|||
# Menu items to place additional lurkers by hand
|
||||
[set_menu_item]
|
||||
id=m01_menu_lurker2
|
||||
description=_"Place a Side 2 lurker"
|
||||
description= _ "Place a Side 2 lurker"
|
||||
image=units/saurians/skirmisher/skirmisher.png~CROP(28,25,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals lurkers}
|
||||
|
@ -382,7 +382,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m01_menu_lurker3
|
||||
description=_"Place a Side 3 lurker"
|
||||
description= _ "Place a Side 3 lurker"
|
||||
image=units/saurians/skirmisher/skirmisher.png~CROP(28,25,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals lurkers}
|
||||
|
@ -394,7 +394,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m01_menu_lurker4
|
||||
description=_"Place a Side 4 lurker"
|
||||
description= _ "Place a Side 4 lurker"
|
||||
image=units/nagas/fighter.png~CROP(25,19,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals lurkers}
|
||||
|
@ -406,7 +406,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m01_menu_lurker5
|
||||
description=_"Place a Side 5 lurker"
|
||||
description= _ "Place a Side 5 lurker"
|
||||
image=units/saurians/skirmisher/skirmisher.png~CROP(28,25,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals lurkers}
|
||||
|
@ -418,7 +418,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m01_menu_lurker6
|
||||
description=_"Place a Side 6 lurker"
|
||||
description= _ "Place a Side 6 lurker"
|
||||
image=units/saurians/skirmisher/skirmisher.png~CROP(28,25,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals lurkers}
|
||||
|
@ -457,21 +457,21 @@ The Lua Lurker AI is coded as a Micro AI. A Micro AI can be added and adapted to
|
|||
|
||||
[objectives]
|
||||
side=1
|
||||
summary=_"Watch the lurkers move around and fight them if you want"
|
||||
summary= _ "Watch the lurkers move around and fight them if you want"
|
||||
[objective]
|
||||
description=_"Defeat all lurkers"
|
||||
description= _ "Defeat all lurkers"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Move Pekzs to the signpost"
|
||||
description= _ "Move Pekzs to the signpost"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Pekzs"
|
||||
description= _ "Death of Pekzs"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[note]
|
||||
description=_"Right-click on unoccupied swamp hexes to add more lurkers"
|
||||
description= _ "Right-click on unoccupied swamp hexes to add more lurkers"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=messenger-escort
|
||||
name=_"Messenger Escort"
|
||||
name= _ "Messenger Escort"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/messenger-escort.map}"
|
||||
|
@ -14,7 +14,7 @@
|
|||
[side]
|
||||
side=1
|
||||
controller=human
|
||||
name=_"Vanak"
|
||||
name= _ "Vanak"
|
||||
id=Vanak
|
||||
type=Orcish Ruler
|
||||
persistent=no
|
||||
|
@ -33,7 +33,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=messenger
|
||||
user_team_name=_"Messenger"
|
||||
user_team_name= _ "Messenger"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -69,7 +69,7 @@
|
|||
[unit]
|
||||
type=Dragoon
|
||||
id=messenger
|
||||
name=_"Messenger"
|
||||
name= _ "Messenger"
|
||||
side=2
|
||||
x,y=30,27
|
||||
random_traits=no
|
||||
|
@ -149,15 +149,15 @@ The Messenger Escort AI is coded as a Micro AI. A Micro AI can be added and adap
|
|||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
description=_"Defeat the messenger"
|
||||
description= _ "Defeat the messenger"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Messenger gets to the signpost"
|
||||
description= _ "Messenger gets to the signpost"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Vanak"
|
||||
description= _ "Death of Vanak"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=patrols
|
||||
name=_"Patrols"
|
||||
name= _ "Patrols"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{multiplayer/maps/2p_Sullas_Ruins.map}"
|
||||
|
@ -15,7 +15,7 @@
|
|||
side=1
|
||||
controller=human
|
||||
id=Gertburt
|
||||
name=_"Gertburt"
|
||||
name= _ "Gertburt"
|
||||
unrenamable=yes
|
||||
type=Outlaw
|
||||
x,y=13,8
|
||||
|
@ -23,7 +23,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=bandits
|
||||
user_team_name=_"Bandits"
|
||||
user_team_name= _ "Bandits"
|
||||
recruit=Ruffian,Footpad,Thug,Poacher
|
||||
|
||||
gold=200
|
||||
|
@ -37,7 +37,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=Konrad
|
||||
user_team_name=_"Konrad"
|
||||
user_team_name= _ "team_name^Konrad"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -53,7 +53,7 @@
|
|||
no_leader=yes
|
||||
persistent=no
|
||||
team_name=Urudin
|
||||
user_team_name=_"Urudin"
|
||||
user_team_name= _ "team_name^Urudin"
|
||||
gold=0
|
||||
recruit=""
|
||||
[ai]
|
||||
|
@ -91,7 +91,7 @@
|
|||
type=Spearman
|
||||
side=2
|
||||
id=Konrad
|
||||
name=_"Konrad"
|
||||
name= _ "Konrad"
|
||||
x,y=5,7
|
||||
random_traits=no
|
||||
[/unit]
|
||||
|
@ -206,17 +206,17 @@ The Patrol AI controlling all Side 2 units is coded as a Micro AI. A Micro AI ca
|
|||
# wmllint: unbalanced-off
|
||||
|
||||
[objectives]
|
||||
summary=_"Watch the patrols, attack them etc."
|
||||
summary= _ "Watch the patrols, attack them etc."
|
||||
[objective]
|
||||
description=_"Defeat all enemy units"
|
||||
description= _ "Defeat all enemy units"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Move Gertburt to the signpost"
|
||||
description= _ "Move Gertburt to the signpost"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Gertburt"
|
||||
description= _ "Death of Gertburt"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=protect-unit
|
||||
name=_"Protect Unit"
|
||||
name= _ "Protect Unit"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/protect-unit.map}"
|
||||
|
@ -14,13 +14,13 @@
|
|||
[side]
|
||||
side=1
|
||||
controller=ai
|
||||
name=_"Langzhar"
|
||||
name= _ "Langzhar"
|
||||
id=Langzhar
|
||||
type=Lieutenant
|
||||
persistent=no
|
||||
|
||||
team_name=Langzhar
|
||||
user_team_name=_"Langzhar"
|
||||
user_team_name= _ "team_name^Langzhar"
|
||||
recruit=Spearman,Bowman
|
||||
|
||||
gold=200
|
||||
|
@ -31,13 +31,13 @@
|
|||
[side]
|
||||
side=2
|
||||
controller=ai
|
||||
name=_"Koorzhar"
|
||||
name= _ "Koorzhar"
|
||||
id=Koorzhar
|
||||
type=Lieutenant
|
||||
persistent=no
|
||||
|
||||
team_name=Koorzhar
|
||||
user_team_name=_"Koorzhar"
|
||||
user_team_name= _ "team_name^Koorzhar"
|
||||
recruit=Spearman,Bowman
|
||||
|
||||
gold=175
|
||||
|
@ -133,18 +133,18 @@
|
|||
|
||||
[message]
|
||||
speaker=narrator
|
||||
caption=_"Question for the Player"
|
||||
caption= _ "Question for the Player"
|
||||
image=wesnoth-icon.png
|
||||
# wmllint: unbalanced-on
|
||||
message=_"In this scenario, the AI playing the humans in the east (Langzhar) is instructed to protect the wizard Rossauba, while moving him safely to the signpost. On the other side, Koorzhar's units (in the west) will primarily attack Rossauba, even if a better target is available. Do you want to play either of the sides or let the AI's battle it out among themselves?
|
||||
message= _ "In this scenario, the AI playing the humans in the east (Langzhar) is instructed to protect the wizard Rossauba, while moving him safely to the signpost. On the other side, Koorzhar's units (in the west) will primarily attack Rossauba, even if a better target is available. Do you want to play either of the sides or let the AI's battle it out among themselves?
|
||||
|
||||
Note: The Protect Unit AI is coded as a Micro AI. A Micro AI can be added and adapted to the need of a scenario easily using only WML and the [micro_ai] tag. Check out the <span color='#00A000'>Micro AI wiki page</span> at http://wiki.wesnoth.org/Micro_AIs for more information."
|
||||
# wmllint: unbalanced-off
|
||||
[option]
|
||||
message=_"<span font='16'>I'll watch the two AI's fight it out</span>"
|
||||
message= _ "<span font='16'>I'll watch the two AI's fight it out</span>"
|
||||
[/option]
|
||||
[option]
|
||||
message=_"<span font='16'>I'll play Langzhar's side (to see how Koorzhar's units target Rossauba)</span>"
|
||||
message= _ "<span font='16'>I'll play Langzhar's side (to see how Koorzhar's units target Rossauba)</span>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=1
|
||||
|
@ -153,7 +153,7 @@ Note: The Protect Unit AI is coded as a Micro AI. A Micro AI can be added and ad
|
|||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message=_"<span font='16'>I'll play Koorzhar's side (to see how Langzhar's units protect Rossauba)</span>"
|
||||
message= _ "<span font='16'>I'll play Koorzhar's side (to see how Langzhar's units protect Rossauba)</span>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=2
|
||||
|
@ -165,33 +165,33 @@ Note: The Protect Unit AI is coded as a Micro AI. A Micro AI can be added and ad
|
|||
|
||||
[objectives]
|
||||
side=1
|
||||
summary=_"Protect Rossauba while moving him to the signpost"
|
||||
summary= _ "Protect Rossauba while moving him to the signpost"
|
||||
[objective]
|
||||
description=_"Rossauba makes it to the signpost"
|
||||
description= _ "Rossauba makes it to the signpost"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Rossauba"
|
||||
description= _ "Death of Rossauba"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Langzhar"
|
||||
description= _ "Death of Langzhar"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
[objectives]
|
||||
side=2
|
||||
summary=_"Get rid of that traitor wizard Rossauba"
|
||||
summary= _ "Get rid of that traitor wizard Rossauba"
|
||||
[objective]
|
||||
description=_"Defeat Rossauba"
|
||||
description= _ "Defeat Rossauba"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Rossauba makes it to the signpost"
|
||||
description= _ "Rossauba makes it to the signpost"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Koorzhar"
|
||||
description= _ "Death of Koorzhar"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=recruiting
|
||||
name=_"Recruiting"
|
||||
name= _ "Recruiting"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/protect-unit.map}"
|
||||
|
@ -14,13 +14,13 @@
|
|||
[side]
|
||||
side=1
|
||||
controller=ai
|
||||
name=_"Langzhar"
|
||||
name= _ "Langzhar"
|
||||
id=Langzhar
|
||||
type=Lieutenant
|
||||
persistent=no
|
||||
|
||||
team_name=Langzhar
|
||||
user_team_name=_"Langzhar"
|
||||
user_team_name= _ "team_name^Langzhar"
|
||||
recruit=Peasant,Spearman,Swordsman,Bowman,Longbowman,Cavalryman,Dragoon,Heavy Infantryman,Shock Trooper,Mage,White Mage
|
||||
|
||||
gold=1000
|
||||
|
@ -31,13 +31,13 @@
|
|||
[side]
|
||||
side=2
|
||||
controller=ai
|
||||
name=_"Koorzhar"
|
||||
name= _ "Koorzhar"
|
||||
id=Koorzhar
|
||||
type=Lieutenant
|
||||
persistent=no
|
||||
|
||||
team_name=Koorzhar
|
||||
user_team_name=_"Koorzhar"
|
||||
user_team_name= _ "team_name^Koorzhar"
|
||||
recruit=Peasant,Spearman,Swordsman,Bowman,Longbowman,Cavalryman,Dragoon,Heavy Infantryman,Shock Trooper,Mage,White Mage
|
||||
|
||||
gold=1000
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=micro_ai_test
|
||||
name=_"Micro AI Tests"
|
||||
name= _ "Micro AI Tests"
|
||||
next_scenario=null
|
||||
|
||||
map_data="{multiplayer/maps/Dark_Forecast.map}"
|
||||
|
@ -15,7 +15,7 @@
|
|||
side=1
|
||||
controller=human
|
||||
id=Grnk
|
||||
name=_"Grnk the Frail"
|
||||
name= _ "Grnk the Frail"
|
||||
gender=male
|
||||
unrenamable=yes
|
||||
type=Goblin Spearman
|
||||
|
@ -23,7 +23,7 @@
|
|||
x,y=13,15
|
||||
|
||||
team_name=Grnk
|
||||
user_team_name=_"Grnk"
|
||||
user_team_name= _ "team_name^Grnk"
|
||||
persistent=yes
|
||||
save_id=Grnk
|
||||
|
||||
|
@ -87,7 +87,7 @@
|
|||
# Menu items explaining the different scenarios
|
||||
[set_menu_item]
|
||||
id=m01_menu_bottleneck_defense
|
||||
description=_"Bottleneck Defense Micro AI demo"
|
||||
description= _ "Bottleneck Defense Micro AI demo"
|
||||
image=units/human-loyalists/lieutenant.png~CROP(16,7,36,36)~SCALE(24,24)
|
||||
[filter_location]
|
||||
x,y=8,15
|
||||
|
@ -102,7 +102,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m02_swamp_lurkers
|
||||
description=_"Swamp Lurker Micro AI demo"
|
||||
description= _ "Swamp Lurker Micro AI demo"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[filter_location]
|
||||
x,y=14,10
|
||||
|
@ -117,7 +117,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m03_guardians
|
||||
description=_"Guardian Micro AI demo"
|
||||
description= _ "Guardian Micro AI demo"
|
||||
image=items/buckler.png~CROP(24,24,24,24)
|
||||
[filter_location]
|
||||
x,y=13,11
|
||||
|
@ -132,7 +132,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m04_patrol
|
||||
description=_"Patrol Micro AI demo"
|
||||
description= _ "Patrol Micro AI demo"
|
||||
image=units/goblins/wolf-rider.png~CROP(22,11,42,42)~SCALE(24,24)
|
||||
[filter_location]
|
||||
x,y=9,17
|
||||
|
@ -147,7 +147,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m05_recruiting
|
||||
description=_"Recruiting Tests Micro AI demo"
|
||||
description= _ "Recruiting Tests Micro AI demo"
|
||||
image=units/human-loyalists/lieutenant.png~CROP(16,7,36,36)~SCALE(24,24)
|
||||
[filter_location]
|
||||
x,y=10,17
|
||||
|
@ -162,7 +162,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m06_protect
|
||||
description=_"Protect Unit Micro AI demo"
|
||||
description= _ "Protect Unit Micro AI demo"
|
||||
image=units/human-magi/red-mage.png~CROP(22,12,24,24)
|
||||
[filter_location]
|
||||
x,y=8,13
|
||||
|
@ -177,7 +177,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m06a_protect
|
||||
description=_"HttT: The Elves Besieged Micro AI demo"
|
||||
description= _ "HttT: The Elves Besieged Micro AI demo"
|
||||
image=units/human-magi/red-mage.png~CROP(22,12,24,24)
|
||||
[filter_location]
|
||||
x,y=8,14
|
||||
|
@ -192,7 +192,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m07_messenger
|
||||
description=_"Messenger Escort Micro AI demo"
|
||||
description= _ "Messenger Escort Micro AI demo"
|
||||
image=units/human-loyalists/cavalryman.png~CROP(33,27,24,24)
|
||||
[filter_location]
|
||||
x,y=8,16
|
||||
|
@ -207,7 +207,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m08_animals
|
||||
description=_"Animals Micro AI demo"
|
||||
description= _ "Animals Micro AI demo"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[filter_location]
|
||||
x,y=9,13
|
||||
|
@ -222,7 +222,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m09_wolves
|
||||
description=_"Wolves Micro AI demo"
|
||||
description= _ "Wolves Micro AI demo"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[filter_location]
|
||||
x,y=10,12
|
||||
|
@ -237,7 +237,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m10_swarm
|
||||
description=_"Swarm Micro AI demo"
|
||||
description= _ "Swarm Micro AI demo"
|
||||
image=units/undead/bat-se-4.png~CROP(24,16,24,24)
|
||||
[filter_location]
|
||||
x,y=11,12
|
||||
|
@ -252,7 +252,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m11_dragon
|
||||
description=_"Dragon Micro AI demo"
|
||||
description= _ "Dragon Micro AI demo"
|
||||
image=units/monsters/fire-dragon.png~CROP(102,60,48,48)~SCALE(24,24)
|
||||
[filter_location]
|
||||
x,y=12,11
|
||||
|
@ -267,7 +267,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m12_healer_support
|
||||
description=_"Healer support Micro AI demo"
|
||||
description= _ "Healer support Micro AI demo"
|
||||
image=units/elves-wood/shaman.png~CROP(26,19,24,24)
|
||||
[filter_location]
|
||||
x,y=11,18
|
||||
|
@ -282,7 +282,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=m13_goto
|
||||
description=_"Goto Micro AI demo"
|
||||
description= _ "Goto Micro AI demo"
|
||||
image=units/human-loyalists/spearman.png~CROP(21,16,24,24)
|
||||
[filter_location]
|
||||
x,y=12,18
|
||||
|
@ -307,11 +307,11 @@ Information about each demonstration can be accessed by right-clicking on the re
|
|||
|
||||
[objectives]
|
||||
[objective]
|
||||
description=_"Move Grnk to one of the signposts"
|
||||
description= _ "Move Grnk to one of the signposts"
|
||||
condition=win
|
||||
[/objective]
|
||||
[note]
|
||||
description=_"Right-click on a signpost to get information about the scenario"
|
||||
description= _ "Right-click on a signpost to get information about the scenario"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=swarm
|
||||
name=_"Swarm"
|
||||
name= _ "Swarm"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/animals.map}"
|
||||
|
@ -15,7 +15,7 @@
|
|||
side=1
|
||||
controller=human
|
||||
hidden=no
|
||||
name=Kraa
|
||||
name= _ "Kraa"
|
||||
id=Kraa
|
||||
type=Gryphon
|
||||
max_moves=99
|
||||
|
@ -23,7 +23,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=gryphons
|
||||
user_team_name=_"Gryphons"
|
||||
user_team_name= _ "Gryphons"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Ruffian,Footpad,Thug,Poacher
|
||||
|
@ -37,7 +37,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=bats
|
||||
user_team_name=_"Bats"
|
||||
user_team_name= _ "Bats"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -64,7 +64,7 @@
|
|||
# The right-click menu items
|
||||
[set_menu_item]
|
||||
id=m01_end_swarm
|
||||
description=_"End scenario"
|
||||
description= _ "End scenario"
|
||||
image=items/ring-red.png~CROP(26,26,20,20)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals swarm}
|
||||
|
@ -89,7 +89,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m02_new_gryphon
|
||||
description=_"Place Side 1 Gryphon"
|
||||
description= _ "Place Side 1 Gryphon"
|
||||
image=units/monsters/gryphon.png~CROP(38,36,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals swarm}
|
||||
|
@ -100,7 +100,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m03_new_bat
|
||||
description=_"Place Side 2 Bat"
|
||||
description= _ "Place Side 2 Bat"
|
||||
image=units/undead/bat-se-4.png~CROP(24,16,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals swarm}
|
||||
|
@ -111,7 +111,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m05_kill_unit
|
||||
description=_"Kill Unit under Cursor"
|
||||
description= _ "Kill Unit under Cursor"
|
||||
image=items/potion-poison.png~CROP(24,29,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals swarm}
|
||||
|
@ -145,21 +145,21 @@ Note: The Swarm AI is coded as a Micro AI. A Micro AI can be added and adapted t
|
|||
|
||||
[objectives]
|
||||
side=1
|
||||
summary=_"Watch the bats move around and fight them if you want"
|
||||
summary= _ "Watch the bats move around and fight them if you want"
|
||||
[objective]
|
||||
description=_"Defeat all bats"
|
||||
description= _ "Defeat all bats"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Use right-click option"
|
||||
description= _ "Use right-click option"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of all gryphons"
|
||||
description= _ "Death of all gryphons"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[note]
|
||||
description=_"Check out the right-click menu options for additional actions"
|
||||
description= _ "Check out the right-click menu options for additional actions"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=wolves
|
||||
name=_"Wolves"
|
||||
name= _ "Wolves"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/animals.map}"
|
||||
|
@ -23,7 +23,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=humans
|
||||
user_team_name=_"Humans"
|
||||
user_team_name= _ "Humans"
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Ruffian,Footpad,Thug,Poacher
|
||||
|
@ -37,7 +37,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=wolves
|
||||
user_team_name=_"Wolves"
|
||||
user_team_name= _ "team_name^Wolves"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
@ -52,7 +52,7 @@
|
|||
persistent=no
|
||||
|
||||
team_name=wolves3
|
||||
user_team_name=_"More Wolves"
|
||||
user_team_name= _ "More Wolves"
|
||||
|
||||
gold=0
|
||||
income=-3
|
||||
|
@ -93,7 +93,7 @@
|
|||
# The right-click menu items
|
||||
[set_menu_item]
|
||||
id=m01_end_wolves
|
||||
description=_"End scenario"
|
||||
description= _ "End scenario"
|
||||
image=items/ring-red.png~CROP(26,26,20,20)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals wolves}
|
||||
|
@ -118,7 +118,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m02_new_peasant
|
||||
description=_"Place Side 1 Peasant"
|
||||
description= _ "Place Side 1 Peasant"
|
||||
image=units/human-peasants/peasant.png~CROP(23,18,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals wolves}
|
||||
|
@ -129,7 +129,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m03_new_wolf2
|
||||
description=_"Place Side 2 Wolf"
|
||||
description= _ "Place Side 2 Wolf"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals wolves}
|
||||
|
@ -140,7 +140,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m04_new_wolf3
|
||||
description=_"Place Side 3 Wolf"
|
||||
description= _ "Place Side 3 Wolf"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals wolves}
|
||||
|
@ -151,7 +151,7 @@
|
|||
[/set_menu_item]
|
||||
[set_menu_item]
|
||||
id=m05_kill_unit
|
||||
description=_"Kill Unit under Cursor"
|
||||
description= _ "Kill Unit under Cursor"
|
||||
image=items/potion-poison.png~CROP(24,29,24,24)
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals wolves}
|
||||
|
@ -196,17 +196,17 @@ To emphasize which wolf belongs to which pack, the pack number will be displayed
|
|||
|
||||
[message]
|
||||
speaker=narrator
|
||||
caption=_"Question for the Player"
|
||||
caption= _ "Question for the Player"
|
||||
image=wesnoth-icon.png
|
||||
# wmllint: unbalanced-on
|
||||
message=_"It is possible to include a human-controlled Side 1, so that the action stops once every turn for looking around (or for messing with things in debug mode). In human-controlled mode, several options are available through the right-click menu, such as adding additional wolves to either side, taking wolves off the map, adding peasants to the human-controlled side or ending the scenario. This enables easy exploring of the wolf AI behavior under different circumstances.
|
||||
message= _ "It is possible to include a human-controlled Side 1, so that the action stops once every turn for looking around (or for messing with things in debug mode). In human-controlled mode, several options are available through the right-click menu, such as adding additional wolves to either side, taking wolves off the map, adding peasants to the human-controlled side or ending the scenario. This enables easy exploring of the wolf AI behavior under different circumstances.
|
||||
|
||||
Note that the leader of the human-controlled side, Rutburt, can move 99 hexes per turn, so that it is always possible to keep him out of harm's way.
|
||||
|
||||
Also note that the wolves AI is coded as a Micro AI. A Micro AI can be added and adapted to the need of a scenario easily using only WML and the [micro_ai] tag. Check out the <span color='#00A000'>Micro AI wiki page</span> at http://wiki.wesnoth.org/Micro_AIs for more information."
|
||||
# wmllint: unbalanced-off
|
||||
[option]
|
||||
message=_"<span font='16'>I'll just watch the two wolf sides.</span>"
|
||||
message= _ "<span font='16'>I'll just watch the two wolf sides.</span>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=1
|
||||
|
@ -219,27 +219,27 @@ Also note that the wolves AI is coded as a Micro AI. A Micro AI can be added and
|
|||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message=_"<span font='16'>I want to have control of Side 1.</span>"
|
||||
message= _ "<span font='16'>I want to have control of Side 1.</span>"
|
||||
[/option]
|
||||
[/message]
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
summary=_"Watch the wolves move around and fight each other"
|
||||
summary= _ "Watch the wolves move around and fight each other"
|
||||
[objective]
|
||||
description=_"No wolves left on one side"
|
||||
description= _ "No wolves left on one side"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Use right-click option"
|
||||
description= _ "Use right-click option"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description=_"Death of Rutburt"
|
||||
description= _ "Death of Rutburt"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[note]
|
||||
description=_"Check out the right-click menu options for additional actions"
|
||||
description= _ "Check out the right-click menu options for additional actions"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
[event]
|
||||
name=preload
|
||||
first_time_only=no
|
||||
|
@ -14,7 +14,7 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message= _"This situation should test the ability of AI to heal efficiently..."
|
||||
message= _ "This situation should test the ability of AI to heal efficiently..."
|
||||
[/message]
|
||||
{UNIT 2 Peasant 10 11 hitpoints=1}
|
||||
{NOTRAIT_UNIT 2 "Mage of Light" 16 16}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
[event]
|
||||
name=preload
|
||||
first_time_only=no
|
||||
|
@ -14,7 +14,7 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message=_"This situation should test the ability of AI to spread poison around..."
|
||||
message= _ "This situation should test the ability of AI to spread poison around..."
|
||||
[/message]
|
||||
[unit]
|
||||
side=2
|
||||
|
@ -109,28 +109,28 @@
|
|||
[/unit]
|
||||
[label]
|
||||
color="255,0,0,0"
|
||||
text=_"Undead target test"
|
||||
text= _ "Undead target test"
|
||||
visible_in_fog="yes"
|
||||
x="9"
|
||||
y="17"
|
||||
[/label]
|
||||
[label]
|
||||
color="255,0,0,0"
|
||||
text=_"Target choose test"
|
||||
text= _ "Target choose test"
|
||||
visible_in_fog="yes"
|
||||
x="19"
|
||||
y="6"
|
||||
[/label]
|
||||
[label]
|
||||
color="255,0,0,0"
|
||||
text=_"Regeneration attack test"
|
||||
text= _ "Regeneration attack test"
|
||||
visible_in_fog="yes"
|
||||
x="25"
|
||||
y="19"
|
||||
[/label]
|
||||
[label]
|
||||
color="255,0,0,0"
|
||||
text=_"Weapon test with low hp target"
|
||||
text= _ "Weapon test with low hp target"
|
||||
visible_in_fog="yes"
|
||||
x="26"
|
||||
y="14"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
[event]
|
||||
name=preload
|
||||
first_time_only=no
|
||||
|
@ -14,7 +14,7 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message=_"This situation should test the ability of AI to make an attack..."
|
||||
message= _ "This situation should test the ability of AI to make an attack..."
|
||||
[/message]
|
||||
[unit]
|
||||
side=2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
[event]
|
||||
name=preload
|
||||
first_time_only=no
|
||||
|
@ -14,7 +14,7 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message=_"This situation should test the ability of AI to obey own unit and enemy unit filters while making attacks. Only dwarves should attack. Dark Adepts are not to be attacked."
|
||||
message= _ "This situation should test the ability of AI to obey own unit and enemy unit filters while making attacks. Only dwarves should attack. Dark Adepts are not to be attacked."
|
||||
[/message]
|
||||
[unit]
|
||||
side=2
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
[event]
|
||||
name=preload
|
||||
first_time_only=no
|
||||
|
@ -14,18 +14,18 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message= _"This situation should test the recruitment phase"
|
||||
message= _ "This situation should test the recruitment phase"
|
||||
[/message]
|
||||
[move_unit]
|
||||
name="Challenger AI"
|
||||
id=chall-ai
|
||||
to_x,to_y=15,2
|
||||
[/move_unit]
|
||||
[move_unit]
|
||||
name="Champion AI"
|
||||
id=champ-ai
|
||||
to_x,to_y=15,24
|
||||
[/move_unit]
|
||||
[modify_side]
|
||||
side=2
|
||||
switch_ai=$test_path_to_akihara_recruitment
|
||||
side=2
|
||||
switch_ai=$test_path_to_akihara_recruitment
|
||||
[/modify_side]
|
||||
[/event]
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
# This is AI test scenario which is not visible to casual player.
|
||||
# It should not be translateable
|
||||
[test]
|
||||
id=ai_arena_small
|
||||
name= "AI Arena - small"
|
||||
description= _"Small ai arena"
|
||||
name= _ "AI Arena - small"
|
||||
description= _ "Small ai arena"
|
||||
map_data="{ai/maps/scenario-AI_Arena_small.map}"
|
||||
random_start_time="no"
|
||||
turns=-1
|
||||
|
@ -62,7 +61,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=repeat_test
|
||||
description=_"Repeat last test"
|
||||
description= _ "Repeat last test"
|
||||
[command]
|
||||
[fire_event]
|
||||
name="_clean_arena"
|
||||
|
@ -78,7 +77,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=select_another_ai
|
||||
description=_"Select another ai"
|
||||
description= _ "Select another ai"
|
||||
[command]
|
||||
[fire_event]
|
||||
name=_select_challenger_ai
|
||||
|
@ -88,7 +87,7 @@
|
|||
|
||||
[set_menu_item]
|
||||
id=select_test
|
||||
description=_"Select another test"
|
||||
description= _ "Select another test"
|
||||
[command]
|
||||
[fire_event]
|
||||
name=_select_test
|
||||
|
@ -101,12 +100,12 @@
|
|||
|
||||
[side]
|
||||
side=1
|
||||
name="AI Developer"
|
||||
name= _ "AI Developer"
|
||||
type=Nightgaunt
|
||||
canrecruit=yes
|
||||
controller=human
|
||||
team_name=master
|
||||
user_team_name= _"AI Developer"
|
||||
user_team_name= _ "team_name^AI Developer"
|
||||
fog=no
|
||||
[modifications]
|
||||
{TRAIT_INTELLIGENT}
|
||||
|
@ -116,23 +115,25 @@
|
|||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
name="Challenger AI"
|
||||
id=chall-ai
|
||||
name= _ "Challenger AI"
|
||||
type=White Mage
|
||||
canrecruit=yes
|
||||
controller=ai
|
||||
team_name=north
|
||||
user_team_name= _"North"
|
||||
user_team_name= _ "North"
|
||||
fog=yes
|
||||
recruit="Dwarvish Guardsman,Dwarvish Fighter,Dwarvish Thunderer,Thief,Poacher,Footpad"
|
||||
[/side]
|
||||
[side]
|
||||
side=3
|
||||
name="Champion AI"
|
||||
id=champ-ai
|
||||
name= _ "Champion AI"
|
||||
type=Dark Adept
|
||||
canrecruit=yes
|
||||
controller=ai
|
||||
team_name=south
|
||||
user_team_name= _"South"
|
||||
user_team_name= _ "South"
|
||||
fog=yes
|
||||
recruit="Dwarvish Guardsman,Dwarvish Fighter,Dwarvish Thunderer,Thief,Poacher,Footpad"
|
||||
[/side]
|
||||
|
@ -171,12 +172,12 @@
|
|||
|
||||
[message]
|
||||
speaker=narrator
|
||||
message=_"Which AI do you wish to use, O Mighty AI Developer?"
|
||||
message= _ "Which AI do you wish to use, O Mighty AI Developer?"
|
||||
[option]
|
||||
message=_"I am happy with the current AI of team 2, [$test_path_to_ai]"
|
||||
message= _ "I am happy with the current AI of team 2, [$test_path_to_ai]"
|
||||
[/option]
|
||||
[option]
|
||||
message=_"Akihara's ai will be awesome, won't it?"
|
||||
message= _ "Akihara's ai will be awesome, won't it?"
|
||||
[command]
|
||||
[set_variable]
|
||||
name=test_path_to_ai
|
||||
|
@ -185,7 +186,7 @@
|
|||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message=_"My AI is TESTING AI DEFAULT, implemented as ai_composite."
|
||||
message= _ "My AI is TESTING AI DEFAULT, implemented as ai_composite."
|
||||
[command]
|
||||
[set_variable]
|
||||
name=test_path_to_ai
|
||||
|
@ -194,7 +195,7 @@
|
|||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message=_"I am the king of FORMULA AI, and I will use its vast powers for world domination."
|
||||
message= _ "I am the king of FORMULA AI, and I will use its vast powers for world domination."
|
||||
[command]
|
||||
[set_variable]
|
||||
name=test_path_to_ai
|
||||
|
@ -203,12 +204,12 @@
|
|||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message=_"I've come with my own AI, and I am ready to test its strength"
|
||||
message= _ "I've come with my own AI, and I am ready to test its strength"
|
||||
[command]
|
||||
[message]
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message=_"and where is it located (path follows the usual WML convention)"
|
||||
message= _ "and where is it located (path follows the usual WML convention)"
|
||||
[text_input]
|
||||
label=_"AI Location:"
|
||||
variable="test_path_to_ai"
|
||||
|
@ -217,7 +218,7 @@
|
|||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message=_"I want to test formulaAI-based poisoning improvements"
|
||||
message= _ "I want to test formulaAI-based poisoning improvements"
|
||||
[command]
|
||||
[set_variable]
|
||||
name=test_path_to_ai
|
||||
|
@ -320,7 +321,7 @@
|
|||
[message]
|
||||
speaker=narrator
|
||||
image=wesnoth-icon.png
|
||||
message=_"and so, the AI for team 2 was redeployed from file '$test_path_to_ai'"
|
||||
message= _ "and so, the AI for team 2 was redeployed from file '$test_path_to_ai'"
|
||||
[/message]
|
||||
[/event]
|
||||
[/test]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
# @file data/scenario-luaai.cfg
|
||||
|
||||
[test]
|
||||
name="Test scenario for Lua AI"
|
||||
name= _ "Test scenario for Lua AI"
|
||||
map_data="border_size=1
|
||||
usage=map
|
||||
|
||||
|
@ -41,63 +41,62 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd
|
|||
|
||||
[label]
|
||||
x,y=16,5
|
||||
text=_"Patrol waypoint 1"
|
||||
text= _ "Patrol waypoint 1"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=16,15
|
||||
text=_"Patrol waypoint 2"
|
||||
text= _ "Patrol waypoint 2"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=3,14
|
||||
text=_"Formula priorities test"
|
||||
text= _ "Formula priorities test"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=2,12
|
||||
text=_"first"
|
||||
text= _ "first"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=3,11
|
||||
text=_"second"
|
||||
text= _ "second"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=3,13
|
||||
text=_"third"
|
||||
text= _ "third"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=8,5
|
||||
text=_"Location guarded (range = 3)"
|
||||
text= _ "Location guarded (range = 3)"
|
||||
[/label]
|
||||
|
||||
|
||||
[event]
|
||||
name=side 2 turn 1
|
||||
first_time_only=yes
|
||||
{MODIFY_AI_DELETE_CANDIDATE_ACTION 2 ca_loop firstca}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=side 2 turn 1
|
||||
[modify_side]
|
||||
side=2
|
||||
[ai]
|
||||
[avoid]
|
||||
x,y=1,11
|
||||
[/avoid]
|
||||
[event]
|
||||
name=side 2 turn 1
|
||||
[modify_side]
|
||||
side=2
|
||||
[ai]
|
||||
[avoid]
|
||||
x,y=1,11
|
||||
[/avoid]
|
||||
|
||||
[leader_goal]
|
||||
x,y=2,12
|
||||
[/leader_goal]
|
||||
[/ai]
|
||||
[/modify_side]
|
||||
[leader_goal]
|
||||
x,y=2,12
|
||||
[/leader_goal]
|
||||
[/ai]
|
||||
[/modify_side]
|
||||
|
||||
#{MODIFY_UNIT side=1 moves 0}
|
||||
[/event]
|
||||
[/event]
|
||||
|
||||
[side]
|
||||
type=Dwarvish Steelclad
|
||||
|
@ -152,24 +151,24 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd
|
|||
placement=recall
|
||||
type="Skeletal Dragon"
|
||||
id="Kiressh"
|
||||
name="Kiressh"
|
||||
name= _ "Kiressh"
|
||||
[/unit]
|
||||
|
||||
[unit]
|
||||
x,y=8,5
|
||||
type="Orcish Archer"
|
||||
name="Bilbo"
|
||||
name= _ "Bilbo"
|
||||
[/unit]
|
||||
[unit]
|
||||
x,y=3,8
|
||||
type="Walking Corpse"
|
||||
name="Sally"
|
||||
name= _ "Sirené"
|
||||
[/unit]
|
||||
|
||||
[unit]
|
||||
x,y=16,5
|
||||
type="Wolf Rider"
|
||||
name="Rark"
|
||||
name= _ "Rark"
|
||||
[/unit]
|
||||
|
||||
[unit]
|
||||
|
@ -245,7 +244,7 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd
|
|||
engine=lua
|
||||
code = << return 0.23 >>
|
||||
[/aspect]
|
||||
[engine]
|
||||
[engine]
|
||||
name="lua"
|
||||
code= <<
|
||||
--! ==============================================================
|
||||
|
@ -349,14 +348,14 @@ return my_ai
|
|||
evaluation="return (...):candidate_action_evaluation_hello2()"
|
||||
execution="(...):candidate_action_execution_hello2()"
|
||||
[/candidate_action]
|
||||
[candidate_action]
|
||||
engine=lua
|
||||
name=external
|
||||
location="ai/lua/extCAexample.lua"
|
||||
[/candidate_action]
|
||||
[candidate_action]
|
||||
engine=lua
|
||||
name=external
|
||||
location="ai/lua/extCAexample.lua"
|
||||
[/candidate_action]
|
||||
[/stage]
|
||||
[stage]
|
||||
name="another_stage"
|
||||
name="another_stage"
|
||||
engine="lua"
|
||||
code= "(...):stage_hello()"
|
||||
[/stage]
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
# @file data/scenario-luaai.cfg
|
||||
|
||||
[test]
|
||||
name="Test scenario for Lua AI with no Lua engine defined"
|
||||
name= _ "Test scenario for Lua AI with no Lua engine defined"
|
||||
map_data="border_size=1
|
||||
usage=map
|
||||
|
||||
|
@ -41,63 +41,62 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd
|
|||
|
||||
[label]
|
||||
x,y=16,5
|
||||
text=_"Patrol waypoint 1"
|
||||
text= _ "Patrol waypoint 1"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=16,15
|
||||
text=_"Patrol waypoint 2"
|
||||
text= _ "Patrol waypoint 2"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=3,14
|
||||
text=_"Formula priorities test"
|
||||
text= _ "Formula priorities test"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=2,12
|
||||
text=_"first"
|
||||
text= _ "first"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=3,11
|
||||
text=_"second"
|
||||
text= _ "second"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=3,13
|
||||
text=_"third"
|
||||
text= _ "third"
|
||||
[/label]
|
||||
|
||||
[label]
|
||||
x,y=8,5
|
||||
text=_"Location guarded (range = 3)"
|
||||
text= _ "Location guarded (range = 3)"
|
||||
[/label]
|
||||
|
||||
|
||||
[event]
|
||||
name=side 2 turn 1
|
||||
first_time_only=yes
|
||||
{MODIFY_AI_DELETE_CANDIDATE_ACTION 2 ca_loop firstca}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=side 2 turn 1
|
||||
[modify_side]
|
||||
side=2
|
||||
[ai]
|
||||
[avoid]
|
||||
x,y=1,11
|
||||
[/avoid]
|
||||
[event]
|
||||
name=side 2 turn 1
|
||||
[modify_side]
|
||||
side=2
|
||||
[ai]
|
||||
[avoid]
|
||||
x,y=1,11
|
||||
[/avoid]
|
||||
|
||||
[leader_goal]
|
||||
x,y=2,12
|
||||
[/leader_goal]
|
||||
[/ai]
|
||||
[/modify_side]
|
||||
[leader_goal]
|
||||
x,y=2,12
|
||||
[/leader_goal]
|
||||
[/ai]
|
||||
[/modify_side]
|
||||
|
||||
#{MODIFY_UNIT side=1 moves 0}
|
||||
[/event]
|
||||
[/event]
|
||||
|
||||
[side]
|
||||
type=Dwarvish Steelclad
|
||||
|
@ -152,24 +151,24 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd
|
|||
placement=recall
|
||||
type="Skeletal Dragon"
|
||||
id="Kiressh"
|
||||
name="Kiressh"
|
||||
name= _ "Kiressh"
|
||||
[/unit]
|
||||
|
||||
[unit]
|
||||
x,y=8,5
|
||||
type="Orcish Archer"
|
||||
name="Bilbo"
|
||||
name= _ "Bilbo"
|
||||
[/unit]
|
||||
[unit]
|
||||
x,y=3,8
|
||||
type="Walking Corpse"
|
||||
name="Sally"
|
||||
name= _ "Sirené"
|
||||
[/unit]
|
||||
|
||||
[unit]
|
||||
x,y=16,5
|
||||
type="Wolf Rider"
|
||||
name="Rark"
|
||||
name= _ "Rark"
|
||||
[/unit]
|
||||
|
||||
[unit]
|
||||
|
@ -248,11 +247,11 @@ Gs^Fp , Gs^Fp , Wwf , Wwf , Mm , Rd
|
|||
[stage]
|
||||
name=ai_default_rca::candidate_action_evaluation_loop
|
||||
id=ca_loop
|
||||
[candidate_action]
|
||||
engine=lua
|
||||
name=external
|
||||
location="ai/lua/extCAexample.lua"
|
||||
[/candidate_action]
|
||||
[candidate_action]
|
||||
engine=lua
|
||||
name=external
|
||||
location="ai/lua/extCAexample.lua"
|
||||
[/candidate_action]
|
||||
[/stage]
|
||||
[/ai]
|
||||
[/side]
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
# This is AI test scenario which is not visible to casual player.
|
||||
# It should not be translateable
|
||||
[test]
|
||||
id=move_to_targets
|
||||
name= _"Move to targets"
|
||||
description= _"Test ai move-to-targets logic"
|
||||
name= _ "Move to targets"
|
||||
description= _ "Test ai move-to-targets logic"
|
||||
map_data="{ai/maps/scenario-test_move_to_targets.map}"
|
||||
random_start_time="no"
|
||||
turns=-1
|
||||
|
@ -28,12 +28,12 @@
|
|||
[side]
|
||||
side=1
|
||||
id=leader1
|
||||
name="AI Developer"
|
||||
name= _"AI Developer"
|
||||
type=Lich
|
||||
canrecruit=yes
|
||||
controller=human
|
||||
team_name=master
|
||||
user_team_name= _"AI Developer"
|
||||
user_team_name= _ "team_name^AI Developer"
|
||||
fog=no
|
||||
[modifications]
|
||||
{TRAIT_INTELLIGENT}
|
||||
|
@ -43,7 +43,7 @@
|
|||
[/side]
|
||||
[side]
|
||||
side=2
|
||||
name="AI under test"
|
||||
name= _ "AI under test"
|
||||
type=Orcish Slayer
|
||||
canrecruit=yes
|
||||
controller=ai
|
||||
|
@ -57,7 +57,7 @@
|
|||
[side]
|
||||
side=3
|
||||
id=leader3
|
||||
name="Idle AI"
|
||||
name= _ "Idle AI"
|
||||
type=Mage of Light
|
||||
canrecruit=yes
|
||||
controller=ai
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
# scores of well-known candidate actions
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#textdomain wesnoth
|
||||
#textdomain wesnoth-ai
|
||||
|
||||
#define RCA_STAGE
|
||||
# The standard RCA stage with its candidate actions; same for all Micro AIs
|
||||
|
|
|
@ -845,7 +845,7 @@ def local_sanity_check(filename, nav, key, prefix, value, comment):
|
|||
if m and not m.group(1):
|
||||
print errlead + 'translatability mark before non-string'
|
||||
# Most tags are not allowed with [part]
|
||||
if "[part]" in ancestors and parent not in ("[part]", "[image]", "[insert_tag]", "[if]", "[then]", "[else]", "[switch]", "[case]", "[variable]", "[deprecated_message]"):
|
||||
if "[part]" in ancestors and parent not in ("[part]", "[image]", "[insert_tag]", "[if]", "[then]", "[else]", "[switch]", "[case]", "[variable]", "[deprecated_message]") and not parent.startswith("#"):
|
||||
print errlead + '%s not permitted within [part] tag' % parent
|
||||
# Most tags are not permitted inside [if]
|
||||
if len(ancestors) >= 2 and ancestors[-1] == "[if]":
|
||||
|
|
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 127 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 146 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 156 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 1,021 B |
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 1,013 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 182 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 178 B After Width: | Height: | Size: 1,020 B |
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 155 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 122 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 156 B After Width: | Height: | Size: 1,017 B |
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 117 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 180 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 179 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 160 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 137 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 153 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 144 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 123 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 157 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 143 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 124 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 144 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 145 B After Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 121 B After Width: | Height: | Size: 1 KiB |