fix: Fixes displaying ping pongs (#2374)

This commit is contained in:
Kamron Batman 2026-03-15 02:05:33 -07:00 • committed by GitHub
parent 6f8e9b9aec
commit b0189ccf4a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 12 additions and 14 deletions

View file

@ -26,7 +26,7 @@ public partial class MurderContext
[SerializableField(3)] [SerializableField(3)]
[SerializedCommandProperty(AccessLevel.GameMaster)] [SerializedCommandProperty(AccessLevel.GameMaster)]
private int _pingPong; private int _pingPongs;
private void MigrateFrom(V0Content content) private void MigrateFrom(V0Content content)
{ {
@ -34,7 +34,7 @@ public partial class MurderContext
_longTermElapse = content.LongTermElapse; _longTermElapse = content.LongTermElapse;
_shortTermMurders = content.ShortTermMurders; _shortTermMurders = content.ShortTermMurders;
// Players already at >= 5 kills have crossed the threshold at least once // Players already at >= 5 kills have crossed the threshold at least once
_pingPong = _player.Kills >= 5 ? 1 : 0; _pingPongs = _player.Kills >= 5 ? 1 : 0;
} }
public PlayerMobile _player; public PlayerMobile _player;
@ -78,7 +78,7 @@ public partial class MurderContext
} }
} }
public bool CanRemove() => _pingPong <= 0 && _shortTermMurders <= 0 && _player.Kills <= 0; public bool CanRemove() => _pingPongs <= 0 && _shortTermMurders <= 0 && _player.Kills <= 0;
public bool CheckStart() public bool CheckStart()
{ {

View file

@ -176,7 +176,7 @@ public class PlayerMurderSystem : GenericPersistence
public static void ManuallySetPingPong(PlayerMobile player, int pingPong) public static void ManuallySetPingPong(PlayerMobile player, int pingPong)
{ {
var context = GetOrCreateMurderContext(player); var context = GetOrCreateMurderContext(player);
context.PingPong = Math.Max(pingPong, 0); context.PingPongs = Math.Max(pingPong, 0);
UpdateMurderContext(context); UpdateMurderContext(context);
} }
@ -197,7 +197,7 @@ public class PlayerMurderSystem : GenericPersistence
if (PingPongEnabled && player.Kills == 5) if (PingPongEnabled && player.Kills == 5)
{ {
context.PingPong++; context.PingPongs++;
} }
context.ResetKillTime(); context.ResetKillTime();
@ -238,14 +238,14 @@ public class PlayerMurderSystem : GenericPersistence
player.SendMessage($"Long Term Murders: {player.Kills}"); player.SendMessage($"Long Term Murders: {player.Kills}");
if (PingPongEnabled) if (PingPongEnabled)
{ {
player.SendMessage($"Ping Pongs: {player.PingPong}"); player.SendMessage($"Ping Pongs: {player.PingPongs}");
} }
} }
else if (!Core.T2A) else if (!Core.T2A)
{ {
// No "i must consider my sins" before t2a // No "i must consider my sins" before t2a
} }
else if (PingPongEnabled && player.Murderer) else if (PingPongEnabled && player.PingPongs >= 5)
{ {
// Thou art known throughout the land as a murderous brigand. // Thou art known throughout the land as a murderous brigand.
player.SendLocalizedMessage(502123, "", player.ShortTermMurders >= 5 ? 0x22 : 0x59); player.SendLocalizedMessage(502123, "", player.ShortTermMurders >= 5 ? 0x22 : 0x59);

View file

@ -21,7 +21,7 @@
] ]
}, },
{ {
"name": "PingPong", "name": "PingPongs",
"type": "int", "type": "int",
"rule": "PrimitiveTypeMigrationRule", "rule": "PrimitiveTypeMigrationRule",
"ruleArguments": [ "ruleArguments": [

View file

@ -355,10 +355,8 @@ namespace Server.Mobiles
public override bool NewGuildDisplay => Guilds.Guild.NewGuildSystem; public override bool NewGuildDisplay => Guilds.Guild.NewGuildSystem;
public override bool Murderer => public override bool Murderer =>
(Core.T2A && !Core.LBR Core.T2A && !Core.LBR && PlayerMurderSystem.GetMurderContext(this, out var context)
&& PlayerMurderSystem.GetMurderContext(this, out var context) && context.PingPongs >= 5 || base.Murderer;
&& context.PingPong >= 5)
|| base.Murderer;
public bool BedrollLogout { get; set; } public bool BedrollLogout { get; set; }
@ -707,9 +705,9 @@ namespace Server.Mobiles
public ChampionTitleContext ChampionTitles => ChampionTitleSystem.GetOrCreateChampionTitleContext(this); public ChampionTitleContext ChampionTitles => ChampionTitleSystem.GetOrCreateChampionTitleContext(this);
[CommandProperty(AccessLevel.GameMaster)] [CommandProperty(AccessLevel.GameMaster)]
public int PingPong public int PingPongs
{ {
get => PlayerMurderSystem.GetMurderContext(this, out var context) ? context.PingPong : 0; get => PlayerMurderSystem.GetMurderContext(this, out var context) ? context.PingPongs : 0;
set => PlayerMurderSystem.ManuallySetPingPong(this, value); set => PlayerMurderSystem.ManuallySetPingPong(this, value);
} }