Пример #1
0
 private function getEquipmentStats()
 {
     $equipment = Dolumar_Players_Equipment::getAllEquipment();
     $types = array();
     foreach ($equipment as $v) {
         $type = $v->getItemType();
         if (!isset($types[$type])) {
             $types[$type] = array();
         }
         $types[$type][] = $v;
     }
     $html = '<div class="equipment-report fancybox">';
     foreach ($types as $type => $data) {
         $this->sortLogables($data);
         $html .= '<div class="equipment-type">';
         $html .= '<h2>' . $type . '</h2>';
         foreach ($data as $equipment) {
             $html .= '<div class="equipment">';
             $html .= '<h3>' . $equipment->getName() . ' (' . $equipment->getCategory() . ')</h3>';
             for ($i = 1; $i <= Dolumar_Players_Village_Equipment::EQUIPMENT_MAX_LEVEL; $i++) {
                 $equipment->setLevel($i);
                 $html .= '<div class="equipment-level">';
                 $html .= '<h4>' . $i . ': ' . $equipment->getName() . '</h4>';
                 $html .= Neuron_Core_Tools::output_text($equipment->getStats_text());
                 $html .= '<p class="equipment-costs"><span class="stat-title">Cost: </span>' . $equipment->getCraftCost_text() . '</p>';
                 $html .= '</div>';
             }
             $html .= '</div>';
         }
         $html .= '</div><div class="clearer"></div>';
     }
     return $html . '</div>';
 }
Пример #2
0
 private function loadUnits()
 {
     if (!is_array($this->aUnits)) {
         $db = Neuron_Core_Database::__getInstance();
         $l = $db->getDataFromQuery($db->customQuery("\n\t\t\t\tSELECT\n\t\t\t\t\t*\n\t\t\t\tFROM\n\t\t\t\t\tsquad_units su\n\t\t\t\tLEFT JOIN\n\t\t\t\t\tunits u ON u.unitId = su.u_id\n\t\t\t\tWHERE\n\t\t\t\t\tsu.s_id = '" . $this->getId() . "'\n\t\t\t"));
         // Load thze items
         $items = $db->getDataFromQuery($db->customQuery("\n\t\t\t\tSELECT\n\t\t\t\t\tsquad_equipment.*\n\t\t\t\tFROM\n\t\t\t\t\tsquad_equipment\n\t\t\t\tWHERE\n\t\t\t\t\tsquad_equipment.s_id = '" . $this->getId() . "'\n\t\t\t"));
         $critItems = array();
         foreach ($items as $v) {
             if (!isset($critItems[$v['u_id']])) {
                 $critItems[$v['u_id']] = array();
             }
             $critItems[$v['u_id']][] = Dolumar_Players_Equipment::getFromId($v['e_id']);
         }
         $o = array();
         foreach ($l as $v) {
             $i = $v['unitId'];
             $o[$i] = Dolumar_Units_Unit::getUnitFromName($v['unitName'], $this->getVillage()->getRace(), $this->getVillage());
             $isMoving = $this->isMoving();
             $o[$i]->addAmount($v['s_amount'], $isMoving ? 0 : $v['s_amount'], $v['s_amount']);
             $o[$i]->setSquad($this);
             // Set slot ID
             $o[$i]->setDefaultSlot($v['s_slotId'], $v['s_priority']);
             if (isset($critItems[$v['u_id']])) {
                 foreach ($critItems[$v['u_id']] as $v) {
                     $o[$i]->addEquipment($v);
                 }
             }
             // Don't see why this would be required, but just to be sure...
             // $o[$i]->getStats ();
         }
         $this->aUnits = $o;
     }
 }
Пример #3
0
 private function getSquadOverview($objSquad)
 {
     $text = Neuron_Core_Text::__getInstance();
     $text->setFile('squads');
     $text->setSection('squad');
     $page = new Neuron_Core_Template();
     $page->set('squadId', $objSquad->getId());
     $page->set('squads', $text->get('squads'));
     $page->set('remove', $text->get('remove'));
     $page->set('confirm', addslashes($text->get('conRemove')));
     $page->set('noUnits', $text->get('noUnits'));
     $page->set('noItem', $text->get('noItem'));
     $page->set('toAdd', $text->getClickTo($text->get('toAdd')));
     $page->set('toRemove', $text->getClickTo($text->get('toRemove')));
     $page->set('toReturn', $text->getClickTo($text->get('toReturn')));
     $page->set('name', Neuron_Core_Tools::output_varchar($objSquad->getName()));
     $input = $this->getInputData();
     if (isset($input['remove'])) {
         if ($objSquad->isIdle()) {
             if ($objSquad->removeUnit((int) $input['remove'])) {
                 $this->setInputData('{}');
                 return $this->getOverview();
             }
         } else {
             $this->alert($text->get('notIdle'));
         }
     }
     // Handle equipment input
     $equipment = $this->village->getEquipment();
     $reloadEquipment = false;
     foreach ($objSquad->getUnits() as $unit) {
         // Loop trough equipment to seek input
         foreach ($equipment as $type => $items) {
             $inputKey = $unit->getUnitId() . '_' . $type;
             if (isset($input[$inputKey])) {
                 if ($input[$inputKey] == "0") {
                     $itemid = Dolumar_Players_Equipment::getItemTypeId_static($type);
                     $objSquad->unequipItem($unit, $itemid);
                 } else {
                     // Loop trough your equipment and search for selected item
                     foreach ($items as $name => $item) {
                         if ($input[$inputKey] == $item->getId()) {
                             if (!$objSquad->addEquipment($unit, $item)) {
                                 //$this->alert ($text->get ($objSquad->getError ()));
                                 $page->set('error', $text->get($objSquad->getError()));
                             }
                             break 1;
                         }
                     }
                 }
                 $reloadEquipment = true;
             }
         }
     }
     //return '<pre>'.print_r ($equipment, true).'</pre>';
     //return $input[$inputKey];
     //return $inputKey . '<pre>'.print_r ($input, true).'</pre>';
     if ($reloadEquipment) {
         reloadEverything();
         $objSquad->reloadUnits();
     }
     foreach ($objSquad->getUnits() as $v) {
         // And do the actual output
         $items = array();
         foreach ($v->getEquipment() as $eq) {
             $items[$eq->getItemType()] = $eq->getId();
         }
         $page->addListValue('units', array(Neuron_Core_Tools::output_varchar($v->getName()), $v->getSquadlessAmount(), $v->getImageUrl(), $v->getUnitId(), $items, 'stats' => Dolumar_Windows_Units::getUnitStatsHTML($v)));
     }
     $o = array();
     $e = $this->village->getEquipment();
     foreach ($e as $k => $v) {
         $page->addListValue('equipment', array(Neuron_Core_Tools::output_varchar(Dolumar_Players_Equipment::getEquipmentName($k)), $v, $k));
     }
     return $page->parse('squads/view.tpl');
 }
Пример #4
0
 public function giveEquipment($equipments)
 {
     foreach ($equipments as $k => $v) {
         $objEquipment = Dolumar_Players_Equipment::getFromId($k);
         $this->objMember->equipment->addEquipment($objEquipment, $v);
     }
 }
Пример #5
0
 public function addEquipment(Dolumar_Players_Equipment $objEquipment, $amount, $delay = 0, Dolumar_Players_Village $from = null)
 {
     $e_id = $objEquipment->getId();
     if ($delay > 0 && $from != null) {
         $data = array();
         $data[$e_id] = $amount;
         return $this->objProfile->resources->addDelayedTransfer($data, 'EQUIPMENT', $delay, $from);
     } else {
         $db = Neuron_Core_Database::__getInstance();
         // Start training
         $db->insert('villages_items', array('vid' => $this->objProfile->getId(), 'i_itemId' => $e_id, 'i_amount' => $amount, 'i_startCraft' => 0, 'i_endCraft' => 0, 'i_removed' => 0, 'i_buildingId' => 0, 'i_bid' => 0));
         return true;
     }
 }
Пример #6
0
 private function loadCraftingCounters($vilsId)
 {
     $db = Neuron_Core_Database::__getInstance();
     $l = $db->select('villages_items', array('*'), "i_endCraft > '" . time() . "' {$vilsId}");
     $text = Neuron_Core_Text::getInstance();
     $text->setSection('status', 'statusbar');
     foreach ($l as $v) {
         $village = Dolumar_Players_Village::getVillage($v['vid']);
         $equipment = Dolumar_Players_Equipment::getFromId($v['i_itemId']);
         if ($equipment) {
             $txt = Neuron_Core_Tools::putIntoText($text->get('crafting'), array('amount' => $v['i_amount'], 'equipment' => $equipment->getName($v['i_amount'] > 1)));
         } else {
             $txt = '*** equipment not found: ' . $v['i_itemId'] . ' ***';
         }
         $this->addCounter($v['i_endCraft'], $village, $txt, 'items');
     }
 }