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);
    }
Beispiel #2
0
    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
Beispiel #3
0
    }    //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);
    }
Beispiel #4
0
    // 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);
    }
Beispiel #5
0
    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();
    }
Beispiel #6
0
//
    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);
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
    }    //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
Beispiel #9
0
    //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);
    }
Beispiel #10
0
    }    //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);
    }
Beispiel #11
0
    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);
    }
Beispiel #12
0
    }    //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