fix: Cleans up LINQ calls. (#965)

- [X] Removes several `ToList()` uses with `PooledRefQueue`
- [X] Adds a `PeekRandom` to PooledRefQueue
- [X] Updates EV/BS so they dispel each other in a more efficient manner.
- [X] Fixes Firebomb so it works like a normal firefield.
- [X] Fixes field spells so they aren't unnecessarily using a Point3D ref more than necessary.
- [X] Removes extra allocation in campfire by using reverse loop.
- [X] Removes other LINQ calls that aren't needed.
This commit is contained in:
Kamron Batman 2022-03-20 19:20:54 -07:00 • committed by GitHub
parent daf89686d1
commit 23532db603
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 585 additions and 447 deletions

View file

@ -256,14 +256,14 @@ namespace Server.Spells
return false;
}
public static bool GetEastToWest(IPoint3D from,IPoint3D target)
public static bool GetEastToWest(Point3D from, Point3D target)
{
var dx = from.X - target.X;
var dy = from.Y - target.Y;
var rx = (dx - dy) * 44;
var ry = (dx + dy) * 44;
return (rx >= 0 && ry < 0) || (ry >= 0 && rx < 0);
return rx >= 0 && ry < 0 || ry >= 0 && rx < 0;
}
public static bool CanRevealCaster(Mobile m) => m is BaseCreature { Controlled: false };