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++; } }
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); }
internal void OnScp096Enrage(EnragingEventArgs ev) { if (!config.Scp.canScp096startEnrage) { ev.IsAllowed = false; } }
private static bool Prefix(Scp096 __instance) { var ev = new EnragingEventArgs(__instance, API.Features.Player.Get(__instance.Hub)); Handlers.Scp096.OnEnraging(ev); return(ev.IsAllowed); }
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>"); }
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; }
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); }
private void StartDamageTimer(EnragingEventArgs ev) { bTimerEnabled = true; DamageTimer(ev); }
public void OnEnraging(EnragingEventArgs ev) { ev.Scp096.ShieldRechargeRate = plugin.Config.ShieldRechargeRateEnraged; StartDamageTimer(ev); }
/// <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);