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; }
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; } }
public function giveEquipment($equipments) { foreach ($equipments as $k => $v) { $objEquipment = Dolumar_Players_Equipment::getFromId($k); $this->objMember->equipment->addEquipment($objEquipment, $v); } }
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'); } }