mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-16 18:31:32 +00:00
LoW::2: dwarven ai changes
This commit is contained in:
parent
e5e6f349cf
commit
f57c05c867
@ -54,7 +54,9 @@
|
|||||||
{RECALL_LOYALS}
|
{RECALL_LOYALS}
|
||||||
# wmllint: recognize Landar
|
# wmllint: recognize Landar
|
||||||
{CHECK_LANDAR}
|
{CHECK_LANDAR}
|
||||||
|
|
||||||
[/event]
|
[/event]
|
||||||
|
|
||||||
### /Kalenz's code ###
|
### /Kalenz's code ###
|
||||||
|
|
||||||
### Olurf's Code ###
|
### Olurf's Code ###
|
||||||
@ -84,15 +86,6 @@
|
|||||||
{ai/aliases/stable_singleplayer.cfg} #note that this MUST be given OUTSIDE the [ai] tag
|
{ai/aliases/stable_singleplayer.cfg} #note that this MUST be given OUTSIDE the [ai] tag
|
||||||
[ai]
|
[ai]
|
||||||
{AI_ASPECT caution 0.5}
|
{AI_ASPECT caution 0.5}
|
||||||
[aspect]
|
|
||||||
id=avoid
|
|
||||||
[facet]
|
|
||||||
id=stay_in_own_land
|
|
||||||
[value]
|
|
||||||
{NOT_OLURFS_LAND}
|
|
||||||
[/value]
|
|
||||||
[/facet]
|
|
||||||
[/aspect]
|
|
||||||
[/ai]
|
[/ai]
|
||||||
[/side]
|
[/side]
|
||||||
#wmllint: validate-on
|
#wmllint: validate-on
|
||||||
@ -134,7 +127,7 @@
|
|||||||
|
|
||||||
[message]
|
[message]
|
||||||
id=Olurf
|
id=Olurf
|
||||||
message= _ "Those stinking trolls ha' stepped on OUR land! Attack!"
|
message= _ "Those stinking trolls ha' stepped on OUR land!"
|
||||||
[/message]
|
[/message]
|
||||||
|
|
||||||
[if]
|
[if]
|
||||||
@ -148,34 +141,45 @@
|
|||||||
side=2
|
side=2
|
||||||
team_name=dwarves
|
team_name=dwarves
|
||||||
[/modify_side]
|
[/modify_side]
|
||||||
|
#ifdef EASY
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_defend_their_territory
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef NORMAL
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_defend_their_territory
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef HARD
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_kill_elves_and_trolls
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
[/then]
|
[/then]
|
||||||
[else]
|
[else]
|
||||||
[modify_side]
|
[modify_side]
|
||||||
side=2
|
side=2
|
||||||
team_name=kalenz
|
team_name=kalenz
|
||||||
[/modify_side]
|
[/modify_side]
|
||||||
|
#ifdef EASY
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_kill_trolls
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef NORMAL
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_kill_trolls
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef HARD
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_kill_trolls
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
[/else]
|
[/else]
|
||||||
[/if]
|
[/if]
|
||||||
|
|
||||||
[modify_ai]
|
|
||||||
side=2
|
|
||||||
action=delete
|
|
||||||
path=aspect['avoid'].facet['stay_in_own_land']
|
|
||||||
[/modify_ai]
|
|
||||||
|
|
||||||
[modify_ai]
|
|
||||||
side=2
|
|
||||||
action=add
|
|
||||||
path=goal
|
|
||||||
[cfg]
|
|
||||||
id=kill_trolls
|
|
||||||
[criteria]
|
|
||||||
side=3
|
|
||||||
[/criteria]
|
|
||||||
value=1.5
|
|
||||||
[/cfg]
|
|
||||||
[/modify_ai]
|
|
||||||
|
|
||||||
[/event]
|
[/event]
|
||||||
|
|
||||||
# Elves have stepped on Olurf's land.
|
# Elves have stepped on Olurf's land.
|
||||||
@ -186,9 +190,10 @@
|
|||||||
side=1
|
side=1
|
||||||
{OLURFS_LAND}
|
{OLURFS_LAND}
|
||||||
[/filter]
|
[/filter]
|
||||||
|
|
||||||
[message]
|
[message]
|
||||||
id=Olurf
|
id=Olurf
|
||||||
message= _ "Those lying elves have stepped on OUR land! Attack!"
|
message= _ "Those lying elves have stepped on OUR land!"
|
||||||
[/message]
|
[/message]
|
||||||
|
|
||||||
[store_side]
|
[store_side]
|
||||||
@ -206,39 +211,225 @@
|
|||||||
side=2
|
side=2
|
||||||
team_name=dwarves
|
team_name=dwarves
|
||||||
[/modify_side]
|
[/modify_side]
|
||||||
|
#ifdef EASY
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_defend_their_territory
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef NORMAL
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_defend_their_territory
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef HARD
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_kill_elves_and_trolls
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
|
||||||
[/then]
|
[/then]
|
||||||
[else]
|
[else]
|
||||||
[modify_side]
|
[modify_side]
|
||||||
side=2
|
side=2
|
||||||
team_name=trolls
|
team_name=trolls
|
||||||
[/modify_side]
|
[/modify_side]
|
||||||
|
#ifdef EASY
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_defend_their_territory
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef NORMAL
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_kill_elves
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
#ifdef HARD
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_kill_elves
|
||||||
|
[/fire_event]
|
||||||
|
#endif
|
||||||
|
|
||||||
[/else]
|
[/else]
|
||||||
[/if]
|
[/if]
|
||||||
{CLEAR_VARIABLE olurf_side}
|
{CLEAR_VARIABLE olurf_side}
|
||||||
{VARIABLE offended_by_elves yes}
|
{VARIABLE offended_by_elves yes}
|
||||||
|
|
||||||
[modify_ai]
|
[/event]
|
||||||
side=2
|
|
||||||
action=delete
|
|
||||||
path=aspect['avoid'].facet['stay_in_own_land']
|
|
||||||
[/modify_ai]
|
|
||||||
|
|
||||||
|
# start dwarven ai code
|
||||||
|
|
||||||
|
# TODO: AI C++ : add engine support for path=goal[*] for mass deleting
|
||||||
|
# TODO: AI C++ : consider adding the way to mass-delete all 'extra' stuff (via tags)
|
||||||
|
#define CLEAN_AI SIDE
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=delete
|
||||||
|
path=goal['kill_elves']
|
||||||
|
[/modify_ai]
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=delete
|
||||||
|
path=goal['kill_trolls']
|
||||||
|
[/modify_ai]
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=delete
|
||||||
|
path=goal['kill_trespassers']
|
||||||
|
[/modify_ai]
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=delete
|
||||||
|
path=stage['retreat_to_olurfs_land']
|
||||||
|
[/modify_ai]
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=delete
|
||||||
|
path=aspect['avoid'].facet['stay_in_own_land']
|
||||||
|
[/modify_ai]
|
||||||
|
#enddef
|
||||||
|
|
||||||
|
#define ADD_AVOID_STAY_AT_OLURFS_LAND
|
||||||
[modify_ai]
|
[modify_ai]
|
||||||
side=2
|
side=2
|
||||||
action=add
|
action=add
|
||||||
path=goal
|
path=aspect['avoid'].facet
|
||||||
[cfg]
|
[cfg]
|
||||||
id=kill_elves
|
id="stay_in_own_land"
|
||||||
[criteria]
|
[value]
|
||||||
side=1
|
{NOT_OLURFS_LAND}
|
||||||
[/criteria]
|
[/value]
|
||||||
value=1.5
|
|
||||||
[/cfg]
|
[/cfg]
|
||||||
[/modify_ai]
|
[/modify_ai]
|
||||||
|
#enddef
|
||||||
|
|
||||||
|
#define ADD_GOAL_KILL_ELVES SIDE
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=add
|
||||||
|
path=goal
|
||||||
|
[cfg]
|
||||||
|
id=kill_elves
|
||||||
|
[criteria]
|
||||||
|
side=1
|
||||||
|
[/criteria]
|
||||||
|
value=1.5
|
||||||
|
[/cfg]
|
||||||
|
[/modify_ai]
|
||||||
|
#enddef
|
||||||
|
|
||||||
|
#define ADD_GOAL_KILL_TROLLS SIDE
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=add
|
||||||
|
path=goal
|
||||||
|
[cfg]
|
||||||
|
id=kill_trolls
|
||||||
|
[criteria]
|
||||||
|
side=3
|
||||||
|
[/criteria]
|
||||||
|
value=1.5
|
||||||
|
[/cfg]
|
||||||
|
[/modify_ai]
|
||||||
|
#enddef
|
||||||
|
|
||||||
|
#define ADD_GOAL_KILL_TRESPASSERS SIDE
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=add
|
||||||
|
path=goal
|
||||||
|
[cfg]
|
||||||
|
id=kill_trespassers
|
||||||
|
[criteria]
|
||||||
|
[not]
|
||||||
|
side={SIDE}
|
||||||
|
[/not]
|
||||||
|
[/criteria]
|
||||||
|
value=1.5
|
||||||
|
[/cfg]
|
||||||
|
[/modify_ai]
|
||||||
|
#enddef
|
||||||
|
|
||||||
|
#define ADD_STAGE_RETREAT_TO_OLURFS_LAND SIDE
|
||||||
|
[modify_ai]
|
||||||
|
side={SIDE}
|
||||||
|
action=add
|
||||||
|
path=stage[0]
|
||||||
|
[cfg]
|
||||||
|
id=retreat_to_olurfs_land
|
||||||
|
name=testing_ai_default::candidate_action_evaluation_loop
|
||||||
|
#TODO: add [candidate_action]s to make the retreat work
|
||||||
|
[/cfg]
|
||||||
|
[/modify_ai]
|
||||||
|
#enddef
|
||||||
|
|
||||||
|
[event]
|
||||||
|
name=dwarves_watch_the_show
|
||||||
|
first_time_only=no
|
||||||
|
{CLEAN_AI 2}
|
||||||
|
{ADD_AVOID_STAY_AT_OLURFS_LAND}
|
||||||
|
[message]
|
||||||
|
id=Olurf
|
||||||
|
message= _ "Looks like it would be fun to watch... Just take care to not step on our territory" #TODO: text
|
||||||
|
[/message]
|
||||||
|
|
||||||
[/event]
|
[/event]
|
||||||
|
|
||||||
|
[event]
|
||||||
|
name=dwarves_kill_elves
|
||||||
|
first_time_only=no
|
||||||
|
{CLEAN_AI 2}
|
||||||
|
{ADD_GOAL_KILL_ELVES 2}
|
||||||
|
[message]
|
||||||
|
id=Olurf
|
||||||
|
message= _ "Death to elves!" #TODO: text
|
||||||
|
[/message]
|
||||||
|
[/event]
|
||||||
|
|
||||||
|
[event]
|
||||||
|
name=dwarves_kill_trolls
|
||||||
|
first_time_only=no
|
||||||
|
{CLEAN_AI 2}
|
||||||
|
{ADD_GOAL_KILL_TROLLS 2}
|
||||||
|
[message]
|
||||||
|
id=Olurf
|
||||||
|
message= _ "Death to trolls!" #TODO: text
|
||||||
|
[/message]
|
||||||
|
[/event]
|
||||||
|
|
||||||
|
[event]
|
||||||
|
name=dwarves_kill_elves_and_trolls
|
||||||
|
first_time_only=no
|
||||||
|
{CLEAN_AI 2}
|
||||||
|
{ADD_GOAL_KILL_ELVES 2}
|
||||||
|
{ADD_GOAL_KILL_TROLLS 2}
|
||||||
|
[message]
|
||||||
|
id=Olurf
|
||||||
|
message= _ "Kill them all!" #TODO: text
|
||||||
|
[/message]
|
||||||
|
[/event]
|
||||||
|
|
||||||
|
[event]
|
||||||
|
name=dwarves_defend_their_territory
|
||||||
|
first_time_only=no
|
||||||
|
{CLEAN_AI 2}
|
||||||
|
{ADD_AVOID_STAY_AT_OLURFS_LAND}
|
||||||
|
{ADD_GOAL_KILL_TRESPASSERS 2}
|
||||||
|
{ADD_STAGE_RETREAT_TO_OLURFS_LAND 2}
|
||||||
|
[message]
|
||||||
|
id=Olurf
|
||||||
|
message= _ "Defend our territory! Slay all trespassers!" #TODO: text
|
||||||
|
[/message]
|
||||||
|
[/event]
|
||||||
|
|
||||||
|
#undef CLEAN_AI
|
||||||
|
#undef ADD_AVOID_STAY_AT_OLURFS_LAND
|
||||||
|
#undef ADD_STAGE_RETREAT_TO_OLURFS_LAND
|
||||||
|
#undef ADD_GOAL_KILL_ELVES
|
||||||
|
#undef ADD_GOAL_KILL_TROLLS
|
||||||
|
#undef ADD_GOAL_KILL_TRESPASSERS
|
||||||
|
|
||||||
|
# end dwarven ai code
|
||||||
|
|
||||||
#undef NOT_OLURFS_LAND
|
#undef NOT_OLURFS_LAND
|
||||||
|
|
||||||
[event]
|
[event]
|
||||||
@ -338,6 +529,11 @@
|
|||||||
[/message]
|
[/message]
|
||||||
|
|
||||||
{HIGHLIGHT_IMAGE 18 37 scenery/signpost.png ()}
|
{HIGHLIGHT_IMAGE 18 37 scenery/signpost.png ()}
|
||||||
|
|
||||||
|
[fire_event]
|
||||||
|
name=dwarves_watch_the_show
|
||||||
|
[/fire_event]
|
||||||
|
|
||||||
[/event]
|
[/event]
|
||||||
|
|
||||||
[event]
|
[event]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user