private static function displaySet(SR_Player $player, $set) { if (false === ($data = SR_SetItems::getSetByName($set)) && false === ($data = SR_SetItems::getSetForItem($set))) { return self::rply($player, '1189'); } $modifiers = SR_SetItems::getModifiersForSet($set); $modstr = ''; $format = ', %s:%s'; $i = $i2 = ''; if (SR_SetItems::hasSet($player, $set)) { $i = "6"; $i2 = ""; } foreach ($data[0] as $key => $value) { $modstr .= sprintf($format, $key, $value); } $modstr = $i . trim($modstr, ',; ') . $i2; $itemstr = ''; $format = ', %s%s%s'; foreach ($data[1] as $items2) { $items2 = GWF_Array::arrify($items2); $pre = count($items2) > 1 ? '(' : ''; $aft = count($items2) > 1 ? ')' : ''; $itemstr .= $pre; foreach ($items2 as $itemname) { if ($player->hasEquipped($itemname)) { $i = "3"; $i2 = ""; $itename = shadowlang::displayItemNameS($itemname); } elseif (false === ($item = $player->getItemByName($itemname, false))) { $i = "15"; $i2 = ""; $itename = shadowlang::displayItemNameS($itemname); } else { $i = $i2 = ''; $itemname = $item->displayName($player); } $itemstr .= sprintf($format, $i, $itemname, $i2); } $itemstr .= $aft; } $itemstr = str_replace('(, ', ', (', $itemstr); $itemstr = trim($itemstr, ',; '); return self::rply($player, '5296', array($set, $itemstr, $modstr)); }
public static function initItems($dir = '') { GWF_File::filewalker($dir . 'item', array('SR_Item', 'includeItem')); SR_SetItems::validateSets(); }
/** * Update all stats in memory. */ public function modify() { // echo __METHOD__.PHP_EOL; $this->initModify(); // $this->initModifyArray(self::$SKILL); // $this->initModifyArray(self::$ATTRIBUTE); // $this->initModifyArray(self::$KNOWLEDGE); // $this->initModifyArray(self::$FEELINGS); $this->modifyRace(); $this->modifyGender(); if (!$this->hasWeapon()) { $this->modifyItem(Item_Fists::staticFists()); } $this->modifyItems($this->sr4_equipment); $this->modifyItems($this->sr4_cyberware); SR_SetItems::applyModifiers($this); $this->modifyInventory(); $this->modifyFellings(); $this->modifyQuests(); $this->modifyEffectsOnce(); $this->modifyMaxima(); $this->modifyEffectsRepeat(); $this->modifyCombat(); $this->modifyOverload(); # malus $this->modifyFinish(); // $this->modifyParty(); # DEADLOCK! // $this->modifyClamp(); }
public static function displayItemnameFull(SR_Player $player, SR_Item $item, $short_mods = false, $colors = true) { $back = self::displayItemname($player, $item, false); if (NULL !== ($mods = $item->getItemModifiersB())) { $mod = ''; $format = $player->lang('fmt_itemmods'); foreach ($mods as $key => $value) { $key = $short_mods ? Shadowfunc::shortcutVariable($player, $key) : Shadowfunc::translateVariable($player, $key); $mod .= sprintf($format, $key, $value); } $back = $back . $player->lang('of') . ltrim($mod, ',; '); } if ($colors) { if ($item->isItemRare()) { return "5{$back}"; } elseif (false !== SR_SetItems::getSetForItem($item->getName())) { return "6{$back}"; } } return $back; }
public function displaySetModifiers(SR_Player $player) { if (false === ($set = SR_SetItems::getSetForItem($this->getName()))) { return ''; } if (SR_SetItems::hasSet($player, $set)) { $b = $i = "6"; $b2 = $i2 = ""; } else { $b = $i = "15"; $b2 = $i2 = ""; // $b = $b2 = $i = $i2 = ''; # italic } return ' ' . Shadowrun4::lang('set_modifiers', array($b, $set, $b2, $i, Shadowfunc::displayModifiers($player, SR_SetItems::getModifiersForSet($set)), $i2)); }