LoW::2: dwarven ai changes

This commit is contained in:
Iurii Chernyi 2009-08-25 00:19:48 +00:00
parent e5e6f349cf
commit f57c05c867

View File

@ -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]