示例#1
0
        private async void DamageTimer(EnragingEventArgs ev)
        {
            iTime           = plugin.Config.Tickrate;
            dDamageToBeDone = 0;
            while (bTimerEnabled)
            {
                if (ev.Scp096._targets.Count < 1 && plugin.Config.CalmDownAfterTargetsDead)
                {
                    ev.Scp096.EndEnrage();
                }
                else if (iTime == plugin.Config.Tickrate)
                {
                    if (ev.Player.AdrenalineHealth > dDamageToBeDone)
                    {
                        ev.Player.AdrenalineHealth -= dDamageToBeDone;
                    }
                    else
                    {
                        ev.Player.Health          -= (dDamageToBeDone - ev.Player.AdrenalineHealth) / plugin.Config.RegularHpResistance;
                        ev.Player.AdrenalineHealth = 0;
                    }
                    dDamageToBeDone += plugin.Config.DamagePerSecondEnraged;
                    iTime            = 0;
                }
                await Task.Delay(TimeSpan.FromMilliseconds(1));

                iTime++;
            }
        }
示例#2
0
        private static bool Prefix(Scp096 __instance)
        {
            var ev = new EnragingEventArgs(__instance, API.Features.Player.Get(__instance.Hub.gameObject));

            Handlers.Scp096.OnEnraging(ev);

            if (!ev.IsAllowed)
            {
                return(false);
            }

            if (__instance.Enraged)
            {
                __instance.AddReset();
            }
            else
            {
                __instance.SetMovementSpeed(12f);
                __instance.SetJumpHeight(10f);
                __instance.PlayerState    = Scp096PlayerState.Enraged;
                __instance.EnrageTimeLeft = __instance.EnrageTime;
            }

            return(false);
        }
示例#3
0
 internal void OnScp096Enrage(EnragingEventArgs ev)
 {
     if (!config.Scp.canScp096startEnrage)
     {
         ev.IsAllowed = false;
     }
 }
示例#4
0
        private static bool Prefix(Scp096 __instance)
        {
            var ev = new EnragingEventArgs(__instance, API.Features.Player.Get(__instance.Hub));

            Handlers.Scp096.OnEnraging(ev);

            return(ev.IsAllowed);
        }
示例#5
0
 public static void SCP096Enrage(EnragingEventArgs ev)
 {
     if (ev.Scp096.Enraged)
     {
         ev.Scp096.SetMovementSpeed(125f);
         Log.Debug("SCP-096 Is going Enrage Mode.");
     }
     ev.Player.Energy = 300f;
     ev.Player.Broadcast(6, "<b> You are a target for <color=red>SCP-096</color>! </b>");
 }
示例#6
0
 private void Events_Scp096EnrageEvent(EnragingEventArgs ev)
 {
     ev.IsAllowed = false;
     if (ev.Scp096.Enraged)
     {
         ev.Scp096.AddReset();
         return;
     }
     ev.Scp096.SetMovementSpeed(12f);
     ev.Scp096.SetJumpHeight(10f);
     ev.Scp096.PlayerState    = Scp096PlayerState.Enraged;
     ev.Scp096.EnrageTimeLeft = Config.re096_enrage_time;
 }
示例#7
0
        internal void Enraging(EnragingEventArgs ev)
        {
            if (Plugin.Instance.Config.Enraging == "")
            {
                return;
            }
            string message = Plugin.Instance.Config.Enraging.Replace("%player%", ev.Player.ToString());


            if (Plugin.Instance.Config.debug_to_console)
            {
                Log.Debug(message: "[ " + Plugin.Instance.Config.scp096_name + "] " + message);
            }
            Plugin.sendWebHook(Plugin.Instance.Config.scp096_url, message, Plugin.Instance.Config.scp096_name);
        }
示例#8
0
 private void StartDamageTimer(EnragingEventArgs ev)
 {
     bTimerEnabled = true;
     DamageTimer(ev);
 }
示例#9
0
 public void OnEnraging(EnragingEventArgs ev)
 {
     ev.Scp096.ShieldRechargeRate = plugin.Config.ShieldRechargeRateEnraged;
     StartDamageTimer(ev);
 }
示例#10
0
文件: Scp096.cs 项目: somebofy/EXILED
 /// <summary>
 /// Called before SCP-096 is enraged.
 /// </summary>
 /// <param name="ev">The <see cref="EnragingEventArgs"/> instance.</param>
 public static void OnEnraging(EnragingEventArgs ev) => Enraging.InvokeSafely(ev);