Exemplo n.º 1
0
 public function getEquipment()
 {
     $db = Neuron_Core_Database::__getInstance();
     $l = $db->getDataFromQuery($db->customQuery("\n\t\t\tSELECT\n\t\t\t\tvillages_items.*\n\t\t\tFROM\n\t\t\t\tvillages_items\n\t\t\tWHERE\n\t\t\t\tvillages_items.vid = '" . $this->objProfile->getId() . "'\n\t\t"));
     // Fetch the equiped items
     $eItems = $db->getDataFromQuery($db->customQuery("\n\t\t\tSELECT\n\t\t\t\tsquad_equipment.*,\n\t\t\t\tsquad_units.s_amount\n\t\t\tFROM\n\t\t\t\tsquad_equipment\n\t\t\tLEFT JOIN\n\t\t\t\tsquad_units ON squad_units.s_id = squad_equipment.s_id AND squad_units.u_id = squad_equipment.u_id\n\t\t\tWHERE\n\t\t\t\tsquad_equipment.v_id = '" . $this->objProfile->getId() . "'\n\t\t"));
     $equipedItems = array();
     foreach ($eItems as $v) {
         if (isset($equipedItems[$v['e_id']])) {
             $equipedItems[$v['e_id']] += $v['s_amount'];
         } else {
             $equipedItems[$v['e_id']] = $v['s_amount'];
         }
     }
     $now = time();
     $o = array();
     foreach (Dolumar_Players_Equipment::getItemTypes() as $v) {
         $o[$v] = array();
     }
     foreach ($l as $v) {
         $obj = Dolumar_Players_Equipment::getFromId($v['i_itemId']);
         $type = $obj->getItemType();
         if (!isset($o[$type][$v['i_itemId']])) {
             $o[$type][$v['i_itemId']] = $obj;
             if (isset($equipedItems[$v['i_itemId']])) {
                 $o[$type][$v['i_itemId']]->addUsedAmount($equipedItems[$v['i_itemId']]);
             }
         }
         if ($v['i_endCraft'] < time()) {
             $o[$type][$v['i_itemId']]->addAmount($v['i_amount'] - $v['i_removed']);
         } else {
             $duration = max(1, $v['i_endCraft'] - $v['i_startCraft']);
             $procent = max(0, $now - $v['i_startCraft']) / $duration;
             $amount = floor($procent * $v['i_amount']) - $v['i_removed'];
             $o[$type][$v['i_itemId']]->addAmount($amount);
         }
     }
     return $o;
 }
Exemplo n.º 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;
     }
 }
Exemplo n.º 3
0
 public function giveEquipment($equipments)
 {
     foreach ($equipments as $k => $v) {
         $objEquipment = Dolumar_Players_Equipment::getFromId($k);
         $this->objMember->equipment->addEquipment($objEquipment, $v);
     }
 }
Exemplo n.º 4
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');
     }
 }