Itemsets/Boni

* maybe fix unreproducable error where itemset bonus description was null
 * also slight cleanup in itemset bonus code
This commit is contained in:
Sarjuuk 2025-11-23 00:32:43 +01:00
parent 53d0813c80
commit adc0e16064
8 changed files with 18 additions and 21 deletions

View file

@ -115,8 +115,8 @@ class ItemsetList extends DBTypeList
{
$x .= '<span>';
foreach ($bonuses as $b)
$x .= '<br /><span class="q13">'.$b['bonus'].' '.Lang::itemset('_pieces').Lang::main('colon').'</span>'.$b['desc'];
foreach ($bonuses as [$nItems, , $text])
$x .= '<br /><span class="q13">'.Lang::itemset('_pieces', [$nItems]).'</span>'.$text;
$x .= '</span>';
}
@ -136,22 +136,19 @@ class ItemsetList extends DBTypeList
// cant use spell as index, would change order
if ($spl && $qty)
$spells[] = ['id' => $spl, 'bonus' => $qty];
$spells[] = [$qty, $spl];
}
// sort by required pieces ASC
usort($spells, fn(array $a, array $b) => $a['bonus'] <=> $b['bonus']);
usort($spells, fn(array $a, array $b) => $a[0] <=> $b[0]);
$setSpells = new SpellList(array(['s.id', array_column($spells, 'id')]));
foreach ($setSpells->iterate() as $spellId => $__)
$setSpells = new SpellList(array(['s.id', array_column($spells, 1)]));
foreach ($spells as &$s)
{
foreach ($spells as &$s)
{
if ($spellId != $s['id'])
continue;
$s['desc'] = $setSpells->parseText('description', $this->getField('reqLevel') ?: MAX_LEVEL)[0];
}
if ($setSpells->getEntry($s[1]))
$s[2] = $setSpells->parseText('description', $this->getField('reqLevel') ?: MAX_LEVEL)[0];
else
$s[2] = Lang::spell('unkAura', [$s[1]]);
}
return $spells;

View file

@ -1626,7 +1626,7 @@ $lang = array(
'_descTagless' => "<b>%s</b> ist ein Ausrüstungsset, das %s Teile enthält.",
'_setBonuses' => "Setboni",
'_conveyBonus' => "Das Tragen mehrerer Gegenstände aus diesem Set gewährt Eurem Charakter Boni.",
'_pieces' => "Teile",
'_pieces' => "%d Teile: ",
'_unavailable' => "Dieses Ausrüstungsset ist nicht für Spieler verfügbar.",
'_tag' => "Tag: ",
'summary' => "Zusammenfassung",

View file

@ -1626,7 +1626,7 @@ $lang = array(
'_descTagless' => "<b>%s</b> is an item set that contains %s pieces.",
'_setBonuses' => "Set Bonuses",
'_conveyBonus' => "Wearing more pieces of this set will convey bonuses to your character.",
'_pieces' => "pieces",
'_pieces' => "%d pieces: ",
'_unavailable' => "This item set is not available to players.",
'_tag' => "Tag: ",
'summary' => "Summary",

View file

@ -1626,7 +1626,7 @@ $lang = array(
'_descTagless' => "<b>%s</b> es un conjunto de objetos que tiene %s piezas.",
'_setBonuses' => "Bonificación de conjunto",
'_conveyBonus' => "Tener puestos mas objetos de este conjunto le aplicará una bonificación a tu personaje.",
'_pieces' => "piezas",
'_pieces' => "%d piezas: ",
'_unavailable' => "Este conjunto de objetos no está disponible para jugadores.",
'_tag' => "Etiqueta: ",
'summary' => "Resúmen",

View file

@ -1626,7 +1626,7 @@ $lang = array(
'_descTagless' => "<b>%s</b> est un ensemble d'objet qui contient %s pièces.",
'_setBonuses' => "Bonus de l'ensemble",
'_conveyBonus' => "Plus d'objets de cet ensemble sont équipés, plus votre personnage aura des bonus de caractéristiques.",
'_pieces' => "pièces",
'_pieces' => "%d pièces : ",
'_unavailable' => "Cet objet n'est plus disponible aux joueurs.",
'_tag' => "Étiquette : ",
'summary' => "Résumé",

View file

@ -1626,7 +1626,7 @@ $lang = array(
'_descTagless' => "<b>%s</b> — набор из %s предметов.",
'_setBonuses' => "Бонус за комплект",
'_conveyBonus' => "Ношение большего числа предметов из этого комплекта предоставит бонусы для вашего персонажа.",
'_pieces' => "частей",
'_pieces' => "%d частей: ",
'_unavailable' => "Этот набор предметов не доступен игрокам.",
'_tag' => "Тэг: ",
'summary' => "Сводка",

View file

@ -1626,7 +1626,7 @@ $lang = array(
'_descTagless' => "<b>%s</b>是物品套装包含%s件。",
'_setBonuses' => "套装奖励",
'_conveyBonus' => "穿更多这个套装的部分将会提供给你角色奖励。",
'_pieces' => "",
'_pieces' => "%d件",
'_unavailable' => "这个物品套装对玩家不可用。",
'_tag' => "标签:",
'summary' => "摘要",

View file

@ -67,8 +67,8 @@ endforeach;
<?=" ".Lang::itemset('_conveyBonus')."\n"; ?>
<ul>
<?php
foreach ($this->spells as $i => $s):
echo ' <li><div>'.$s['bonus'].' '.Lang::itemset('_pieces').Lang::main('colon').'<a href="?spell='.$s['id'].'">'.$s['desc']."</a></div></li>\n";
foreach ($this->spells as [$nItems, $spellId, $text]):
echo ' <li><div>'.Lang::itemset('_pieces', [$nItems]).'<a href="?spell='.$spellId.'">'.$text."</a></div></li>\n";
endforeach;
?>
</ul>