public virtual void Update(Orbwalking.OrbwalkingMode mode, ComboProvider combo, AIHeroClient target) { if (mode == Orbwalking.OrbwalkingMode.None) { return; } var targetIsValid = target.IsValidTarget(); if (OnlyUpdateIfTargetValid && mode == Orbwalking.OrbwalkingMode.Combo && !targetIsValid) { return; } if (OnlyUpdateIfCastable && !CanBeCast()) { return; //Todo: check if nessecary with new comboSystem } MinHitChance = mode == Orbwalking.OrbwalkingMode.Combo ? MinComboHitchance : MinHarassHitchance; switch (mode) { case Orbwalking.OrbwalkingMode.Combo: if (ComboEnabled) { Combo(target); } break; case Orbwalking.OrbwalkingMode.LaneClear: if (LaneclearEnabled) { LaneClear(); } break; case Orbwalking.OrbwalkingMode.Mixed: if (HarassEnabled) { if (targetIsValid || !OnlyUpdateIfTargetValid) { Harass(target); } if (LasthitEnabled) { Lasthit(); } } break; case Orbwalking.OrbwalkingMode.LastHit: if (LasthitEnabled) { Lasthit(); } break; } }
/// <summary> /// Add Initialisation logic in sub class. Called by ComboProvider.SetActive(skill) /// </summary> /// <param name="combo"></param> public virtual void Initialize(ComboProvider combo) { Provider = combo; }
public virtual void Gapcloser(ComboProvider combo, ActiveGapcloser gapcloser) { }
public virtual void Interruptable(ComboProvider combo, AIHeroClient sender, ComboProvider.InterruptableSpell interruptableSpell, float endTime) { }
public virtual void Interruptable(ComboProvider combo, Obj_AI_Hero sender, ComboProvider.InterruptableSpell interruptableSpell, float endTime) { }