/** * Parses an event. * * @param Bengine_Game_Model_Event $f * * @return array Parsed event data */ protected function parseEvent(Bengine_Game_Model_Event $f) { if ($f->getCode() == "game/alliedFleet" && $f->getUserid() != Core::getUser()->get("userid")) { return false; // Hide foreign formations } $event = array(); $event["time_r"] = $f->getTimeLeft(); $event["time"] = $f->getFormattedTimeLeft(); $event["eventid"] = $f->getEventid(); $event["time_finished"] = Date::timeToString(1, $f->getTime()); $event["raw_coordinates"] = $f->getDestinationCoords(false); Core::getLanguage()->assign("rockets", $f->getData("rockets", 0)); Core::getLanguage()->assign("planet", !$f->getData("oldmode") || $f->getData("oldmode") != 9 ? $f->getPlanetname() : Core::getLanguage()->getItem("DEBRIS")); // TODO: Old mode should be translated to code Core::getLanguage()->assign("coords", $f->getPlanetCoords()); Core::getLanguage()->assign("target", $f->getCode() != "game/recycling" ? $f->getDestinationPlanetname() : Core::getLanguage()->getItem("DEBRIS")); Core::getLanguage()->assign("targetcoords", $f->getDestinationCoords()); Core::getLanguage()->assign("metal", fNumber($f->getData("metal", 0))); Core::getLanguage()->assign("silicon", fNumber($f->getData("silicon", 0))); Core::getLanguage()->assign("hydrogen", fNumber($f->getData("hydrogen", 0))); Core::getLanguage()->assign("username", $f->getUsername()); Core::getLanguage()->assign("message", Link::get("game/" . SID . "/MSG/Write/" . rawurlencode($f->getUsername()), Image::getImage("pm.gif", Core::getLanguage()->getItem("WRITE_MESSAGE")))); Core::getLanguage()->assign("mission", $f->getCode() == "game/return" ? $f->getOrgModeName() : $f->getModeName()); Core::getLanguage()->assign("fleet", $f->getFleetString()); $event["class"] = $f->getCssClass(); if ($f->getCode() == "game/allianceAttack") { if ($f->getUserid() == Core::getUser()->get("userid")) { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_OWN"); } else { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_OTHER"); } $allyFleets = Game::getEH()->getFormationFleets($f->getEventid()); foreach ($allyFleets as $af) { $coords = $af->getPlanetCoords(); $msg = Core::getLanguage()->getItem("FLEET_MESSAGE_FORMATION"); $msg = sprintf($msg, $af->getUsername(), $af->getPlanetname(), $coords, $af->getFleetString()); $event["message"] .= $msg; } } else { if ($f->getCode() == "game/alliedFleet") { $mainFleet = Game::getModel("game/event")->load($f->getParentId()); if ($mainFleet->getUsierid() == Core::getUser()->get("userid")) { return false; } $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_OWN"); $allyFleets = Game::getEH()->getFormationFleets($mainFleet->getEventid()); $allyFleets->add($mainFleet); foreach ($allyFleets as $af) { if ($af->getUserid() == Core::getUser()->get("userid")) { continue; } $coords = $af->getPlanetCoords(); $msg = Core::getLanguage()->getItem("FLEET_MESSAGE_FORMATION"); $msg = sprintf($msg, $af->getUsername(), $af->getPlanetname(), $coords, $af->getFleetString()); $event["message"] .= $msg; } } else { if ($f->getCode() == "game/holding" && $f->getUserid() == Core::getUser()->get("userid")) { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_HOLDING_1"); } else { if ($f->getCode() == "game/holding") { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_HOLDING_2"); } else { if ($f->getCode() == "game/return" && $f->getUserid() == Core::getUser()->get("userid")) { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_RETURN"); } else { if ($f->getUserid() == Core::getUser()->get("userid") && $f->getCode() == "game/missileAttack") { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_ROCKET_ATTACK"); } else { if ($f->getCode() == "game/missileAttack") { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_ROCKET_ATTACK_FOREIGN"); } else { if ($f->getUserid() == Core::getUser()->get("userid")) { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_OWN"); } else { $event["message"] = Core::getLanguage()->getItem("FLEET_MESSAGE_OTHER"); } } } } } } } } return $event; }