コード例 #1
0
ファイル: Player.cs プロジェクト: kyapp69/XposeCraft
 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);
     }
 }
コード例 #2
0
ファイル: Player.cs プロジェクト: kyapp69/XposeCraft
        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);
            }
        }
コード例 #3
0
ファイル: Player.cs プロジェクト: kyapp69/XposeCraft
 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);
     }
 }