fix: Fixes TimeSpan rounding issues (#1610)
### Summary TLDR - .NET Framework rounded TimeSpan (and some DateTime) methods to the nearest millisecond. This was actually _expected_ accidentally for parts of RunUO. We are aiming to fix this and clean up some other bad assumptions. Closes #1604
This commit is contained in:
parent
98727d13b3
commit
331f24cb71
16 changed files with 91 additions and 87 deletions
|
|
@ -212,9 +212,7 @@ public abstract partial class BasePotion : Item, ICraftable, ICommodity
|
|||
return v;
|
||||
}
|
||||
|
||||
var scalar = 1.0 + 0.01 * EnhancePotions(m);
|
||||
|
||||
return TimeSpan.FromSeconds(v.TotalSeconds * scalar);
|
||||
return v * (1.0 + 0.01 * EnhancePotions(m));
|
||||
}
|
||||
|
||||
public static double Scale(Mobile m, double v)
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ public abstract partial class BaseConflagrationPotion : BasePotion
|
|||
{
|
||||
if (m_Delay.TryGetValue(m, out var timer) && timer.Next > Core.Now)
|
||||
{
|
||||
return (int)(timer.Next - Core.Now).TotalSeconds;
|
||||
return (int)Math.Round((timer.Next - Core.Now).TotalSeconds);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ public abstract partial class BaseConfusionBlastPotion : BasePotion
|
|||
{
|
||||
if (_delay.TryGetValue(m, out var timer) && timer.Next > Core.Now)
|
||||
{
|
||||
return (int)(timer.Next - Core.Now).TotalSeconds;
|
||||
return (int)Math.Round((timer.Next - Core.Now).TotalSeconds);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue