} //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); } }
//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
//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