private bool AttackAttempt() { Collider targetCollider = null; if (paramManager.PlayerOwned) { targetCollider = worldObject.GetNearestEnemyTargetColliderInRange(paramManager.AggroRange); } else { targetCollider = WorkManager.DetermineNearestPlayerTargetColliderInRange(transform.position, paramManager.AggroRange); } if (targetCollider) { if (!unit.unitState.StateMidAnimation()) { if (unit.unitState.GetType() != typeof(AttackState)) { unit.SetUnitState(new AttackState(unit, false)); } unit.unitState.ReactToColliderFocus(targetCollider); return(true); } } return(false); }
//******************************************* //END GENERAL MOVEMENT METHODS //******************************************* //******************************************* //BEGIN PATROL METHODS //******************************************* public virtual void LookForTarget() { if (mySpawnerWorldObject && mySpawnerWorldObject.paramManager.PlayerOwned || player) { targetCollider = WorkManager.DetermineNearestEnemyTargetColliderInRange(transform.position, paramManager.AggroRange); } else if (mySpawnerWorldObject && !mySpawnerWorldObject.paramManager.PlayerOwned) { targetCollider = WorkManager.DetermineNearestPlayerTargetColliderInRange(transform.position, paramManager.AggroRange); } }
public virtual bool AbleToFindNewTarget() { if (paramManager.PlayerOwned) { targetCollider = worldObject.GetNearestEnemyTargetColliderInRange(paramManager.AggroRange); } else { targetCollider = WorkManager.DetermineNearestPlayerTargetColliderInRange(transform.position, 5); } if (targetCollider && targetCollider.gameObject.activeInHierarchy == false) { targetCollider = null; } if (targetCollider != null) { return(true); } else { return(false); } }