Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions EXILED/Exiled.API/Enums/CameraType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,9 @@ public enum CameraType
EzGateBSide,
EzGateAStairwell,
EzGateAUpper,
HczLoadingBay,
HczLoadingBayRamp,
HczLoadingBayStairwell,
#endregion
}
}
5 changes: 5 additions & 0 deletions EXILED/Exiled.API/Enums/DoorType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -369,5 +369,10 @@ public enum DoorType
/// Represents the door in the <see cref="RoomType.EzGateA"/> Armory.
/// </summary>
GateAArmory,

/// <summary>
/// Represents the door in <see cref="RoomType.HczLoadingBay"/>.
/// </summary>
HczLoadingBay,
}
}
23 changes: 19 additions & 4 deletions EXILED/Exiled.API/Enums/EffectType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -263,25 +263,25 @@ public enum EffectType
/// <summary>
/// Makes you a flamingo.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
BecomingFlamingo,

/// <summary>
/// Makes you a Child after eating Cake.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
Scp559,

/// <summary>
/// Scp956 found you.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
Scp956Target,

/// <summary>
/// you are snowed.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
Snowed,

/// <summary>
Expand Down Expand Up @@ -390,5 +390,20 @@ public enum EffectType
/// <see cref="CustomPlayerEffects.Scp1509Resurrected"/>.
/// </summary>
Scp1509Resurrected,

/// <summary>
/// <see cref="CustomPlayerEffects.FocusedVision"/>.
/// </summary>
FocusedVision,

/// <summary>
/// <see cref="CustomPlayerEffects.AnomalousRegeneration"/>.
/// </summary>
AnomalousRegeneration,

/// <summary>
/// <see cref="CustomPlayerEffects.AnomalousTarget"/>.
/// </summary>
AnomalousTarget,
}
}
5 changes: 5 additions & 0 deletions EXILED/Exiled.API/Enums/GlassType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,10 @@ public enum GlassType
/// Represents the window in <see cref="RoomType.EzGateA"/>.
/// </summary>
GateAArmory,

/// <summary>
/// Represents the window in <see cref="RoomType.HczLoadingBay"/>
/// </summary>
HczLoadingBay,
}
}
42 changes: 42 additions & 0 deletions EXILED/Exiled.API/Enums/PrefabType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -417,5 +417,47 @@ public enum PrefabType

[Prefab(213466224, "SCP-939 Ragdoll Halloween")]
Scp939RagdollHalloween,

[Prefab(689741320, "SCP-559 Cake")]
Scp559Cake,

[Prefab(2657863153, "SCP-956")]
Scp956,

[Prefab(1205960739, "SCP-2536 Tree")]
Scp2536,

[Prefab(2102014206, "Snowpile")]
Snowpile,

[Prefab(3401975113, "Scp018Projectile Christmas")]
Scp018ProjectileChristmas,

[Prefab(3223468476, "SnowballProjectile")]
SnowballProjectile,

[Prefab(296717882, "CoalPickup")]
CoalPickup,

[Prefab(409273101, "TapePlayerPickup")]
Scp1507TapePickup,

[Prefab(3971391978, "Scp021JPickup")]
Scp021JPickup,

[Prefab(142820664, "CoalProjectile")]
CoalProjectile,

[Prefab(2405470903, "Scp2536Projectile")]
Scp2536Projectile,

[Prefab(1496232901, "SCP-173 Ragdoll Variant")]
Scp173RagdollChristmas,

[Prefab(6069361, "SnowPoop - TantrumObj")]
SnowTantrum,

[Prefab(3654754970, "SCP-1507 Ragdoll")]
Scp1507Ragdoll,
}
}
6 changes: 3 additions & 3 deletions EXILED/Exiled.API/Enums/ProjectileType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,21 +51,21 @@ public enum ProjectileType
/// Coal.
/// Used by <see cref="ItemType.Coal"/>.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
Coal,

/// <summary>
/// SpecialCoal.
/// Used by <see cref="ItemType.SpecialCoal"/>.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
SpecialCoal,

/// <summary>
/// Snowball.
/// Used by <see cref="ItemType.Snowball"/>.
/// </summary>
[Obsolete("Only availaible for Christmas.")]
// [Obsolete("Only availaible for Christmas.")]
Snowball,
}
}
5 changes: 5 additions & 0 deletions EXILED/Exiled.API/Enums/RoomType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -353,5 +353,10 @@ public enum RoomType
/// Heavy Containment Zone's straight hall room with lava.
/// </summary>
HczDss12 = HczIncineratorWayside,

/// <summary>
/// Heavy Containment Zone's T-intersection with a ramp in it.
/// </summary>
HczLoadingBay,
}
}
5 changes: 5 additions & 0 deletions EXILED/Exiled.API/Enums/Side.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,10 @@ public enum Side
/// No team. Same as <see cref="Team.Dead"/>.
/// </summary>
None,

/// <summary>
/// Contains <see cref="RoleTypeId.Flamingo"/> and <see cref="RoleTypeId.AlphaFlamingo"/>. Same as <see cref="Team.Flamingos"/>.
/// </summary>
Flamingos,
}
}
3 changes: 3 additions & 0 deletions EXILED/Exiled.API/Extensions/EffectTypeExtension.cs
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,9 @@ public static class EffectTypeExtension
{ EffectType.TraumatizedByEvil, typeof(TraumatizedByEvil) },
{ EffectType.WhiteCandy, typeof(WhiteCandy) },
{ EffectType.Scp1509Resurrected, typeof(Scp1509Resurrected) },
{ EffectType.FocusedVision, typeof(FocusedVision) },
{ EffectType.AnomalousRegeneration, typeof(AnomalousRegeneration) },
{ EffectType.AnomalousTarget, typeof(AnomalousTarget) },
#pragma warning restore CS0618
});

Expand Down
9 changes: 6 additions & 3 deletions EXILED/Exiled.API/Extensions/RoleExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ public static class RoleExtensions
Team.FoundationForces or Team.Scientists => Side.Mtf,
Team.ChaosInsurgency or Team.ClassD => Side.ChaosInsurgency,
Team.OtherAlive => Side.Tutorial,
Team.Flamingos => Side.Flamingos,
_ => Side.None,
};

Expand All @@ -80,12 +81,13 @@ public static class RoleExtensions
/// <returns><see cref="Team"/>.</returns>
public static Team GetTeam(this RoleTypeId roleType) => roleType switch
{
RoleTypeId.ChaosConscript or RoleTypeId.ChaosMarauder or RoleTypeId.ChaosRepressor or RoleTypeId.ChaosRifleman => Team.ChaosInsurgency,
RoleTypeId.ChaosConscript or RoleTypeId.ChaosMarauder or RoleTypeId.ChaosRepressor or RoleTypeId.ChaosRifleman or RoleTypeId.ChaosFlamingo => Team.ChaosInsurgency,
RoleTypeId.Scientist => Team.Scientists,
RoleTypeId.ClassD => Team.ClassD,
RoleTypeId.Scp049 or RoleTypeId.Scp939 or RoleTypeId.Scp0492 or RoleTypeId.Scp079 or RoleTypeId.Scp096 or RoleTypeId.Scp106 or RoleTypeId.Scp173 or RoleTypeId.Scp3114 => Team.SCPs,
RoleTypeId.FacilityGuard or RoleTypeId.NtfCaptain or RoleTypeId.NtfPrivate or RoleTypeId.NtfSergeant or RoleTypeId.NtfSpecialist => Team.FoundationForces,
RoleTypeId.Scp049 or RoleTypeId.Scp939 or RoleTypeId.Scp0492 or RoleTypeId.Scp079 or RoleTypeId.Scp096 or RoleTypeId.Scp106 or RoleTypeId.Scp173 or RoleTypeId.Scp3114 or RoleTypeId.ZombieFlamingo=> Team.SCPs,
RoleTypeId.FacilityGuard or RoleTypeId.NtfCaptain or RoleTypeId.NtfPrivate or RoleTypeId.NtfSergeant or RoleTypeId.NtfSpecialist or RoleTypeId.NtfFlamingo => Team.FoundationForces,
RoleTypeId.Tutorial => Team.OtherAlive,
RoleTypeId.Flamingo or RoleTypeId.AlphaFlamingo => Team.Flamingos,
_ => Team.Dead,
};

Expand Down Expand Up @@ -131,6 +133,7 @@ public static bool TryGetRoleBase<T>(this RoleTypeId roleType, out T roleBase)
Team.ClassD or Team.ChaosInsurgency => LeadingTeam.ChaosInsurgency,
Team.FoundationForces or Team.Scientists => LeadingTeam.FacilityForces,
Team.SCPs => LeadingTeam.Anomalies,
Team.Flamingos => LeadingTeam.Flamingo,
_ => LeadingTeam.Draw,
};

Expand Down
3 changes: 3 additions & 0 deletions EXILED/Exiled.API/Features/Camera.cs
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ public class Camera : IWrapper<Scp079Camera>, IWorldSpace
["GATE B SIDE"] = CameraType.EzGateBSide,
["GATE A STAIRWELL"] = CameraType.EzGateAStairwell,
["GATE A UPPER"] = CameraType.EzGateAUpper,
["LOADING BAY"] = CameraType.HczLoadingBay,
["HCZ LOADING RAMP"] = CameraType.HczLoadingBayRamp,
["STAIRWELL"] = CameraType.HczLoadingBayStairwell,

// CustomCamera
["EZ ARM CAMERA TOY"] = CameraType.EzArmCameraToy,
Expand Down
1 change: 1 addition & 0 deletions EXILED/Exiled.API/Features/Doors/Door.cs
Original file line number Diff line number Diff line change
Expand Up @@ -624,6 +624,7 @@ private DoorType GetDoorType()
RoomType.HczEzCheckpointA => DoorType.CheckpointArmoryA,
RoomType.HczEzCheckpointB => DoorType.CheckpointArmoryB,
RoomType.EzGateA => DoorType.GateAArmory,
RoomType.HczLoadingBay => DoorType.HczLoadingBay,
_ => DoorType.UnknownDoor,
},
"Unsecured Pryable GateDoor" => Room?.Type switch
Expand Down
2 changes: 1 addition & 1 deletion EXILED/Exiled.API/Features/Roles/Scp1507Role.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ namespace Exiled.API.Features.Roles
/// <summary>
/// Defines a role that represents SCP-1507.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class Scp1507Role : FpcRole, ISubroutinedScpRole, IHumeShieldRole, ISpawnableScp
{
/// <summary>
Expand Down
1 change: 1 addition & 0 deletions EXILED/Exiled.API/Features/Room.cs
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,7 @@ private static RoomType FindType(GameObject gameObject)
"HCZ_ChkpB" => RoomType.HczElevatorB,
"HCZ_127" => RoomType.Hcz127,
"HCZ_ServerRoom" => RoomType.HczServerRoom,
"HCZ_Intersection_Ramp" => RoomType.HczLoadingBay,
"EZ_GateA" => RoomType.EzGateA,
"EZ_GateB" => RoomType.EzGateB,
"EZ_ThreeWay" => RoomType.EzTCross,
Expand Down
24 changes: 19 additions & 5 deletions EXILED/Exiled.API/Features/Scp559.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ namespace Exiled.API.Features
/// <summary>
/// Represents a cake.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class Scp559 : IWrapper<Scp559Cake>, IPosition
{
/// <summary>
Expand Down Expand Up @@ -50,20 +50,34 @@ public Scp559(Scp559Cake cakeBase)
/// <summary>
/// Gets a <see cref="Dictionary{TKey,TValue}"/> with spawnpoint in rooms.
/// </summary>
public static Dictionary<RoomName, Vector4> SpawnPositions => Scp559Cake.Spawnpoints;
public static Dictionary<RoomName, Vector4> SpawnPositions { get; } = Scp559Spawnpoint.InstancesPerRoom.ToDictionary(kvp => kvp.Key.Name, kvp =>
{
Transform roomTransform = kvp.Key.transform;
Transform spawnTransform = kvp.Value.transform;

Vector3 localPos = roomTransform.InverseTransformPoint(spawnTransform.position);

return new Vector4(localPos.x, localPos.y, localPos.z, spawnTransform.eulerAngles.y);
});

/// <summary>
/// Gets the list of all available spawnpoints.
/// </summary>
public static List<Vector4> AvailableSpawnpoints => Scp559Cake.PossiblePositions;
public static List<Vector4> AvailableSpawnpoints => Scp559Cake.PossibleSpawnpoints.Select(spawnpoint =>
{
Transform t = spawnpoint.transform;
return new Vector4(t.position.x, t.position.y, t.position.z, t.eulerAngles.y);
}).ToList();

/// <summary>
/// Gets or sets offset for spawning near pedestals.
/// </summary>
public static Vector3 PedestalOffset
{
get => Scp559Cake.PedestalOffset;
set => Scp559Cake.PedestalOffset.Set(value.x, value.y, value.z);
get => new(0, -Scp559Spawnpoint.PedestalHeight, 0);

[Obsolete("Setter no longer works")]
set { }
}

/// <inheritdoc/>
Expand Down
1 change: 1 addition & 0 deletions EXILED/Exiled.API/Features/Window.cs
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,7 @@ public void DamageWindow(float amount, DamageHandlerBase handler)
RoomType.HczEzCheckpointB => GlassType.HczEzCheckpointB,
RoomType.EzGateA when Base.name[7] == '5' => GlassType.GateAArmory,
RoomType.EzGateA => GlassType.GateAPit,
RoomType.HczLoadingBay => GlassType.HczLoadingBay,
_ => GlassType.Unknown,
},
"Window" => Room?.Type switch
Expand Down
1 change: 0 additions & 1 deletion EXILED/Exiled.Events/Commands/TpsCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ namespace Exiled.Events.Commands
/// <summary>
/// Command for showing current server TPS.
/// </summary>
[CommandHandler(typeof(RemoteAdminCommandHandler))]
[CommandHandler(typeof(GameConsoleCommandHandler))]
public class TpsCommand : ICommand
{
Expand Down
2 changes: 1 addition & 1 deletion EXILED/Exiled.Events/EventArgs/Interfaces/IScp1507Event.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace Exiled.Events.EventArgs.Interfaces
/// <summary>
/// Event args used for all <see cref="Scp1507Role"/> related events.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public interface IScp1507Event : IPlayerEvent
{
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion EXILED/Exiled.Events/EventArgs/Interfaces/IScp559Event.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ namespace Exiled.Events.EventArgs.Interfaces
/// <summary>
/// Defines the base contract for all <see cref="Scp559Cake"/> related events.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public interface IScp559Event : IExiledEvent
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ namespace Exiled.Events.EventArgs.Scp1507
/// <summary>
/// Contains all information before SCP-1507 attacks door.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class AttackingDoorEventArgs : IScp1507Event, IDeniableEvent, IDoorEvent
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace Exiled.Events.EventArgs.Scp1507
/// <summary>
/// Contains all information before SCP-1507 screams.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class ScreamingEventArgs : IScp1507Event, IDeniableEvent
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace Exiled.Events.EventArgs.Scp1507
/// <summary>
/// Contains all information before flamingos get spawned.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class SpawningFlamingosEventArgs : IDeniableEvent, IPlayerEvent
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ namespace Exiled.Events.EventArgs.Scp1507
/// <summary>
/// Contains all information before SCP-1507 screams.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class UsingTapeEventArgs : IPlayerEvent, IItemEvent, IDeniableEvent
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace Exiled.Events.EventArgs.Scp559
/// <summary>
/// Contains all information before a player interacts with SCP-559.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class InteractingScp559EventArgs : IScp559Event, IDeniableEvent, IPlayerEvent
{
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion EXILED/Exiled.Events/EventArgs/Scp559/SpawningEventArgs.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace Exiled.Events.EventArgs.Scp559
/// <summary>
/// Contains all information before SCP-559 spawns.
/// </summary>
[Obsolete("Only availaible for Christmas and AprilFools.")]
// [Obsolete("Only availaible for Christmas and AprilFools.")]
public class SpawningEventArgs : IDeniableEvent, IScp559Event
{
/// <summary>
Expand Down
Loading
Loading