fix: Timer Remaining Count off by 1 fix (#2046)

This commit is contained in:
Kamron Batman 2025-01-01 20:19:38 -08:00 committed by GitHub
parent 1586a8e6ba
commit 57a7861d5e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 12 deletions

View file

@ -295,7 +295,13 @@ public abstract partial class BaseExplosionPotion : BasePotion
var parent = _potion.FindParent(_from);
if (RemainingCount == 0)
if (RemainingCount > 3)
{
return;
}
// Remaining decrements after OnTick so it is off by 1
if (RemainingCount <= 1)
{
Point3D loc;
Map map;
@ -317,16 +323,13 @@ public abstract partial class BaseExplosionPotion : BasePotion
_potion.Explode(_from, true, loc, map);
}
else if (RemainingCount <= 3)
else if (parent is Item item)
{
if (parent is Item item)
{
item.PublicOverheadMessage(MessageType.Regular, 0x22, false, RemainingCount.ToString());
}
else if (parent is Mobile mobile)
{
mobile.PublicOverheadMessage(MessageType.Regular, 0x22, false, RemainingCount.ToString());
}
item.PublicOverheadMessage(MessageType.Regular, 0x22, false, RemainingCount.ToString());
}
else if (parent is Mobile mobile)
{
mobile.PublicOverheadMessage(MessageType.Regular, 0x22, false, RemainingCount.ToString());
}
}
}

View file

@ -62,14 +62,15 @@ public abstract class MonsterAbilitySingleTargetDoT : MonsterAbilitySingleTarget
protected override void OnTick()
{
var delay = RemainingCount == 0
var delay = RemainingCount <= 1
? TimeSpan.MinValue
: Utility.RandomMinMax(_ability.MinDelay, _ability.MaxDelay);
_ability.EffectTick(_source, _defender, ref delay);
Interval = delay;
if (RemainingCount == 0)
// Remaining decrements after OnTick so it is off by 1
if (RemainingCount <= 1)
{
_ability.RemoveEffect(_source, _defender);
_ability.OnEffectExpired(_source, _defender);