Browse Source

Merge 276372f04b into 5a08031caf

pull/8380/merge
Eric Robinson 4 days ago committed by GitHub
parent
commit
1176794664
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 20
      Source/objects.cpp

20
Source/objects.cpp

@ -2247,6 +2247,11 @@ void OperatePedestal(Player &player, Object &pedestal, bool sendmsg)
}
}
int ClampU8(int v)
{
return std::clamp(v, 0, 255);
}
void OperateShrineMysterious(DiabloGenerator &rng, Player &player)
{
if (&player != MyPlayer)
@ -2331,24 +2336,24 @@ void OperateShrineGloomy(Player &player)
if (&player != MyPlayer)
return;
// Increment armor class by 2 and decrements max damage by 1.
for (Item &item : PlayerItemsRange(player)) {
switch (item._itype) {
case ItemType::Sword:
case ItemType::Axe:
case ItemType::Bow:
case ItemType::Mace:
case ItemType::Staff:
item._iMaxDam--;
if (item._iMaxDam < item._iMinDam)
item._iMaxDam = item._iMinDam;
break;
case ItemType::Staff: {
const int minDam = static_cast<int>(item._iMinDam);
const int maxDam = static_cast<int>(item._iMaxDam);
const int newMax = std::max(maxDam - 1, minDam);
item._iMaxDam = static_cast<uint8_t>(ClampU8(newMax));
} break;
case ItemType::Shield:
case ItemType::Helm:
case ItemType::LightArmor:
case ItemType::MediumArmor:
case ItemType::HeavyArmor:
item._iAC += 2;
item._iAC = ClampU8(item._iAC + 2);
break;
default:
break;
@ -2356,7 +2361,6 @@ void OperateShrineGloomy(Player &player)
}
CalcPlrInv(player, true);
InitDiabloMsg(EMSG_SHRINE_GLOOMY);
}

Loading…
Cancel
Save