Example #1
0
 /**
  *	Get all clan portal buildings
  */
 public function getClanportals()
 {
     $db = Neuron_DB_Database::getInstance();
     $villages = array();
     foreach ($this->getMembers() as $player) {
         foreach ($player->getVillages() as $v) {
             $villages[] = $v->getId();
         }
     }
     $list = "(" . implode($villages, ",") . ")";
     $data = $db->query("\n\t\t\tSELECT\n\t\t\t\t*\n\t\t\tFROM\n\t\t\t\tmap_buildings\n\t\t\tWHERE\n\t\t\t\tbuildingType = 61 AND\n\t\t\t\tvillage IN {$list} AND\n\t\t\t\t(destroyDate = 0 OR destroyDate > " . NOW . ")\n\t\t");
     $out = array();
     foreach ($data as $v) {
         $village = Dolumar_Players_Village::getFromId($v['village']);
         $building = Dolumar_Buildings_Building::getFromId($v['bid'], $village->getRace(), $v['xas'], $v['yas']);
         $building->setData($v['bid'], $v);
         $building->setVillage($village);
         $out[] = $building;
     }
     return $out;
 }
Example #2
0
 private function getSpeedUpBuilding($data)
 {
     $text = Neuron_Core_Text::getInstance();
     $inputData = $this->getInputData();
     $id = isset($data['building']) ? $data['building'] : null;
     $building = Dolumar_Buildings_Building::getFromId($id);
     if (!$building) {
         return '<p>Invalid input: building not found: ' . $id . '</p>';
     }
     $price = PREMIUM_SPEEDUP_BUILDINGS_PRICE;
     $unit = PREMIUM_SPEEDUP_BUILDINGS_UNIT;
     if (isset($inputData['duration'])) {
         $selected = abs(intval($inputData['duration']));
         $desc = Neuron_Core_Tools::putIntoText($text->get('confdesc_building', 'speedup', 'statusbar'), array('building' => $building->getName(), 'amount' => Neuron_Core_Tools::getDurationText($selected * $unit)));
         return $this->getConfirm($price, $unit, $selected, $desc);
     }
     $time = $building->getTimeLeft();
     return $this->getSpeedUpHTML('building', $time, $price, $unit);
 }
Example #3
0
 private function executeTrainQueue($data)
 {
     $unit = Dolumar_Units_Unit::getUnitFromId($data['unit'], $this->village->getRace(), $this->village);
     $amount = $data['amount'];
     $building = $data['building'];
     $building = Dolumar_Buildings_Building::getFromId($building);
     $building->setVillage($this->village);
     if ($building && $unit) {
         if ($building->doTrainUnits($unit, $amount)) {
             echo "Training " . $unit->getName() . "\n";
             return true;
         } else {
             echo "No training units: " . $building->getTrainError() . "\n";
             return false;
         }
     } else {
         return true;
     }
 }
Example #4
0
 public function useCredit($amount, $data)
 {
     $action = isset($data['action']) ? $data['action'] : null;
     $logs = Dolumar_Players_Logs::getInstance();
     switch ($action) {
         case 'buyrunes':
             $runes = array_keys($this->getMainVillage()->resources->getInitialRunes());
             $out = array();
             foreach ($runes as $v) {
                 if (isset($data[$v])) {
                     $out[$v] = intval($data[$v]);
                 }
             }
             $village = isset($data['village']) ? $data['village'] : null;
             $village = $this->getMyVillage($village);
             if ($village) {
                 $village->resources->giveRunes($out);
                 $logs->addPremiumRunesBoughtLog($village, $out);
             }
             break;
         case 'movevillage':
             $village = isset($data['village']) ? $data['village'] : null;
             $village = $this->getMyVillage($village);
             list($ox, $oy) = $village->buildings->getTownCenterLocation();
             $x = isset($data['x']) ? $data['x'] : null;
             $y = isset($data['y']) ? $data['y'] : null;
             if ($village && isset($x) && isset($y)) {
                 $village->movevillage->moveVillage($x, $y);
                 $logs->addPremiumMoveVillage($village, $x, $y, $ox, $oy);
             }
             break;
         case 'movebuilding':
             $building = isset($data['building']) ? $data['building'] : null;
             $village = isset($data['village']) ? $data['village'] : null;
             $village = $this->getMyVillage($village);
             $x = isset($data['x']) ? intval($data['x']) : null;
             $y = isset($data['y']) ? intval($data['y']) : null;
             if ($village && isset($x) && isset($y) && isset($building)) {
                 $building = $village->buildings->getBuilding($building);
                 if ($building && $building->checkBuildLocation($village, $x, $y)) {
                     list($ox, $oy) = $building->getLocation();
                     $building->setLocation($x, $y);
                     $logs->addPremiumMoveBuilding($building, $x, $y, $ox, $oy);
                 }
             }
             break;
         case 'bonusbuilding':
             $village = isset($data['village']) ? $data['village'] : null;
             $village = $this->getMyVillage($village);
             $x = isset($data['x']) ? intval($data['x']) : null;
             $y = isset($data['y']) ? intval($data['y']) : null;
             $building = isset($data['building']) ? intval($data['building']) : null;
             $building = Dolumar_Buildings_Building::getBuilding($building, $village->getRace());
             $extra = isset($data['tile']) ? intval($data['tile']) : null;
             $chk = $building->checkBuildLocation($village, $x, $y);
             if ($chk[0]) {
                 $building = $building->build($village, $x, $y, $extra);
                 $logs->addPremiumBonusBuilding($building, $x, $y);
             }
             break;
         case 'speedup':
             $type = isset($data['type']) ? $data['type'] : null;
             $duration = isset($data['duration']) ? $data['duration'] : null;
             switch ($type) {
                 case 'building':
                     $id = isset($data['building']) ? $data['building'] : null;
                     $building = Dolumar_Buildings_Building::getFromId($id);
                     $building->speedupBuild($duration);
                     // Reload the status bar
                     $player = $building->getVillageForced()->getOwner();
                     $player->updates->setFlag('refresh-statusbar');
                     break;
                 case 'training':
                     $id = isset($data['order']) ? $data['order'] : null;
                     $village = isset($data['village']) ? $data['village'] : null;
                     $village = Dolumar_Players_Village::getFromId($village);
                     $village->units->speedupBuild($id, $data['duration']);
                     $player = $village->getOwner();
                     $player->updates->setFlag('refresh-statusbar');
                     break;
                 case 'scouting':
                     $id = isset($data['scoutid']) ? $data['scoutid'] : null;
                     $village = isset($data['village']) ? $data['village'] : null;
                     $village = Dolumar_Players_Village::getFromId($village);
                     $village->speedupScouting($id, $data['duration']);
                     $player = $village->getOwner();
                     $player->updates->setFlag('refresh-statusbar');
                     break;
             }
             break;
         case 'buyresources':
             $village = isset($data['village']) ? $data['village'] : null;
             $resource = isset($data['resource']) ? $data['resource'] : null;
             $village = $this->getMyVillage($village);
             if ($village) {
                 if ($resource === 'all') {
                     $village->resources->fillAll();
                 } else {
                     $village->resources->fill($resource);
                 }
             }
             break;
         default:
             $this->extendPremiumAccount(60 * 60 * 24 * 15);
             break;
     }
 }
Example #5
0
 private function loadQueues($vilsId)
 {
     $text = Neuron_Core_Text::__getInstance();
     // Replace the selector with a proper one for this table
     $vilsId = str_replace('vid', 'pq_vid', $vilsId);
     // Cancel confirmation
     $cancel = $text->get('cancel', 'queue', 'statusbar');
     $confirm = addslashes($text->get('confirm', 'queue', 'statusbar'));
     $db = Neuron_DB_Database::__getInstance();
     $row = $db->query("\n\t\t\tSELECT\n\t\t\t\tpq_id,\n\t\t\t\tpq_vid,\n\t\t\t\tpq_action,\n\t\t\t\tpq_data\n\t\t\tFROM\n\t\t\t\tpremium_queue\n\t\t\tWHERE\n\t\t\t\tTRUE {$vilsId}\n\t\t");
     foreach ($row as $v) {
         $village = Dolumar_Players_Village::getFromId($v['pq_vid']);
         $data = json_decode($v['pq_data'], true);
         $txt = array('cancel' => '<a href="javascript:void(0);" onclick="confirmAction(this,{\'cancelQueue\':' . $v['pq_id'] . '}, \'' . $confirm . '\');">' . $cancel . '</a>');
         // Find the right queues
         switch ($v['pq_action']) {
             case 'build':
                 $building = Dolumar_Buildings_Building::getBuilding($data['building'], $village->getRace());
                 $txt['building'] = $building->getName();
                 $txt['x'] = floor($data['x']);
                 $txt['y'] = floor($data['y']);
                 break;
             case 'upgrade':
                 $building = Dolumar_Buildings_Building::getFromId($data['building']);
                 $txt['building'] = $building->getName();
                 $txt['level'] = $data['level'];
                 list($txt['x'], $txt['y']) = $building->getLocation();
                 break;
             case 'training':
                 $unit = Dolumar_Units_Unit::getUnitFromId($data['unit'], $village->getRace(), $village);
                 $txt['unit'] = $unit->getName($data['amount'] > 1);
                 $txt['amount'] = $data['amount'];
                 break;
         }
         $this->addCounter(null, $village, Neuron_Core_Tools::putIntoText($text->get($v['pq_action'], 'queue', 'statusbar'), $txt), 'queue', false);
     }
 }