Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
5232ebf
refactor!: update to 14.1
BoltonDev Apr 25, 2025
6416352
fix: few patches fix
BoltonDev Apr 26, 2025
6f009a8
feat: new custom keycard logic
VALERA771 Apr 26, 2025
3e338d3
fix: ActivatingWarheadPanel event
BoltonDev Apr 26, 2025
e99ac6a
fix: checkpoint sequence time
BoltonDev Apr 26, 2025
6923fd0
fix: Shot event
BoltonDev Apr 26, 2025
7a52a62
fix: DroppingCandy event
BoltonDev Apr 26, 2025
2a5fbd3
Fix last Error on Release Build
louis1706 Apr 26, 2025
9df1d11
Update new PrefabType
louis1706 Apr 26, 2025
737d110
fix: AnnouncingScpTermination event
BoltonDev Apr 26, 2025
e5ecbc1
Merge remote-tracking branch 'bolton-repo/14.1.0-update' into 14.1.0-…
BoltonDev Apr 26, 2025
29cc800
fix: SpawningItem event error (require testing)
BoltonDev Apr 26, 2025
f524187
Merge branch 'LabAPI' into 14.1.0-update
louis1706 Apr 26, 2025
930958b
Merge branch '14.1.0-update' into new-customkeycard
VALERA771 Apr 26, 2025
c95ab2a
fix: Shot.cs fix
VALERA771 Apr 26, 2025
63838b3
Merge remote-tracking branch 'origin/new-customkeycard' into new-cust…
VALERA771 Apr 26, 2025
d9011cd
Merge pull request #3 from VALERA771/new-customkeycard
VALERA771 Apr 26, 2025
48c22df
analysis error
BoltonDev Apr 26, 2025
cb8ddc8
Fix error
louis1706 Apr 26, 2025
f84a40a
Merge branch '14.1.0-update' of https://github.com/BoltonDev/EXILED i…
louis1706 Apr 26, 2025
768482d
Fix build error
louis1706 Apr 26, 2025
a761571
NW_Documentation
louis1706 Apr 26, 2025
039279b
fix: announcing wave entrance
BoltonDev Apr 26, 2025
1211e70
Merge remote-tracking branch 'bolton-repo/14.1.0-update' into 14.1.0-…
BoltonDev Apr 26, 2025
25c70d9
Reference new Room
louis1706 Apr 26, 2025
0340ad6
Merge branch '14.1.0-update' of https://github.com/BoltonDev/EXILED i…
louis1706 Apr 26, 2025
b9e23e6
Fix Build error
louis1706 Apr 26, 2025
b78fb1e
fix: fixes pickingup event
BoltonDev Apr 26, 2025
1869fe1
Merge remote-tracking branch 'bolton-repo/14.1.0-update' into 14.1.0-…
BoltonDev Apr 26, 2025
c4a6532
Nameless Skill Issue
louis1706 Apr 26, 2025
3b94e6d
fix: locker patch
BoltonDev Apr 26, 2025
18d2fbd
fix: spawning room connector
BoltonDev Apr 26, 2025
e7e403e
CameraToy
louis1706 Apr 26, 2025
55cf24e
Merge branch '14.1.0-update' of https://github.com/BoltonDev/EXILED i…
louis1706 Apr 26, 2025
b4c1c67
Get CameraToy
louis1706 Apr 26, 2025
b6066e5
Finish InteractableToy & fix doc
louis1706 Apr 26, 2025
f093d46
fix Error for build
louis1706 Apr 26, 2025
91a199b
Remove todo
louis1706 Apr 26, 2025
76c393c
fix: generator events
BoltonDev Apr 26, 2025
c6f2368
Merge remote-tracking branch 'bolton-repo/14.1.0-update' into 14.1.0-…
BoltonDev Apr 26, 2025
010319c
ElevatorType.ServerRoom
louis1706 Apr 26, 2025
aa5e690
Fix a 2 hours loss
louis1706 Apr 26, 2025
13f3960
Fix NW moment
louis1706 Apr 26, 2025
0befdfd
fix: interacting generator
BoltonDev Apr 26, 2025
dfb5460
Merge remote-tracking branch 'bolton-repo/14.1.0-update' into 14.1.0-…
BoltonDev Apr 26, 2025
eaa3bdd
fix: interacting locker event
BoltonDev Apr 26, 2025
772a95a
fix: missing obstacle shot
BoltonDev Apr 26, 2025
35982b6
fix: KeycardInteracting again
BoltonDev Apr 26, 2025
7321ada
Fix SendingCassieMessage
louis1706 Apr 26, 2025
8759339
Merge branch '14.1.0-update' of https://github.com/BoltonDev/EXILED i…
louis1706 Apr 26, 2025
f9d3409
fix: temp fix interacting door (need to refactor)
BoltonDev Apr 27, 2025
65830ae
refactor: change the property
BoltonDev Apr 27, 2025
ed1b8df
fix doc
louis1706 Apr 27, 2025
45e6ebe
Merge branch '14.1.0-update' of https://github.com/BoltonDev/EXILED i…
louis1706 Apr 27, 2025
af8730b
extension for Scp127 & ServerRoom
louis1706 Apr 27, 2025
234b075
FirearmType.Scp127
louis1706 Apr 27, 2025
ad7138b
AdminToyList
louis1706 Apr 27, 2025
cb73874
fix: camera weren't added
BoltonDev Apr 27, 2025
cc352cd
Merge remote-tracking branch 'bolton-repo/14.1.0-update' into 14.1.0-…
BoltonDev Apr 27, 2025
2f1138a
new CameraType
louis1706 Apr 27, 2025
ef12710
wrong doc
louis1706 Apr 27, 2025
1fd6366
fix: interacting door event (improved)
BoltonDev Apr 27, 2025
00404c5
Merge remote-tracking branch 'bolton-repo/14.1.0-update' into 14.1.0-…
BoltonDev Apr 27, 2025
c8087b3
Invalid Camera
louis1706 Apr 27, 2025
4c5231a
Better doc
louis1706 Apr 27, 2025
cca4cef
fix: interacting door (bolton issue)
BoltonDev Apr 27, 2025
7fd35e7
FixDamagingWindow index
louis1706 Apr 27, 2025
1a7d7f4
RemoveBreakingChange
louis1706 Apr 27, 2025
799a367
Fix FailingEscapePocketDimensionEventArgs
louis1706 Apr 27, 2025
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
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,14 @@ public class CustomHumeShieldStat : HumeShieldStat
/// </summary>
public float ShieldRegenerationMultiplier { get; set; } = 1;

private float ShieldRegeneration => TryGetHsModule(out HumeShieldModuleBase controller) ? controller.HsRegeneration * ShieldRegenerationMultiplier : 0;
private float ShieldRegeneration
{
get
{
IHumeShieldProvider.GetForHub(Hub, out _, out _, out float hsRegen, out _);
return hsRegen * ShieldRegenerationMultiplier;
}
}

/// <inheritdoc/>
public override void Update()
Expand Down
5 changes: 0 additions & 5 deletions EXILED/Exiled.API/Features/Doors/BasicDoor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,6 @@ public BasicDoor(Basegame door, List<Room> room)
/// </summary>
public new Basegame Base { get; }

/// <summary>
/// Gets the list with all SCP-106's colliders.
/// </summary>
public IEnumerable<Collider> Scp106Colliders => Base.Scp106Colliders;

/// <summary>
/// Gets or sets the total cooldown before door can be triggered again.
/// </summary>
Expand Down
18 changes: 9 additions & 9 deletions EXILED/Exiled.API/Features/Doors/CheckpointDoor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,37 +42,37 @@ internal CheckpointDoor(Interactables.Interobjects.CheckpointDoor door, List<Roo
/// <summary>
/// Gets or sets the current checkpoint stage.
/// </summary>
public Interactables.Interobjects.CheckpointDoor.CheckpointSequenceStage CurrentStage
public Interactables.Interobjects.CheckpointDoor.SequenceState CurrentStage
{
get => Base.CurrentSequence;
set => Base.CurrentSequence = value;
get => Base.CurSequence;
set => Base.CurSequence = value;
}

/// <summary>
/// Gets or sets a time in seconds for main timer.
/// </summary>
public float MainTimer
{
get => Base.MainTimer;
set => Base.MainTimer = value;
get => Base.SequenceCtrl.OpenLoopTime;
set => Base.SequenceCtrl.OpenLoopTime = value;
}

/// <summary>
/// Gets or sets time before doors close.
/// </summary>
public float WaitTime
{
get => Base.WaitTime;
set => Base.WaitTime = value;
get => Base.SequenceCtrl.RemainingTime;
set => Base.SequenceCtrl.RemainingTime = value;
}
Comment thread
BoltonDev marked this conversation as resolved.

/// <summary>
/// Gets or sets time in seconds when warning will be shown.
/// </summary>
public float WarningTime
{
get => Base.WarningTime;
set => Base.WarningTime = value;
get => Base.SequenceCtrl.WarningTime;
set => Base.SequenceCtrl.WarningTime = value;
}

/// <inheritdoc/>
Expand Down
18 changes: 10 additions & 8 deletions EXILED/Exiled.API/Features/Doors/Door.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@ namespace Exiled.API.Features.Doors
using UnityEngine;

using BaseBreakableDoor = Interactables.Interobjects.BreakableDoor;
using BaseKeycardPermissions = Interactables.Interobjects.DoorUtils.KeycardPermissions;
using Breakable = BreakableDoor;
using Checkpoint = CheckpointDoor;
using Elevator = ElevatorDoor;
using KeycardPermissions = Enums.KeycardPermissions;
using KeycardPermissions = Exiled.API.Enums.KeycardPermissions;

/// <summary>
/// A wrapper class for <see cref="DoorVariant"/>.
Expand Down Expand Up @@ -181,8 +180,8 @@ public bool IsOpen
/// </remarks>
public KeycardPermissions KeycardPermissions
{
get => (KeycardPermissions)RequiredPermissions.RequiredPermissions;
set => RequiredPermissions.RequiredPermissions = (BaseKeycardPermissions)value;
get => (KeycardPermissions)RequiredPermissions;
set => RequiredPermissions = (DoorPermissionFlags)value;
}

/// <summary>
Expand Down Expand Up @@ -244,10 +243,10 @@ public DoorLockType DoorLockType
/// <summary>
/// Gets or sets the required permissions to open the door.
/// </summary>
public DoorPermissions RequiredPermissions
public DoorPermissionFlags RequiredPermissions
{
get => Base.RequiredPermissions;
set => Base.RequiredPermissions = value;
get => Base.RequiredPermissions.RequiredPermissions;
set => Base.RequiredPermissions.RequiredPermissions = value;
}

/// <summary>
Expand Down Expand Up @@ -472,6 +471,8 @@ public static void UnlockAll(Func<Door, bool> predicate)
/// <param name="beep">The beep sound to play.</param>
public void PlaySound(DoorBeepType beep)
{
// TODO: Fix that
/*
switch (Base)
{
case Interactables.Interobjects.BasicDoor basic:
Expand All @@ -481,6 +482,7 @@ public void PlaySound(DoorBeepType beep)
chkPt.RpcPlayBeepSound((byte)Mathf.Min((int)beep, 3));
break;
}
*/
}

/// <summary>
Expand Down Expand Up @@ -553,7 +555,7 @@ public void Lock(DoorLockType lockType)
/// Returns the Door in a human-readable format.
/// </summary>
/// <returns>A string containing Door-related data.</returns>
public override string ToString() => $"{Type} ({Zone}) [{Room}] *{DoorLockType}* ={RequiredPermissions?.RequiredPermissions}=";
public override string ToString() => $"{Type} ({Zone}) [{Room}] *{DoorLockType}* ={RequiredPermissions}=";

/// <summary>
/// Creates the door object associated with a specific <see cref="DoorVariant"/>.
Expand Down
12 changes: 6 additions & 6 deletions EXILED/Exiled.API/Features/Generator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ namespace Exiled.API.Features

using Enums;
using Exiled.API.Interfaces;

using Interactables.Interobjects.DoorUtils;
using MapGeneration.Distributors;

using UnityEngine;
Expand Down Expand Up @@ -216,7 +216,7 @@ public Player LastActivator
public KeycardPermissions KeycardPermissions
{
get => (KeycardPermissions)Base._requiredPermission;
set => Base._requiredPermission = (Interactables.Interobjects.DoorUtils.KeycardPermissions)value;
set => Base._requiredPermission = (Interactables.Interobjects.DoorUtils.DoorPermissionFlags)value;
}

/// <summary>
Expand Down Expand Up @@ -281,7 +281,7 @@ public static bool TryGet(Func<Generator, bool> predicate, out IEnumerable<Gener
/// <summary>
/// Denies the unlock.
/// </summary>
public void DenyUnlock() => Base.RpcDenied();
public void DenyUnlock() => Base.RpcDenied(DoorPermissionFlags.None);

/// <summary>
/// Denies the unlock and resets the interaction cooldown.
Expand All @@ -299,12 +299,12 @@ public void DenyUnlockAndResetCooldown()
/// <param name="isEnabled">A value indicating whether the flag is enabled.</param>
public void SetPermissionFlag(KeycardPermissions flag, bool isEnabled)
{
Interactables.Interobjects.DoorUtils.KeycardPermissions permission = (Interactables.Interobjects.DoorUtils.KeycardPermissions)flag;
Interactables.Interobjects.DoorUtils.DoorPermissionFlags permissions = (Interactables.Interobjects.DoorUtils.DoorPermissionFlags)flag;

if (isEnabled)
Base._requiredPermission |= permission;
Base._requiredPermission |= permissions;
else
Base._requiredPermission &= ~permission;
Base._requiredPermission &= ~permissions;
}

/// <summary>
Expand Down
9 changes: 0 additions & 9 deletions EXILED/Exiled.API/Features/Items/Armor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,15 +73,6 @@ internal Armor(ItemType type)
set => Base._weight = value;
}

/// <summary>
/// Gets or sets a value indicating whether excess ammo should be removed when the armor is dropped.
/// </summary>
public bool RemoveExcessOnDrop
{
get => !Base.DontRemoveExcessOnDrop;
set => Base.DontRemoveExcessOnDrop = !value;
}

/// <summary>
/// Gets or sets how strong the helmet on the armor is.
/// </summary>
Expand Down
42 changes: 19 additions & 23 deletions EXILED/Exiled.API/Features/Items/Keycard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,12 @@

namespace Exiled.API.Features.Items
{
using System.Linq;
using CommandSystem.Commands.RemoteAdmin.Inventory;
using Exiled.API.Enums;
using Exiled.API.Features.Pickups;
using Exiled.API.Interfaces;

using Interactables.Interobjects.DoorUtils;
using InventorySystem.Items.Keycards;

using KeycardPickup = Pickups.KeycardPickup;
Expand Down Expand Up @@ -45,37 +47,31 @@ internal Keycard(ItemType type)
public new KeycardItem Base { get; }

/// <summary>
/// Gets or sets the <see cref="KeycardPermissions"/> of the keycard.
/// Gets the <see cref="KeycardPermissions"/> of the keycard.
/// </summary>
public KeycardPermissions Permissions
{
get => (KeycardPermissions)Base.Permissions;
set => Base.Permissions = (Interactables.Interobjects.DoorUtils.KeycardPermissions)value;
}
get
{
foreach (DetailBase detail in Base.Details)
{
switch (detail)
{
case PredefinedPermsDetail predefinedPermsDetail:
return (KeycardPermissions)predefinedPermsDetail.Levels.Permissions;
case CustomPermsDetail customPermsDetail:
return (KeycardPermissions)customPermsDetail.GetPermissions(null);
}
}

/// <summary>
/// Clones current <see cref="Keycard"/> object.
/// </summary>
/// <returns> New <see cref="Keycard"/> object. </returns>
public override Item Clone() => new Keycard(Type)
{
Permissions = Permissions,
};
return KeycardPermissions.None;
}
}

/// <summary>
/// Returns the Keycard in a human readable format.
/// </summary>
/// <returns>A string containing Keycard-related data.</returns>
public override string ToString() => $"{Type} ({Serial}) [{Weight}] *{Scale}* |{Permissions}|";

/// <inheritdoc/>
internal override void ReadPickupInfoBefore(Pickup pickup)
{
base.ReadPickupInfoBefore(pickup);
if (pickup is KeycardPickup keycardPickup)
{
Permissions = keycardPickup.Permissions;
}
}
}
}
2 changes: 1 addition & 1 deletion EXILED/Exiled.API/Features/Items/Scp1344.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace Exiled.API.Features.Items

using InventorySystem.Items.Usables;
using InventorySystem.Items.Usables.Scp1344;
using PlayerRoles.FirstPersonControl.Thirdperson.Subcontrollers;
using PlayerRoles.FirstPersonControl.Thirdperson.Subcontrollers.Wearables;

/// <summary>
/// A wrapper class for <see cref="Scp1344Item"/>.
Expand Down
4 changes: 2 additions & 2 deletions EXILED/Exiled.API/Features/Lockers/Chamber.cs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ public IEnumerable<ItemType> AcceptableTypes
public KeycardPermissions RequiredPermissions
{
get => (KeycardPermissions)Base.RequiredPermissions;
set => Base.RequiredPermissions = (Interactables.Interobjects.DoorUtils.KeycardPermissions)value;
set => Base.RequiredPermissions = (Interactables.Interobjects.DoorUtils.DoorPermissionFlags)value;
}

/// <summary>
Expand Down Expand Up @@ -235,7 +235,7 @@ public void AddItem(Pickup item)

Base.Content.Add(item.Base);
item.Spawn();
if (Base._wasEverOpened)
if (Base.WasEverOpened)
item.IsLocked = false;
}

Expand Down
12 changes: 3 additions & 9 deletions EXILED/Exiled.API/Features/Npc.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,19 @@ namespace Exiled.API.Features
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;

using CentralAuth;
using CommandSystem;
using CommandSystem.Commands.RemoteAdmin.Dummies;
using Exiled.API.Enums;
using Exiled.API.Features.Components;
using Exiled.API.Features.CustomStats;
using Exiled.API.Features.Roles;
using Footprinting;
using GameCore;
using MEC;
using Mirror;
using NetworkManagerUtils.Dummies;
using PlayerRoles;
using PlayerStatsSystem;
using UnityEngine;

using Object = UnityEngine.Object;

/// <summary>
/// Wrapper class for handling NPC players.
/// </summary>
Expand Down Expand Up @@ -263,7 +257,7 @@ public static Npc Spawn(string name, RoleTypeId role, Vector3 position)
{
npc.Role.Set(role, SpawnReason.ForceClass);
npc.Position = position;
npc.ReferenceHub.playerStats._dictionarizedTypes[typeof(HealthStat)] = npc.ReferenceHub.playerStats.StatModules[Array.IndexOf(PlayerStats.DefinedModules, typeof(HealthStat))] = npc.CustomHealthStat = new CustomHealthStat { Hub = npc.ReferenceHub };
npc.ReferenceHub.playerStats._dictionarizedTypes[typeof(HealthStat)] = npc.ReferenceHub.playerStats.StatModules[Array.IndexOf(PlayerStats.DefinedModules, typeof(HealthStat))] = npc.CustomHealthStat = new HealthStat { Hub = npc.ReferenceHub };
npc.Health = npc.MaxHealth; // otherwise the npc will spawn with 0 health
npc.ReferenceHub.playerStats._dictionarizedTypes[typeof(HumeShieldStat)] = npc.ReferenceHub.playerStats.StatModules[Array.IndexOf(PlayerStats.DefinedModules, typeof(HumeShieldStat))] = npc.CustomHumeShieldStat = new CustomHumeShieldStat { Hub = npc.ReferenceHub };
});
Expand All @@ -287,7 +281,7 @@ public static Npc Spawn(string name, RoleTypeId role = RoleTypeId.None, bool ign
Timing.CallDelayed(SpawnSetRoleDelay, () =>
{
npc.Role.Set(role, SpawnReason.ForceClass, position is null ? RoleSpawnFlags.All : RoleSpawnFlags.AssignInventory);
npc.ReferenceHub.playerStats._dictionarizedTypes[typeof(HealthStat)] = npc.ReferenceHub.playerStats.StatModules[Array.IndexOf(PlayerStats.DefinedModules, typeof(HealthStat))] = npc.CustomHealthStat = new CustomHealthStat { Hub = npc.ReferenceHub };
npc.ReferenceHub.playerStats._dictionarizedTypes[typeof(HealthStat)] = npc.ReferenceHub.playerStats.StatModules[Array.IndexOf(PlayerStats.DefinedModules, typeof(HealthStat))] = npc.CustomHealthStat = new HealthStat { Hub = npc.ReferenceHub };
npc.Health = npc.MaxHealth; // otherwise the npc will spawn with 0 health
npc.ReferenceHub.playerStats._dictionarizedTypes[typeof(HumeShieldStat)] = npc.ReferenceHub.playerStats.StatModules[Array.IndexOf(PlayerStats.DefinedModules, typeof(HumeShieldStat))] = npc.CustomHumeShieldStat = new CustomHumeShieldStat { Hub = npc.ReferenceHub };

Expand Down
17 changes: 14 additions & 3 deletions EXILED/Exiled.API/Features/Pickups/KeycardPickup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,9 @@ internal KeycardPickup(ItemType type)
}

/// <summary>
/// Gets or sets the <see cref="KeycardPermissions"/> of the keycard.
/// Gets the <see cref="KeycardPermissions"/> of the keycard.
/// </summary>
public KeycardPermissions Permissions { get; set; }
public KeycardPermissions Permissions { get; private set; }

/// <summary>
/// Gets the <see cref="BaseKeycard"/> that this class is encapsulating.
Expand All @@ -67,7 +67,18 @@ protected override void InitializeProperties(ItemBase itemBase)
base.InitializeProperties(itemBase);
if (itemBase is KeycardItem keycardItem)
{
Permissions = (KeycardPermissions)keycardItem.Permissions;
foreach (DetailBase detail in keycardItem.Details)
{
switch (detail)
{
case PredefinedPermsDetail predefinedPermsDetail:
Permissions = (KeycardPermissions)predefinedPermsDetail.Levels.Permissions;
return;
case CustomPermsDetail customPermsDetail:
Permissions = (KeycardPermissions)customPermsDetail.GetPermissions(null);
return;
}
}
}
}
}
Expand Down
3 changes: 0 additions & 3 deletions EXILED/Exiled.API/Features/Player.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2962,9 +2962,6 @@ public void ClearInventory(bool destroy = true)
/// <seealso cref="DropItems()"/>
public void ClearItems(bool destroy = true)
{
if (CurrentArmor is Armor armor)
armor.RemoveExcessOnDrop = false;

while (Items.Count > 0)
RemoveItem(Items.ElementAt(0), destroy);
}
Expand Down
8 changes: 2 additions & 6 deletions EXILED/Exiled.API/Features/Roles/FpcRole.cs
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,8 @@ public Vector3 Gravity
/// </summary>
public bool IsFallDamageEnable
{
get => FirstPersonController.FpcModule.Motor._enableFallDamage;
set
{
enableFallDamageField ??= AccessTools.Field(typeof(FpcMotor), nameof(FpcMotor._enableFallDamage));
enableFallDamageField.SetValue(FirstPersonController.FpcModule.Motor, value);
}
get => FirstPersonController.FpcModule.Motor._fallDamageSettings.Enabled;
set => FirstPersonController.FpcModule.Motor._fallDamageSettings.Enabled = value;
}

/// <summary>
Expand Down
Loading