Example #1
0
 private void OnPickingUp(PickingUpItemEventArgs ev)
 {
     if (CheckItem(ev.Pickup))
     {
         Coroutines.Add(Timing.RunCoroutine(DoInventoryRegeneration(ev.Player)));
     }
 }
Example #2
0
        public Coroutine Run(IEnumerator enumerator, IPlugin owner, string name = null)
        {
            if (enumerator == null)
            {
                throw new NullReferenceException("Coroutine cant not be null.");
            }

            var routine = new Coroutine(enumerator, owner, name);

            lock (locker)
            {
                var first = Coroutines.FirstOrDefault(x => x.Name == routine.Name && x.Owner == routine.Owner);

                if (first != null)
                {
                    CountFalseAddCoroutines++;
                    return(first);
                }

                Coroutines.Add(routine);
                CoroutinePerformance.TryGetValue(routine.Name, out var t);
                CoroutinePerformance[routine.Name] = t;

                CountAddCoroutines++;
                return(routine);
            }
        }
 public void OnCalm(ref Scp096CalmEvent ev)
 {
     if (Instance.Scp096Healing)
     {
         Coroutines.Add(Timing.RunCoroutine(HealOverTime(ev.Player, Instance.Scp096Heal * Scp096KillCount), ev.Player.GetUserId()));
     }
 }
 public void OnPocketDeath(PocketDimDeathEvent ev)
 {
     if (Instance.Scp106Healing)
     {
         ReferenceHub scp = Player.GetHubs().FirstOrDefault(r => r.GetRole() == RoleType.Scp106);
         Coroutines.Add(Timing.RunCoroutine(HealOverTime(scp, Instance.Scp106HealAmount), scp.GetUserId()));
     }
 }
Example #5
0
 internal void RoundStart()
 {
     Patches.AutoWarheadLockPatches.AutoLocked = false;
     Coroutines.Add(Timing.RunCoroutine(AutoNuke()));
     if (ClearRagdolls)
     {
         Coroutines.Add(Timing.RunCoroutine(CleanupRagdolls()));
     }
     if (ClearItems)
     {
         Coroutines.Add(Timing.RunCoroutine(CleanupItems()));
     }
 }
Example #6
0
        public ScheduledTask Run(MonoBehaviour parent, Action action, TimeSpan delay, bool repeat = false)
        {
            var task = new ScheduledTask();

            task.Delay       = delay;
            task.IsRepeating = repeat;
            task.Parent      = parent;
            task.Coroutine   = StartCoroutine(RunCallback(task, action));

            Coroutines.Add(parent, task);

            return(task);
        }
        public void OnPlayerDeath(ref PlayerDeathEvent ev)
        {
            if (ev.Killer.GetRole() == RoleType.Scp096)
            {
                Scp096KillCount++;
            }

            if (ev.Killer.GetRole().Is939() && Instance.Scp939Healing && Instance.Gen.Next(1, 100) > 50)
            {
                Coroutines.Add(Timing.RunCoroutine(HealOverTime(ev.Killer, Instance.Scp939Heal), ev.Killer.GetUserId()));
            }

            if (ev.Killer.GetRole() == RoleType.Scp173 && Instance.Scp173Healing)
            {
                Coroutines.Add(Timing.RunCoroutine(HealOverTime(ev.Killer, Instance.Scp173HealAmount, 5f), ev.Killer.GetUserId()));
            }
        }
 internal void RoundStart()
 {
     Patches.AutoWarheadLockPatches.AutoLocked = false;
     if (EnableAutoNuke)
     {
         Coroutines.Add(Timing.RunCoroutine(AutoNuke()));
     }
     if (ClearRagdolls)
     {
         Coroutines.Add(Timing.RunCoroutine(CleanupRagdolls()));
     }
     if (ClearItems)
     {
         Coroutines.Add(Timing.RunCoroutine(CleanupItems()));
     }
     if (Instance.Scp049Healing || Instance.Scp0492Healing)
     {
         Coroutines.Add(Timing.RunCoroutine(DoScp049Heal()));
     }
 }
Example #9
0
        public Coroutine Run(Coroutine routine)
        {
            if (routine == null)
            {
                throw new NullReferenceException("Coroutine cant not be null.");
            }

            lock (locker)
            {
                var first = Coroutines.FirstOrDefault(x => x.Name == routine.Name && x.Owner == routine.Owner);

                if (first != null)
                {
                    CountFalseAddCoroutines++;
                    return(first);
                }

                Coroutines.Add(routine);
                CoroutinePerformance.TryGetValue(routine.Name, out var t);
                CoroutinePerformance[routine.Name] = t;
                CountAddCoroutines++;
                return(routine);
            }
        }
Example #10
0
 protected override void ItemGiven(Player player)
 {
     Coroutines.Add(Timing.RunCoroutine(DoInventoryRegeneration(player)));
 }
Example #11
0
 public Scp127(ItemType type, int clipSize, int itemId) : base(type, clipSize, itemId)
 {
     Coroutines.Add(Timing.RunCoroutine(DoAmmoRegeneration()));
 }