From a8b625b3386fcc2a054a2da4d9f3100d89ced4e1 Mon Sep 17 00:00:00 2001 From: Kamron Batman <3953314+kamronbatman@users.noreply.github.com> Date: Sat, 25 Jan 2025 17:41:27 -0800 Subject: [PATCH] fix: Aquarium no longer uses list to kill fish (#2090) --- Projects/UOContent/Items/Aquarium/Aquarium.cs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Projects/UOContent/Items/Aquarium/Aquarium.cs b/Projects/UOContent/Items/Aquarium/Aquarium.cs index 34990100a..b22af1191 100644 --- a/Projects/UOContent/Items/Aquarium/Aquarium.cs +++ b/Projects/UOContent/Items/Aquarium/Aquarium.cs @@ -551,25 +551,21 @@ namespace Server.Items public virtual void KillFish(int amount) { - var toKill = new List(); + using var toKill = PooledRefList.Create(); for (var i = 0; i < Items.Count; i++) { - if (Items[i] is BaseFish) + if (Items[i] is BaseFish { Dead: false } fish) { - var fish = (BaseFish)Items[i]; - - if (!fish.Dead) - { - toKill.Add(fish); - } + toKill.Add(fish); } } - while (amount > 0 && toKill.Count > 0) + toKill.Shuffle(); + + for (var i = 0; i < amount; i++) { - var kill = toKill.TakeRandomElement(); - kill.Kill(); + (toKill[i] as BaseFish)!.Kill(); amount -= 1; LiveCreatures = Math.Max(LiveCreatures - 1, 0);