//damage needds to be populated //hits needs to be populated public void DealDamage() { int modifiedDamage = unitStatus.DamageModifierCalculator(damage); if (AOE == false) { for (int i = 1; hits >= i; i++) { //targetUnit.TakeDamage(damage); targetUnit.TakeDamage(modifiedDamage); } } else { foreach (Transform enemy in targetObject.transform) { //cache override from AffectAll enemies targetUnit = enemy.gameObject.GetComponent <BaseUnitFunctions>(); for (int i = 1; hits >= i; i++) { //targetUnit.TakeDamage(damage); targetUnit.TakeDamage(modifiedDamage); } } AOE = false; } }
//set target to player when card is dropped //Child index 1 is player public void AffectPlayer(GameObject target) { if (target.tag == "Player") { targetObject = target; targetUnit = targetObject.GetComponent <PlayerFunctions>(); } else if (target.tag == "Enemy") { //gets parent enemy holder then gets parent playing field GameObject enemyHolder = target.transform.parent.gameObject; targetObject = enemyHolder.transform.parent.gameObject.transform.GetChild(1).gameObject; targetUnit = targetObject.GetComponent <PlayerFunctions>(); } else { targetObject = target.transform.parent.GetChild(1).gameObject; targetUnit = targetObject.GetComponent <PlayerFunctions>(); } }
//set all enemies as tagets when card is dropped //TargetUnit will be the EnemyHolder //CHANGE LOGIC, THIS IS WRONG public void AffectAllEnemies(GameObject target) { //sets AOE effect AOE = true; if (target.tag == "Enemy") { //gets parent enemy holder then gets parent playing field GameObject enemyHolder = target.transform.parent.gameObject; targetObject = enemyHolder.transform.parent.gameObject; targetUnit = targetObject.GetComponent <BaseUnitFunctions>(); } else { //child index 2 is the enemy holder targetObject = target.transform.parent.GetChild(2).gameObject; targetUnit = targetObject.GetComponent <BaseUnitFunctions>(); } //for dropfield approach //child index 2 is the enemy holder //targetUnit = target.transform.parent.GetChild(2).gameObject; }
//set target to actual choice target public void AffectSingleEnemy(GameObject target) { targetObject = target; targetUnit = targetObject.GetComponent <BaseUnitFunctions>(); }
// Start is called before the first frame update void Start() { baseUnitStats = gameObject.GetComponent <BaseUnitFunctions>(); baseUnitStats.InitializeStats(); }