mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-16 10:20:30 +00:00
LoW::2: dwarven ai changes
This commit is contained in:
parent
e5e6f349cf
commit
f57c05c867
@ -54,7 +54,9 @@
|
||||
{RECALL_LOYALS}
|
||||
# wmllint: recognize Landar
|
||||
{CHECK_LANDAR}
|
||||
|
||||
[/event]
|
||||
|
||||
### /Kalenz'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]
|
||||
{AI_ASPECT caution 0.5}
|
||||
[aspect]
|
||||
id=avoid
|
||||
[facet]
|
||||
id=stay_in_own_land
|
||||
[value]
|
||||
{NOT_OLURFS_LAND}
|
||||
[/value]
|
||||
[/facet]
|
||||
[/aspect]
|
||||
[/ai]
|
||||
[/side]
|
||||
#wmllint: validate-on
|
||||
@ -134,7 +127,7 @@
|
||||
|
||||
[message]
|
||||
id=Olurf
|
||||
message= _ "Those stinking trolls ha' stepped on OUR land! Attack!"
|
||||
message= _ "Those stinking trolls ha' stepped on OUR land!"
|
||||
[/message]
|
||||
|
||||
[if]
|
||||
@ -148,34 +141,45 @@
|
||||
side=2
|
||||
team_name=dwarves
|
||||
[/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]
|
||||
[else]
|
||||
[modify_side]
|
||||
side=2
|
||||
team_name=kalenz
|
||||
[/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]
|
||||
[/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]
|
||||
|
||||
# Elves have stepped on Olurf's land.
|
||||
@ -186,9 +190,10 @@
|
||||
side=1
|
||||
{OLURFS_LAND}
|
||||
[/filter]
|
||||
|
||||
[message]
|
||||
id=Olurf
|
||||
message= _ "Those lying elves have stepped on OUR land! Attack!"
|
||||
message= _ "Those lying elves have stepped on OUR land!"
|
||||
[/message]
|
||||
|
||||
[store_side]
|
||||
@ -206,39 +211,225 @@
|
||||
side=2
|
||||
team_name=dwarves
|
||||
[/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]
|
||||
[else]
|
||||
[modify_side]
|
||||
side=2
|
||||
team_name=trolls
|
||||
[/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]
|
||||
[/if]
|
||||
{CLEAR_VARIABLE olurf_side}
|
||||
{VARIABLE offended_by_elves yes}
|
||||
|
||||
[modify_ai]
|
||||
side=2
|
||||
action=delete
|
||||
path=aspect['avoid'].facet['stay_in_own_land']
|
||||
[/modify_ai]
|
||||
[/event]
|
||||
|
||||
# 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]
|
||||
side=2
|
||||
action=add
|
||||
path=goal
|
||||
path=aspect['avoid'].facet
|
||||
[cfg]
|
||||
id=kill_elves
|
||||
[criteria]
|
||||
side=1
|
||||
[/criteria]
|
||||
value=1.5
|
||||
id="stay_in_own_land"
|
||||
[value]
|
||||
{NOT_OLURFS_LAND}
|
||||
[/value]
|
||||
[/cfg]
|
||||
[/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]
|
||||
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
|
||||
|
||||
[event]
|
||||
@ -338,6 +529,11 @@
|
||||
[/message]
|
||||
|
||||
{HIGHLIGHT_IMAGE 18 37 scenery/signpost.png ()}
|
||||
|
||||
[fire_event]
|
||||
name=dwarves_watch_the_show
|
||||
[/fire_event]
|
||||
|
||||
[/event]
|
||||
|
||||
[event]
|
||||
|
Loading…
x
Reference in New Issue
Block a user