Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
 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);
         }
     }
 }
Ejemplo n.º 4
0
Archivo: Rubick.cs Proyecto: Mej0/a
        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);
     }
 }
Ejemplo n.º 6
0
 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);
     }
 }
Ejemplo n.º 7
0
        private void OnAbilityRemove(object sender, AbilityEventArgs abilityEventArgs)
        {
            if (!abilityEventArgs.IsMine)
            {
                return;
            }

            if (abilityEventArgs.Ability.GetManaCost(0) > 0)
            {
                menu.RemoveAbility(abilityEventArgs.Ability.StoredName());
            }
        }
Ejemplo n.º 8
0
        private void OnAbilityAdd(object sender, AbilityEventArgs abilityEventArgs)
        {
            if (!abilityEventArgs.IsMine)
            {
                return;
            }

            if (abilityEventArgs.Ability.GetManaCost(0) > 0)
            {
                menu.AddAbility(abilityEventArgs.Ability.StoredName(), true);
            }
        }
Ejemplo n.º 9
0
        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;
            }
        }
Ejemplo n.º 10
0
        // 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();
        }
Ejemplo n.º 11
0
        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;
            }
        }
Ejemplo n.º 12
0
        private void TogglerOnValueChange(object sender, AbilityEventArgs e)
        {
            if (e.Ability != this.abilityName)
            {
                return;
            }

            if (e.NewValue)
            {
                this.Enable();
            }
            else
            {
                this.Disable();
            }
        }
Ejemplo n.º 13
0
        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();
            }
        }
Ejemplo n.º 14
0
        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];
                }
            }
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 16
0
        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);
            }
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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;
        }
Ejemplo n.º 19
0
        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);
                }
            }
        }
Ejemplo n.º 20
0
        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);
                }
            }
        }
Ejemplo n.º 21
0
 private void OnAbilityRemove(object sender, AbilityEventArgs abilityEventArgs)
 {
     invisAbilities.Remove(abilityEventArgs.Ability);
 }