Beispiel #1
0
    }    //CheckDefender

    public void CheckTaunt(HeroManager attacker, HeroManager defender)
    {
        if (attacker.GetComponent <Taunt>() != null)
        {
            if (attacker.GetComponent <Taunt>().source.GetComponent <HeroManager>() == defender || defender.GetComponentInParent <Player>().tag == attacker.GetComponentInParent <Player>().tag)
            {
                canTargetHero = true;
                Debug.Log("attacker.GetComponent<Taunt>() != null");
            }
            else
            {
                canTargetHero = false;
            }
        }
        else
        {
            CheckThreat(attacker, defender);
        }
    }
Beispiel #2
0
    //public void InitHeroes ()
    //{
    //	StartCoroutine (InitHeroesRoutine());
    //}

    public IEnumerator InitHeroesRoutine()
    {
        deck = GetComponent <Deck>();

        if (deck.heroes != null)
        {
            for (int i = 0; i < deck.heroes.Count; i++)
            {
                yield return(new WaitForSeconds(0.2f));

                Transform spawnLocation = spawnLocations.GetComponent <SpawnLocations>().spawn[i].transform;
                heroGO = Instantiate(heroPrefab, spawnLocation.position, spawnLocation.rotation, transform);


                HeroManager heroManager = heroGO.GetComponent <HeroManager>();
                heroManager.heroName  = deck.heroes[i].heroName;
                heroManager.image     = deck.heroes[i].image;
                heroManager.maxHealth = deck.heroes[i].maxHealth;
                heroManager.attack    = deck.heroes[i].attack;
                heroManager.defense   = deck.heroes[i].defense;
                heroManager.chance    = deck.heroes[i].chance;

                heroManager.rarity = deck.heroes[i].rarity;

                heroManager.player = this;
                heroManager.tag    = this.tag;

                heroGO.GetComponentInChildren <Image>().sprite = deck.heroes[i].image;
                heroGO.name = heroManager.heroName;
                heroGO.GetComponentInChildren <OverheadText>().FloatingText(heroGO.name.ToString());



//add the abilities script to hero object

/*
 *                              for (int j = 0; j < deck.heroes[i].abilityAsset.Count; j++)
 *                              {
 *                                      string spellScriptName = deck.heroes[i].abilityAsset[j].abilityEffect;
 *                                      if (spellScriptName != null) {
 *                                              heroManager.abilityAssets.Add(deck.heroes[i].abilityAsset[j]);
 *                                      }
 *                              }
 */

                for (int j = 0; j < deck.heroes[i].abilityAsset2.Count; j++)
                {
                    string spellScriptName = deck.heroes[i].abilityAsset2[j].abilityEffect;
                    if (spellScriptName != null)
                    {
                        heroManager.abilityAssets.Add(deck.heroes[i].abilityAsset2[j]);
                    }
                }
                //heroManager.UpdateUI();
                //heroManager.CreateHeroPanel();

                //Set original reference values
                heroManager.origHealth  = heroManager.maxHealth;
                heroManager.origAttack  = heroManager.attack;
                heroManager.origDefense = heroManager.defense;
                heroManager.origChance  = heroManager.chance;
                heroManager.origShield  = heroManager.shield;
            }
        }

        yield return(null);
    }    //InitHeroes
Beispiel #3
0
    //Checks and resolves resolution of Reflect, Echo, and Revenge
    public void AttackStatusChecks(HeroManager attacker, HeroManager defender)
    {
        int attackersDefense = attacker.defense;
        int defendersDefense = defender.defense;

        attackersAttack = attacker.attack;
        defendersAttack = defender.attack;

        if (attackersDefense < 0)
        {
            attackersDefense = 0;
        }

        if (defendersDefense < 0)
        {
            defendersDefense = 0;
        }

        if (attackersAttack < 0)
        {
            attackersAttack = 0;
        }

        if (defendersAttack < 0)
        {
            defendersAttack = 0;
        }

        CriticalStrikeCheck(attacker, defender);

        if (defender.hasReflect)
        {
            if (!defender.GetComponentInParent <Player>().isActive)
            {
                atk_damage = attackersAttack - attackersDefense;
                //attacker.TakeDamage (atk_damage, defender);
                DealDamage(atk_damage, defender, attacker);
                Debug.Log("Damage Reflected");
                attacker.DisplayDamageText(atk_damage);
            }
        }
        else
        {
            if (defender.hasDefend)
            {
                HeroManager defenderHero         = defender.GetComponent <Defend>().source.GetComponent <HeroManager>();
                int         defenderHerosDefense = defenderHero.defense;

                atk_damage = attackersAttack - defenderHerosDefense;
                DealDamage(atk_damage, attacker, defenderHero);
                defenderHero.DisplayDamageText(atk_damage);
                Debug.Log("Defend!");
            }
            else
            {
                //Normal Damage	route
                atk_damage = attackersAttack - defendersDefense;

                DealDamage(atk_damage, attacker, defender);
                defender.DisplayDamageText(atk_damage);
            }
        }

        //Revenge
        if (defender.hasRevenge)
        {
            if (!defender.GetComponentInParent <Player>().isActive)
            {
                Attack(defender, attacker);
                Debug.Log("Revenge!");
            }


            // atk_damage = defendersAttack-attackersDefense;
            // //attacker.TakeDamage (atk_damage, defender);
            // DealDamage(atk_damage, defender, attacker);
            // Debug.Log("Revenge!");
            // attacker.DisplayDamageText(atk_damage);
        }
    }    //Attack Status Checks