コード例 #1
0
        public void EnterBloodLust()
        {
            Log.Debug("Entered blood lust", BloodLust049.Instance.Config.Debug);
            bloodLustActive = true;
            if (Instance.Config.EnableAdrenalineEffect)
            {
                Invigorated adrenaline = Scp049.ReferenceHub.playerEffectsController.GetEffect <Invigorated>();
                adrenaline.Intensity = 5;
                Scp049.ReferenceHub.playerEffectsController.EnableEffect(adrenaline);
                Log.Debug("Adrenaline effect given", BloodLust049.Instance.Config.Debug);
            }

            if (Instance.Config.EnableBleedEffect)
            {
                Bleeding bleeding = Scp049.ReferenceHub.playerEffectsController.GetEffect <Bleeding>();
                Scp049.ReferenceHub.playerEffectsController.EnableEffect(bleeding);
                Log.Debug("Adrenaline effect given", BloodLust049.Instance.Config.Debug);
            }
            Scp207 scp207 = Scp049.ReferenceHub.playerEffectsController.GetEffect <Scp207>();

            scp207.Intensity = (byte)Instance.Config.Scp207Intensity;
            Scp049.ReferenceHub.playerEffectsController.EnableEffect(scp207);
            Log.Debug("207 effect given", BloodLust049.Instance.Config.Debug);
            Scp049.Broadcast(3, Instance.Config.BloodLustMessage);
        }
コード例 #2
0
        private void Awake()
        {
            Exiled.Events.Handlers.Player.Hurting         += OnPlayerHurt;
            Exiled.Events.Handlers.Player.Left            += OnPlayerLeave;
            Exiled.Events.Handlers.Server.RestartingRound += OnRoundRestart;

            playerReferenceHub  = this.GetComponent <ReferenceHub>();
            scp207              = playerReferenceHub.playerEffectsController.GetEffect <Scp207>();
            sinkHole            = playerReferenceHub.playerEffectsController.GetEffect <SinkHole>();
            sinkHole.slowAmount = Plugin.instance.Config.SlowdownAmount;
        }
コード例 #3
0
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            response = "";
            Player player = Player.Get(((PlayerCommandSender)sender).SenderId);

            if (!TrackingAndMethods.PlayersWithSubclasses.ContainsKey(player) ||
                !TrackingAndMethods.PlayersWithSubclasses[player].Abilities.Contains(AbilityType.Bloodlust))
            {
                Log.Debug($"Player {player.Nickname} could not use the bloodlust command", Subclass.Instance.Config.Debug);
                response = "";
                return(true);
            }
            SubClass subClass = TrackingAndMethods.PlayersWithSubclasses[player];

            if (TrackingAndMethods.OnCooldown(player, AbilityType.Bloodlust, subClass))
            {
                Log.Debug($"Player {player.Nickname} failed to use the bloodlust command", Subclass.Instance.Config.Debug);
                TrackingAndMethods.DisplayCooldown(player, AbilityType.Bloodlust, subClass, "bloodlust", Time.time);
                response = "";
                return(true);
            }

            if (!TrackingAndMethods.CanUseAbility(player, AbilityType.Bloodlust, subClass))
            {
                TrackingAndMethods.DisplayCantUseAbility(player, AbilityType.Bloodlust, subClass, "bloodlust");
                response = "";
                return(true);
            }

            Scp207 scp207 = player.ReferenceHub.playerEffectsController.GetEffect <Scp207>();

            byte prevIntensity = scp207.Intensity;

            scp207.ServerChangeIntensity((byte)subClass.IntOptions["BloodlustIntensity"]);
            scp207.ServerChangeDuration(subClass.FloatOptions["BloodlustDuration"], false);

            TrackingAndMethods.PlayersBloodLusting.Add(player);
            TrackingAndMethods.UseAbility(player, AbilityType.Bloodlust, subClass);
            TrackingAndMethods.AddCooldown(player, AbilityType.Bloodlust);

            Timing.CallDelayed(subClass.FloatOptions["BloodlustDuration"], () =>
            {
                if (TrackingAndMethods.PlayersBloodLusting.Contains(player))
                {
                    TrackingAndMethods.PlayersBloodLusting.Remove(player);
                }
                scp207.ServerChangeIntensity(prevIntensity);
                scp207.ServerChangeDuration(float.MaxValue, false);
            });

            return(true);
        }
コード例 #4
0
        private void Awake()
        {
            RegisterEvents();

            player          = Player.Get(gameObject);
            scp207          = player.ReferenceHub.playerEffectsController.GetEffect <Scp207>();
            sinkHole        = player.ReferenceHub.playerEffectsController.GetEffect <SinkHole>();
            excludedDamages = new List <DamageType>()
            {
                DamageType.Tesla,
                DamageType.Crushed,
                DamageType.Warhead,
                DamageType.Custom,
                DamageType.FemurBreaker,
                DamageType.Recontainment,
                DamageType.Scp207,
                DamageType.Unknown
            };
            AngerMeter          = BetterScp939.Instance.Config.StartingAnger;
            sinkHole.slowAmount = BetterScp939.Instance.Config.SlowAmount;
        }
コード例 #5
0
        private void Awake()
        {
            RegisterEvents();

            player          = Player.Get(gameObject);
            scp207          = player.ReferenceHub.playerEffectsController.GetEffect <Scp207>();
            sinkHole        = player.ReferenceHub.playerEffectsController.GetEffect <SinkHole>();
            excludedDamages = new List <DamageTypes.DamageType>()
            {
                DamageTypes.Tesla,
                DamageTypes.Wall,
                DamageTypes.Nuke,
                DamageTypes.RagdollLess,
                DamageTypes.Contain,
                DamageTypes.Lure,
                DamageTypes.Recontainment,
                DamageTypes.Scp207,
                DamageTypes.None
            };
            AngerMeter          = BetterScp939.Instance.Config.StartingAnger;
            sinkHole.slowAmount = BetterScp939.Instance.Config.SlowAmount;
        }
コード例 #6
0
 private void Awake()
 {
     player = Player.Get(gameObject);
     scp207 = player.ReferenceHub.playerEffectsController.GetEffect <Scp207>();
 }