Unit tests for deterministic unit facings
This commit is contained in:
parent
311d7bad80
commit
4d7de12e47
2 changed files with 221 additions and 0 deletions
215
data/test/scenarios/recruit_facing.cfg
Normal file
215
data/test/scenarios/recruit_facing.cfg
Normal file
|
@ -0,0 +1,215 @@
|
|||
#define CHECK_RECRUIT CONTENT
|
||||
[event]
|
||||
name=recruit
|
||||
[lua]
|
||||
code =<<
|
||||
local temp = wesnoth.get_variable("unit")
|
||||
local result = wesnoth.synchronize_choice(
|
||||
function()
|
||||
return { value = temp.facing }
|
||||
end)
|
||||
wesnoth.set_variable("synced_temp", result.value)
|
||||
>>
|
||||
[/lua]
|
||||
{ASSERT ({VARIABLE_CONDITIONAL unit.facing equals $synced_temp})}
|
||||
{CONTENT}
|
||||
[/event]
|
||||
#enddef
|
||||
|
||||
#define CHECK_FACES FACEDIR
|
||||
{CHECK_RECRUIT (
|
||||
{ASSERT ({VARIABLE_CONDITIONAL unit.facing equals {FACEDIR}})}
|
||||
)}
|
||||
#enddef
|
||||
|
||||
#define RECRUIT TYPE TO FROM
|
||||
[do_command]
|
||||
[recruit]
|
||||
type={TYPE}
|
||||
x,y={TO}
|
||||
[from]
|
||||
x,y={FROM}
|
||||
[/from]
|
||||
[/recruit]
|
||||
[/do_command]
|
||||
#enddef
|
||||
|
||||
#define RECRUIT_TEST NAME CONTENT
|
||||
{GENERIC_UNIT_TEST {NAME} (
|
||||
[event]
|
||||
name=start
|
||||
[allow_recruit]
|
||||
side=1
|
||||
type=Spearman
|
||||
[/allow_recruit]
|
||||
[allow_recruit]
|
||||
side,type=2,Orcish Grunt
|
||||
[/allow_recruit]
|
||||
[/event]
|
||||
[event]
|
||||
name=turn refresh
|
||||
first_time_only=no
|
||||
[kill]
|
||||
canrecruit=no
|
||||
[/kill]
|
||||
[/event]
|
||||
{CONTENT}
|
||||
)}
|
||||
#enddef
|
||||
|
||||
{RECRUIT_TEST recruit_facing_enemy_one (
|
||||
[event]
|
||||
name=side 1 turn refresh
|
||||
{CHECK_FACES "ne"}
|
||||
{RECRUIT ("Spearman") (7,4) (7,3)}
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side 2 turn refresh
|
||||
{CHECK_FACES "nw"}
|
||||
{RECRUIT ("Orcish Grunt") (13,4) (13,3)}
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side 1 turn 2
|
||||
{RETURN ([true][/true])}
|
||||
[/event]
|
||||
)}
|
||||
|
||||
{RECRUIT_TEST recruit_facing_enemy_two (
|
||||
[event]
|
||||
name=side 2 turn refresh
|
||||
first_time_only=no
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side 1 turn 1 refresh
|
||||
{CHECK_FACES "ne"}
|
||||
{RECRUIT ("Spearman") (7,4) (7,3)}
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side 1 turn 2 refresh
|
||||
[unit]
|
||||
x,y,side,type=7,1,2,Orcish Grunt
|
||||
[/unit]
|
||||
{CHECK_FACES "n"}
|
||||
{RECRUIT ("Spearman") (7,4) (7,3)}
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side 1 turn 3 refresh
|
||||
[unit]
|
||||
x,y,side,type=7,7,2,Orcish Warrior
|
||||
[/unit]
|
||||
{CHECK_FACES "s"}
|
||||
{RECRUIT ("Spearman") (7,4) (7,3)}
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
[event]
|
||||
name=side 1 turn 4 refresh
|
||||
{RETURN ([true][/true])}
|
||||
[/event]
|
||||
)}
|
||||
|
||||
#define EMPTY_MAP
|
||||
victory_when_enemies_defeated=no
|
||||
map_data="Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg
|
||||
Gg, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Gg
|
||||
Gg, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Gg
|
||||
Gg, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Gg
|
||||
Gg, Ch, Ch, Ch, Ch,1 Kh, Ch, Ch, Ch, Ch, Gg
|
||||
Gg, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Gg
|
||||
Gg, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Ch, Gg
|
||||
Gg, Ch, Ch, Ch, Ch,2 Ch, Ch, Ch, Ch, Ch, Gg
|
||||
Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg, Gg"
|
||||
[event]
|
||||
name=start
|
||||
[gold]
|
||||
side,amount=1,1000
|
||||
[/gold]
|
||||
[kill]
|
||||
side=2
|
||||
[/kill]
|
||||
[/event]
|
||||
#enddef
|
||||
|
||||
#define RECRUIT_AND_CHECK TURN FACING LOC
|
||||
[event]
|
||||
name=side 1 turn {TURN} refresh
|
||||
{CHECK_FACES {FACING}}
|
||||
{RECRUIT ("Spearman") {LOC} (5,4)}
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
#enddef
|
||||
#define RECALL_AND_CHECK TURN FACING LOC
|
||||
[event]
|
||||
name=side 1 turn {TURN} refresh
|
||||
[store_unit]
|
||||
[filter]
|
||||
canrecruit=yes
|
||||
[/filter]
|
||||
variable=leader_store
|
||||
[/store_unit]
|
||||
{CHECK_FACES {FACING}}
|
||||
[unit]
|
||||
type=Spearman
|
||||
x,y=recall,recall
|
||||
side=1
|
||||
id=test_{TURN}
|
||||
[/unit]
|
||||
[do_command]
|
||||
[recall]
|
||||
value=test_{TURN}
|
||||
x,y={LOC}
|
||||
[/recall]
|
||||
[/do_command]
|
||||
[unstore_unit]
|
||||
variable=leader_store
|
||||
[/unstore_unit]
|
||||
[end_turn]
|
||||
[/end_turn]
|
||||
[/event]
|
||||
#enddef
|
||||
|
||||
{RECRUIT_TEST recruit_facing_leader (
|
||||
{EMPTY_MAP}
|
||||
{RECRUIT_AND_CHECK 1 ("n") (5,2)}
|
||||
{RECRUIT_AND_CHECK 2 ("s") (5,5)}
|
||||
{RECRUIT_AND_CHECK 3 ("nw") (2,3)}
|
||||
{RECRUIT_AND_CHECK 4 ("ne") (8,3)}
|
||||
{RECRUIT_AND_CHECK 5 ("sw") (2,4)}
|
||||
{RECRUIT_AND_CHECK 6 ("sw") (3,5)}
|
||||
|
||||
#Rotational symmetry edge cases
|
||||
{RECRUIT_AND_CHECK 7 ("nw") (3,4)}
|
||||
{RECRUIT_AND_CHECK 8 ("se") (7,4)}
|
||||
[event]
|
||||
name=side 1 turn 9 refresh
|
||||
{RETURN ([true][/true])}
|
||||
[/event]
|
||||
)}
|
||||
{RECRUIT_TEST recruit_facing_center (
|
||||
{EMPTY_MAP}
|
||||
{RECALL_AND_CHECK 1 ("s") (5,2)}
|
||||
{RECALL_AND_CHECK 2 ("n") (5,5)}
|
||||
{RECALL_AND_CHECK 3 ("se") (2,3)}
|
||||
{RECALL_AND_CHECK 4 ("sw") (8,3)}
|
||||
{RECALL_AND_CHECK 5 ("ne") (2,4)}
|
||||
{RECALL_AND_CHECK 6 ("ne") (3,5)}
|
||||
|
||||
#Rotational symmetry edge cases
|
||||
{RECALL_AND_CHECK 7 ("se") (3,4)}
|
||||
{RECALL_AND_CHECK 8 ("nw") (7,4)}
|
||||
[event]
|
||||
name=side 1 turn 9 refresh
|
||||
{RETURN ([true][/true])}
|
||||
[/event]
|
||||
)}
|
|
@ -76,3 +76,9 @@
|
|||
#
|
||||
0 test_grunt_tod_damage
|
||||
0 test_berzerk_firststrike
|
||||
#
|
||||
# Deterministic unit facing tests
|
||||
0 recruit_facing_enemy_one
|
||||
0 recruit_facing_enemy_two
|
||||
0 recruit_facing_leader
|
||||
0 recruit_facing_center
|
||||
|
|
Loading…
Add table
Reference in a new issue