Пример #1
0
 /**
  * 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));
     }
 }
Пример #2
0
 /**
  * @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()));
 }