feat: Converts player deletion handling to a generated event (#2029)
This commit is contained in:
parent
059f008b48
commit
2bff1d2cbc
15 changed files with 32 additions and 17 deletions
|
|
@ -1,6 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Collections;
|
||||
using Server.Mobiles;
|
||||
|
||||
|
|
@ -25,6 +26,7 @@ public class ChampionTitleSystem : GenericPersistence
|
|||
_championTitleTimer.Start();
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void OnPlayerDeleted(Mobile m)
|
||||
{
|
||||
if (m is PlayerMobile pm)
|
||||
|
|
|
|||
|
|
@ -620,6 +620,7 @@ namespace Server.Engines.MLQuests
|
|||
context?.HandleDeath();
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void HandleDeletion(PlayerMobile pm)
|
||||
{
|
||||
var context = GetContext(pm);
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Collections;
|
||||
using Server.Logging;
|
||||
using Server.Mobiles;
|
||||
|
|
@ -41,6 +42,7 @@ public class PlayerMurderSystem : GenericPersistence
|
|||
EventSink.Disconnected += OnDisconnected;
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void OnPlayerDeleted(Mobile m)
|
||||
{
|
||||
if (m is PlayerMobile pm && _murderContexts.Remove(pm, out var context))
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Gumps;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
|
@ -84,6 +85,7 @@ public class JusticeVirtue
|
|||
VirtueGump.Register(109, OnVirtueUsed);
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void OnPlayerDeleted(Mobile m)
|
||||
{
|
||||
if (m is PlayerMobile pm)
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ public class DisguisePersistence : GenericPersistence
|
|||
t.Stop();
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeathEvent))]
|
||||
public static void RemoveTimer(Mobile m)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Collections;
|
||||
using Server.Logging;
|
||||
using Server.Mobiles;
|
||||
|
|
@ -75,6 +76,7 @@ public static class StaminaSystem
|
|||
}
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void OnPlayerDeleted(Mobile m)
|
||||
{
|
||||
RemoveEntry(m as IHasSteps);
|
||||
|
|
|
|||
|
|
@ -3357,23 +3357,7 @@ namespace Server.Mobiles
|
|||
var faction = Faction.Find(this);
|
||||
faction?.RemoveMember(this);
|
||||
|
||||
MLQuestSystem.HandleDeletion(this);
|
||||
BaseHouse.HandleDeletion(this);
|
||||
DisguisePersistence.RemoveTimer(this);
|
||||
|
||||
StaminaSystem.OnPlayerDeleted(this);
|
||||
JusticeVirtue.OnPlayerDeleted(this);
|
||||
PlayerMurderSystem.OnPlayerDeleted(this);
|
||||
ChampionTitleSystem.OnPlayerDeleted(this);
|
||||
|
||||
// Spells
|
||||
MagicReflectSpell.EndReflect(this);
|
||||
ReactiveArmorSpell.EndArmor(this);
|
||||
ProtectionSpell.EndProtection(this);
|
||||
StoneFormSpell.RemoveEffects(this);
|
||||
AnimateDeadSpell.RemoveEffects(this);
|
||||
SummonFamiliarSpell.RemoveEffects(this);
|
||||
AnimalForm.RemoveLastAnimalForm(this);
|
||||
PlayerDeletedEvent(this);
|
||||
}
|
||||
|
||||
public override void GetProperties(IPropertyList list)
|
||||
|
|
@ -4142,6 +4126,9 @@ namespace Server.Mobiles
|
|||
{
|
||||
}
|
||||
|
||||
[GeneratedEvent(nameof(PlayerDeletedEvent))]
|
||||
public static partial void PlayerDeletedEvent(PlayerMobile pm);
|
||||
|
||||
public override void OnDelete()
|
||||
{
|
||||
ReceivedHonorContext?.Cancel();
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Accounting;
|
||||
using Server.Collections;
|
||||
using Server.ContextMenus;
|
||||
|
|
@ -3260,6 +3261,7 @@ namespace Server.Multis
|
|||
}
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void HandleDeletion(Mobile mob)
|
||||
{
|
||||
var houses = GetHouses(mob);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
using System.Collections.Generic;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Spells.Fifth
|
||||
{
|
||||
|
|
@ -132,6 +134,7 @@ namespace Server.Spells.Fifth
|
|||
FinishSequence();
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void EndReflect(Mobile m)
|
||||
{
|
||||
if (!_table.Remove(m, out var mods))
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Spells.First
|
||||
{
|
||||
|
|
@ -142,6 +144,7 @@ namespace Server.Spells.First
|
|||
}
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void EndArmor(Mobile m)
|
||||
{
|
||||
if (!_table.Remove(m, out var mods))
|
||||
|
|
|
|||
|
|
@ -134,6 +134,7 @@ namespace Server.Spells.Mysticism
|
|||
FinishSequence();
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeathEvent))]
|
||||
public static void RemoveEffects(Mobile m)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Engines.Quests;
|
||||
using Server.Engines.Quests.Necro;
|
||||
using Server.Items;
|
||||
|
|
@ -194,6 +195,7 @@ public class AnimateDeadSpell : NecromancerSpell, ITargetingSpell<Item>
|
|||
Caster.SendLocalizedMessage(1061083); // Animate what corpse?
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void RemoveEffects(Mobile caster)
|
||||
{
|
||||
if (_table.Remove(caster, out var list))
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Gumps;
|
||||
using Server.Mobiles;
|
||||
using Server.Network;
|
||||
|
|
@ -38,6 +39,7 @@ public class SummonFamiliarSpell : NecromancerSpell
|
|||
new(typeof(VampireBatFamiliar), 1060144, 100.0, 100.0) // Vampire Bat
|
||||
};
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void RemoveEffects(Mobile m)
|
||||
{
|
||||
if (Table.Remove(m, out var summon))
|
||||
|
|
|
|||
|
|
@ -255,6 +255,7 @@ public class AnimalForm : NinjaSpell
|
|||
}
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeathEvent))]
|
||||
public static void RemoveContext(Mobile m)
|
||||
{
|
||||
|
|
@ -303,6 +304,7 @@ public class AnimalForm : NinjaSpell
|
|||
|
||||
public static bool UnderTransformation(Mobile m, Type type) => GetContext(m)?.Type == type;
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void RemoveLastAnimalForm(Mobile m) => _table.Remove(m);
|
||||
|
||||
public class AnimalFormEntry
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using ModernUO.CodeGeneratedEvents;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Spells.Second
|
||||
{
|
||||
|
|
@ -93,6 +95,7 @@ namespace Server.Spells.Second
|
|||
}
|
||||
}
|
||||
|
||||
[OnEvent(nameof(PlayerMobile.PlayerDeletedEvent))]
|
||||
public static void EndProtection(Mobile m)
|
||||
{
|
||||
if (!_table.Remove(m, out var mods))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue