forked from jmlue42/Talishar
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GetGamestate2.php
163 lines (154 loc) · 6.73 KB
/
GetGamestate2.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<?php
exit;
include "Libraries/HTTPLibraries.php";
$gameName = $_GET["gameName"];
if (!IsGameNameValid($gameName)) {
echo ("Invalid game name.");
exit;
}
$playerID = $_GET["playerID"];
ob_start();
include "ParseGamestate.php";
include "GameLogic.php";
include "Libraries/UILibraries.php";
include "Libraries/CoreLibraries.php";
include "GameTerms.php";
ob_end_clean();
echo (implode(" ", $playerHealths) . "<BR>");
echo ("P1" . "<BR>");
OutputPlayerData(1);
echo ("P2" . "<BR>");
OutputPlayerData(2);
echo ($winner . "<BR>");
echo ($currentPlayer . "<BR>");
echo ($currentTurn . "<BR>");
echo (implode(" ", $turn) . "<BR>");
echo ($actionPoints . "<BR>");
echo (implode(" ", $combatChain) . "<BR>");
echo (implode(" ", $combatChainState) . "<BR>");
echo (implode(" ", $currentTurnEffects) . "<BR>");
echo (implode(" ", $nextTurnEffects) . "<BR>");
echo (implode(" ", $decisionQueue) . "<BR>");
echo ($mainPlayer . "<BR>");
$totalAttack = 0;
$totalBlock = 0;
$activeCombatEffects = "";
$otherCurrentEffects = "";
if (count($combatChain) > 0) {
EvaluateCombatChain($totalAttack, $totalBlock);
for ($i = 0; $i < count($currentTurnEffects); $i += CurrentTurnPieces()) {
if (IsCombatEffectActive($currentTurnEffects[$i])) {
if ($activeCombatEffects != "") $activeCombatEffects .= " ";
$activeCombatEffects .= $currentTurnEffects[$i] . " " . $currentTurnEffects[$i + 1];
} else {
if ($otherCurrentEffects != "") $otherCurrentEffects .= " ";
$otherCurrentEffects .= $currentTurnEffects[$i] . " " . $currentTurnEffects[$i + 1];
}
}
}
echo ($totalAttack . " " . $totalBlock . "<BR>");
echo ($activeCombatEffects . "<BR>");
echo ($otherCurrentEffects . "<BR>");
if ($currentPlayer != $playerID) echo ("Waiting for other player to choose " . TypeToPlay($turn[0]));
else if ($currentPlayer == $playerID) echo ("Please choose " . TypeToPlay($turn[0]));
else echo ("Waiting for player " . $currentPlayer . " to choose " . TypeToPlay($turn[0]));
echo (implode(" ", $landmarks) . "<BR>");
echo (implode(" ", $layers) . "<BR>");
//echo(file_get_contents( $filename = "./Games/" . $gameName . "/Replay.txt"));
function OutputPlayerData($player)
{
global $turn, $currentPlayer, $playerID, $p1Hand, $p2Hand, $p1Deck, $p2Deck, $p1CharEquip, $p2CharEquip, $p1Resources, $p2Resources, $p1Arsenal, $p2Arsenal;
global $p1Items, $p2Items, $p1Auras, $p2Auras, $p1Discard, $p2Discard, $p1Pitch, $p2Pitch, $p1Banish, $p2Banish, $p1ClassState, $p2ClassState;
global $p1CharacterEffects, $p2CharacterEffects, $p1Allies, $p2Allies;
$hand = ($player == 1 ? $p1Hand : $p2Hand);
$deck = ($player == 1 ? $p1Deck : $p2Deck);
$charEquip = ($player == 1 ? $p1CharEquip : $p2CharEquip);
$resources = ($player == 1 ? $p1Resources : $p2Resources);
$arsenal = ($player == 1 ? $p1Arsenal : $p2Arsenal);
$items = ($player == 1 ? $p1Items : $p2Items);
$auras = ($player == 1 ? $p1Auras : $p2Auras);
$discard = ($player == 1 ? $p1Discard : $p2Discard);
$pitch = ($player == 1 ? $p1Pitch : $p2Pitch);
$banish = ($player == 1 ? $p1Banish : $p2Banish);
$classState = ($player == 1 ? $p1ClassState : $p2ClassState);
$characterEffects = ($player == 1 ? $p1CharacterEffects : $p2CharacterEffects);
$allies = ($player == 1 ? $p1Allies : $p2Allies);
if ($playerID == $player) {
$actionType = $turn[0] == "ARS" ? 4 : 2;
if (strpos($turn[0], "CHOOSEHAND") !== false && ($turn[0] != "MULTICHOOSEHAND" || $turn[0] != "MAYMULTICHOOSEHAND")) $actionType = 16;
$handOut = "";
for ($i = 0; $i < count($hand); ++$i) {
if ($player != $currentPlayer) $playable = 0;
else $playable = $turn[0] == "ARS" || IsPlayable($hand[$i], $turn[0], "HAND") || ($actionType == 16 && strpos("," . $turn[2] . ",", "," . $i . ",") !== false);
$border = CardBorderColor($hand[$i], "HAND", $playable);
if ($handOut != "") $handOut .= " ";
$handOut .= $hand[$i] . "HL" . $border;
}
echo ("Hand" . $handOut . "<BR>");
} else echo ("HandCount" . count($hand) . "<BR>");
echo ("Deck" . count($deck) . "<BR>");
$charEquipOut = "";
for ($i = 0; $i < count($charEquip); $i += CharacterPieces()) {
if ($charEquipOut != "") $charEquipOut .= " ";
if ($player != $currentPlayer) $playable = 0;
else $playable = $charEquip[$i + 1] == 2 && IsPlayable($charEquip[$i], $turn[0], "CHAR", $i);
$border = CardBorderColor($charEquip[$i], "CHAR", $playable);
for ($j = 0; $j < CharacterPieces(); ++$j) {
$charEquipOut .= $charEquip[$j + $i] . " ";
}
$charEquipOut .= $border . " " . CardSubType($charEquip[$i]);
}
echo ($charEquipOut . "<BR>");
echo (implode(" ", $resources) . "<BR>");
$arsenalOut = "";
for ($i = 0; $i < count($arsenal); $i += ArsenalPieces()) {
if ($arsenalOut != "") $arsenalOut .= " ";
if ($player != $currentPlayer) $playable = 0;
else $playable = $turn[0] != "P" && IsPlayable($arsenal[$i], $turn[0], "ARS", $i);
$border = CardBorderColor($arsenal[$i], "ARS", $playable);
$facing = $arsenal[$i + 1];
$arsenalOut .= ($playerID == $player || $facing == "UP" ? $arsenal[$i] : "-") . " ";
$arsenalOut .= $facing . " " . $border;
}
echo ("ARS" . $arsenalOut . "<BR>");
$itemsOut = "";
for ($i = 0; $i < count($items); $i += ItemPieces()) {
if ($itemsOut != "") $itemsOut .= " ";
if ($player != $currentPlayer) $playable = 0;
else $playable = $items[$i + 1] == 2 && IsPlayable($items[$i], $turn[0], "PLAY", $i);
$border = CardBorderColor($items[$i], "PLAY", $playable);
for ($j = 0; $j < ItemPieces(); ++$j) {
$itemsOut .= $items[$j + $i] . " ";
}
$itemsOut .= $border;
}
echo ($itemsOut . "<BR>");
//echo(implode(" ", $items) . "<BR>");
echo (implode(" ", $auras) . "<BR>");
echo ("Discard" . implode(" ", $discard) . "<BR>");
echo ("Pitch" . implode(" ", $pitch) . "<BR>");
$banishOut = "";
for ($i = 0; $i < count($banish); $i += BanishPieces()) {
if ($banishOut != "") $banishOut .= " ";
if ($player != $currentPlayer) $playable = 0;
else $playable = IsPlayable($banish[$i], $turn[0], "BANISH", $i);
$border = CardBorderColor($banish[$i], "BANISH", $playable);
for ($j = 0; $j < BanishPieces(); ++$j) {
$banishOut .= $banish[$j + $i] . " ";
}
$banishOut .= $border;
}
echo ("Banish" . $banishOut . "<BR>");
echo (implode(" ", $classState) . "<BR>");
echo (implode(" ", $characterEffects) . "<BR>");
if ($currentPlayer == $player && $playerID == $player && count($turn) > 0 && ($turn[0] == "CHOOSEDECK" || $turn[0] == "MAYCHOOSEDECK" || $turn[0] == "MULTICHOOSEDECK")) {
$dispDeck = "";
$indices = explode(",", $turn[2]);
for ($i = 0; $i < count($indices); ++$i) {
if ($dispDeck != "") $dispDeck .= " ";
$dispDeck .= $deck[$indices[$i]];
}
echo ($dispDeck . "<BR>");
}
echo (implode(" ", $allies) . "<BR>");
}