Example #1
0
 public static function getTimeSinceLastCheckpointSide(Dolumar_Underworld_Models_Mission $mission, Neuron_GameServer_Map_Location $location)
 {
     $db = Neuron_DB_Database::getInstance();
     $time = $db->query("\n\t\t\tSELECT\n\t\t\t\tUNIX_TIMESTAMP(uc_date) AS datum\n\t\t\tFROM\n\t\t\t\tunderworld_checkpoints\n\t\t\tWHERE\n\t\t\t\tum_id = {$mission->getId()} AND\n\t\t\t\tuc_x = {$location->x()} AND\n\t\t\t\tuc_y = {$location->y()}\n\t\t");
     if (count($time) > 0) {
         return NOW - $time[0]['datum'];
     } else {
         return 0;
     }
 }
Example #2
0
 /**
  * Return "logger" mission id and create if not defined
  */
 private static function getMissionId(Dolumar_Underworld_Models_Mission $mission)
 {
     $db = Neuron_DB_Database::getInstance();
     $data = $db->query("\n\t\t\tSELECT\n\t\t\t\tul_m_id\n\t\t\tFROM\n\t\t\t\tunderworld_log_mission\n\t\t\tWHERE\n\t\t\t\tum_id = {$mission->getId()}\n\t\t");
     if (count($data) > 0) {
         $id = $data[0]['ul_m_id'];
     } else {
         $id = $db->query("\n\t\t\t\tINSERT INTO\n\t\t\t\t\tunderworld_log_mission\n\t\t\t\tSET\n\t\t\t\t\tum_id = {$mission->getId()},\n\t\t\t\t\tul_m_map = '{$db->escape($mission->getMapName())}'\n\t\t\t");
     }
     return $id;
 }
Example #3
0
 public function execute($a = null, $b = null, $c = null)
 {
     $village = $this->getVillage();
     // Add mission
     $mission = new Dolumar_Underworld_Models_Mission(null);
     $mission->setMapName('dordaedeloth.map');
     $mission->setObjectiveName('DorDaedeloth');
     Dolumar_Underworld_Mappers_MissionMapper::create($mission, true);
     // Update server status
     $server = Neuron_GameServer::getServer();
     $server->setData('gamestate', Dolumar_Players_Server::GAMESTATE_ENDGAME_RUNNING);
     // And notify all players
     Neuron_GameServer_Player_Guide::addPublicMessage('end_casted', array($village->getOwner(), $village), 'guide', 'neutral');
 }
Example #4
0
 public static function getObjective(Dolumar_Underworld_Models_Mission $mission)
 {
     switch ($mission->getObjectiveName()) {
         case 'TakeAndHold':
             return new Dolumar_Underworld_Models_Objectives_TakeAndHold($mission);
             break;
         case 'DorDaedeloth':
             return new Dolumar_Underworld_Models_Objectives_DorDaedeloth($mission);
             break;
         default:
             return new Dolumar_Underworld_Models_Objectives_Explore($mission);
             break;
     }
 }
Example #5
0
 public static function insert(Dolumar_Underworld_Models_Mission $mission, Dolumar_Underworld_Models_Battle $battle)
 {
     $data = $battle->getData();
     $db = Neuron_DB_Database::getInstance();
     $f = $battle->getAttacker()->getLocation();
     $t = $battle->getDefender()->getLocation();
     $fx = $f->x();
     $fy = $f->y();
     $tx = $t->x();
     $ty = $t->y();
     $as = $battle->getAttacker()->getSide()->getId();
     $ds = $battle->getDefender()->getSide()->getId();
     $id = $db->query("\n\t\t\tINSERT INTO\n\t\t\t\tunderworld_log_battles\n\t\t\tSET\n\t\t\t\tuat_attacker = {$data['uat_attacker']},\n\t\t\t\tuat_defender = {$data['uat_defender']},\n\t\t\t\tuat_startdate = FROM_UNIXTIME({$data['startdate']}),\n\t\t\t\tuat_enddate = FROM_UNIXTIME({$data['enddate']}),\n\t\t\t\tuat_fightlog = '{$db->escape($data['uat_fightlog'])}',\n\t\t\t\tuat_from_x = {$fx},\n\t\t\t\tuat_from_y = {$fy},\n\t\t\t\tuat_to_x = {$tx},\n\t\t\t\tuat_to_y = {$ty},\n\t\t\t\tum_id = {$mission->getId()},\n\t\t\t\tuat_attacker_side = {$as},\n\t\t\t\tuat_defender_side = {$ds}\n\t\t");
     $battle->setId($id);
 }
Example #6
0
 public static function removeFromMission(Dolumar_Underworld_Models_Mission $mission)
 {
     $db = Neuron_DB_Database::getInstance();
     $db->query("\n\t\t\tDELETE FROM\n\t\t\t\tunderworld_explored\n\t\t\tWHERE\n\t\t\t\tum_id = {$mission->getId()}\n\t\t");
 }
Example #7
0
 private static function getObjectFromReader($data)
 {
     $out = new Dolumar_Underworld_Models_Mission($data['um_id']);
     $out->setData($data);
     return $out;
 }
Example #8
0
 public static function removeFromMission(Dolumar_Underworld_Models_Mission $mission)
 {
     $db = Neuron_DB_Database::getInstance();
     $armies = $db->query("\n\t\t\tSELECT\n\t\t\t\tua_id\n\t\t\tFROM\n\t\t\t\tunderworld_armies\n\t\t\tWHERE\n\t\t\t\tum_id = {$mission->getId()}\n\t\t");
     foreach ($armies as $v) {
         $db->query("\n\t\t\t\tDELETE FROM\n\t\t\t\t\tunderworld_armies_leaders\n\t\t\t\tWHERE\n\t\t\t\t\tua_id = {$v['ua_id']}\n\t\t\t");
         $db->query("\n\t\t\t\tDELETE FROM\n\t\t\t\t\tunderworld_armies_squads\n\t\t\t\tWHERE\n\t\t\t\t\tua_id = {$v['ua_id']}\n\t\t\t");
     }
     $db->query("\n\t\t\tDELETE FROM\n\t\t\t\tunderworld_armies\n\t\t\tWHERE\n\t\t\t\tum_id = {$mission->getId()}\n\t\t");
 }
Example #9
0
 private function createExploreMission()
 {
     $mission = new Dolumar_Underworld_Models_Mission(null);
     $mission->setMapName('explore.map');
     $mission->setObjectiveName('Explore');
     return Dolumar_Underworld_Mappers_MissionMapper::create($mission, true);
 }