Micro AIs: consistently use underscores in ids and files names, Part 2
For some reason these were missed in the previous commit.
This commit is contained in:
parent
5e676307dc
commit
447cbc0ecb
5 changed files with 0 additions and 1438 deletions
|
@ -1,206 +0,0 @@
|
|||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=bottleneck-defense
|
||||
name= _ "Bottleneck Defense"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/bottleneck-defense.map}"
|
||||
|
||||
{DEFAULT_SCHEDULE}
|
||||
turns=-1
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
[side]
|
||||
side=1
|
||||
controller=ai
|
||||
id=LuaAI
|
||||
type=Lieutenant
|
||||
persistent=no
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Spearman,Bowman
|
||||
gold=125
|
||||
|
||||
[unit]
|
||||
type=White Mage
|
||||
x,y=23,6
|
||||
[/unit]
|
||||
|
||||
{MICRO_AI_BOTTLENECK_DEFENSE}
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
side=2
|
||||
controller=ai
|
||||
type=Orcish Leader
|
||||
id=Big Bad Orc
|
||||
name= _ "Big Bad Orc"
|
||||
persistent=no
|
||||
|
||||
canrecruit=yes
|
||||
recruit=Orcish Archer,Orcish Grunt
|
||||
gold=400
|
||||
|
||||
[ai]
|
||||
aggression=1.0
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side] # This side is only here because we need one persistent side for the game to go on
|
||||
side=3
|
||||
controller=null
|
||||
persistent=yes
|
||||
save_id=Grnk
|
||||
hidden=yes
|
||||
[/side]
|
||||
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
{VARIABLE scenario_name bottleneck-defense}
|
||||
|
||||
# Set up the Bottleneck Defense Micro AI
|
||||
[micro_ai]
|
||||
side=1
|
||||
ai_type=bottleneck_defense
|
||||
action=add
|
||||
|
||||
x=14,14,14
|
||||
y= 7, 9, 8
|
||||
enemy_x=13,13
|
||||
enemy_y= 8, 9
|
||||
|
||||
healer_x=14,14,15,15
|
||||
healer_y= 7, 9, 8, 9
|
||||
leadership_x=14,14,15,15
|
||||
leadership_y= 7, 9, 9 ,8
|
||||
active_side_leader=yes
|
||||
[/micro_ai]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
{MESSAGE LuaAI "" "" _"All right, chaps. Those orcs need to be stopped."}
|
||||
{STORE_UNIT_VAR (id=Big Bad Orc) profile profile}
|
||||
{MESSAGE (Big Bad Orc) "$profile~FL()~RIGHT()" "" _"They there! We them get!"}
|
||||
{CLEAR_VARIABLE profile}
|
||||
# wmllint: unbalanced-on
|
||||
{MESSAGE LuaAI "" "" _"We need to hold that pass for as long as we can. Let's put our strongest fighters on the front line and bring injured units to the back for healing. If we're careful enough, we might even win this battle. I'll join you as soon as I'm done recruiting and do my share of the fighting.
|
||||
|
||||
Note: The Bottleneck Defense 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
|
||||
|
||||
[message]
|
||||
speaker=narrator
|
||||
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?"
|
||||
[option]
|
||||
message= _ "<span font='16'>I'll watch the two AIs fight it out.</span>"
|
||||
[/option]
|
||||
[option]
|
||||
message= _ "<span font='16'>I'll play the orcs.</span>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=2
|
||||
controller=human
|
||||
[/modify_side]
|
||||
[/command]
|
||||
[/option]
|
||||
[/message]
|
||||
|
||||
[objectives]
|
||||
summary= _ "Take the pass"
|
||||
[objective]
|
||||
description= _ "Defeat all humans"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Big Bad Orc"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Only one orc remains"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# White Mage has to hang out at keep for one turn
|
||||
[event]
|
||||
name=side 1 turn 1 refresh
|
||||
|
||||
{MODIFY_UNIT (type=White Mage) moves 0}
|
||||
[/event]
|
||||
|
||||
# When leader dies: message, then keep fighting
|
||||
[event]
|
||||
name=last_breath
|
||||
[filter]
|
||||
id=LuaAI
|
||||
[/filter]
|
||||
|
||||
[if]
|
||||
[have_unit]
|
||||
side=1
|
||||
[/have_unit]
|
||||
[then]
|
||||
{MESSAGE LuaAI "" "" _"I may have fallen, but we will continue to defend the pass to the last man!"}
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# When the last unit on one side dies, end the scenario
|
||||
[event]
|
||||
name=die
|
||||
first_time_only=no
|
||||
|
||||
[if]
|
||||
[not] # If all pass defenders have died
|
||||
[have_unit]
|
||||
side=1
|
||||
[/have_unit]
|
||||
[/not]
|
||||
[or] # or if all orcs (except their leader) have died
|
||||
[have_unit]
|
||||
side=2
|
||||
count=1
|
||||
[/have_unit]
|
||||
[/or]
|
||||
[then]
|
||||
[kill]
|
||||
id=$unit.id
|
||||
[/kill]
|
||||
|
||||
# So that game goes on to next scenario
|
||||
[modify_side]
|
||||
side=3
|
||||
controller=human
|
||||
[/modify_side]
|
||||
|
||||
{MESSAGE narrator "wesnoth-icon.png" "" _"Well, that was that."}
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
[/endlevel]
|
||||
[/then]
|
||||
[/if]
|
||||
[/event]
|
||||
|
||||
# Spearmen only advance to Javelineers
|
||||
[event]
|
||||
name=recruit
|
||||
first_time_only=no
|
||||
[filter]
|
||||
type=Spearman
|
||||
[/filter]
|
||||
|
||||
{MODIFY_UNIT id=$unit.id advances_to Javelineer}
|
||||
[/event]
|
||||
[/test]
|
|
@ -1,184 +0,0 @@
|
|||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=hang-out
|
||||
name= _ "Hang Out"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{multiplayer/maps/4p_Castle_Hopping_Isle.map}"
|
||||
|
||||
{DEFAULT_SCHEDULE}
|
||||
turns=-1
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
[side]
|
||||
side=1
|
||||
controller=ai
|
||||
id=Bad Outlaw
|
||||
type=Outlaw
|
||||
x,y=2,19
|
||||
persistent=no
|
||||
|
||||
team_name=Outlaw
|
||||
user_team_name= _ "team_name^Bad Outlaw"
|
||||
recruit=Footpad
|
||||
|
||||
gold=200
|
||||
|
||||
[ai]
|
||||
version=10710
|
||||
[engine]
|
||||
name="lua"
|
||||
code= <<
|
||||
local ai = ...
|
||||
local engine = {}
|
||||
engine = wesnoth.require("ai/micro_ais/ais/mai_hang_out_engine.lua").init(ai, engine)
|
||||
engine = wesnoth.require("ai/micro_ais/ais/mai_messenger_escort_engine.lua").init(ai, engine)
|
||||
return engine
|
||||
>>
|
||||
[/engine]
|
||||
{RCA_STAGE}
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
side=2
|
||||
controller=human
|
||||
id=Good Bandit
|
||||
type=Bandit
|
||||
x,y=16,2
|
||||
persistent=no
|
||||
|
||||
team_name=Bandit
|
||||
user_team_name= _ "team_name^Good Bandit"
|
||||
recruit=Thief
|
||||
|
||||
gold=200
|
||||
[/side]
|
||||
|
||||
[side] # This side is only here because we need one persistent side for the game to go on
|
||||
side=3
|
||||
controller=null
|
||||
persistent=yes
|
||||
save_id=Grnk
|
||||
hidden=yes
|
||||
[/side]
|
||||
|
||||
# Prestart actions
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
{VARIABLE scenario_name hang-out}
|
||||
|
||||
# Goal signpost for Rossauba
|
||||
{PLACE_IMAGE "scenery/signpost.png" 36 19}
|
||||
{SET_LABEL 36 19 _"Outlaw moves here"}
|
||||
|
||||
# Change some of the terrain for this demonstration
|
||||
[terrain]
|
||||
x=4,15,23
|
||||
y=19,20,20
|
||||
terrain=Aa
|
||||
[/terrain]
|
||||
[terrain]
|
||||
x=0,1
|
||||
y=20-22,21-22
|
||||
terrain=Mm
|
||||
[/terrain]
|
||||
[terrain]
|
||||
x=18,20
|
||||
y=19,19
|
||||
terrain=Wwf
|
||||
[/terrain]
|
||||
[terrain]
|
||||
x,y=21-22,16-17
|
||||
terrain=Ww
|
||||
[/terrain]
|
||||
|
||||
[micro_ai]
|
||||
side=1
|
||||
ai_type=hang_out
|
||||
action=add
|
||||
|
||||
[avoid]
|
||||
terrain=C*,H*,M*,A*,S*,*^F*
|
||||
[/avoid]
|
||||
[mobilize_condition]
|
||||
[have_unit]
|
||||
side=1
|
||||
count=7-99
|
||||
[/have_unit]
|
||||
[/mobilize_condition]
|
||||
[/micro_ai]
|
||||
|
||||
[micro_ai]
|
||||
side=1
|
||||
ai_type=messenger_escort
|
||||
action=add
|
||||
|
||||
id=Bad Outlaw
|
||||
ca_score=165000
|
||||
waypoint_x=16,22,36
|
||||
waypoint_y=19,19,19
|
||||
[/micro_ai]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
{MESSAGE (Good Bandit) "" "" _"That outlaw over there is going to run for the keep in the southeast. He's only going to recruit for three rounds before he'll start moving and he and his footpads are much faster than we are. Let's make haste or we'll never catch him.
|
||||
|
||||
Note: This scenario uses a combination of two Micro AIs, the Hang Out Micro AI which makes the Side 2 units remain around the keep for two turns (while moving off castle tiles to allow for recruiting) and the Messenger Escort AI which takes over after that. 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."}
|
||||
|
||||
[objectives]
|
||||
summary= _ "Get into the outlaw's way before he can make it to the south-eastern keep"
|
||||
[objective]
|
||||
description= _ "Death of Bad Outlaw"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Good Bandit"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Bad Outlaw makes it to the signpost"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=die
|
||||
[filter]
|
||||
id=Bad Outlaw
|
||||
[/filter]
|
||||
|
||||
{MESSAGE (Good Bandit) "" "" _"We got him! Now whatever it is we are fighting for is safe."}
|
||||
|
||||
# So that game goes on to next scenario
|
||||
[modify_side]
|
||||
side=3
|
||||
controller=human
|
||||
[/modify_side]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
id=Bad Outlaw
|
||||
x,y=36,19
|
||||
[/filter]
|
||||
|
||||
{MESSAGE (Bad Outlaw) "" "" _"I made it! Now we can keep fighting for whatever it is that we are fighting for."}
|
||||
[endlevel]
|
||||
result=defeat
|
||||
[/endlevel]
|
||||
[/event][/test]
|
|
@ -1,202 +0,0 @@
|
|||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=messenger-escort
|
||||
name= _ "Messenger Escort"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/messenger-escort.map}"
|
||||
|
||||
{DEFAULT_SCHEDULE}
|
||||
turns=-1
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
[side]
|
||||
side=1
|
||||
controller=human
|
||||
name= _ "Vanak"
|
||||
id=Vanak
|
||||
type=Orcish Ruler
|
||||
persistent=no
|
||||
|
||||
team_name=Vanak
|
||||
user_team_name=_"Orcs"
|
||||
recruit=Orcish Grunt,Orcish Archer,Orcish Assassin,Wolf Rider
|
||||
|
||||
gold=100
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
side=2
|
||||
controller=ai
|
||||
no_leader=yes
|
||||
persistent=no
|
||||
|
||||
team_name=messenger
|
||||
user_team_name= _ "Messenger"
|
||||
|
||||
gold=0
|
||||
income=-2
|
||||
|
||||
{MICRO_AI_MESSENGER_ESCORT}
|
||||
[/side]
|
||||
|
||||
[side] # This side is only here because we need one persistent side for the game to go on
|
||||
side=3
|
||||
controller=null
|
||||
persistent=yes
|
||||
save_id=Grnk
|
||||
hidden=yes
|
||||
[/side]
|
||||
|
||||
# Prestart actions
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
{VARIABLE scenario_name messenger-escort}
|
||||
|
||||
[micro_ai]
|
||||
side=2
|
||||
ai_type=messenger_escort
|
||||
action=add
|
||||
|
||||
id=messenger
|
||||
waypoint_x=31,24,27,28
|
||||
waypoint_y=20,14,7,1
|
||||
[/micro_ai]
|
||||
|
||||
# Put the messenger side units out there
|
||||
[unit]
|
||||
type=Dragoon
|
||||
id=messenger
|
||||
name= _ "Messenger"
|
||||
side=2
|
||||
x,y=30,27
|
||||
random_traits=no
|
||||
overlays=misc/hero-icon.png
|
||||
[/unit]
|
||||
{NOTRAIT_UNIT 2 Dragoon 30 26}
|
||||
[unit]
|
||||
type=Cavalryman
|
||||
side=2
|
||||
x,y=29,27
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
[unit]
|
||||
type=Cavalryman
|
||||
side=2
|
||||
x,y=31,27
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
[unit]
|
||||
type=Cavalryman
|
||||
side=2
|
||||
x,y=29,28
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
|
||||
# And the orcs
|
||||
{NOTRAIT_UNIT 1 (Orcish Grunt) 14 18}
|
||||
{NOTRAIT_UNIT 1 (Orcish Archer) 15 19}
|
||||
{NOTRAIT_UNIT 1 (Orcish Grunt) 14 17}
|
||||
|
||||
{NOTRAIT_UNIT 1 (Orcish Archer) 12 19}
|
||||
{NOTRAIT_UNIT 1 (Orcish Archer) 12 20}
|
||||
[unit]
|
||||
type=Wolf Rider
|
||||
side=1
|
||||
x,y=10,20
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
[/modifications]
|
||||
[/unit]
|
||||
|
||||
# waypoints for AI
|
||||
{PLACE_IMAGE "scenery/signpost.png" 31 20}
|
||||
{SET_LABEL 31 20 _"Messanger Waypoint 1"}
|
||||
{PLACE_IMAGE "scenery/signpost.png" 24 14}
|
||||
{SET_LABEL 24 14 _"Messenger Waypoint 2"}
|
||||
{PLACE_IMAGE "scenery/signpost.png" 27 7}
|
||||
{SET_LABEL 27 7 _"Messenger Waypoint 3"}
|
||||
# Goal signpost for AI
|
||||
{PLACE_IMAGE "scenery/signpost.png" 28 1}
|
||||
{SET_LABEL 28 1 _"AI moves Messenger here"}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
{STORE_UNIT_VAR id=Vanak profile profile}
|
||||
{MESSAGE Vanak "$profile~FL()~RIGHT()" "" _"They there! We them get!"}
|
||||
{CLEAR_VARIABLE profile}
|
||||
{MESSAGE messenger "" "" _"Men, I need to get to that signpost in the north, to get the message to our leader. Let's head up there as quickly as we can."}
|
||||
# wmllint: unbalanced-on
|
||||
{MESSAGE narrator "wesnoth-icon.png" _"Notes" _"The Messenger Escort AI will try to move the dragoon messenger to the signpost in the north, while protecting him as well as possible with the other units. Vanak's orcs need to stop him.
|
||||
|
||||
Note that the messenger route is set up through a series of waypoints here simply to demonstrate how to use waypoints. On this map, using only a single waypoint at the end of the route would work just as well (or probably even better).
|
||||
|
||||
Also note that the messenger does not have to get exactly to each signpost (except for the last one), getting close is good enough.
|
||||
|
||||
The Messenger Escort 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
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
[objective]
|
||||
description= _ "Defeat the messenger"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Messenger gets to the signpost"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Vanak"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# When Messenger makes it to the signpost: defeat
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
id=messenger
|
||||
x,y=28,1
|
||||
[/filter]
|
||||
|
||||
{MESSAGE messenger "" "" _"I made it! Now our people will be safe."}
|
||||
[endlevel]
|
||||
result=defeat
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
# When Messenger dies: victory
|
||||
[event]
|
||||
name=last breath
|
||||
[filter]
|
||||
id=messenger
|
||||
[/filter]
|
||||
{MESSAGE messenger "" "" _"Nooo! All is lost. We will never stop the orcs now!"}
|
||||
|
||||
# So that game goes on to next scenario
|
||||
[modify_side]
|
||||
side=3
|
||||
controller=human
|
||||
[/modify_side]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
[/test]
|
|
@ -1,254 +0,0 @@
|
|||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=protect-unit
|
||||
name= _ "Protect Unit"
|
||||
next_scenario=micro_ai_test
|
||||
|
||||
map_data="{ai/micro_ais/maps/protect-unit.map}"
|
||||
|
||||
{DEFAULT_SCHEDULE}
|
||||
turns=-1
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
[side]
|
||||
side=1
|
||||
controller=ai
|
||||
name= _ "Langzhar"
|
||||
id=Langzhar
|
||||
type=Lieutenant
|
||||
persistent=no
|
||||
|
||||
team_name=Langzhar
|
||||
user_team_name= _ "team_name^Langzhar"
|
||||
recruit=Spearman,Bowman
|
||||
|
||||
gold=200
|
||||
|
||||
{MICRO_AI_PROTECT_UNIT}
|
||||
[/side]
|
||||
|
||||
[side]
|
||||
side=2
|
||||
controller=ai
|
||||
name= _ "Koorzhar"
|
||||
id=Koorzhar
|
||||
type=Lieutenant
|
||||
persistent=no
|
||||
|
||||
team_name=Koorzhar
|
||||
user_team_name= _ "team_name^Koorzhar"
|
||||
recruit=Spearman,Bowman
|
||||
|
||||
gold=175
|
||||
|
||||
[ai]
|
||||
[goal]
|
||||
[criteria]
|
||||
id=Rossauba
|
||||
[/criteria]
|
||||
value=100
|
||||
[/goal]
|
||||
[/ai]
|
||||
|
||||
{ai/aliases/stable_singleplayer.cfg}
|
||||
[ai]
|
||||
version=10710
|
||||
[engine]
|
||||
name="lua"
|
||||
code= <<
|
||||
local ai = ...
|
||||
return wesnoth.require("ai/micro_ais/ais/priority_target_engine.lua").init(ai)
|
||||
>>
|
||||
[/engine]
|
||||
[modify_ai]
|
||||
side=2
|
||||
action=add
|
||||
# wmllint: unbalanced-on
|
||||
path=stage[main_loop].candidate_action[]
|
||||
# wmllint: unbalanced-off
|
||||
[candidate_action]
|
||||
engine=lua
|
||||
name=change_attacks_aspect
|
||||
id=change_attacks_aspect
|
||||
max_score=999999
|
||||
evaluation="return (...):change_attacks_aspect('Rossauba')"
|
||||
execution="(...):change_attacks_aspect()"
|
||||
[/candidate_action]
|
||||
[/modify_ai]
|
||||
[/ai]
|
||||
[/side]
|
||||
|
||||
[side] # This side is only here because we need one persistent side for the game to go on
|
||||
side=3
|
||||
controller=null
|
||||
persistent=yes
|
||||
save_id=Grnk
|
||||
hidden=yes
|
||||
[/side]
|
||||
|
||||
# Prestart actions
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
{VARIABLE scenario_name protect-unit}
|
||||
|
||||
[micro_ai]
|
||||
# Required keys of [micro_ai] tag
|
||||
side=1
|
||||
ai_type=protect_unit
|
||||
action=add
|
||||
|
||||
[unit]
|
||||
id=Rossauba
|
||||
goal_x,goal_y=1,1
|
||||
[/unit]
|
||||
[/micro_ai]
|
||||
|
||||
# Put the mage out there
|
||||
[unit]
|
||||
type=Elder Mage
|
||||
id=Rossauba
|
||||
name=Rossauba
|
||||
side=1
|
||||
x,y=20,9
|
||||
upkeep=loyal
|
||||
overlays=misc/hero-icon.png
|
||||
[/unit]
|
||||
|
||||
# Goal signpost for Rossauba
|
||||
{PLACE_IMAGE "scenery/signpost.png" 1 1}
|
||||
{SET_LABEL 1 1 _"Move Rossauba here"}
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
{STORE_UNIT_VAR id=Koorzhar profile profile}
|
||||
{MESSAGE Koorzhar "$profile~FL()~RIGHT()" "" _"There's that traitor wizard. Let's get him."}
|
||||
{CLEAR_VARIABLE profile}
|
||||
{MESSAGE Langzhar "" "" _"Men, you know the deal. We must protect Rossauba under all circumstances. Even my survival is not as important."}
|
||||
{MESSAGE Rossauba "" "" _"That's very kind of you, but ..."}
|
||||
{MESSAGE Langzhar "" "" _"No buts! You stay behind the lines and do not engage in battle unless there is no risk to your life, is that understood? And get to that signpost in the northwest if it is safe."}
|
||||
|
||||
[message]
|
||||
speaker=narrator
|
||||
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 AIs 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 AIs 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>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=1
|
||||
controller=human
|
||||
[/modify_side]
|
||||
[/command]
|
||||
[/option]
|
||||
[option]
|
||||
message= _ "<span font='16'>I'll play Koorzhar's side (to see how Langzhar's units protect Rossauba)</span>"
|
||||
[command]
|
||||
[modify_side]
|
||||
side=2
|
||||
controller=human
|
||||
[/modify_side]
|
||||
[/command]
|
||||
[/option]
|
||||
[/message]
|
||||
|
||||
[objectives]
|
||||
side=1
|
||||
summary= _ "Protect Rossauba while moving him to the signpost"
|
||||
[objective]
|
||||
description= _ "Rossauba makes it to the signpost"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Rossauba"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Langzhar"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
[objectives]
|
||||
side=2
|
||||
summary= _ "Get rid of that traitor wizard Rossauba"
|
||||
[objective]
|
||||
description= _ "Defeat Rossauba"
|
||||
condition=win
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Rossauba makes it to the signpost"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[objective]
|
||||
description= _ "Death of Koorzhar"
|
||||
condition=lose
|
||||
[/objective]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# Delay Rossauba by one turn
|
||||
[event]
|
||||
name=side 1 turn 1 refresh
|
||||
|
||||
{MODIFY_UNIT id=Rossauba moves 0}
|
||||
[/event]
|
||||
|
||||
# All the end scenario events involving Rossauba are treated as victories
|
||||
# (since the player could play either side)
|
||||
# -> only defeat: when side leaders die in human-controlled mode
|
||||
# When Rossauba dies:
|
||||
[event]
|
||||
name=last breath
|
||||
[filter]
|
||||
id=Rossauba
|
||||
[/filter]
|
||||
|
||||
{MESSAGE Rossauba "" "" _"I held out for as long as I could."}
|
||||
[fire_event]
|
||||
name=end_scenario
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
# When Rossauba makes it to the signpost:
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
id=Rossauba
|
||||
x,y=1,1
|
||||
[/filter]
|
||||
|
||||
{MESSAGE Rossauba "" "" _"I made it"}
|
||||
|
||||
[fire_event]
|
||||
name=end_scenario
|
||||
[/fire_event]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=end_scenario
|
||||
# So that game goes on to next scenario
|
||||
[modify_side]
|
||||
side=3
|
||||
controller=human
|
||||
[/modify_side]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
[/test]
|
|
@ -1,592 +0,0 @@
|
|||
#textdomain wesnoth-ai
|
||||
|
||||
[test]
|
||||
id=micro_ai_test
|
||||
name= _ "Micro AI Tests"
|
||||
next_scenario=null
|
||||
|
||||
map_data="{multiplayer/maps/Dark_Forecast.map}"
|
||||
|
||||
{DEFAULT_SCHEDULE}
|
||||
turns=-1
|
||||
victory_when_enemies_defeated=no
|
||||
|
||||
[side]
|
||||
side=1
|
||||
controller=human
|
||||
id=Grnk
|
||||
name= _ "Grnk the Frail"
|
||||
gender=male
|
||||
unrenamable=yes
|
||||
type=Goblin Spearman
|
||||
max_moves=99
|
||||
x,y=13,15
|
||||
|
||||
team_name=Grnk
|
||||
user_team_name= _ "team_name^Grnk"
|
||||
persistent=yes
|
||||
save_id=Grnk
|
||||
|
||||
[modifications]
|
||||
{TRAIT_QUICK}
|
||||
[/modifications]
|
||||
|
||||
village_gold=0
|
||||
{GOLD 24 22 19}
|
||||
income=-2 # No income whatsoever
|
||||
[/side]
|
||||
|
||||
# The labels and signposts to go on to the next scenario
|
||||
[event]
|
||||
name=prestart
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 9 13}
|
||||
{SET_LABEL 9 13 _"Animals"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 10 12}
|
||||
{SET_LABEL 10 12 _"Wolves"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 11 12}
|
||||
{SET_LABEL 11 12 _"Swarm"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 12 11}
|
||||
{SET_LABEL 12 11 _"Dragon"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 13 11}
|
||||
{SET_LABEL 13 11 _"Guardians"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 14 10}
|
||||
{SET_LABEL 14 10 _"Lurkers"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 8 13}
|
||||
{SET_LABEL 8 13 _"Protect Unit"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 8 14}
|
||||
{SET_LABEL 8 14 _"HttT: The Elves Besieged"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 8 15}
|
||||
{SET_LABEL 8 15 _"Bottleneck"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 8 16}
|
||||
{SET_LABEL 8 16 _"Messenger"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 9 17}
|
||||
{SET_LABEL 9 17 _"Patrols"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 10 17}
|
||||
{SET_LABEL 10 17 _"Recruiting"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 11 18}
|
||||
{SET_LABEL 11 18 _"Healers"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 12 18}
|
||||
{SET_LABEL 12 18 _"Goto"}
|
||||
|
||||
{PLACE_IMAGE "scenery/signpost.png" 13 19}
|
||||
{SET_LABEL 13 19 _"Hang Out and Messenger"}
|
||||
|
||||
{VARIABLE scenario_name micro_ai_test}
|
||||
|
||||
# Menu items explaining the different scenarios
|
||||
[set_menu_item]
|
||||
id=m01_menu_bottleneck_defense
|
||||
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
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Bottleneck Defense Micro AI Demo" _"In the Bottleneck Defense Micro AI scenario, a small group of human soldiers is instructed to hold a pass against a large horde of orcs. You can either watch them fight it out against the standard RCA AI or take over the orc side."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m02_swamp_lurkers
|
||||
description= _ "Swamp Lurker Micro AI demo"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[filter_location]
|
||||
x,y=14,10
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Swamp Lurker Micro AI demo" _"Swamp lurkers are dumb, impulse-driven creatures which can move across most terrain, but only stop on swamp. They move individually without any strategy and always attack the weakest enemy within their reach. If no enemy is in reach, the lurker does a random move instead."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m03_guardians
|
||||
description= _ "Guardian Micro AI demo"
|
||||
image=items/buckler.png~CROP(24,24,24,24)
|
||||
[filter_location]
|
||||
x,y=13,11
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Guardian Micro AI demo" _"In 'Guardians', several variations of the standard Wesnoth guardian are shown, including a ""coward"" unit that runs away from any approaching unit (an ""inverse guardian"", in a way)."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m04_patrol
|
||||
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
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Patrol Micro AI demo" _"'Patrols' contains AI modifications for units following patrol routes."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m05_recruiting
|
||||
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
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Recruiting Tests Micro AI demo" _"A simple scenario set up for the sole purpose of testing different recruiting patterns."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m06_protect
|
||||
description= _ "Protect Unit Micro AI demo"
|
||||
image=units/human-magi/red-mage.png~CROP(22,12,24,24)
|
||||
[filter_location]
|
||||
x,y=8,13
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Protect Unit Micro AI Demo" _"This scenario demonstrates one side protecting a wizard while moving him to a goal location. At the same time, the other side is modified to do priority attacks on the wizard, even if a better target (by the default AI criteria) is available. You can watch the two AIs fight it out, or take control of either side to explore how the opposing AI behaves."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m06a_protect
|
||||
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
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"HttT: The Elves Besieged Micro AI demo" _"This is a reenactment of scenario ""The Elves Besieged"" of the mainline campaign ""Heir to the Throne"", just that the AI is playing Konrad's side here. The same algorithm as for scenario ""Protect Unit"" is used."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m07_messenger
|
||||
description= _ "Messenger Escort Micro AI demo"
|
||||
image=units/human-loyalists/cavalryman.png~CROP(33,27,24,24)
|
||||
[filter_location]
|
||||
x,y=8,16
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Messenger Escort Micro AI demo" _"'Messenger Escort' has the AI actively protect a messenger while he makes his way to the edge of the map. The escort will also try to open the path for the messenger if there are enemies in the way."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m08_animals
|
||||
description= _ "Animals Micro AI demo"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[filter_location]
|
||||
x,y=9,13
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Animals Micro AI demo" _"This scenario demonstrates a number of different animals following customized AI behavior, including wolves hunting deer in packs; dogs herding sheep; bears, spiders, yetis, boar and rabbits wandering and hunting/avoiding each other."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m09_wolves
|
||||
description= _ "Wolves Micro AI demo"
|
||||
image=units/monsters/wolf.png~CROP(40,29,24,24)
|
||||
[filter_location]
|
||||
x,y=10,12
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Wolves Micro AI demo" _"Another demonstration of wolves wandering and attacking in packs, with a different behavior from that in 'Animals'."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m10_swarm
|
||||
description= _ "Swarm Micro AI demo"
|
||||
image=units/undead/bat-se-4.png~CROP(24,16,24,24)
|
||||
[filter_location]
|
||||
x,y=11,12
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Swarm Micro AI demo" _"This scenario features bats moving around semi-randomly in a swarm."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m11_dragon
|
||||
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
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Dragon Micro AI demo" _"This scenario features a fire dragon displaying a hunt-and-rest behavior."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m12_healer_support
|
||||
description= _ "Healer support Micro AI demo"
|
||||
image=units/elves-wood/shaman.png~CROP(26,19,24,24)
|
||||
[filter_location]
|
||||
x,y=11,18
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Healer Support Micro AI demo" _"This scenario contains a simple demonstration of setting up the Healer Support Micro AI, which uses the healers of a side to back up injured or threatened units rather than having them participate in combat under all circumstances."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m13_goto
|
||||
description= _ "Goto Micro AI demo"
|
||||
image=units/human-loyalists/spearman.png~CROP(21,16,24,24)
|
||||
[filter_location]
|
||||
x,y=12,18
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Goto Micro AI demo" _"This scenario contains several example usages of the Goto Micro AI, which is a highly configurable method of sending a unit (or units) to a location or set of locations. The units to be moved are defined using a Standard Unit Filter, while the goto locations are given in a Standard Location Filter."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
|
||||
[set_menu_item]
|
||||
id=m14_hangout
|
||||
description= _ "Hang Out Micro AI demo"
|
||||
image=units/human-outlaws/bandit.png~CROP(22,14,24,24)
|
||||
[filter_location]
|
||||
x,y=13,19
|
||||
[/filter_location]
|
||||
[show_if]
|
||||
{VARIABLE_CONDITIONAL scenario_name equals micro_ai_test}
|
||||
[/show_if]
|
||||
[command]
|
||||
{MESSAGE Grnk "" _"Combined Hang Out and Messenger Escort Micro AI demo" _"This scenario is a demonstration of the Hang Out Micro AI which keeps units around a (customizable) location until a (customizable) condition is met. After that the units are released to follow other AI behavior. The scenario also shows how to combine two Micro AIs on the same side by having the Messenger Escort Micro AI take over at that point."}
|
||||
[/command]
|
||||
[/set_menu_item]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=start
|
||||
|
||||
{SCROLL_TO 13 18}
|
||||
|
||||
{MESSAGE Grnk "" "" _"Move me to any of the signposts to go to a Micro AI demonstration.
|
||||
|
||||
Information about each demonstration can be accessed by right-clicking on the respective signpost."}
|
||||
|
||||
[objectives]
|
||||
[objective]
|
||||
description= _ "Move Grnk to one of the signposts"
|
||||
condition=win
|
||||
[/objective]
|
||||
[note]
|
||||
description= _ "Right-click on a signpost to get information about the scenario"
|
||||
[/note]
|
||||
[/objectives]
|
||||
[/event]
|
||||
|
||||
# Events for going on to next scenarios, when Grnk goes to a signpost
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=8,15
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=bottleneck-defense
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=14,10
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=lurkers
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=9,13
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=animals
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=10,12
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=wolves
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=11,12
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=swarm
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=12,11
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=dragon
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=13,11
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=guardians
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=9,17
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=patrols
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=10,17
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=recruiting
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=8,13
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=protect-unit
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=8,14
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=The_Elves_Besieged
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=8,16
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=messenger-escort
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=11,18
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=healer_support
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=12,18
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=goto
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
name=moveto
|
||||
[filter]
|
||||
x,y=13,19
|
||||
[/filter]
|
||||
|
||||
[endlevel]
|
||||
result=victory
|
||||
next_scenario=hang-out
|
||||
bonus=no
|
||||
carryover_percentage=0
|
||||
carryover_report=no
|
||||
linger_mode=no
|
||||
replay_save=no
|
||||
[/endlevel]
|
||||
[/event]
|
||||
[/test]
|
Loading…
Add table
Reference in a new issue