From 27dd919f84005af46da5aaed41366a93e4c35179 Mon Sep 17 00:00:00 2001 From: Joker Date: Tue, 30 Nov 2021 23:45:52 -0800 Subject: [PATCH] funni 11.1 updoot --- CustomItems/Components/Rock.cs | 2 +- CustomItems/CustomItems.csproj | 34 +++++++++++++-------------- CustomItems/Items/AutoGun.cs | 5 +++- CustomItems/Items/DeflectorShield.cs | 7 ++++-- CustomItems/Items/ImplosionGrenade.cs | 14 ++++------- CustomItems/Items/LethalInjection.cs | 5 ++-- CustomItems/Items/MediGun.cs | 3 ++- CustomItems/Items/Scp1499.cs | 5 ++-- CustomItems/Items/Scp2818.cs | 7 +++--- CustomItems/Items/SniperRifle.cs | 3 ++- CustomItems/Items/TranquilizerGun.cs | 6 +++-- CustomItems/packages.config | 2 +- 12 files changed, 51 insertions(+), 42 deletions(-) diff --git a/CustomItems/Components/Rock.cs b/CustomItems/Components/Rock.cs index 6879fd8..7984c88 100644 --- a/CustomItems/Components/Rock.cs +++ b/CustomItems/Components/Rock.cs @@ -70,7 +70,7 @@ public override void ProcessCollision(Collision collision) if (Player.Get(collision.collider.GetComponentInParent()) is Player target && (target.Side != Side || FriendlyFire)) { - target.Hurt(ThrownDamage, DamageTypes.Wall, "ROCK"); + target.Hurt("Rock", ThrownDamage); Player.Get(Owner).ShowHitMarker(1f); } diff --git a/CustomItems/CustomItems.csproj b/CustomItems/CustomItems.csproj index bf7a723..a01ff5d 100644 --- a/CustomItems/CustomItems.csproj +++ b/CustomItems/CustomItems.csproj @@ -53,40 +53,40 @@ $(EXILED_REFERENCES)\CommandSystem.Core.dll - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.API.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.API.dll True - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.Bootstrap.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.Bootstrap.dll True - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.CreditTags.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.CreditTags.dll True - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.CustomItems.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.CustomItems.dll True - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.CustomRoles.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.CustomRoles.dll True - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.Events.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.Events.dll True - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.Loader.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.Loader.dll True - - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.Permissions.dll + + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.Permissions.dll True - ..\packages\EXILED.3.6.0-beta\lib\net472\Exiled.Updater.dll + ..\packages\EXILED.4.0.0-rc.1\lib\net472\Exiled.Updater.dll True diff --git a/CustomItems/Items/AutoGun.cs b/CustomItems/Items/AutoGun.cs index f0ea9b1..fb7d893 100644 --- a/CustomItems/Items/AutoGun.cs +++ b/CustomItems/Items/AutoGun.cs @@ -9,12 +9,15 @@ namespace CustomItems.Items { using System.Collections.Generic; using System.ComponentModel; + using Exiled.API.Enums; + using Exiled.API.Extensions; using Exiled.API.Features; using Exiled.API.Features.Items; using Exiled.API.Features.Spawn; using Exiled.CustomItems.API; using Exiled.CustomItems.API.Features; using Exiled.Events.EventArgs; + using PlayerStatsSystem; using UnityEngine; /// @@ -93,7 +96,7 @@ protected override void OnShooting(ShootingEventArgs ev) continue; ammoUsed++; - player.Hurt(Damage, DamageTypes.Com15, ev.Shooter.Nickname, ev.Shooter.Id); + player.Hurt(new FirearmDamageHandler(firearm.Base, Damage, player.Role.GetSide() != Side.Scp)); if (player.IsDead) player.ShowHint("YOU HAVE BEEN KILLED BY AUTO AIM GUN"); ev.Shooter.ShowHitMarker(1f); diff --git a/CustomItems/Items/DeflectorShield.cs b/CustomItems/Items/DeflectorShield.cs index 421c2dc..c534c48 100644 --- a/CustomItems/Items/DeflectorShield.cs +++ b/CustomItems/Items/DeflectorShield.cs @@ -18,8 +18,11 @@ namespace CustomItems.Items using Exiled.CustomItems.API.EventArgs; using Exiled.CustomItems.API.Features; using Exiled.Events.EventArgs; + using InventorySystem.Items.Firearms; using MEC; + using PlayerStatsSystem; using YamlDotNet.Serialization; + using Firearm = Exiled.API.Features.Items.Firearm; /// public class DeflectorShield : CustomItem @@ -143,10 +146,10 @@ private void OnItemUsed(UsedItemEventArgs ev) private void OnHurt(HurtingEventArgs ev) { - if (deflectorPlayers.Contains(ev.Target) && ((ItemType)ev.DamageType.Weapon).IsWeapon() && ev.Target != ev.Attacker && !ev.DamageType.Equals(DamageTypes.MicroHID)) + if (deflectorPlayers.Contains(ev.Target) && (ev.DamageHandler is FirearmDamageHandler && ev.Target != ev.Attacker)) { ev.IsAllowed = false; - ev.Attacker.Hurt(ev.Amount * Multiplier, ev.Target, ev.DamageType); + ev.Attacker.Hurt(new FirearmDamageHandler(((Firearm)ev.Attacker.CurrentItem).Base, ev.Amount * Multiplier, ev.Attacker.Side != Side.Scp)); } } } diff --git a/CustomItems/Items/ImplosionGrenade.cs b/CustomItems/Items/ImplosionGrenade.cs index b6a3624..88be140 100644 --- a/CustomItems/Items/ImplosionGrenade.cs +++ b/CustomItems/Items/ImplosionGrenade.cs @@ -144,16 +144,12 @@ protected override void OnExploding(ExplodingGrenadeEventArgs ev) layerMask = explosionGrenade._detectionMask; } - foreach (Transform grenadePoint in player.ReferenceHub.playerStats.grenadePoints) + bool line = Physics.Linecast(ev.Grenade.transform.position, player.Position, layerMask); + Log.Debug($"{player.Nickname} - {line}", CustomItems.Instance.Config.IsDebugEnabled); + if (!line) { - bool line = Physics.Linecast(ev.Grenade.transform.position, grenadePoint.position, layerMask); - Log.Debug($"{player.Nickname} - {line}", CustomItems.Instance.Config.IsDebugEnabled); - if (!line) - { - effectedPlayers.Add(player); - Coroutines.Add(Timing.RunCoroutine(DoSuction(player, ev.Grenade.transform.position + (Vector3.up * 1.5f)))); - break; - } + effectedPlayers.Add(player); + Coroutines.Add(Timing.RunCoroutine(DoSuction(player, ev.Grenade.transform.position + (Vector3.up * 1.5f)))); } } catch (Exception exception) diff --git a/CustomItems/Items/LethalInjection.cs b/CustomItems/Items/LethalInjection.cs index 3a3f932..a55f49a 100644 --- a/CustomItems/Items/LethalInjection.cs +++ b/CustomItems/Items/LethalInjection.cs @@ -17,6 +17,7 @@ namespace CustomItems.Items using Exiled.Events.EventArgs; using MEC; using PlayableScps; + using PlayerStatsSystem; using Player = Exiled.Events.Handlers.Player; using Scp096 = PlayableScps.Scp096; @@ -96,7 +97,7 @@ private void OnUsingItem(UsedItemEventArgs ev) Log.Debug($"{player.Nickname} 096 checks passed.", CustomItems.Instance.Config.IsDebugEnabled); scp096.EndEnrage(); - ev.Player.Kill(DamageTypes.Poison); + ev.Player.Hurt(new UniversalDamageHandler(-1f, DeathTranslations.Poisoned)); return; } @@ -111,7 +112,7 @@ private void OnUsingItem(UsedItemEventArgs ev) } Log.Debug($"{Name} kill on fail: {ev.Player.Nickname}", CustomItems.Instance.Config.IsDebugEnabled); - ev.Player.Kill(DamageTypes.Poison); + ev.Player.Hurt(new UniversalDamageHandler(-1f, DeathTranslations.Poisoned)); }); ev.Player.RemoveItem(ev.Player.CurrentItem); diff --git a/CustomItems/Items/MediGun.cs b/CustomItems/Items/MediGun.cs index ab1eb60..38cc97c 100644 --- a/CustomItems/Items/MediGun.cs +++ b/CustomItems/Items/MediGun.cs @@ -16,6 +16,7 @@ namespace CustomItems.Items using Exiled.CustomItems.API; using Exiled.CustomItems.API.Features; using Exiled.Events.EventArgs; + using PlayerStatsSystem; using UnityEngine; using Firearm = Exiled.API.Features.Items.Firearm; @@ -122,7 +123,7 @@ protected override void OnWaitingForPlayers() /// protected override void OnHurting(HurtingEventArgs ev) { - if (Check(ev.Attacker.CurrentItem) && ev.Attacker != ev.Target && ev.Attacker.CurrentItem is Firearm firearm && ev.DamageType.Equals(firearm.DamageType)) + if (Check(ev.Attacker.CurrentItem) && ev.Attacker != ev.Target && ev.DamageHandler is FirearmDamageHandler firearmHandler && firearmHandler.WeaponType == ev.Attacker.CurrentItem.Type) ev.Amount = 0f; } diff --git a/CustomItems/Items/Scp1499.cs b/CustomItems/Items/Scp1499.cs index c3677fa..79fd011 100644 --- a/CustomItems/Items/Scp1499.cs +++ b/CustomItems/Items/Scp1499.cs @@ -17,6 +17,7 @@ namespace CustomItems.Items using Exiled.CustomItems.API.Features; using Exiled.Events.EventArgs; using MEC; + using PlayerStatsSystem; using UnityEngine; /// @@ -162,7 +163,7 @@ private void SendPlayerBack(Player player) } if (shouldKill) - player.Kill(DamageTypes.Nuke); + player.Hurt(new WarheadDamageHandler()); } else if (Map.IsLczDecontaminated) { @@ -183,7 +184,7 @@ private void SendPlayerBack(Player player) } if (shouldKill) - player.Kill(DamageTypes.Decont); + player.Hurt(new UniversalDamageHandler(-1f, DeathTranslations.Decontamination)); } scp1499Players.Remove(player); diff --git a/CustomItems/Items/Scp2818.cs b/CustomItems/Items/Scp2818.cs index 9d93bbb..f8bd706 100644 --- a/CustomItems/Items/Scp2818.cs +++ b/CustomItems/Items/Scp2818.cs @@ -18,6 +18,7 @@ namespace CustomItems.Items using Exiled.CustomItems.API.Features; using Exiled.Events.EventArgs; using MEC; + using PlayerStatsSystem; using UnityEngine; using YamlDotNet.Serialization; @@ -103,7 +104,7 @@ protected override void OnShooting(ShootingEventArgs ev) Player target = Player.Get(ev.TargetNetId); if (ev.ShotPosition == Vector3.zero || (ev.Shooter.Position - ev.ShotPosition).sqrMagnitude > 1000f) { - ev.Shooter.Kill(DamageTypes.Nuke); + ev.Shooter.Hurt(new UniversalDamageHandler(-1f, DeathTranslations.Warhead)); ev.IsAllowed = false; return; } @@ -161,9 +162,9 @@ private IEnumerator ShooterProjectile(Player player, Vector3 targetPos, P } if (player.Role != RoleType.Spectator) - player.Kill(DamageTypes.Nuke); + player.Hurt(new UniversalDamageHandler(-1f, DeathTranslations.Warhead)); if (target?.Role != RoleType.Spectator) - target?.Hurt(Damage, DamageTypes.Nuke, player.Nickname, player.Id); + target?.Hurt(new UniversalDamageHandler(Damage, DeathTranslations.Warhead)); } } } \ No newline at end of file diff --git a/CustomItems/Items/SniperRifle.cs b/CustomItems/Items/SniperRifle.cs index ba0a59b..c4d2c32 100644 --- a/CustomItems/Items/SniperRifle.cs +++ b/CustomItems/Items/SniperRifle.cs @@ -14,6 +14,7 @@ namespace CustomItems.Items using Exiled.CustomItems.API; using Exiled.CustomItems.API.Features; using Exiled.Events.EventArgs; + using PlayerStatsSystem; using YamlDotNet.Serialization; /// @@ -72,7 +73,7 @@ public class SniperRifle : CustomWeapon /// protected override void OnHurting(HurtingEventArgs ev) { - if (ev.Attacker != ev.Target && ev.Attacker.CurrentItem is Firearm firearm && ev.DamageType.Equals(firearm.DamageType)) + if (ev.Attacker != ev.Target && ev.DamageHandler is FirearmDamageHandler firearmDamageHandler && firearmDamageHandler.WeaponType == ev.Attacker.CurrentItem.Type) ev.Amount *= DamageMultiplier; } } diff --git a/CustomItems/Items/TranquilizerGun.cs b/CustomItems/Items/TranquilizerGun.cs index 2a8805d..16fb355 100644 --- a/CustomItems/Items/TranquilizerGun.cs +++ b/CustomItems/Items/TranquilizerGun.cs @@ -20,7 +20,9 @@ namespace CustomItems.Items using Exiled.Events.EventArgs; using MEC; using Mirror; + using PlayerStatsSystem; using UnityEngine; + using Ragdoll = Exiled.API.Features.Ragdoll; using Random = UnityEngine.Random; /// @@ -197,7 +199,7 @@ private IEnumerator DoTranquilize(Player player, float duration) Log.Error($"{nameof(DoTranquilize)}: {e}"); } - Ragdoll ragdoll = Ragdoll.Spawn(player, DamageTypes.None, oldPosition, default, default, false, false); + Ragdoll ragdoll = new Ragdoll(player, new UniversalDamageHandler(0f, DeathTranslations.Warhead), true); player.IsInvisible = true; player.Scale = Vector3.one * 0.2f; @@ -241,7 +243,7 @@ private IEnumerator DoTranquilize(Player player, float duration) if (Warhead.IsDetonated && player.Position.y < 900) { - player.Kill(DamageTypes.Nuke); + player.Hurt(new UniversalDamageHandler(-1f, DeathTranslations.Warhead)); yield break; } diff --git a/CustomItems/packages.config b/CustomItems/packages.config index 4953406..3cc9ea9 100644 --- a/CustomItems/packages.config +++ b/CustomItems/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file