#textdomain wesnoth-ai
[test]
id=wolves
name= _ "Wolves"
next_scenario=micro_ai_test
map_data="{ai/micro_ais/maps/animals.map}"
{DEFAULT_SCHEDULE}
turns=-1
victory_when_enemies_defeated=no
[side]
side=1
controller=human
hidden=no
name=Rutburt
id=Rutburt
type=Outlaw
max_moves=99
side=1
persistent=no
team_name=humans
user_team_name= _ "Humans"
canrecruit=yes
recruit=Ruffian,Footpad,Thug,Poacher
gold=0
[/side]
[side]
side=2
controller=ai
no_leader=yes
defeat_condition=no_units_left
persistent=no
team_name=wolves
user_team_name= _ "team_name^Wolves"
gold=0
income=-2
[/side]
[side]
side=3
controller=ai
no_leader=yes
defeat_condition=no_units_left
persistent=no
team_name=wolves3
user_team_name= _ "More Wolves"
gold=0
income=-3
[/side]
[side] # This side is only here because we need one persistent side for the game to go on
side=4
controller=null
persistent=yes
save_id=Grnk
hidden=yes
[/side]
# Put all the units and markers out there
[event]
name=prestart
{VARIABLE scenario_name wolves}
{SCATTER_UNITS 11 "Wolf" 1 (
x=1-30
y=1-33
) (
side=2
random_traits=yes
)}
{SCATTER_UNITS 10 "Wolf" 1 (
x=25-57
y=1-33
) (
side=3
random_traits=yes
)}
# The right-click menu items
[set_menu_item]
id=m01_end_wolves
description= _ "End Scenario"
image=items/ring-red.png~CROP(26,26,20,20)
[show_if]
{VARIABLE_CONDITIONAL scenario_name equals wolves}
[/show_if]
[command]
{MESSAGE narrator "wesnoth-icon.png" "" _"Well, that was that."}
# So that game goes on to next scenario
[modify_side]
side=4
controller=human
[/modify_side]
[endlevel]
result=victory
bonus=no
carryover_percentage=0
carryover_report=no
linger_mode=no
[/endlevel]
[/command]
[/set_menu_item]
[set_menu_item]
id=m02_new_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}
[/show_if]
[command]
{GENERIC_UNIT 1 Peasant $x1 $y1}
[/command]
[/set_menu_item]
[set_menu_item]
id=m03_new_wolf2
description= _ "Place Side 2 Wolf"
image=units/monsters/wolf.png~CROP(40,29,24,24)
[show_if]
{VARIABLE_CONDITIONAL scenario_name equals wolves}
[/show_if]
[command]
{GENERIC_UNIT 2 Wolf $x1 $y1}
[/command]
[/set_menu_item]
[set_menu_item]
id=m04_new_wolf3
description= _ "Place Side 3 Wolf"
image=units/monsters/wolf.png~CROP(40,29,24,24)
[show_if]
{VARIABLE_CONDITIONAL scenario_name equals wolves}
[/show_if]
[command]
{GENERIC_UNIT 3 Wolf $x1 $y1}
[/command]
[/set_menu_item]
[set_menu_item]
id=m05_kill_unit
description= _ "Kill Unit under Cursor"
image=items/potion-poison.png~CROP(24,29,24,24)
[show_if]
{VARIABLE_CONDITIONAL scenario_name equals wolves}
[/show_if]
[command]
[kill]
x,y=$x1,$y1
[/kill]
[/command]
[/set_menu_item]
# Set up the wolves_multipacks micro AI for side 2
[micro_ai]
side=2
ai_type=wolves_multipacks
action=add
show_pack_number=yes
pack_size=4
[/micro_ai]
# Set up the wolves_multipacks micro AI for side 3
[micro_ai]
side=3
ai_type=wolves_multipacks
action=add
show_pack_number=yes
[/micro_ai]
[/event]
[event]
name=start
{MESSAGE narrator "wesnoth-icon.png" "" _"This scenario features a different kind of wolf behavior from 'Animals'. First, there can be an arbitrary number of wolf packs and the pack size on each side is a free parameter (set to 3 for Side 2 and 4 for Side 3 in this scenario). At the beginning of the scenario, close wolves are grouped into packs in a semi-methodical way. Wolves of the same pack begin by joining each other on the map. After that, they stay together until only one wolf is left, which then tries to join up with an incomplete pack or with other single wolves. Individual wolves entering the map during the scenario behave in that way as well.
Second, wolves do not actively hunt here. For the most part they just wander (often long distance). However, the pack ferociously (and without regard for its own health) attacks any enemy units that come into range, as long as that does not mean separating the pack by more than a few hexes. Staying together, or joining with a new wolf assigned to the pack, is the only thing that takes priority over satisfying the wolves' thirst for blood.
To emphasize which wolf belongs to which pack, the pack number will be displayed below each wolf in this scenario once the AI takes control of a side the first time."}
[message]
speaker=narrator
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.
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 Micro AI wiki page at http://wiki.wesnoth.org/Micro_AIs for more information." # wmllint: no spellcheck
# wmllint: unbalanced-off
[option]
message= _ "I'll just watch the two wolf sides."
[command]
[modify_side]
side=1
controller=null
hidden=yes
[/modify_side]
[kill]
side=1
[/kill]
[/command]
[/option]
[option]
message= _ "I want to have control of Side 1."
[/option]
[/message]
[objectives]
side=1
summary= _ "Watch the wolves move around and fight each other"
[objective]
description= _ "No wolves left on one side"
condition=win
[/objective]
[objective]
description= _ "Use right-click option"
condition=win
[/objective]
[objective]
description= _ "Death of Rutburt"
condition=lose
[/objective]
[note]
description= _ "Check out the right-click menu options for additional actions"
[/note]
[/objectives]
[/event]
# Stop if this was the last death on this side
[event]
name=die
first_time_only=no
[if]
[not]
[have_unit]
count=1-9999
side=$unit.side
[/have_unit]
[/not]
[then]
{MESSAGE narrator "wesnoth-icon.png" "" _"Well, that was that."}
# So that game goes on to next scenario
[modify_side]
side=4
controller=human
[/modify_side]
[endlevel]
result=victory
bonus=no
carryover_percentage=0
carryover_report=no
linger_mode=no
[/endlevel]
[/then]
[/if]
[/event]
[/test]