private void OnAbilityAdd(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.IsMine) { return; } var ability = abilityEventArgs.Ability; var usableAbility = manager.MyHero.UsableAbilities.OfType <IOffensiveAbility>() .FirstOrDefault(x => x.Handle == ability.Handle); if (usableAbility == null) { return; } var forcedName = forcedNames.FirstOrDefault(x => x.Key == ability.Id).Value; if (!string.IsNullOrEmpty(forcedName)) { usableAbility.ChangeName(forcedName); } var menuName = offensiveAbilityNames.FirstOrDefault(x => x.Key == ability.Id).Value; menu.CreateMenu(usableAbility, menuName); offensiveAbilities.Add(usableAbility); updateHandler.IsEnabled = true; }
private void OnAbilityAdd(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.IsMine) { return; } var module = modules.FirstOrDefault(x => x.AbilityId == abilityEventArgs.Ability.Id); if (module != null) { module.Refresh(); return; } var type = types.FirstOrDefault( x => x.GetCustomAttributes <AbilityBasedModuleAttribute>() .Any(z => z.AbilityId == abilityEventArgs.Ability.Id)); if (type != null) { modules.Add( (IAbilityBasedModule)Activator.CreateInstance(type, manager, menu, abilityEventArgs.Ability.Id)); } }
private void ItemsTogglerOnValueChange(object sender, AbilityEventArgs e) { foreach (var ability in this.units.SelectMany(x => x.AllAbilities)) { if (ability.Ability.Name == e.Ability) { ability.ChangeEnabled(e.NewValue); } } }
private void AbilityCasted(object sender, AbilityEventArgs e) { var hero = e.Caster as Hero; if ((hero != null) && hero.IsEnemy(this.Owner) && !hero.IsIllusion) { Log.Debug($"{hero.Name} casted {e.Ability.Ability.Name}"); this.castedAbilities[hero] = e.Ability.Ability; } }
protected override void AbilityTogglerOnValueChange(object sender, AbilityEventArgs e) { if (e.Ability == nameof(AbilityId.courier_burst)) { this.SpeedBurst(e.NewValue && this.Settings.GroupEnabled); } else { base.AbilityTogglerOnValueChange(sender, e); } }
protected override void AbilityTogglerOnValueChange(object sender, AbilityEventArgs e) { if (e.Ability == "o9k.glyph") { this.Glyph(e.NewValue && this.Settings.GroupEnabled); } else { base.AbilityTogglerOnValueChange(sender, e); } }
private void OnAbilityRemove(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.IsMine) { return; } if (abilityEventArgs.Ability.GetManaCost(0) > 0) { menu.RemoveAbility(abilityEventArgs.Ability.StoredName()); } }
private void OnAbilityAdd(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.IsMine) { return; } if (abilityEventArgs.Ability.GetManaCost(0) > 0) { menu.AddAbility(abilityEventArgs.Ability.StoredName(), true); } }
private void OnAbilityRemove(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.IsMine) { return; } defensiveAbilities.RemoveAll(x => x.Handle == abilityEventArgs.Ability.Handle); if (!defensiveAbilities.Any()) { updateHandler.IsEnabled = false; } }
// Token: 0x0600006D RID: 109 RVA: 0x000062EC File Offset: 0x000044EC private void TogglerOnValueChange(object sender, AbilityEventArgs e) { IRange range = this.abilities.Find((IRange x) => x.Name == e.Ability); if (range == null) { return; } if (e.NewValue) { range.Enable(this.heroMenu); return; } range.Dispose(); }
protected override void OnEntityAbilityAdded(Object p_sender, EventArgs p_args) { base.OnEntityAbilityAdded(p_sender, p_args); AbilityEventArgs abilityEventArgs = (AbilityEventArgs)p_args; if (abilityEventArgs.Ability.StaticData.NameKey == "MONSTER_ABILITY_PUSH") { StartCoroutine(PlayLateShakeFX()); m_isPlaying = true; m_OnCommand = false; m_OnCommandStart = false; m_OnVictory = false; m_OnVictoryStart = false; } }
private void TogglerOnValueChange(object sender, AbilityEventArgs e) { if (e.Ability != this.abilityName) { return; } if (e.NewValue) { this.Enable(); } else { this.Disable(); } }
private void TogglerOnValueChange(object sender, AbilityEventArgs e) { var rangeAbility = this.abilities.Find(x => x.Name == e.Ability); if (rangeAbility == null) { return; } if (e.NewValue) { rangeAbility.Enable(this.heroMenu); } else { rangeAbility.Dispose(); } }
private void OnAbilityTriggered(Object p_sender, EventArgs p_args) { AbilityEventArgs abilityEventArgs = (AbilityEventArgs)p_args; if (abilityEventArgs.Monster == m_owner) { if (abilityEventArgs.Ability.AbilityType == EMonsterAbilityType.CURLING) { m_firstHitDone = true; m_currentTreshholdCurling = CURLING_TRIGGER_CHANCE[m_phase]; } else if (abilityEventArgs.Ability.AbilityType == EMonsterAbilityType.PUSH) { m_firstHitDone = true; m_currentTreshholdPush = PUSH_TRIGGER_CHANCE[m_phase]; } } }
private void OnAbilityCast(object sender, AbilityEventArgs args) { var caster = args.Caster; if (!Checker.AllowTarget(caster)) { return; } if (!caster.TryGetModule <IDamageable>(out var damageTarget)) { return; } var damageValue = _damagePerManaSpent * args.ManaSpent; damageValue = Mathf.Max(damageValue, 0f); var damage = new Damage(damageValue, DamageType.Pure, DamageFlags.Ability); damageTarget.TakeDamage(Self, damage); }
private void OnAbilityAdd(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.Ability.IsInvis()) { return; } var item = abilityEventArgs.Ability as Item; if (item != null && item.Purchaser.Team != manager.MyHero.Team) { invisAbilities.Add(item); return; } var ability = abilityEventArgs.Ability; if (ability.Owner?.Team != manager.MyHero.Team) { invisAbilities.Add(item); } }
private void OnAbilityRemove(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.IsMine) { return; } var module = modules.FirstOrDefault(x => x.AbilityId == abilityEventArgs.Ability.Id); if (module == null) { return; } if (manager.MyHero.Abilities.Any(x => module.AbilityId == x.Id)) { module.Refresh(); return; } module.Dispose(); modules.Remove(module); }
private void OnAbilityAdd(object sender, AbilityEventArgs abilityEventArgs) { if (!abilityEventArgs.IsMine) { return; } var ability = abilityEventArgs.Ability; var usableAbility = manager.MyHero.UsableAbilities.OfType <IDefensiveAbility>() .FirstOrDefault(x => x.Handle == ability.Handle); if (usableAbility == null) { return; } var name = defensiveAbilityNames.FirstOrDefault(x => x.Key == ability.Id).Value; menu.CreateMenu(usableAbility, name); defensiveAbilities.Add(usableAbility); updateHandler.IsEnabled = true; }
public override void ConfirmCast() { if (!AbilityHelper.TryRaycastActor(out var actor)) { return; } if (!CheckBuilder.AllowCast()) { return; } if (!CheckBuilder.AllowTarget(actor)) { return; } if (IsBlackRose) { if (actor.TryGetModule <IDamageable>(out var damageable)) { CheckBuilder.DoCast(); CastBlackRoseLifeTap(damageable); var args = new AbilityEventArgs(Self, CheckBuilder.MagicCost.Cost); Modules.Abilitiable.NotifyAbilityCast(args); } } else { if (actor.TryGetModule <IHealable>(out var healable)) { CheckBuilder.DoCast(); CastRedRoseLifeTap(healable); var args = new AbilityEventArgs(Self, CheckBuilder.MagicCost.Cost); Modules.Abilitiable.NotifyAbilityCast(args); } } }
protected virtual void OnEntityAbilityAdded(Object p_sender, EventArgs p_args) { AbilityEventArgs abilityEventArgs = (AbilityEventArgs)p_args; if (abilityEventArgs.Monster == MyController) { String gfx = abilityEventArgs.Ability.StaticData.Gfx; String animation = abilityEventArgs.Ability.StaticData.Animation; if (!String.IsNullOrEmpty(animation)) { Int32 animationID = Int32.Parse(animation); if (m_old) { m_Animation.Play(animation, -1f, 1f); } else if (m_animatorControl.DieState == 0) { m_animatorControl.AttackMagic(animationID); } } if (!String.IsNullOrEmpty(gfx)) { if (gfx == "SKIP_FX") { return; } BuffFX buffFX = Helper.ResourcesLoad <BuffFX>(gfx, false); if (buffFX != null) { buffFX = Helper.Instantiate <BuffFX>(buffFX); FXQueue fxqueue = new GameObject(name + " " + buffFX.name + " FXQueue").AddComponent <FXQueue>(); fxqueue.SetData(new FXQueue.Entry[] { new FXQueue.Entry(buffFX, 0f, 0f) }, 0); if (abilityEventArgs.Ability.StaticData.TargetType == ETargetType.PARTY) { FXArgs args = new FXArgs(gameObject, FXHelper.GetPlayerEntity().gameObject, gameObject, FXHelper.GetPlayerEntity().gameObject, transform.position, transform.forward, -transform.right, FXHelper.GetPlayerEntity().transform.position, new List <GameObject> { FXHelper.GetPlayerEntity().gameObject }); fxqueue.Execute(args); } else { FXArgs args2 = new FXArgs(gameObject, gameObject, gameObject, gameObject, transform.position, transform.forward, -transform.right, transform.position, new List <GameObject> { gameObject }); fxqueue.Execute(args2); } m_Queues.Add(fxqueue); } else { Debug.LogError("OnAbilityEvent: Ability's given GFX does not exist! " + gfx); } } else { Debug.LogWarning("OnAbilityEvent: Ability GFX is missing!"); } if (abilityEventArgs.Ability.StaticData.NameKey == "MONSTER_ABILITY_EXPLOSIVE") { DelayedEventManagerWorker delayedEventManagerWorker = new GameObject("ExplosiveHelper").AddComponent <DelayedEventManagerWorker>(); DontDestroyOnLoad(delayedEventManagerWorker); delayedEventManagerWorker.StartCoroutine(PlayLateShakeFX(delayedEventManagerWorker.gameObject)); Destroy(gameObject, m_explosiveAbilityDelay); } } }
private void OnAbilityRemove(object sender, AbilityEventArgs abilityEventArgs) { invisAbilities.Remove(abilityEventArgs.Ability); }