fix: Aquarium no longer uses list to kill fish (#2090)
This commit is contained in:
parent
d5160bd6db
commit
a8b625b338
1 changed files with 7 additions and 11 deletions
|
|
@ -551,25 +551,21 @@ namespace Server.Items
|
|||
|
||||
public virtual void KillFish(int amount)
|
||||
{
|
||||
var toKill = new List<BaseFish>();
|
||||
using var toKill = PooledRefList<Item>.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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue