/** * Merge fleets together. * * @return void */ private function _mergeFleets() { foreach ($this->_report->getRounds() as $round) { // first merge the fleets of the attackers $attackers = array(); foreach ($round->getAttackers() as $fleet) { $player = $fleet->getPlayer(); if (isset($attackers[$player])) { // merge this fleet into the previous one $attackers[$player] = $this->_mergeFleet($attackers[$player], $fleet); } else { // we haven't seen this attacker before, create a new slot $attackers[$player] = $fleet; } } $round->setAttackers(array_values($attackers)); unset($attackers); // now merge the fleets of the defenders $defenders = array(); foreach ($round->getDefenders() as $fleet) { $player = $fleet->getPlayer(); if (isset($defenders[$player])) { // merge this fleet into the previous one $defenders[$player] = $this->_mergeFleet($defenders[$player], $fleet); } else { // we haven't seen this attacker before, create a new slot $defenders[$player] = $fleet; } } $round->setDefenders(array_values($defenders)); } }
/** * @return string */ public function renderTitle() { $rounds = $this->_report->getRounds(); // get the attackers $attackers = array(); foreach ($rounds[0]->getAttackers() as $fleet) { /* @var $fleet Default_Model_Fleet */ $attackers[$fleet->getPlayer()] = ''; } $attackers = array_keys($attackers); // get the defenders $defenders = array(); foreach ($rounds[0]->getDefenders() as $fleet) { /* @var $fleet Default_Model_Fleet */ $defenders[$fleet->getPlayer()] = ''; } $defenders = array_keys($defenders); // stats $totalLosses = $this->_report->getLossesAttacker() + $this->_report->getLossesDefender(); return $this->translate("[TOT: %s] %s vs. %s (A: %s, D: %s)", $this->formatNumber($totalLosses), implode($this->translate(" & "), $attackers), implode($this->translate(" & "), $defenders), $this->formatNumber($this->_report->getLossesAttacker()), $this->formatNumber($this->_report->getLossesDefender())); }