public static void OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs args) { if (sender.IsMe || sender.IsAlly || !Config.IsChecked(Config.Interrupter, "bInterrupt")) { return; } switch (Config.GetComboBoxValue(Config.Interrupter, "dangerL")) { case 0: wantedLevel = DangerLevel.Low; break; case 1: wantedLevel = DangerLevel.Medium; break; case 2: wantedLevel = DangerLevel.High; break; } if (Spells.E.CanCast() && Spells.E.IsInRange(sender) && args.DangerLevel == wantedLevel) { var delay = RDelay.Next(100, 120); Core.DelayAction(() => Spells.E.Cast(sender), delay); } }
internal static void OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs e) { if (sender.IsMe || sender.IsAlly || !Config.IsChecked(Config.InterrupterMenu, "br")) { return; } switch (Config.GetComboBoxValue(Config.InterrupterMenu, "dangerL")) { case 0: wanteDangerLevel = DangerLevel.Low; break; case 1: wanteDangerLevel = DangerLevel.Medium; break; case 2: wanteDangerLevel = DangerLevel.High; break; default: wanteDangerLevel = DangerLevel.High; break; } if (Spells.R.CanCast() && sender.IsValidTarget(Spells.R.Range) && e.DangerLevel == wanteDangerLevel) { var delay = Computed.RDelay.Next(100, 120); Core.DelayAction(() => Spells.R.Cast(sender), delay); } }
public static void OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs e) { if (!sender.IsEnemy || Player.Instance.IsRecalling() || !Config.IsChecked(Config.Misc, "useInterrupt")) { return; } switch (Config.GetComboBoxValue(Config.Misc, "dangerL")) { case 0: wanteDangerLevel = DangerLevel.Low; break; case 1: wanteDangerLevel = DangerLevel.Medium; break; case 2: wanteDangerLevel = DangerLevel.High; break; default: wanteDangerLevel = DangerLevel.High; break; } if (Spells.R.CanCast() && sender.IsValidTarget(Spells.R.Range) && e.DangerLevel == wanteDangerLevel) { Spells.R.Cast(); } }
public Cell(DangerLevel cellLevel, int index, GameObject block, int spt, SCP cellInhabitant = null) { this.cellLevel = cellLevel; this.cellInhabitant = cellInhabitant; this.index = index; this.cellBlock = block; this.spot = spt; isFilled = false; }
/// <summary> /// Interrupter menu info /// </summary> public InterrupterMenuInfo(Champion champion, SpellSlot spellSlot, bool enabled, int percentHp, int enemiesNear, int delay, DangerLevel dangerLevel) { Champion = champion; SpellSlot = spellSlot; Enabled = enabled; PercentHp = percentHp; EnemiesNear = enemiesNear; Delay = delay; DangerLevel = dangerLevel; }
/// <summary> /// Interruptable Target Data internal constructor /// </summary> /// <param name="sender">Sender or classifed Target</param> /// <param name="dangerLevel">Danger Level</param> /// <param name="endTime">Ending time of the spell</param> /// <param name="movementInterrupts">Does Movement Interrupts the spell</param> internal InterruptableTargetEventArgs(Obj_AI_Hero sender, DangerLevel dangerLevel, float endTime, bool movementInterrupts) { Sender = sender; DangerLevel = dangerLevel; EndTime = endTime; MovementInterrupts = movementInterrupts; }
internal static void RegisterSpell(string champName, SpellSlot slot, DangerLevel dangerLevel) { if (!SpellDatabase.ContainsKey(champName)) { SpellDatabase.Add(champName, new List <InterruptableSpell>()); } SpellDatabase[champName].Add(new InterruptableSpell { SpellSlot = slot, DangerLevel = dangerLevel }); }
/// <summary> /// Gapcloser menu info /// </summary> public GapcloserMenuInfo(string champion, string spellName, bool enabled, int percentHp, int enemiesNear, int delay, DangerLevel dangerLevel) { Champion = champion; SpellName = spellName; Enabled = enabled; PercentHp = percentHp; EnemiesNear = enemiesNear; Delay = delay; DangerLevel = dangerLevel; }
/// <summary> /// Initializes a new instance of the <see cref="InterruptableSpellData" /> class. /// </summary> /// <param name="name"> /// Spell Name /// </param> /// <param name="dangerLevel"> /// Danger Level /// </param> /// <param name="slot"> /// The slot. /// </param> /// <param name="movementInterrupts"> /// Does movement interrupt the spell /// </param> public InterruptableSpellData( string name, DangerLevel dangerLevel, SpellSlot slot = SpellSlot.Unknown, bool movementInterrupts = true) { this.Name = name; this.DangerLevel = dangerLevel; this.Slot = slot; this.MovementInterrupts = movementInterrupts; }
/// <summary> /// Initializes a new instance of the <see cref="InterruptableTargetEventArgs" /> class. /// </summary> /// <param name="sender"> /// Sender or classified Target /// </param> /// <param name="dangerLevel"> /// Danger Level /// </param> /// <param name="endTime"> /// Ending time of the spell /// </param> /// <param name="movementInterrupts"> /// Does Movement Interrupts the spell /// </param> internal InterruptableTargetEventArgs( AIHeroClient sender, DangerLevel dangerLevel, float endTime, bool movementInterrupts) { this.Sender = sender; this.DangerLevel = dangerLevel; this.EndTime = endTime; this.MovementInterrupts = movementInterrupts; }
public InterrupterEventArgs(GameObject target, SpellSlot spellSlot, DangerLevel dangerLevel, string spellName, Vector3 start, Vector3 end, int delay, int enemies, int healthPercent, float gameTime) { Target = target; SpellSlot = spellSlot; DangerLevel = dangerLevel; SpellName = spellName; Start = start; End = end; Delay = delay; Enemies = enemies; HealthPercent = healthPercent; GameTime = gameTime; }
public static void InitializeModes() { switch (SpellsMenu.GetComboBoxValue("chance")) { case 0: { hitchance = HitChance.High; } break; case 1: { hitchance = HitChance.Medium; } break; case 2: { hitchance = HitChance.Low; } break; } switch (SpellsMenu.GetComboBoxValue("Intdanger")) { case 0: { Intdanger = DangerLevel.High; } break; case 1: { Intdanger = DangerLevel.Medium; } break; case 2: { Intdanger = DangerLevel.Low; } break; } Game.OnUpdate += Game_OnTick; Gapcloser.OnGapcloser += Gapcloser_OnGapcloser; Interrupter.OnInterruptableSpell += Interrupter_OnInterruptableSpell; }
//constructor for the SCP, defines all necessary parameters public SCP(int escapeChance, string name, string number, DangerLevel dl, bool contained) { this.escapeChance = escapeChance; this.name = name; this.number = number; this.dl = dl; this.contained = contained; if (!contained) { //capture difficulty captureDifficulty = 0; switch (DL) { case DangerLevel.keter: captureDifficulty += 100; break; case DangerLevel.euclid: captureDifficulty += 60; break; case DangerLevel.safe: captureDifficulty += 30; break; } if (captureDifficulty > GameManager.Instance.GetStaff(StaffType.security).Count * 2) { captureDifficulty -= GameManager.Instance.GetStaff(StaffType.security).Count * 2; } else { captureDifficulty = 1; } } }
public static void OnInterruptableSpell(Obj_AI_Base sender, Interrupter.InterruptableSpellEventArgs args) { if (sender.IsMe || sender.IsAlly || !Config.IsChecked(Config.Interrupter, "bInterrupt")) { return; } switch (Config.GetComboBoxValue(Config.Interrupter, "dangerL")) { case 0: wanteDangerLevel = DangerLevel.Low; break; case 1: wanteDangerLevel = DangerLevel.Medium; break; case 2: wanteDangerLevel = DangerLevel.High; break; default: wanteDangerLevel = DangerLevel.High; break; } if (Spells.R.IsReady() && sender.IsValidTarget(Spells.R.Range) && args.DangerLevel == wanteDangerLevel) { var rPred = Spells.R.GetPrediction(sender); if (rPred.HitChancePercent >= 90) { var delay = Mainframe.RDelay.Next(100, 120); Core.DelayAction(() => Spells.R.Cast(rPred.CastPosition), delay); } } }
public InterruptableTargetEventArgs(DangerLevel dangerLevel, float endTime, bool movementInterrupts) { DangerLevel = dangerLevel; EndTime = endTime; MovementInterrupts = movementInterrupts; }
/// <summary> /// Gapcloser info /// </summary> /// <param name="dangerLevel">Spell's danger level</param> /// <param name="enemiesNear">Trigger only if x or less enemies are near</param> /// <param name="delay">Spell's delay</param> public GapcloserInfo(DangerLevel dangerLevel, int enemiesNear, int delay) { DangerLevel = dangerLevel; EnemiesNear = enemiesNear; Delay = delay; }
/// <summary> /// Used to get the SCP by the name and the DangerLevel /// </summary> /// <param name="dangerLevel">The type that the SCP is</param> /// <param name="name">The name of the given SCP</param> /// <returns>Returns a given SCP object</returns> public SCP GetSCP(DangerLevel dangerLevel, string name) => scps[dangerLevel].Find(scp => scp.Name == name);
/// <summary> /// Used to add a new SCP object to the room /// </summary> /// <param name="scpType">The type that the new SCP is</param> /// <param name="newSCP">The actual scp object</param> public void AddScp(DangerLevel scpType, SCP newSCP) => scps[scpType].Add(newSCP);
/// <summary> /// Initializes a new instance of the <see cref="InterruptableSpellData" /> class. /// </summary> /// <param name="slot"> /// Spell Slot /// </param> /// <param name="dangerLevel"> /// Danger Level /// </param> /// <param name="movementInterrupts"> /// Does movement interrupt the spell /// </param> public InterruptableSpellData(SpellSlot slot, DangerLevel dangerLevel, bool movementInterrupts = true) { this.Slot = slot; this.DangerLevel = dangerLevel; this.MovementInterrupts = movementInterrupts; }
/// <summary> /// Initializes a new instance of the <see cref="InterruptableSpell" /> class. /// </summary> /// <param name="slot">The slot.</param> /// <param name="dangerLevel">The danger level.</param> /// <param name="movementInterrupts">if set to <c>true</c> [movement interrupts].</param> public InterruptableSpell(SpellSlot slot, DangerLevel dangerLevel, bool movementInterrupts = true) { Slot = slot; DangerLevel = dangerLevel; MovementInterrupts = movementInterrupts; }
/// <summary> /// Interrupter info /// </summary> /// <param name="dangerLevel">Spell's danger level</param> /// <param name="spellSlot">Spell's slot</param> public InterrupterInfo(DangerLevel dangerLevel, SpellSlot spellSlot) { DangerLevel = dangerLevel; SpellSlot = spellSlot; }
public InterruptableSpell(SpellSlot slot, DangerLevel dangerLevel, bool movementInterrupts = true) { Slot = slot; DangerLevel = dangerLevel; MovementInterrupts = movementInterrupts; }
/// <summary> /// Initializes a new instance of the <see cref="InterruptableTargetEventArgs" /> class. /// </summary> /// <param name="dangerLevel">The danger level.</param> /// <param name="endTime">The end time.</param> /// <param name="movementInterrupts">if set to <c>true</c> [movement interrupts].</param> public InterruptableTargetEventArgs(DangerLevel dangerLevel, float endTime, bool movementInterrupts) { DangerLevel = dangerLevel; EndTime = endTime; MovementInterrupts = movementInterrupts; }
/// <summary> /// Initializes a new instance of the <see cref="InterruptableTargetEventArgs" /> class. /// </summary> /// <param name="sender"> /// Sender or classified Target /// </param> /// <param name="dangerLevel"> /// Danger Level /// </param> /// <param name="endTime"> /// Ending time of the spell /// </param> /// <param name="movementInterrupts"> /// Does Movement Interrupts the spell /// </param> internal InterruptableTargetEventArgs( Obj_AI_Hero sender, DangerLevel dangerLevel, float endTime, bool movementInterrupts) { this.Sender = sender; this.DangerLevel = dangerLevel; this.EndTime = endTime; this.MovementInterrupts = movementInterrupts; }
public DetectionResult DetermineCancerOrWarningOrHealthy(out int Range, out DangerLevel DangerLevel, List <double> Currents, double[] Voltages, int IndexOfMax, Spec spec, int index) { DangerLevel = DangerLevel.free; DetectionResult Res = DetectionResult.Warning; Range = 100; var MaxValue = Currents[IndexOfMax]; spec.MaxVoltage = Voltages[IndexOfMax]; spec.voltageDelta1 = spec.MaxVoltage; double MinimumCurrentBeforeMax = 1000000; double MinimumCurrentAfterMax = 1000000; // spec =new Spec(); spec.delta1 = 0; spec.delta2 = 0; for (int i = IndexOfMax; i > 0; i--) { if (MinimumCurrentBeforeMax > Currents[i]) { MinimumCurrentBeforeMax = Currents[i]; } if (Voltages[i] < 0) { break; } } for (int i = IndexOfMax; i < Currents.Count; i++) { if (MinimumCurrentAfterMax > Currents[i]) { MinimumCurrentAfterMax = Currents[i]; spec.voltageDelta2 = Voltages[i]; } if (Voltages[i] > Voltages[i + 1]) { break; } } double DeltaCurrent1 = MaxValue; double DeltaCurrent2 = MaxValue - MinimumCurrentAfterMax; spec.delta1 = DeltaCurrent1; spec.delta2 = DeltaCurrent2; var Threshold = ConstantThreshold.GetInstance(); double percent; var dangerLavel = GetDangerLevel(spec.delta1, spec.delta2, out percent, index); spec.DangerLevel = dangerLavel; switch (dangerLavel) { case DangerLevel.free: case DangerLevel.free_warning: Res = DetectionResult.Healthy; break; case DangerLevel.danger: Res = DetectionResult.Cancer; break; case DangerLevel.warning: case DangerLevel.warning_danger: Res = DetectionResult.Warning; break; } return(Res); }
public AnimalSafetyRules(string safetyRules, DangerLevel level) { SafetyRules = safetyRules; CautionLevel = level; }