public bool Active(Hero target) { var borrowedTime = target.GetAbilityById(AbilityId.abaddon_borrowed_time); if (borrowedTime != null && borrowedTime.Owner.Health <= 2000 && borrowedTime.Cooldown <= 0 && borrowedTime.Level > 0) { return(false); } if (target.HasAnyModifiers("modifier_dazzle_shallow_grave", "modifier_spirit_breaker_charge_of_darkness", "modifier_pugna_nether_ward_aura")) { return(false); } var ability = target.Spellbook.Spells.Any(x => ActiveAbilities.Contains(x.Id) && x.IsInAbilityPhase); if (ability) { return(true); } var stunDebuff = target.Modifiers.Any(x => x.IsStunDebuff && x.Duration > 1); return(target.MovementSpeed < 240 || stunDebuff || target.HasAnyModifiers(ActiveModifiers)); }
void Start() { foreach (string item in AbilityFactory.GetAbilityActiveNames()) { ActiveAbilities.Add(AbilityFactory.GetAbilityActive(item)); } GameObject.Find("Ability Bar").GetComponent <AbilityBar>().Setup(); }
public override void CalculateAbilityDamageTaken(MyHero hero, AbilitiesMenu menu) { ActiveAbilities.Clear(); foreach (var ability in hero.GetValidAbilities(this).Where(x => courierDamageAbilities.Contains(x.AbilityId))) { ActiveAbilities[ability] = ability.CalculateDamage(hero.Hero, Unit); } if (ActiveAbilities.Any()) { AbilityDamageCalculated = true; } }
// Start is called before the first frame update virtual protected void Start() { rb = gameObject.GetComponent <Rigidbody2D>(); gm = GameObject.Find("GameManager").GetComponent <GameManager>(); activeAbilities = GetComponent <ActiveAbilities>(); startX = transform.position.x; prevX = transform.position.x; for (int i = healthArea.transform.childCount - 1; i > health - 1; i--) { healthArea.transform.GetChild(i).gameObject.SetActive(false); } //Assign Values from selected character if (GameObject.Find("OverallGameManager") != null) { GetCharValues(); } }
public void CalculateAbilityDamageTaken(MyHero hero, AbilitiesMenu menu) { if (hero.Team == Team) { return; } ActiveAbilities.Clear(); foreach (var ability in hero.GetValidAbilities(this) .Where(x => menu.IsAbilityEnabled(x.Name)) .OrderByDescending(x => menu.GetAbilityPriority(x.Name))) { ActiveAbilities[ability] = ability.CalculateDamage(hero.Hero, Unit); } if (ActiveAbilities.Any()) { AbilityDamageCalculated = true; } }