Skip to content

Commit 0778174

Browse files
MS-crewlouis1706
andauthored
feat: Generic damage handler add new value (#561)
* Clean * Update GenericDamageHandler.cs * Cleanup * Remove BreakingChange * Fix Ambiguous when compiling --------- Co-authored-by: Yamato <louismonneyron5@yahoo.com> Co-authored-by: Yamato <66829532+louis1706@users.noreply.github.com>
1 parent 1c2792a commit 0778174

3 files changed

Lines changed: 21 additions & 6 deletions

File tree

EXILED/Exiled.API/Enums/DamageType.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ namespace Exiled.API.Enums
1515
/// Identifiers for types of damage.
1616
/// </summary>
1717
/// <seealso cref="Player.Hurt(float, DamageType, string)"/>
18-
/// <seealso cref="Player.Hurt(Player, float, DamageType, Features.DamageHandlers.DamageHandlerBase.CassieAnnouncement)"/>
19-
/// <seealso cref="Player.Hurt(Player, float, DamageType, Features.DamageHandlers.DamageHandlerBase.CassieAnnouncement, string)"/>
18+
/// <seealso cref="Player.Hurt(Player, float, DamageType, Features.DamageHandlers.DamageHandlerBase.CassieAnnouncement, string, bool)"/>
2019
/// <seealso cref="Player.Kill(DamageType, string)"/>
2120
public enum DamageType
2221
{
@@ -275,4 +274,4 @@ public enum DamageType
275274
/// </summary>
276275
Scp127,
277276
}
278-
}
277+
}

EXILED/Exiled.API/Features/DamageHandlers/GenericDamageHandler.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace Exiled.API.Features.DamageHandlers
1212
using Footprinting;
1313
using Items;
1414

15+
using PlayerRoles;
1516
using PlayerRoles.PlayableScps.Scp096;
1617
using PlayerRoles.PlayableScps.Scp939;
1718

@@ -29,6 +30,7 @@ public class GenericDamageHandler : CustomReasonDamageHandler
2930
private Player player;
3031
private DamageType damageType;
3132
private DamageHandlerBase.CassieAnnouncement customCassieAnnouncement;
33+
private bool overrideCassieForAllRole;
3234

3335
/// <summary>
3436
/// Initializes a new instance of the <see cref="GenericDamageHandler"/> class.
@@ -40,11 +42,13 @@ public class GenericDamageHandler : CustomReasonDamageHandler
4042
/// <param name="damageType"> Damage type. </param>
4143
/// <param name="cassieAnnouncement"> Custom cassie announcment. </param>
4244
/// <param name="damageText"> Text to provide to player death screen. </param>
43-
public GenericDamageHandler(Player player, Player attacker, float damage, DamageType damageType, DamageHandlerBase.CassieAnnouncement cassieAnnouncement, string damageText = null)
45+
/// <param name="overrideCassieForAllRole">Whether to play Cassie for non-SCPs as well.</param>
46+
public GenericDamageHandler(Player player, Player attacker, float damage, DamageType damageType, DamageHandlerBase.CassieAnnouncement cassieAnnouncement, string damageText = null, bool overrideCassieForAllRole = false)
4447
: base(DamageTextDefault)
4548
{
4649
this.player = player;
4750
this.damageType = damageType;
51+
this.overrideCassieForAllRole = overrideCassieForAllRole;
4852
cassieAnnouncement ??= DamageHandlerBase.CassieAnnouncement.Default;
4953
customCassieAnnouncement = cassieAnnouncement;
5054

@@ -237,7 +241,7 @@ public override HandlerOutput ApplyDamage(ReferenceHub ply)
237241
HandlerOutput output = base.ApplyDamage(ply);
238242
if (output is HandlerOutput.Death)
239243
{
240-
if (customCassieAnnouncement?.Announcement != null)
244+
if (customCassieAnnouncement?.Announcement != null && (overrideCassieForAllRole || ply.IsSCP()))
241245
{
242246
Cassie.Message(customCassieAnnouncement.Announcement);
243247
}

EXILED/Exiled.API/Features/Player.cs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2149,9 +2149,21 @@ public void Hurt(Player attacker, float amount, DamageType damageType = DamageTy
21492149
/// <param name="damageType">The <see cref="DamageType"/> of the damage dealt.</param>
21502150
/// <param name="cassieAnnouncement">The <see cref="CassieAnnouncement"/> cassie announcement to make if the damage kills the player.</param>
21512151
/// <param name="deathText"> The <see langword="string"/> death text to appear on <see cref="Player"/> screen. </param>
2152-
public void Hurt(Player attacker, float amount, DamageType damageType = DamageType.Unknown, CassieAnnouncement cassieAnnouncement = null, string deathText = null) =>
2152+
public void Hurt(Player attacker, float amount, DamageType damageType, CassieAnnouncement cassieAnnouncement, string deathText) =>
21532153
Hurt(new GenericDamageHandler(this, attacker, amount, damageType, cassieAnnouncement, deathText));
21542154

2155+
/// <summary>
2156+
/// Hurts the player.
2157+
/// </summary>
2158+
/// <param name="attacker">The <see cref="Player"/> attacking player.</param>
2159+
/// <param name="amount">The <see langword="float"/> amount of damage to deal.</param>
2160+
/// <param name="damageType">The <see cref="DamageType"/> of the damage dealt.</param>
2161+
/// <param name="cassieAnnouncement">The <see cref="CassieAnnouncement"/> cassie announcement to make if the damage kills the player.</param>
2162+
/// <param name="deathText">The <see langword="string"/> death text to appear on <see cref="Player"/> screen.</param>
2163+
/// <param name="overrideCassieForAllRole">Whether to play Cassie for non-SCPs as well.</param>
2164+
public void Hurt(Player attacker, float amount, DamageType damageType, CassieAnnouncement cassieAnnouncement, string deathText, bool overrideCassieForAllRole) =>
2165+
Hurt(new GenericDamageHandler(this, attacker, amount, damageType, cassieAnnouncement, deathText, overrideCassieForAllRole));
2166+
21552167
/// <summary>
21562168
/// Hurts the player.
21572169
/// </summary>

0 commit comments

Comments
 (0)