// 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)); }
// 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); }