diff --git a/EXILED/Exiled.API/Enums/DoorType.cs b/EXILED/Exiled.API/Enums/DoorType.cs index 52fb3ef34e..830631ad9c 100644 --- a/EXILED/Exiled.API/Enums/DoorType.cs +++ b/EXILED/Exiled.API/Enums/DoorType.cs @@ -7,7 +7,7 @@ namespace Exiled.API.Enums { - using Exiled.API.Features.Doors; + using Features.Doors; using Interactables.Interobjects; /// @@ -273,7 +273,7 @@ public enum DoorType ElevatorGateB, /// - /// Represents the Elevator door for . + /// Represents the Elevator door for and . /// ElevatorNuke, diff --git a/EXILED/Exiled.API/Enums/RespawnEffectType.cs b/EXILED/Exiled.API/Enums/RespawnEffectType.cs index 672abb1976..34ce495b51 100644 --- a/EXILED/Exiled.API/Enums/RespawnEffectType.cs +++ b/EXILED/Exiled.API/Enums/RespawnEffectType.cs @@ -7,10 +7,6 @@ namespace Exiled.API.Enums { - using Features; - - using PlayerRoles; - /// /// Layers game respawn effects. /// diff --git a/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs b/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs index dd597645c3..5b598de818 100644 --- a/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs +++ b/EXILED/Exiled.API/Features/Doors/ElevatorDoor.cs @@ -10,9 +10,8 @@ namespace Exiled.API.Features.Doors using System.Collections.Generic; using System.Linq; - using Exiled.API.Enums; + using Enums; using Interactables.Interobjects; - using Interactables.Interobjects.DoorUtils; using UnityEngine; /// diff --git a/EXILED/Exiled.API/Features/Items/Firearm.cs b/EXILED/Exiled.API/Features/Items/Firearm.cs index 554ccc3c6d..4c6466933a 100644 --- a/EXILED/Exiled.API/Features/Items/Firearm.cs +++ b/EXILED/Exiled.API/Features/Items/Firearm.cs @@ -13,24 +13,18 @@ namespace Exiled.API.Features.Items using CameraShaking; using Enums; - using Exiled.API.Features.Pickups; - using Exiled.API.Interfaces; - using Exiled.API.Structs; using Extensions; - using InventorySystem; - using InventorySystem.Items; - using InventorySystem.Items.Firearms; + using Interfaces; using InventorySystem.Items.Firearms.Attachments; using InventorySystem.Items.Firearms.Attachments.Components; - using InventorySystem.Items.Firearms.BasicMessages; using InventorySystem.Items.Firearms.Modules; - using InventorySystem.Items.Pickups; using MEC; + using Pickups; + using Structs; using UnityEngine; using BaseFirearm = InventorySystem.Items.Firearms.Firearm; using FirearmPickup = Pickups.FirearmPickup; - using Object = UnityEngine.Object; /// /// A wrapper class for . diff --git a/EXILED/Exiled.API/Features/Items/Flashlight.cs b/EXILED/Exiled.API/Features/Items/Flashlight.cs index 93a3876ca6..c7cb386924 100644 --- a/EXILED/Exiled.API/Features/Items/Flashlight.cs +++ b/EXILED/Exiled.API/Features/Items/Flashlight.cs @@ -7,9 +7,7 @@ namespace Exiled.API.Features.Items { - using System; - - using Exiled.API.Interfaces; + using Interfaces; using InventorySystem.Items.ToggleableLights; using InventorySystem.Items.ToggleableLights.Flashlight; using InventorySystem.Items.ToggleableLights.Lantern; diff --git a/EXILED/Exiled.API/Features/Npc.cs b/EXILED/Exiled.API/Features/Npc.cs index d7d7d6d78c..0231f73a6f 100644 --- a/EXILED/Exiled.API/Features/Npc.cs +++ b/EXILED/Exiled.API/Features/Npc.cs @@ -15,14 +15,14 @@ namespace Exiled.API.Features using CentralAuth; using CommandSystem; - using Exiled.API.Enums; - using Exiled.API.Features.Components; - using Exiled.API.Features.Roles; + using Components; + using Enums; using Footprinting; using GameCore; using MEC; using Mirror; using PlayerRoles; + using Roles; using UnityEngine; using Object = UnityEngine.Object; @@ -133,13 +133,15 @@ public override Vector3 Position /// The NPC associated with the NetworkConnection, or null if not found. public static new Npc? Get(NetworkConnection conn) => Player.Get(conn) as Npc; + // TODO: Write docs. + /// - /// Docs. + /// to be filled. /// - /// Docs1. - /// Docs2. - /// Docs3. - /// Docs4. + /// to be filled.. + /// to be filled... + /// to be filled.... + /// to be filled..... public static Npc Create(string name, RoleTypeId role, Vector3 position) { // TODO: Test this. diff --git a/EXILED/Exiled.API/Features/Pickups/Pickup.cs b/EXILED/Exiled.API/Features/Pickups/Pickup.cs index 2deb4f4845..c3bbf4b025 100644 --- a/EXILED/Exiled.API/Features/Pickups/Pickup.cs +++ b/EXILED/Exiled.API/Features/Pickups/Pickup.cs @@ -7,22 +7,19 @@ namespace Exiled.API.Features.Pickups { - using System; using System.Collections.Generic; using System.Linq; - using Exiled.API.Extensions; - using Exiled.API.Features.Core; - using Exiled.API.Features.Pickups.Projectiles; - using Exiled.API.Interfaces; - + using Core; + using Extensions; + using Interfaces; using InventorySystem; using InventorySystem.Items; using InventorySystem.Items.Pickups; using InventorySystem.Items.ThrowableProjectiles; using InventorySystem.Items.Usables.Scp244; - using Mirror; + using Projectiles; using RelativePositioning; using UnityEngine; @@ -37,7 +34,6 @@ namespace Exiled.API.Features.Pickups using BaseScp1576Pickup = InventorySystem.Items.Usables.Scp1576.Scp1576Pickup; using BaseScp2176Projectile = InventorySystem.Items.ThrowableProjectiles.Scp2176Projectile; using BaseScp330Pickup = InventorySystem.Items.Usables.Scp330.Scp330Pickup; - using Object = UnityEngine.Object; /// diff --git a/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs b/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs index f33d935a97..0a766bf14b 100644 --- a/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs +++ b/EXILED/Exiled.API/Features/Pickups/Projectiles/Scp018Projectile.cs @@ -7,12 +7,10 @@ namespace Exiled.API.Features.Pickups.Projectiles { - using System; using System.Reflection; - using Exiled.API.Interfaces; using HarmonyLib; - + using Interfaces; using InventorySystem.Items.ThrowableProjectiles; using BaseScp018Projectile = InventorySystem.Items.ThrowableProjectiles.Scp018Projectile; diff --git a/EXILED/Exiled.API/Features/Player.cs b/EXILED/Exiled.API/Features/Player.cs index 80a09d4aa7..b6d8a05184 100644 --- a/EXILED/Exiled.API/Features/Player.cs +++ b/EXILED/Exiled.API/Features/Player.cs @@ -17,21 +17,16 @@ namespace Exiled.API.Features using CustomPlayerEffects; using CustomPlayerEffects.Danger; using DamageHandlers; + using Doors; using Enums; using Exiled.API.Features.Core.Interfaces; - using Exiled.API.Features.Doors; - using Exiled.API.Features.Hazards; - using Exiled.API.Features.Items; - using Exiled.API.Features.Pickups; - using Exiled.API.Features.Pools; - using Exiled.API.Features.Roles; - using Exiled.API.Interfaces; - using Exiled.API.Structs; using Extensions; using Footprinting; using global::Scp914; + using Hazards; using Hints; using Interactables.Interobjects; + using Interfaces; using InventorySystem; using InventorySystem.Disarming; using InventorySystem.Items; @@ -41,10 +36,12 @@ namespace Exiled.API.Features using InventorySystem.Items.Firearms.ShotEvents; using InventorySystem.Items.Usables; using InventorySystem.Items.Usables.Scp330; + using Items; using MapGeneration.Distributors; using MEC; using Mirror; using Mirror.LiteNetLib4Mirror; + using Pickups; using PlayerRoles; using PlayerRoles.FirstPersonControl; using PlayerRoles.RoleAssign; @@ -52,10 +49,13 @@ namespace Exiled.API.Features using PlayerRoles.Voice; using PlayerStatsSystem; using PluginAPI.Core; + using Pools; using RelativePositioning; using RemoteAdmin; using Respawning.NamingRules; + using Roles; using RoundRestarting; + using Structs; using UnityEngine; using Utils; using Utils.Networking; diff --git a/EXILED/Exiled.API/Features/Respawn.cs b/EXILED/Exiled.API/Features/Respawn.cs index d43ac4e1a8..69059fc441 100644 --- a/EXILED/Exiled.API/Features/Respawn.cs +++ b/EXILED/Exiled.API/Features/Respawn.cs @@ -181,25 +181,31 @@ public static bool TryGetWaveBase(SpawnableFaction faction, out SpawnableWaveBas return false; } + // TODO: Write docs. + /// - /// Docs. + /// to be filled. /// - /// Docs1. - /// Docs2. + /// to be filled.. + /// to be filled... public static void AdvanceTime(Faction faction, float time) => WaveManager.AdvanceTimer(faction, time); + // TODO: Write docs. + /// - /// Docs. + /// to be filled. /// - /// Docs1. + /// to be filled.. public static void SpawnWave(SpawnableWaveBase wave) => WaveManager.Spawn(wave); + // TODO: Write docs. + /// - /// Docs. + /// to be filled. /// - /// Docs1. - /// Docs2. - /// Docs3. + /// to be filled.. + /// to be filled... + /// to be filled.... public static void SpawnWave(Faction faction, bool mini) where T : SpawnableWaveBase { @@ -290,10 +296,12 @@ public static void ForceWave(Faction team) ForceWave(wave); } + // TODO: Write docs. + /// - /// Docs. + /// to be filled. /// - /// Docs1. + /// to be filled.... public static void ForceWave(SpawnableWaveBase wave) { WaveManager.Spawn(wave); diff --git a/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs b/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs index f475591a6f..f64c5b012d 100644 --- a/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs +++ b/EXILED/Exiled.Events/EventArgs/Server/RespawningTeamEventArgs.cs @@ -35,18 +35,18 @@ public class RespawningTeamEventArgs : IDeniableEvent /// /// /// - /// - /// + /// + /// /// /// /// /// - public RespawningTeamEventArgs(List players, Queue queue, int maxRespawn, SpawnableWaveBase nextKnownTeam, bool isAllowed = true) + public RespawningTeamEventArgs(List players, Queue queue, int maxRespawn, SpawnableWaveBase respawningTeam, bool isAllowed = true) { Players = players; MaximumRespawnAmount = maxRespawn; SpawnQueue = queue; - NextKnownTeam = nextKnownTeam; + RespawningTeam = respawningTeam; IsAllowed = isAllowed; } @@ -74,9 +74,9 @@ public int MaximumRespawnAmount } /// - /// Gets or sets a value indicating what the next respawnable team is. + /// Gets or sets a value indicating what the currently respawning team is. /// - public SpawnableWaveBase NextKnownTeam { get; set; } + public SpawnableWaveBase RespawningTeam { get; set; } /// /// Gets or sets a value indicating whether the spawn can occur. diff --git a/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs b/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs index eacd1e1684..efecf0c055 100644 --- a/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs +++ b/EXILED/Exiled.Events/Patches/Events/Scp049/FinishingRecall.cs @@ -8,15 +8,14 @@ namespace Exiled.Events.Patches.Events.Scp049 { using System.Collections.Generic; + using System.Diagnostics.CodeAnalysis; using System.Reflection.Emit; using API.Features; using API.Features.Pools; using Exiled.Events.Attributes; using Exiled.Events.EventArgs.Scp049; - using HarmonyLib; - using PlayerRoles.PlayableScps.Scp049; using PlayerRoles.Subroutines; @@ -30,7 +29,8 @@ namespace Exiled.Events.Patches.Events.Scp049 [HarmonyPatch(typeof(Scp049ResurrectAbility), nameof(Scp049ResurrectAbility.ServerComplete))] internal static class FinishingRecall { - private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) + // TODO: fix + /*private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) { List newInstructions = ListPool.Pool.Get(instructions); @@ -78,6 +78,15 @@ private static IEnumerable Transpiler(IEnumerable.Pool.Return(newInstructions); + }*/ + + [SuppressMessage("StyleCop.CSharp.NamingRules", "SA1313:Parameter names should begin with lower-case letter", Justification = "Prefix")] + private static bool Prefix(Scp049ResurrectAbility __instance) + { + FinishingRecallEventArgs ev = new(Player.Get(__instance.CurRagdoll.Info.OwnerHub), Player.Get(__instance.Owner), __instance.CurRagdoll); + Handlers.Scp049.OnFinishingRecall(ev); + + return ev.IsAllowed; } } } \ No newline at end of file diff --git a/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs b/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs index ea2f3546ff..8b09ce19a2 100644 --- a/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs +++ b/EXILED/Exiled.Events/Patches/Events/Server/RespawningTeam.cs @@ -7,6 +7,7 @@ namespace Exiled.Events.Patches.Events.Server { + using System; using System.Collections.Generic; using System.Linq; using System.Reflection; @@ -26,6 +27,8 @@ namespace Exiled.Events.Patches.Events.Server using Player = API.Features.Player; + // This event should be renamed to smth like SpawningWave, might be a good time to do it now since it's a breaking change + /// /// Patch the . /// Adds the event. @@ -34,7 +37,7 @@ namespace Exiled.Events.Patches.Events.Server [HarmonyPatch(typeof(WaveSpawner), nameof(WaveSpawner.SpawnWave))] internal static class RespawningTeam { - private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) + /*private static IEnumerable Transpiler(IEnumerable instructions, ILGenerator generator) { List newInstructions = ListPool.Pool.Get(instructions); @@ -102,7 +105,7 @@ private static IEnumerable Transpiler(IEnumerable newQueue) WaveSpawner.SpawnQueue.Clear(); foreach (RoleTypeId role in newQueue) WaveSpawner.SpawnQueue.Enqueue(role); + }*/ + + private static bool Prefix(SpawnableWaveBase wave) + { + SpawnableTeamType spawningTeam = wave.TargetFaction.GetSpawnableTeam(); + List playerList = ReferenceHub.AllHubs.Where(WaveSpawner.CheckSpawnable).OrderByDescending(hub => WaveSpawner.CalculatePriority(hub, spawningTeam)).ToList(); + + RespawningTeamEventArgs ev = new(playerList.Select(Player.Get).ToList(), WaveSpawner.SpawnQueue, wave.MaxWaveSize, wave); + Server.OnRespawningTeam(ev); + + return ev.IsAllowed; } } } \ No newline at end of file