public void GetTargetReferenceFromRallyPoint(GameObject other) { Creep newCreep = other.GetComponent <Creep>(); scrCreepEngagementHandler _newCreepEngagementHandler = newCreep.GetComponent <scrCreepEngagementHandler>(); if (newCreep._CreepHealth.CurrentHealth > 0f) //Extra check needed in case a creep that just died "slides" into the collider { DefenderCreepList.Add(newCreep); foreach (DefenderEngagementHandler _defender in Defenders) //Send all defenders to engage as none { if (_defender.defenderIsAlive && !_defender.thisDefenderIsEngagedAsMainTarget && !_defender.thisDefenderIsEngagedAsNoneTarget) { //print("Sent a defender as none target"); _defender.DefenderEngageNewTargetAsNone(newCreep); } } for (int i = 0; i < Defenders.Count; i++) //Send a defender to engage as main { if (!Defenders[i].thisDefenderIsEngagedAsMainTarget && Defenders[i].defenderIsAlive && _newCreepEngagementHandler.CurrentTarget == null) { //print("Sent a defender to engage new target: " + newCreep); Defenders[i].DefenderEngageNewTargetAsMain(Defenders[i], newCreep); return; //Only send one } } } }
private void InformCreepTarget(Creep _target) { CurrentCreepTarget = _target; scrCreepEngagementHandler _currentTargetEngagementHandler = CurrentCreepTarget.GetComponent <scrCreepEngagementHandler>(); _currentTargetEngagementHandler.AddDefenderToCreepTargetsList(this); _currentTargetEngagementHandler.SetThisCreepIsEngaged(); defenderMovement.MakeDefenderMoveTowardsTarget(); }
private Creep CheckForUnengagedTargets() { print("Looking for unengaged target"); longestTargetDistance = 0f; Creep newTarget = null; foreach (Creep _target in defenderTowerTargets.DefenderCreepList) { scrCreepEngagementHandler _targetEngagementHandler = _target.GetComponent <scrCreepEngagementHandler>(); if (_target.DistanceTravelled > longestTargetDistance && !_targetEngagementHandler.ThisCreepIsEngaged) { print("Found unengaged target"); longestTargetDistance = _target.DistanceTravelled; newTarget = _target; } } return(newTarget); }
private void Awake() { animator = GetComponentInChildren <Animator>(); //Get the reference to the animator conponent attached to this object _creep = GetComponent <Creep>(); engagementHandler = GetComponent <scrCreepEngagementHandler>(); //Gets the reference on this game object }