Changes by code002lover
This commit is contained in:
parent
14e32bc921
commit
a8063216cc
@ -1,51 +1,10 @@
|
||||
using CustomPlayerEffects;
|
||||
using LabApi.Features.Wrappers;
|
||||
using Mirror;
|
||||
using PlayerRoles.FirstPersonControl;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using Logger = LabApi.Features.Console.Logger;
|
||||
using Random = System.Random;
|
||||
|
||||
namespace CustomClasses;
|
||||
|
||||
public abstract class CustomPlayerEffect : StatusEffectBase
|
||||
{
|
||||
private static bool _isLoaded;
|
||||
|
||||
public Player Owner { get; private set; } = null!;
|
||||
|
||||
protected override void Start()
|
||||
{
|
||||
Owner = Player.Get(Hub);
|
||||
base.Start();
|
||||
}
|
||||
|
||||
public override string ToString() => $"{GetType().Name}: Owner ({Owner}) - Intensity ({Intensity}) - Duration {Duration}";
|
||||
|
||||
internal static void Initialize()
|
||||
{
|
||||
SceneManager.sceneLoaded += (_, _) =>
|
||||
{
|
||||
if (_isLoaded)
|
||||
return;
|
||||
|
||||
_isLoaded = true;
|
||||
|
||||
var playerEffects = NetworkManager.singleton.playerPrefab.GetComponent<ReferenceHub>().playerEffectsController.effectsGameObject.transform;
|
||||
var type = typeof(DisableStaminaRegenEffect);
|
||||
if (!typeof(StatusEffectBase).IsAssignableFrom(type))
|
||||
{
|
||||
Logger.Error($"[CustomPlayerEffect.Initialize] {type.FullName} is not a valid StatusEffectBase and thus could not be registered!");
|
||||
return;
|
||||
}
|
||||
|
||||
// register effect into prefab
|
||||
new GameObject(type.Name, type).transform.parent = playerEffects;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
public class DisableStaminaRegenEffect : CustomPlayerEffect, IStaminaModifier
|
||||
{
|
||||
public bool StaminaModifierActive => IsEnabled;
|
||||
|
@ -116,6 +116,8 @@ public sealed class CustomClasses : Plugin
|
||||
|
||||
Logger.Info(decodedMessage);
|
||||
|
||||
CustomPlayerEffect.Initialize();
|
||||
|
||||
PlayerEvents.Spawned += OnPlayerSpawned;
|
||||
ServerEvents.RoundEnded += OnRoundEnded;
|
||||
Scp914Events.ProcessingPickup += OnScp914ProcessingPickup;
|
||||
|
45
CustomClasses/CustomPlayerEffect.cs
Normal file
45
CustomClasses/CustomPlayerEffect.cs
Normal file
@ -0,0 +1,45 @@
|
||||
using CustomPlayerEffects;
|
||||
using LabApi.Features.Wrappers;
|
||||
using Mirror;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using Logger = LabApi.Features.Console.Logger;
|
||||
|
||||
namespace CustomClasses;
|
||||
|
||||
public abstract class CustomPlayerEffect : StatusEffectBase
|
||||
{
|
||||
private static bool _isLoaded;
|
||||
|
||||
public Player Owner { get; private set; } = null!;
|
||||
|
||||
protected override void Start()
|
||||
{
|
||||
Owner = Player.Get(Hub);
|
||||
base.Start();
|
||||
}
|
||||
|
||||
public override string ToString() => $"{GetType().Name}: Owner ({Owner}) - Intensity ({Intensity}) - Duration {Duration}";
|
||||
|
||||
internal static void Initialize()
|
||||
{
|
||||
SceneManager.sceneLoaded += (_, _) =>
|
||||
{
|
||||
if (_isLoaded)
|
||||
return;
|
||||
|
||||
_isLoaded = true;
|
||||
|
||||
var playerEffects = NetworkManager.singleton.playerPrefab.GetComponent<ReferenceHub>().playerEffectsController.effectsGameObject.transform;
|
||||
var type = typeof(DisableStaminaRegenEffect);
|
||||
if (!typeof(StatusEffectBase).IsAssignableFrom(type))
|
||||
{
|
||||
Logger.Error($"[CustomPlayerEffect.Initialize] {type.FullName} is not a valid StatusEffectBase and thus could not be registered!");
|
||||
return;
|
||||
}
|
||||
|
||||
// register effect into prefab
|
||||
new GameObject(type.Name, type).transform.parent = playerEffects;
|
||||
};
|
||||
}
|
||||
}
|
@ -67,6 +67,7 @@ public class SetCClassCommand : ICommand
|
||||
SerpentsHandManager.PreSpawn(player);
|
||||
}),
|
||||
"negromancer" => manager.ForceSpawn(player, customClasses.NegromancerConfig, typeof(NegromancerConfig), null),
|
||||
"bloodfueled" => manager.ForceSpawn(player, customClasses.BloodFueledConfig, typeof(BloodFueledConfig), null),
|
||||
_ => false
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user