Пример #1
0
        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));
        }
Пример #2
0
 void Start()
 {
     foreach (string item in AbilityFactory.GetAbilityActiveNames())
     {
         ActiveAbilities.Add(AbilityFactory.GetAbilityActive(item));
     }
     GameObject.Find("Ability Bar").GetComponent <AbilityBar>().Setup();
 }
Пример #3
0
        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;
            }
        }
Пример #4
0
    // 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();
        }
    }
Пример #5
0
        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;
            }
        }