Exemple #1
0
 private static void OnChangingRole(ChangingRoleEventArgs ev)
 {
     if (BurningHandler.Get(ev.Player) is BurningHandler burningHandler)
     {
         burningHandler.BurnTime = 0f;
     }
 }
Exemple #2
0
 private static void OnItemUsed(UsedItemEventArgs ev)
 {
     if (Plugin.Instance.Config.BurnSettings.HealedBy.Contains(ev.Item.Type) &&
         BurningHandler.Get(ev.Player) is BurningHandler burningHandler)
     {
         burningHandler.BurnTime = 0f;
     }
 }
Exemple #3
0
        private static void OnDied(DiedEventArgs ev)
        {
            if (BurningHandler.Get(ev.Target) is BurningHandler burningHandler)
            {
                burningHandler.BurnTime = 0f;
            }

            if (Scp457.Get(ev.Target) is Scp457 scp457)
            {
                scp457.Destroy();
            }
        }
Exemple #4
0
        private static void OnDestroying(DestroyingEventArgs ev)
        {
            if (BurningHandler.Get(ev.Player) is BurningHandler burningHandler)
            {
                burningHandler.Destroy();
            }

            if (Scp457.Get(ev.Player) is Scp457 scp457)
            {
                scp457.Destroy();
            }
        }
Exemple #5
0
        /// <inheritdoc />
        public bool Execute(ArraySegment <string> arguments, ICommandSender sender, out string response)
        {
            Player player = Player.Get((sender as PlayerCommandSender)?.SenderId);

            if (!(Scp457.Get(player) is Scp457 scp457))
            {
                response = "You must be Scp457 to use this command.";
                return(false);
            }

            Config config = Plugin.Instance.Config;

            if (scp457.CombustCooldown > 0f)
            {
                response = config.CombustSettings.CooldownMessage.Replace("%seconds%", scp457.CombustCooldown.ToString());
                return(false);
            }

            Methods.SpawnGrenade(player.Position);

            foreach (Player ply in Player.List)
            {
                if (ply.IsScp || ply.IsScp035() ||
                    ply.IsGhostSpectator() ||
                    ply.IsNpc())
                {
                    continue;
                }

                BurningHandler burningHandler = BurningHandler.Get(ply);
                if (burningHandler == null || !burningHandler.HasBurned)
                {
                    continue;
                }

                float burnTime = burningHandler.BurnTime + config.CombustSettings.BurnDuration;
                if (burnTime > config.BurnSettings.MaximumDuration)
                {
                    burnTime = config.BurnSettings.MaximumDuration;
                }

                burningHandler.LastAttacker = scp457;
                burningHandler.BurnTime     = burnTime;
                ply.Hurt(config.CombustSettings.Damage, DamageTypes.Asphyxiation, player.Nickname, player.Id);
                ply.EnableEffect <Flashed>(config.CombustSettings.FlashDuration);
            }

            scp457.CombustCooldown = config.CombustSettings.Cooldown;
            response = config.CombustSettings.UsedMessage;
            return(false);
        }