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:
parent
daf89686d1
commit
23532db603
40 changed files with 585 additions and 447 deletions
|
|
@ -1,5 +1,4 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using Server.Items;
|
||||
using Server.Network;
|
||||
using Server.Spells;
|
||||
|
|
@ -134,7 +133,15 @@ namespace Server.SkillHandlers
|
|||
public override void OnCast()
|
||||
{
|
||||
var eable = Caster.GetItemsInRange<Corpse>(3);
|
||||
var toChannel = eable.FirstOrDefault(corpse => !corpse.Channeled);
|
||||
Corpse toChannel = null;
|
||||
foreach (var corpse in eable)
|
||||
{
|
||||
if (!corpse.Channeled)
|
||||
{
|
||||
toChannel = corpse;
|
||||
break;
|
||||
}
|
||||
}
|
||||
eable.Free();
|
||||
|
||||
var min = 1 + (int)(Caster.Skills.SpiritSpeak.Value * 0.25);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Server.Gumps;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
|
@ -210,13 +209,18 @@ namespace Server.SkillHandlers
|
|||
|
||||
var range = 10 + (int)(from.Skills.Tracking.Value / 10);
|
||||
|
||||
var list = from.GetMobilesInRange(range)
|
||||
.Where(
|
||||
m => m != from && (!Core.AOS || m.Alive) &&
|
||||
(!m.Hidden || m.AccessLevel == AccessLevel.Player || from.AccessLevel > m.AccessLevel) &&
|
||||
check(m) && CheckDifficulty(from, m)
|
||||
)
|
||||
.ToList();
|
||||
var eable = from.GetMobilesInRange(range);
|
||||
var list = new List<Mobile>();
|
||||
foreach (var m in eable)
|
||||
{
|
||||
if (m != from && (!Core.AOS || m.Alive) &&
|
||||
(!m.Hidden || m.AccessLevel == AccessLevel.Player || from.AccessLevel > m.AccessLevel) &&
|
||||
check(m) && CheckDifficulty(from, m))
|
||||
{
|
||||
list.Add(m);
|
||||
}
|
||||
}
|
||||
eable.Free();
|
||||
|
||||
if (list.Count > 0)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue