JinrouStatistics::AggregateWinCamp()
@@ -155,11 +155,11 @@ | ||
155 | 155 | } |
156 | 156 | |
157 | 157 | TableHTML::OutputHeader(''); |
158 | - $camp_list = (new ReflectionClass('WinCamp'))->getConstants(); | |
159 | 158 | $filter = $stack->Get('winner'); |
160 | 159 | Text::p($filter); |
161 | - foreach ($camp_list as $camp) { | |
162 | - if ($filter->Exists($camp)) { | |
160 | + $result = self::AggregateWinCamp($filter); | |
161 | + foreach ($result as $camp => $count) { | |
162 | + if ($count > 0) { | |
163 | 163 | TableHTML::OutputTh(RoleDataManager::GetName($camp)); |
164 | 164 | } |
165 | 165 | } |
@@ -166,9 +166,9 @@ | ||
166 | 166 | TableHTML::OutputTrFooter(); |
167 | 167 | |
168 | 168 | TableHTML::OutputTrHeader(); |
169 | - foreach ($camp_list as $camp) { | |
170 | - if ($filter->Exists($camp)) { | |
171 | - TableHTML::OutputTd($filter->$camp); | |
169 | + foreach ($result as $camp => $count) { | |
170 | + if ($count > 0) { | |
171 | + TableHTML::OutputTd($count); | |
172 | 172 | } |
173 | 173 | } |
174 | 174 | TableHTML::OutputTrFooter(); |
@@ -176,6 +176,48 @@ | ||
176 | 176 | } |
177 | 177 | } |
178 | 178 | |
179 | + //勝利陣営集計 | |
180 | + private static function AggregateWinCamp(Stack $stack) { | |
181 | + $camp_list = [ | |
182 | + WinCamp::HUMAN, | |
183 | + WinCamp::WOLF, | |
184 | + WinCamp::FOX, | |
185 | + WinCamp::LOVERS, | |
186 | + WinCamp::QUIZ, | |
187 | + WinCamp::VAMPIRE, | |
188 | + WinCamp::DRAW, | |
189 | + WinCamp::NONE | |
190 | + ]; | |
191 | + $result = []; | |
192 | + foreach ($camp_list as $camp) { | |
193 | + switch ($camp) { | |
194 | + case WinCamp::HUMAN: | |
195 | + case WinCamp::WOLF: | |
196 | + case WinCamp::LOVERS: | |
197 | + case WinCamp::QUIZ: | |
198 | + case WinCamp::VAMPIRE: | |
199 | + $result[$camp] = $stack->$camp; | |
200 | + break; | |
201 | + | |
202 | + case WinCamp::FOX: | |
203 | + $result[$camp] = $stack->{WinCamp::FOX_HUMAN}; | |
204 | + break; | |
205 | + | |
206 | + case WinCamp::DRAW: | |
207 | + $result[$camp] = $stack->$camp; | |
208 | + $result[$camp] += $stack->{WinCamp::VANISH}; | |
209 | + $result[$camp] += $stack->{WinCamp::QUIZ_DEAD}; | |
210 | + break; | |
211 | + | |
212 | + case WinCamp::NONE: | |
213 | + $result[$camp] = $stack->$camp; | |
214 | + break; | |
215 | + } | |
216 | + } | |
217 | + | |
218 | + return $result; | |
219 | + } | |
220 | + | |
179 | 221 | //カテゴリリスト取得 |
180 | 222 | private static function GetCategoryList() { |
181 | 223 | return [ |