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
+}
diff --git a/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs b/EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs
index bd858b3447..4d74256cca 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;
@@ -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);
}
diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs
index 779982d2fb..49950252b4 100644
--- a/EXILED/Exiled.API/Features/Player.cs
+++ b/EXILED/Exiled.API/Features/Player.cs
@@ -2135,9 +2135,21 @@ public void Hurt(Player attacker, float amount, DamageType damageType = DamageTy
/// 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) =>
+ public void Hurt(Player attacker, float amount, DamageType damageType, CassieAnnouncement cassieAnnouncement, string deathText) =>
Hurt(new GenericDamageHandler(this, attacker, amount, damageType, cassieAnnouncement, deathText));
+ ///
+ /// 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.
+ /// Whether to play Cassie for non-SCPs as well.
+ public void Hurt(Player attacker, float amount, DamageType damageType, CassieAnnouncement cassieAnnouncement, string deathText, bool overrideCassieForAllRole) =>
+ Hurt(new GenericDamageHandler(this, attacker, amount, damageType, cassieAnnouncement, deathText, overrideCassieForAllRole));
+
///
/// Hurts the player.
///