From 9604bba0f7c978fa458cf0f9975679327785606a Mon Sep 17 00:00:00 2001
From: MS-crew <100300664+MS-crew@users.noreply.github.com>
Date: Fri, 30 May 2025 16:50:50 +0300
Subject: [PATCH 1/5] Update GenericDamageHandler.cs
---
.../Features/DamageHandlers/GenericDamageHandler.cs | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs b/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs
index bd858b3447..b6e7ac55eb 100644
--- a/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs
+++ b/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs
@@ -12,6 +12,7 @@ namespace Exiled.API.Features.DamageHandlers
using Footprinting;
using Items;
+ using PlayerRoles;
using PlayerRoles.PlayableScps.Scp096;
using PlayerRoles.PlayableScps.Scp939;
@@ -29,6 +30,7 @@ public class GenericDamageHandler : CustomReasonDamageHandler
private Player player;
private DamageType damageType;
private DamageHandlerBase.CassieAnnouncement customCassieAnnouncement;
+ private bool overrideCassieForAllRole;
///
/// Initializes a new instance of the class.
@@ -40,11 +42,13 @@ public class GenericDamageHandler : CustomReasonDamageHandler
/// Damage type.
/// Custom cassie announcment.
/// Text to provide to player death screen.
- public GenericDamageHandler(Player player, Player attacker, float damage, DamageType damageType, DamageHandlerBase.CassieAnnouncement cassieAnnouncement, string damageText = null)
+ /// Whether to play Cassie for non-SCPs as well.
+ public GenericDamageHandler(Player player, Player attacker, float damage, DamageType damageType, DamageHandlerBase.CassieAnnouncement cassieAnnouncement, string damageText = null, bool overrideCassieForAllRole = false)
: base(DamageTextDefault)
{
this.player = player;
this.damageType = damageType;
+ this.overrideCassieForAllRole = overrideCassieForAllRole;
cassieAnnouncement ??= DamageHandlerBase.CassieAnnouncement.Default;
customCassieAnnouncement = cassieAnnouncement;
@@ -159,7 +163,7 @@ public GenericDamageHandler(Player player, Player attacker, float damage, Damage
GenericFirearm(player, attacker, damage, damageType, ItemType.GunSCP127);
break;
case DamageType.ParticleDisruptor:
- Base = new DisruptorDamageHandler(new (Item.Create(ItemType.ParticleDisruptor, attacker).Base as InventorySystem.Items.Firearms.Firearm, InventorySystem.Items.Firearms.Modules.DisruptorActionModule.FiringState.FiringSingle), Vector3.up, damage);
+ Base = new DisruptorDamageHandler(new(Item.Create(ItemType.ParticleDisruptor, attacker).Base as InventorySystem.Items.Firearms.Firearm, InventorySystem.Items.Firearms.Modules.DisruptorActionModule.FiringState.FiringSingle), Vector3.up, damage);
break;
case DamageType.Scp096:
Scp096Role curr096 = attacker.ReferenceHub.roleManager.CurrentRole as Scp096Role ?? new Scp096Role();
@@ -237,7 +241,7 @@ public override HandlerOutput ApplyDamage(ReferenceHub ply)
HandlerOutput output = base.ApplyDamage(ply);
if (output is HandlerOutput.Death)
{
- if (customCassieAnnouncement?.Announcement != null)
+ if (customCassieAnnouncement?.Announcement != null && (overrideCassieForAllRole || ply.IsSCP()))
{
Cassie.Message(customCassieAnnouncement.Announcement);
}
From 36a85c0b68d5ce50e86f7e51fa902db91d7fbcd2 Mon Sep 17 00:00:00 2001
From: MS-crew <100300664+MS-crew@users.noreply.github.com>
Date: Fri, 30 May 2025 16:55:38 +0300
Subject: [PATCH 2/5] Update GenericDamageHandler.cs
From bb1747b634474fda097f35ea75aa32f8c28b8a5e Mon Sep 17 00:00:00 2001
From: MS-crew <100300664+MS-crew@users.noreply.github.com>
Date: Fri, 30 May 2025 16:56:50 +0300
Subject: [PATCH 3/5] Update GenericDamageHandler.cs
---
.../Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs b/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs
index b6e7ac55eb..4d74256cca 100644
--- a/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs
+++ b/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs
@@ -163,7 +163,7 @@ public GenericDamageHandler(Player player, Player attacker, float damage, Damage
GenericFirearm(player, attacker, damage, damageType, ItemType.GunSCP127);
break;
case DamageType.ParticleDisruptor:
- Base = new DisruptorDamageHandler(new(Item.Create(ItemType.ParticleDisruptor, attacker).Base as InventorySystem.Items.Firearms.Firearm, InventorySystem.Items.Firearms.Modules.DisruptorActionModule.FiringState.FiringSingle), Vector3.up, damage);
+ Base = new DisruptorDamageHandler(new (Item.Create(ItemType.ParticleDisruptor, attacker).Base as InventorySystem.Items.Firearms.Firearm, InventorySystem.Items.Firearms.Modules.DisruptorActionModule.FiringState.FiringSingle), Vector3.up, damage);
break;
case DamageType.Scp096:
Scp096Role curr096 = attacker.ReferenceHub.roleManager.CurrentRole as Scp096Role ?? new Scp096Role();
From 0c058cef9378d549a0054d16bc5c4911dde7b3d9 Mon Sep 17 00:00:00 2001
From: MS-crew <100300664+MS-crew@users.noreply.github.com>
Date: Fri, 30 May 2025 16:58:04 +0300
Subject: [PATCH 4/5] Update DamageType.cs
---
EXILED/Exiled.API/Enums/DamageType.cs | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/EXILED/Exiled.API/Enums/DamageType.cs b/EXILED/Exiled.API/Enums/DamageType.cs
index ae93c5c020..e1054e1f33 100644
--- a/EXILED/Exiled.API/Enums/DamageType.cs
+++ b/EXILED/Exiled.API/Enums/DamageType.cs
@@ -15,8 +15,7 @@ namespace Exiled.API.Enums
/// Identifiers for types of damage.
///
///
- ///
- ///
+ ///
///
public enum DamageType
{
@@ -275,4 +274,4 @@ public enum DamageType
///
Scp127,
}
-}
\ No newline at end of file
+}
From 6ff6ec86d02f6519f764409d0de8e55f858ccea3 Mon Sep 17 00:00:00 2001
From: MS-crew <100300664+MS-crew@users.noreply.github.com>
Date: Fri, 30 May 2025 16:59:35 +0300
Subject: [PATCH 5/5] Update Player.cs
---
EXILED/Exiled.API/Features/Player.cs | 17 ++++-------------
1 file changed, 4 insertions(+), 13 deletions(-)
diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs
index d24ec00757..8241712a7d 100644
--- a/EXILED/Exiled.API/Features/Player.cs
+++ b/EXILED/Exiled.API/Features/Player.cs
@@ -2139,19 +2139,10 @@ public int GetScpPreference(RoleTypeId roleType)
/// The amount of damage to deal.
/// The of the damage dealt.
/// The cassie announcement to make if the damage kills the player.
- public void Hurt(Player attacker, float amount, DamageType damageType = DamageType.Unknown, CassieAnnouncement cassieAnnouncement = null) =>
- Hurt(new GenericDamageHandler(this, attacker, amount, damageType, cassieAnnouncement));
-
- ///
- /// Hurts the player.
- ///
- /// The attacking player.
- /// The amount of damage to deal.
- /// The of the damage dealt.
- /// The cassie announcement to make if the damage kills the player.
- /// The death text to appear on screen.
- public void Hurt(Player attacker, float amount, DamageType damageType = DamageType.Unknown, CassieAnnouncement cassieAnnouncement = null, string deathText = null) =>
- Hurt(new GenericDamageHandler(this, attacker, amount, damageType, cassieAnnouncement, deathText));
+ /// The death text to appear on screen.
+ /// Whether to play Cassie for non-SCPs as well.
+ public void Hurt(Player attacker, float amount, DamageType damageType = DamageType.Unknown, CassieAnnouncement cassieAnnouncement = null, string deathText = null, bool overrideCassieForAllRole = false) =>
+ Hurt(new GenericDamageHandler(this, attacker, amount, damageType, cassieAnnouncement, deathText, overrideCassieForAllRole));
///
/// Hurts the player.