예제 #1
0
 /**
  * (non-PHPdoc)
  * @see app/code/Bengine/EventHandler/Handler/Bengine_Game_EventHandler_Handler_Abstract#_execute($event, $data)
  */
 protected function _execute(Bengine_Game_Model_Event $event, array $data)
 {
     Hook::event("EhAllianceAttack", array($event, &$data, $this));
     $assault = new Bengine_Game_Assault($event->getDestination(), $event->getDestinationUserId(), $event);
     $assault->addParticipant(Bengine_Game_Assault_Participant::ATTACKER_MODE, $event->getUserid(), $event->getPlanetid(), $event->getTime(), $data);
     // Load allied fleets
     $allies = Application::getCollection("game/event")->addParentIdFilter($event->getEventid());
     foreach ($allies as $ally) {
         $assault->addParticipant(Bengine_Game_Assault_Participant::ATTACKER_MODE, $ally->getUserid(), $ally->getPlanetid(), $event->getTime(), $ally->getData());
     }
     $assault->startAssault($event->getGalaxy2(), $event->getSystem2(), $event->getPosition2())->finish();
     Core::getQuery()->delete("formation_invitation", "eventid = ?", null, null, array($event->getEventid()));
     Core::getQuery()->delete("attack_formation", "eventid = ?", null, null, array($event->getEventid()));
     return $this;
 }