コード例 #1
0
        // Token: 0x06000F11 RID: 3857 RVA: 0x00027B30 File Offset: 0x00025D30
        public bool CanInvoke(bool checkAbilityManaCost)
        {
            if (this.IsInvoked)
            {
                return(true);
            }
            Invoke invoke = this.invoke;

            return(invoke != null && invoke.CanBeCasted(true) && (!checkAbilityManaCost || this.owner.Mana >= this.invoke.ManaCost + this.invokableAbility.ManaCost));
        }
コード例 #2
0
        // Token: 0x06000F12 RID: 3858 RVA: 0x00027B90 File Offset: 0x00025D90
        public bool Invoke(List <AbilityId> currentOrbs, bool queue, bool bypass)
        {
            if (this.IsInvoked)
            {
                return(true);
            }
            Invoke invoke = this.invoke;

            if (invoke == null || !invoke.CanBeCasted(true))
            {
                return(false);
            }
            List <AbilityId> castedOrbs = currentOrbs ?? (from x in this.owner.BaseUnit.Modifiers
                                                          where !x.IsHidden && this.orbModifiers.ContainsKey(x.Name)
                                                          select this.orbModifiers[x.Name]).ToList <AbilityId>();

            using (IEnumerator <AbilityId> enumerator = this.GetMissingOrbs(castedOrbs).GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    AbilityId     id            = enumerator.Current;
                    ActiveAbility activeAbility = this.myOrbs.FirstOrDefault((ActiveAbility x) => x.BaseAbility.Id == id && x.CanBeCasted(true));
                    if (activeAbility == null)
                    {
                        return(false);
                    }
                    if (!activeAbility.UseAbility(queue, bypass))
                    {
                        return(false);
                    }
                }
            }
            bool flag = this.invoke.UseAbility(queue, bypass);

            if (flag)
            {
                this.invokeTime = Game.RawGameTime;
            }
            return(flag);
        }