private void EnemyVisibilityChanged( Actor enemyActor, List <Actor> myActorsSawChange, VisionState previousState, VisionState newState) { if (previousState == VisionState.Vision && newState != VisionState.Vision) { EnemyHidden(enemyActor, newState); } else if (previousState == VisionState.Undiscovered || previousState == VisionState.Discovered) { EnemyTurnedToVisible(enemyActor, myActorsSawChange); } }
private void EnemyHidden(Actor enemyActor, VisionState newState) { var unit = enemyActor as IUnit; if (unit != null) { EnemyVisibleUnits.Remove((Unit)unit); return; } var building = enemyActor as IBuilding; if (building != null && newState == VisionState.Undiscovered) { EnemyVisibleBuildings.Remove((Building)building); } }
public void EnemyOnSight( GameObject enemyActorGameObject, Actor enemyActor, List <GameObject> myActorGameObjectsSaw, List <Actor> myActorsSaw, VisionState previousState, VisionState newState) { if (newState == VisionState.Vision) { EvaluateAttackMove(enemyActor, myActorGameObjectsSaw, myActorsSaw); } // Evaluating visibility event if a change occurred if (previousState != newState) { EnemyVisibilityChanged(enemyActor, myActorsSaw, previousState, newState); } }