fix: Fixes displaying ping pongs (#2374)
This commit is contained in:
parent
6f8e9b9aec
commit
b0189ccf4a
4 changed files with 12 additions and 14 deletions
|
|
@ -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()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "PingPong",
|
"name": "PingPongs",
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"rule": "PrimitiveTypeMigrationRule",
|
"rule": "PrimitiveTypeMigrationRule",
|
||||||
"ruleArguments": [
|
"ruleArguments": [
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue