@@ -15,31 +15,34 @@ public void StartGame()
15
15
controller
16
16
) ;
17
17
Assert . IsNotNull ( controller . vm ! . map ) ;
18
+ Assert . IsFalse ( controller . vm . gameStarted ) ;
18
19
Character lakhesh = controller . vm . characters . First ( ) . Value ;
19
- Assert . AreEqual ( lakhesh . statusCommitted . Mobility , 2 ) ;
20
+ Assert . AreEqual ( lakhesh . statusCommitted . Mobility , 5 ) ;
20
21
Tuple < ushort , ushort > ? position = controller . vm . map . CharacterPosition ( lakhesh , out _ ) ;
21
22
Assert . IsTrue ( position != null && position . Item1 == 0 && position . Item2 == 0 ) ;
22
23
controller . cmdRouter . ExecuteCommand (
23
24
"TestAccount" ,
24
- "/mv ESW " . TrimStart ( ) . TrimStart ( '/' ) ,
25
+ "/mv ESWSSSEEEEE " . TrimStart ( ) . TrimStart ( '/' ) ,
25
26
controller
26
27
) ;
27
28
controller . vm . ExecuteRound ( ) ;
28
- Assert . AreEqual ( lakhesh . statusCommitted . Mobility , 2 ) ;
29
+ Assert . IsTrue ( controller . vm . gameStarted ) ;
30
+
31
+ Assert . AreEqual ( lakhesh . statusCommitted . Mobility , 5 ) ;
29
32
Assert . AreEqual ( lakhesh . statusTemporary . Mobility , 0 ) ;
30
33
position = controller . vm . map . CharacterPosition ( lakhesh , out _ ) ;
31
- Assert . IsTrue ( position != null && position . Item1 == 1 && position . Item2 == 1 ) ;
34
+ Assert . IsTrue ( position != null && position . Item1 == 3 && position . Item2 == 4 ) ;
32
35
List < string > logs = controller . logCollector . PopGameLog ( ) ;
33
- Assert . IsTrue ( logs . Contains ( "Lakhesh A0 -> B1 " ) ) ;
36
+ Assert . IsTrue ( logs . Contains ( "Lakhesh A0 -> D4 " ) ) ;
34
37
string rendered = controller . vm . map . RenderAsText ( Language . cn ) ;
35
- Assert . AreEqual ( rendered , "ABCDEFGHIJKL\r \n 仓仓草草口口口口口口林森 0\r \n 仓菈草草口口口口口口口口 1\r \n 草草林森林口口森口森林森 2\r \n 口林森林森口口林口林森林 3\r \n 口口口口口口口森口森林森 4\r \n 林森林森口森林森口水水水 5\r \n 森林口口口林森林口水森林 6\r \n 林森口森林口口森口口口口 7\r \n 森林口口口口口口口水森林 8\r \n 水水林水口水水水水水林森 9\r \n 水水水水口林森水森林森林 10\r \n 林森口口口森林水水水水水 11\r \n 森林口林森林口口口林森林 12\r \n 林森口口口口口口口森林森 13\r \n 森林森林森林森口口口口口 14" . Replace ( "\r " , "" ) ) ;
38
+ Assert . AreEqual ( rendered , "ABCDEFGHIJKL\r \n 仓仓草草口口口口口口林森 0\r \n 仓仓草草口口口口口口口口 1\r \n 草草林森林口口森口森林森 2\r \n 口林森林森口口林口林森林 3\r \n 口口口菈口口口森口森林森 4\r \n 林森林森口森林森口水水水 5\r \n 森林口口口林森林口水森林 6\r \n 林森口森林口口森口口口口 7\r \n 森林口口口口口口口水森林 8\r \n 水水林水口水水水水水林森 9\r \n 水水水水口林森水森林森林 10\r \n 林森口口口森林水水水水水 11\r \n 森林口林森林口口口林森林 12\r \n 林森口口口口口口口森林森 13\r \n 森林森林森林森口口口口口 14" . Replace ( "\r " , "" ) ) ;
36
39
_ = """
37
40
ABCDEFGHIJKL
38
41
仓仓草草口口口口口口林森 0
39
- 仓菈草草口口口口口口口口 1
42
+ 仓仓草草口口口口口口口口 1
40
43
草草林森林口口森口森林森 2
41
44
口林森林森口口林口林森林 3
42
- 口口口口口口口森口森林森 4
45
+ 口口口菈口口口森口森林森 4
43
46
林森林森口森林森口水水水 5
44
47
森林口口口林森林口水森林 6
45
48
林森口森林口口森口口口口 7
@@ -51,6 +54,41 @@ 森林口林森林口口口林森林 12
51
54
林森口口口口口口口森林森 13
52
55
森林森林森林森口口口口口 14
53
56
""" ;
57
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/mv EEEEEE" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
58
+ controller . vm . ExecuteRound ( ) ;
59
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/water" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
60
+ controller . vm . ExecuteRound ( ) ;
61
+ Island68 . GetWater getwater = ( Island68 . GetWater ) lakhesh . skills . Where ( v => v . GetType ( ) == typeof ( Island68 . GetWater ) ) . FirstOrDefault ( ) ! ;
62
+ Assert . IsFalse ( getwater . hasWater ) ;
63
+ rendered = controller . vm . map . RenderAsText ( Language . cn ) ;
64
+ Assert . AreEqual ( controller . vm . map . CharacterPosition ( lakhesh , out _ ) , new Tuple < ushort , ushort > ( 8 , 4 ) ) ;
65
+
66
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/mv ES" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
67
+ controller . vm . ExecuteRound ( ) ;
68
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/water" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
69
+ controller . vm . ExecuteRound ( ) ;
70
+ Assert . AreEqual ( controller . vm . map . CharacterPosition ( lakhesh , out _ ) , new Tuple < ushort , ushort > ( 9 , 4 ) ) ;
71
+ Assert . IsTrue ( getwater . hasWater ) ;
72
+ Assert . AreEqual ( lakhesh . statusCommitted . Mobility , 3 ) ;
73
+
74
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/mv LUUUU" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
75
+ controller . vm . ExecuteRound ( ) ;
76
+ Assert . AreEqual ( controller . vm . map . CharacterPosition ( lakhesh , out _ ) , new Tuple < ushort , ushort > ( 8 , 4 ) ) ;
77
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/mv UUUU" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
78
+ controller . vm . ExecuteRound ( ) ;
79
+ Assert . AreEqual ( controller . vm . map . CharacterPosition ( lakhesh , out _ ) , new Tuple < ushort , ushort > ( 8 , 1 ) ) ;
80
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/mv LLLL" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
81
+ controller . vm . ExecuteRound ( ) ;
82
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/mv LLLL" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
83
+ controller . vm . ExecuteRound ( ) ;
84
+ Assert . AreEqual ( controller . vm . map . CharacterPosition ( lakhesh , out _ ) , new Tuple < ushort , ushort > ( 2 , 1 ) ) ;
85
+ controller . cmdRouter . ExecuteCommand ( "TestAccount" , "/mv LLLL" . TrimStart ( ) . TrimStart ( '/' ) , controller ) ;
86
+ controller . vm . ExecuteRound ( ) ;
87
+ Assert . AreEqual ( controller . vm . map . CharacterPosition ( lakhesh , out _ ) , new Tuple < ushort , ushort > ( 0 , 1 ) ) ;
88
+ logs = controller . logCollector . PopGameLog ( ) ;
89
+ Assert . IsTrue ( logs . Contains ( "Game ended in 9 rounds." ) ) ;
90
+ Assert . AreEqual ( logs . Where ( v => v == "水を得る!" ) . Count ( ) , 1 ) ;
91
+ Assert . IsTrue ( controller . vm . gameEnded ) ;
54
92
}
55
93
}
56
94
}
0 commit comments