|
|
|
|
@ -1023,8 +1023,7 @@ int SaveItemPower(Item &item, const ItemPower &power)
|
|
|
|
|
item._iFlags |= ISPL_RNDARROWVEL; |
|
|
|
|
break; |
|
|
|
|
case IPL_SETDAM: |
|
|
|
|
item._iMinDam = power.param1; |
|
|
|
|
item._iMaxDam = power.param2; |
|
|
|
|
item._iDamage = { power.param1, power.param2 }; |
|
|
|
|
break; |
|
|
|
|
case IPL_SETDUR: |
|
|
|
|
item._iDurability = power.param1; |
|
|
|
|
@ -1838,14 +1837,13 @@ bool ApplyOilToItem(Item &item, Player &player)
|
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case IMISC_OILSHARP: |
|
|
|
|
if (item._iMaxDam - item._iMinDam < 30) { |
|
|
|
|
item._iMaxDam = item._iMaxDam + 1; |
|
|
|
|
if (item._iDamage.maxValue - item._iDamage.minValue < 30) { |
|
|
|
|
item._iDamage += { 0, 1 }; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case IMISC_OILDEATH: |
|
|
|
|
if (item._iMaxDam - item._iMinDam < 30) { |
|
|
|
|
item._iMinDam = item._iMinDam + 1; |
|
|
|
|
item._iMaxDam = item._iMaxDam + 2; |
|
|
|
|
if (item._iDamage.maxValue - item._iDamage.minValue < 30) { |
|
|
|
|
item._iDamage += { 1, 2 }; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case IMISC_OILSKILL: |
|
|
|
|
@ -2661,8 +2659,8 @@ void CalcPlrItemVals(Player &player, bool loadgfx)
|
|
|
|
|
for (auto &item : player.InvBody) { |
|
|
|
|
if (!item.isEmpty() && item._iStatFlag) { |
|
|
|
|
|
|
|
|
|
mind += item._iMinDam; |
|
|
|
|
maxd += item._iMaxDam; |
|
|
|
|
mind += item._iDamage.minValue; |
|
|
|
|
maxd += item._iDamage.maxValue; |
|
|
|
|
tac += item._iAC; |
|
|
|
|
|
|
|
|
|
if (item._iSpell != SPL_NULL) { |
|
|
|
|
@ -3003,8 +3001,7 @@ void SetPlrHandItem(Item &item, int itemData)
|
|
|
|
|
strcpy(item._iIName, _(pAllItem.iName)); |
|
|
|
|
item._iLoc = pAllItem.iLoc; |
|
|
|
|
item._iClass = pAllItem.iClass; |
|
|
|
|
item._iMinDam = pAllItem.iMinDam; |
|
|
|
|
item._iMaxDam = pAllItem.iMaxDam; |
|
|
|
|
item._iDamage = { pAllItem.iMinDam, pAllItem.iMaxDam }; |
|
|
|
|
item._iAC = pAllItem.iMinAC; |
|
|
|
|
item._iMiscId = pAllItem.iMiscId; |
|
|
|
|
item._iSpell = pAllItem.iSpell; |
|
|
|
|
@ -3259,8 +3256,7 @@ void GetItemAttrs(Item &item, int itemData, int lvl)
|
|
|
|
|
strcpy(item._iIName, _(AllItemsList[itemData].iName)); |
|
|
|
|
item._iLoc = AllItemsList[itemData].iLoc; |
|
|
|
|
item._iClass = AllItemsList[itemData].iClass; |
|
|
|
|
item._iMinDam = AllItemsList[itemData].iMinDam; |
|
|
|
|
item._iMaxDam = AllItemsList[itemData].iMaxDam; |
|
|
|
|
item._iDamage = { AllItemsList[itemData].iMinDam, AllItemsList[itemData].iMaxDam }; |
|
|
|
|
item._iAC = AllItemsList[itemData].iMinAC + GenerateRnd(AllItemsList[itemData].iMaxAC - AllItemsList[itemData].iMinAC + 1); |
|
|
|
|
item._iFlags = AllItemsList[itemData].iFlags; |
|
|
|
|
item._iMiscId = AllItemsList[itemData].iMiscId; |
|
|
|
|
@ -4138,16 +4134,16 @@ void DrawUniqueInfo(const Surface &out)
|
|
|
|
|
void PrintItemDetails(Item *x) |
|
|
|
|
{ |
|
|
|
|
if (x->_iClass == ICLASS_WEAPON) { |
|
|
|
|
if (x->_iMinDam == x->_iMaxDam) { |
|
|
|
|
if (x->_iDamage.IsFixed()) { |
|
|
|
|
if (x->_iMaxDur == DUR_INDESTRUCTIBLE) |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d} Indestructible"), x->_iMinDam).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d} Indestructible"), x->_iDamage.minValue).c_str()); |
|
|
|
|
else |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: Dur: is durability */ "damage: {:d} Dur: {:d}/{:d}"), x->_iMinDam, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: Dur: is durability */ "damage: {:d} Dur: {:d}/{:d}"), x->_iDamage.minValue, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
} else { |
|
|
|
|
if (x->_iMaxDur == DUR_INDESTRUCTIBLE) |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d}-{:d} Indestructible"), x->_iMinDam, x->_iMaxDam).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d}-{:d} Indestructible"), x->_iDamage.minValue, x->_iDamage.maxValue).c_str()); |
|
|
|
|
else |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: Dur: is durability */ "damage: {:d}-{:d} Dur: {:d}/{:d}"), x->_iMinDam, x->_iMaxDam, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: Dur: is durability */ "damage: {:d}-{:d} Dur: {:d}/{:d}"), x->_iDamage.minValue, x->_iDamage.maxValue, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
} |
|
|
|
|
AddPanelString(tempstr); |
|
|
|
|
} |
|
|
|
|
@ -4159,10 +4155,10 @@ void PrintItemDetails(Item *x)
|
|
|
|
|
AddPanelString(tempstr); |
|
|
|
|
} |
|
|
|
|
if (x->_iMiscId == IMISC_STAFF && x->_iMaxCharges != 0) { |
|
|
|
|
if (x->_iMinDam == x->_iMaxDam) |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: dam: is damage Dur: is durability */ "dam: {:d} Dur: {:d}/{:d}"), x->_iMinDam, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
if (x->_iDamage.IsFixed()) |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: dam: is damage Dur: is durability */ "dam: {:d} Dur: {:d}/{:d}"), x->_iDamage.minValue, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
else |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: dam: is damage Dur: is durability */ "dam: {:d}-{:d} Dur: {:d}/{:d}"), x->_iMinDam, x->_iMaxDam, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_(/* TRANSLATORS: dam: is damage Dur: is durability */ "dam: {:d}-{:d} Dur: {:d}/{:d}"), x->_iDamage.minValue, x->_iDamage.maxValue, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_("Charges: {:d}/{:d}"), x->_iCharges, x->_iMaxCharges).c_str()); |
|
|
|
|
AddPanelString(tempstr); |
|
|
|
|
} |
|
|
|
|
@ -4185,16 +4181,16 @@ void PrintItemDetails(Item *x)
|
|
|
|
|
void PrintItemDur(Item *x) |
|
|
|
|
{ |
|
|
|
|
if (x->_iClass == ICLASS_WEAPON) { |
|
|
|
|
if (x->_iMinDam == x->_iMaxDam) { |
|
|
|
|
if (x->_iDamage.IsFixed()) { |
|
|
|
|
if (x->_iMaxDur == DUR_INDESTRUCTIBLE) |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d} Indestructible"), x->_iMinDam).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d} Indestructible"), x->_iDamage.minValue).c_str()); |
|
|
|
|
else |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d} Dur: {:d}/{:d}"), x->_iMinDam, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d} Dur: {:d}/{:d}"), x->_iDamage.minValue, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
} else { |
|
|
|
|
if (x->_iMaxDur == DUR_INDESTRUCTIBLE) |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d}-{:d} Indestructible"), x->_iMinDam, x->_iMaxDam).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d}-{:d} Indestructible"), x->_iDamage.minValue, x->_iDamage.maxValue).c_str()); |
|
|
|
|
else |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d}-{:d} Dur: {:d}/{:d}"), x->_iMinDam, x->_iMaxDam, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
strcpy(tempstr, fmt::format(_("damage: {:d}-{:d} Dur: {:d}/{:d}"), x->_iDamage.minValue, x->_iDamage.maxValue, x->_iDurability, x->_iMaxDur).c_str()); |
|
|
|
|
} |
|
|
|
|
AddPanelString(tempstr); |
|
|
|
|
if (x->_iMiscId == IMISC_STAFF && x->_iMaxCharges > 0) { |
|
|
|
|
|