public AbilityButton Init(HeroAbility heroAbility) { animator = GetComponent <Animator>(); cooldown = heroAbility.GetCooldown(); transform.Find("Big Button/Name").GetComponent <Text>().text = heroAbility.GetAbilityName(); transform.Find("Small Button/Hotkey").GetComponent <Text>().text = Hotkey.ConvertIndexToHotkey(heroAbility.GetIndex()); animator.speed = 1 / cooldown; return(this); }
public void Cast(int abilityIndex, Vector3 point, EnemyController target) { if (abilityIndex >= hero.CountAbilities()) { return; } tempAbility = hero.GetAbility(abilityIndex); if (tempAbility.IsOnCooldown()) { return; } if (tempAbility.NeedTarget()) { if (!target || Distance.IsEnemyFar(this, target, tempAbility.GetRange())) { return; } tempAbility.Use(target); if (tempAbility.NeedCoroutine()) { StartCoroutine(tempAbility.AbilityCoroutine(target)); } } else { if (Distance.IsPointFar(this, point, tempAbility.GetRange())) { return; } tempAbility.Use(point); if (tempAbility.NeedCoroutine()) { StartCoroutine(tempAbility.AbilityCoroutine(point)); } } tempAbility.ChangeAnimation(animator); if (hero.GetAttackAbility().GetCastTime() > 0) { doNothingTime = Time.time + hero.GetAttackAbility().GetCastTime(); } }
private void Start() { AttackAbility = Instantiate(AttackAbility); AttackAbility.transform.parent = transform; }
public void AddAbility(HeroAbility ability) { ability.SetIndex(abilities.Count); abilities.Add(ability); }