public override void AddGoldOnWaveEnd(RunTimeTroopData troopData) { if (!troopData.isEnemy) { AddGold(troopData.valDropMoney); } }
private void Awake() { construcionsList = new PriorityList <Transform>(); foreach (GameObject tower in GameObject.FindGameObjectsWithTag("Tower")) { int towerOrder = tower.GetComponent <TowerAttackOrder>().orderInAttack; PriorityPair <Transform> towerPair = new PriorityPair <Transform>(tower.transform, towerOrder); construcionsList.Add(towerPair); } GameObject core = GameObject.FindGameObjectWithTag("Core"); int lastTowerOrder = 0; if (construcionsList.GetFirst() != null) { lastTowerOrder = construcionsList.GetFirst().Priority; } PriorityPair <Transform> corePair = new PriorityPair <Transform>(core.transform, lastTowerOrder + 1); construcionsList.Add(corePair); troopData = GetComponent <RunTimeTroopData>(); //TO:DO adapt to use Troop class with RunTimeData data movementAction = GetComponent <TroopMovementActions>(); attackAction = GetComponent <TroopAttackActions>(); }
public override void AddGold(RunTimeTroopData troopData) { if (troopData.isEnemy) { AddGold(troopData.valDropMoney); playerGoldChangeEvent.Raise(currentGold); } }
public RangeAttack(IsometricCharacterAnimator isometricCharacterAnimations, RunTimeTroopData troopData, GameObject projectilePrefab, Transform shotingPoint) : base(isometricCharacterAnimations, troopData) { this.troopData = troopData; this.troopAnimations = isometricCharacterAnimations; this.projectilePrefab = projectilePrefab; this.shotingPoint = shotingPoint; }
void Start() { troopRigidBody2d = GetComponent <Rigidbody2D>(); troopData = GetComponent <RunTimeTroopData>(); troopAnimations = GetComponentInChildren <IsometricCharacterAnimator>(); actualTarget = transform.position; prevTarget = transform.position; }
private void HandleTroopDeath(RunTimeTroopData troop) { if (troop.isEnemy) { TroopsKilledScore += troop.valScore; } TotalScore = CalculeTotalScore(); }
void Start() { troopData = GetComponent <RunTimeTroopData>(); troopAnimations = GetComponentInChildren <IsometricCharacterAnimator>(); if (troopData.attackAtDistance) { attackType = new RangeAttack(troopAnimations, troopData, projectilePrefab, shotingPoint); } else { attackType = new PhysicalAttack(troopAnimations, troopData); } }
private void OnTroopAttackingTower(RunTimeTroopData troop) { if (troopData.troopObjective == PhaseObjectives.DEFEND) { Transform enemyAttackingTower = troop.GameObject.transform; if (!closeTargets.Contains(enemyAttackingTower)) { closeTargets.Add(enemyAttackingTower); } if (!attackAction.IsAttacking && ActualTarget == null) { ActualTarget = PickAnTarget(); } } }
private int CountTroopsSurvivedScore() { int score = 0; GameObject[] troopsInGame = GameObject.FindGameObjectsWithTag("Troop"); foreach (GameObject troop in troopsInGame) { RunTimeTroopData troopData = troop.GetComponent <RunTimeTroopData>(); if (!troopData.isEnemy) { score += troopData.valScore; } } return(score); }
void Start() { switch (transform.parent.tag) { case ("Troop"): RunTimeTroopData troopData = GetComponentInParent <RunTimeTroopData>(); attackDistance = troopData.attackDistance; break; case ("Hero"): RunTimeHeroData heroData = GetComponentInParent <RunTimeHeroData>(); attackDistance = heroData.valAttackDistance; break; } battleCollider = GetComponent <CircleCollider2D>(); battleCollider.radius = Mathf.Log10(attackDistance + detectionIncreasedDistance); }
void Start() { switch (transform.parent.tag) { case ("Troop"): RunTimeTroopData troopData = GetComponentInParent <RunTimeTroopData>(); isEnemy = troopData.isEnemy; break; case ("Tower"): RunTimeTowerData towerData = GetComponentInParent <RunTimeTowerData>(); isEnemy = towerData.isEnemy; break; case ("Hero"): RunTimeHeroData heroData = GetComponentInParent <RunTimeHeroData>(); isEnemy = heroData.isEnemy; break; case ("Core"): RunTimeCoreData coreData = GetComponentInParent <RunTimeCoreData>(); isEnemy = coreData.isEnemy; break; } if (isEnemy) { gameObject.layer = 11; } else { gameObject.layer = 12; } }
private void Start() { troopData = GetComponent <RunTimeTroopData>(); Health = troopData.valHp; }
public TroopAttackI(IsometricCharacterAnimator isometricCharacterAnimations, RunTimeTroopData troopData) { troopAnimations = isometricCharacterAnimations; attackActions = troopData.GetComponent <TroopAttackActions>(); }
public abstract void AddGoldOnWaveEnd(RunTimeTroopData troopData);
private void OnTroopDeath(RunTimeTroopData troop) { Transform troopTransform = troop.GameObject.transform; HandleEnemyLeavedAttackRadio(troopTransform); }
public PhysicalAttack(IsometricCharacterAnimator isometricCharacterAnimations, RunTimeTroopData troopData) : base(isometricCharacterAnimations, troopData) { this.troopData = troopData; this.troopAnimations = isometricCharacterAnimations; }