public override void UseAbility(HeroManager attacker, HeroManager defender) { //Remove a buff Buff[] buffs = defender.GetComponents <Buff>(); if (buffs.Length > 0) { Debug.Log("Buffs: " + buffs[0]); Buff buff = buffs[Random.Range(0, buffs.Length)]; //buff.OnDestroy(); Destroy(buff); } //Reset defender abilities to MAX cooldown defender.heroPanel.SetActive(true); Ability[] abilities = defender.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { //Debug.Log("Abiltiies: " +ability.name); ability.MaxCooldown(); } defender.heroPanel.SetActive(false); //Critical Attack an Enemy GameManager.Instance.AttackCritical(attacker, defender); base.UseAbility(attacker); }
public override void UseAbility(HeroManager attacker, HeroManager defender) { //Attack an enemy GameManager.Instance.Attack(attacker, defender); //Get allies list List <HeroManager> allies = GameManager.Instance.AllyHeroList(attacker); //Reset Skills to Max Cooldown defender.heroPanel.SetActive(true); Ability[] abilities = defender.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { //Debug.Log("Abiltiies: " +ability.name); ability.ResetCooldown(); } defender.heroPanel.SetActive(false); //Gain an Extra turn foreach (HeroManager ally in allies) { ally.hasExtraTurn = true; } GameManager.Instance.ExtraTurn(attacker); base.UseAbility(attacker); } //UseAbility
} //InitHeroUI public IEnumerator EnableHeroPassives(HeroManager hero) { hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(true); Ability[] abilities = hero.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { if (ability.skillType == Type.Passive) { ability.UseAbilityPassive(); } //For active skills with Passive if (ability.skillType == Type.Active) { ability.UseAbilityActive(); } // ability.UseAbilityPassive(); // ability.UseAbilityActive(); } hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(false); yield return(null); }
// Use this for initialization void Awake() { //get buff asset this.debuff = Resources.Load <DebuffAsset>("SO Assets/Debuff/Oblivion"); //attach buff Icon to Hero UI this.debuffIcon = debuff.icon; HeroManager hero = GetComponentInParent <HeroManager>(); //apply effect hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(true); Ability[] abilities = hero.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { // if(ability.skillType == Type.Active) // ability.DisableAbilityActive(); // if(ability.skillType == Type.Passive) // ability.DisableAbilityPassive(); ability.DisableAbilityActive(); ability.DisableAbilityPassive(); } hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(false); }
public override void OnDestroy() { HeroManager hero = GetComponentInParent <HeroManager>(); //apply effect hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(true); Ability[] abilities = hero.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { if (ability.skillType == Type.Passive) { ability.UseAbilityPassive(); } if (ability.skillType == Type.Active) { ability.UseAbilityActive(); } } hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(false); //call parent OnDestroy base.OnDestroy(); }
// public override void UseAbility(HeroManager attacker, HeroManager defender) { GameManager.Instance.Attack(attacker, defender); //Access Feast of Blood Button[] buttons = attacker.GetComponentsInChildren <Button>(); Ability feastOfBlood = buttons[2].GetComponent <Ability>(); feastOfBlood.UseAbility(attacker, defender); base.UseAbility(attacker, defender); }
public override void UseAbility(HeroManager attacker, HeroManager defender) { //Reset Skills to Max Cooldown defender.heroPanel.SetActive(true); Ability[] abilities = defender.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { ability.RefreshCooldown(); } defender.heroPanel.SetActive(false); base.UseAbility(attacker, defender); }
} //DestroyBuffsDebuffs public IEnumerator DisableHeroPassives(HeroManager hero) { //Disable Passive Abilities hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(true); Ability[] abilities = hero.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { ability.DisableAbilityPassive(); ability.DisableAbilityActive(); } hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(false); yield return(null); } //Disable Passives
//used for revive skills public void ReinitializeHero(HeroManager hero) { //Destroy all buffs Buff[] buffs = hero.GetComponents <Buff>(); foreach (Buff buff in buffs) { Destroy(buff); } //Destroy all debuffs Debuff[] debuffs = hero.GetComponents <Debuff>(); foreach (Debuff debuff in debuffs) { Destroy(debuff); } //reinitialize stats hero.maxHealth = hero.origHealth; hero.attack = hero.origAttack; hero.defense = hero.origDefense; hero.chance = hero.origChance; hero.shield = hero.origShield; //Trigger Passives hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(true); Ability[] abilities = hero.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { if (ability.skillType == Type.Passive) { ability.UseAbilityPassive(); } //For active skills with Passive if (ability.skillType == Type.Active) { ability.UseAbilityActive(); } } hero.transform.Find("HeroPanel(Clone)").gameObject.SetActive(false); }
} //UseAbility public void YeonReduceCooldown(HeroManager attacker, HeroManager defender) { defender.heroPanel.SetActive(true); Ability[] abilities = defender.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { //Debug.Log("Abiltiies: " +ability.name); ability.ReduceCooldown(1); } defender.heroPanel.SetActive(false); attacker.heroPanel.SetActive(true); abilities = attacker.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { //Debug.Log("Abiltiies: " +ability.name); ability.ReduceCooldown(1); } attacker.heroPanel.SetActive(false); }
public override void UseAbility(HeroManager attacker, HeroManager defender) { GameManager.Instance.Attack(attacker, defender); int damageHeal = GameManager.Instance.atk_damage; Debug.Log("Cadiz Vampiric Bat damage: " + damageHeal); GameManager.Instance.Heal(attacker, damageHeal); //Access Feast of Blood Button[] buttons = attacker.GetComponentsInChildren <Button>(); Ability feastOfBlood = buttons[2].GetComponent("FeastOfBlood") as Ability; feastOfBlood.UseAbility(attacker, defender); //bility feastofBlood2 = attacker.GetComponentInChildren("FeastOfBlood") as Ability; base.UseAbility(attacker, defender); }
} //Extra Turn Check public void ReviveHero(HeroManager target) { target.gameObject.SetActive(true); DestroyAllBuffs(target); DestroyAllDebuffs(target); //run all passive and automatic abilities target.transform.Find("HeroPanel(Clone)").gameObject.SetActive(true); Ability[] abilities = target.GetComponentsInChildren <Ability>(); foreach (Ability ability in abilities) { if (ability.skillType == Type.Passive) { ability.UseAbilityPassive(); } //For active skills with Passive if (ability.skillType == Type.Active) { ability.UseAbilityActive(); } //reset all cooldowns ability.remainingCooldown = ability.abilityCooldown; } target.transform.Find("HeroPanel(Clone)").gameObject.SetActive(false); //setHealth back to original health target.maxHealth = target.origHealth; //set Glow Selector var image = target.glow.GetComponent <Image>().color; image.a = 1f; target.glow.GetComponent <Image>().color = image; //udpate UI target.UpdateUI(); } //ReviveHero