From 477dc4c297ca387ef9d079efd3ed76bacb1b7be3 Mon Sep 17 00:00:00 2001 From: code002lover Date: Mon, 14 Jul 2025 23:29:49 +0200 Subject: [PATCH] change over more parts to the new system --- CustomClasses/BloodFueledManager.cs | 17 +++++------------ CustomClasses/CustomClasses.cs | 4 +++- CustomClasses/NegromancerHandler.cs | 2 +- CustomClasses/PlayerExtensions.cs | 6 ++++++ CustomClasses/SerpentsHandManager.cs | 7 +++++-- 5 files changed, 20 insertions(+), 16 deletions(-) diff --git a/CustomClasses/BloodFueledManager.cs b/CustomClasses/BloodFueledManager.cs index 1921268..fc7ee14 100644 --- a/CustomClasses/BloodFueledManager.cs +++ b/CustomClasses/BloodFueledManager.cs @@ -134,18 +134,6 @@ public class BloodFueledHandler : CustomClassHandler { public override void HandleSpawn(Player player, CustomClassConfig config, Random random) { - player.SendBroadcast("You are SCP-939-Blood Fueled \n Your stamina bar has been replaced by a blood meter. \n You refill it by damaging or killing Humans. \n Don't let it run out.", CustomClasses.BroadcastDuration); - const string customInfo = "Blood Fueled"; - if (!Player.ValidateCustomInfo(customInfo, out var reason)) - { - Logger.Error($"Invalid custom info for Blood Fueled: {reason}"); - } - else - { - player.CustomInfo = customInfo; - player.InfoArea |= PlayerInfoArea.CustomInfo; - } - player.MaxHumeShield = 0; player.HumeShield = 0; player.MaxHealth = 3500; @@ -154,4 +142,9 @@ public class BloodFueledHandler : CustomClassHandler player.EnableEffect(1, float.PositiveInfinity); player.EnableEffect(1, float.PositiveInfinity); } + + public override void SendSpawnMessage(Player player, CustomClassConfig config) + { + player.SendBroadcast("You are SCP-939-Blood Fueled \n Your stamina bar has been replaced by a blood meter. \n You refill it by damaging or killing Humans. \n Don't let it run out.", CustomClasses.BroadcastDuration); + } } \ No newline at end of file diff --git a/CustomClasses/CustomClasses.cs b/CustomClasses/CustomClasses.cs index 3ed963a..6403124 100644 --- a/CustomClasses/CustomClasses.cs +++ b/CustomClasses/CustomClasses.cs @@ -464,7 +464,7 @@ public abstract class CustomClassHandler: ICustomClassHandler //Intentionally left blank } - protected virtual void SendSpawnMessage(Player player, CustomClassConfig config) + public virtual void SendSpawnMessage(Player player, CustomClassConfig config) { if (config.Name.IsEmpty()) return; player.SendBroadcast($"You are a {config.FullCustomInfo}!", CustomClasses.BroadcastDuration); @@ -967,6 +967,8 @@ public sealed class BloodFueledConfig : CustomClassConfig public override double ChancePerPlayer { get; set; } = 1.0; public override int MaxSpawns { get; set; } = int.MaxValue; public override RoleTypeId RequiredRole { get; set; } = RoleTypeId.Scp939; + public override string Name { get; init; } = "Blood Fueled"; + public override string Color { get; init; } = "#C50000"; } /// diff --git a/CustomClasses/NegromancerHandler.cs b/CustomClasses/NegromancerHandler.cs index 0bc6ded..e7900fb 100644 --- a/CustomClasses/NegromancerHandler.cs +++ b/CustomClasses/NegromancerHandler.cs @@ -12,7 +12,7 @@ namespace CustomClasses; public class NegromancerHandler : CustomClassHandler { - protected override void SendSpawnMessage(Player player, CustomClassConfig config) + public override void SendSpawnMessage(Player player, CustomClassConfig config) { player.SendBroadcast("You are the Negromancer! Revived players become your Shadow.", CustomClasses.BroadcastDuration); } diff --git a/CustomClasses/PlayerExtensions.cs b/CustomClasses/PlayerExtensions.cs index 21cf8ee..27e9d76 100644 --- a/CustomClasses/PlayerExtensions.cs +++ b/CustomClasses/PlayerExtensions.cs @@ -6,6 +6,12 @@ public static class PlayerExtensions { public static string GetExtendedClass(this Player player) { + foreach (var classManagerConfig in CustomClasses.Instance.ClassManager.Configs.Where(classManagerConfig => player.CustomInfo == classManagerConfig.Value.FullCustomInfo && + !classManagerConfig.Value.Name.IsEmpty())) + { + return classManagerConfig.Value.Name; + } + return ""; } } \ No newline at end of file diff --git a/CustomClasses/SerpentsHandManager.cs b/CustomClasses/SerpentsHandManager.cs index db1efb0..f6ed6b9 100644 --- a/CustomClasses/SerpentsHandManager.cs +++ b/CustomClasses/SerpentsHandManager.cs @@ -284,10 +284,13 @@ public class SerpentsHandHandler : SimpleAddItemHandler player.EnableEffect(20, 30); - player.SendBroadcast("You're a Serpent's Hand member!", CustomClasses.BroadcastDuration); - player.EnableEffect(1, 20f); } + + public override void SendSpawnMessage(Player player, CustomClassConfig config) + { + player.SendBroadcast("You're a Serpent's Hand member!", CustomClasses.BroadcastDuration); + } } [CommandHandler(typeof(RemoteAdminCommandHandler))]