//determines if the Room being moved to is a legitimate choice public bool CanMove(EDirection eDirection) { Location objTemporaryLocation = CurrentLocation.DeepClone<Location>(CurrentLocation); switch (eDirection) { case EDirection.North: { objTemporaryLocation.y++; //North break; } case EDirection.East: { objTemporaryLocation.x++; //East break; } case EDirection.West: { objTemporaryLocation.x--; //West break; } case EDirection.South: { objTemporaryLocation.y--; //South break; } } CurrentFloor.SetTemporaryRoom(objTemporaryLocation); if (CurrentFloor.TemporaryRoom != null && CurrentFloor.TemporaryRoom.Passable) { return true; } else { return false; } }
private void GoMoveState(EDirection eDirection) { PlayGameState = PlayGameStates.Move; if (objGetData.CanMove(eDirection)) { lblMap[objGetData.CurrentLocation.x, objGetData.CurrentLocation.y].Image = null; objGetData.MoveCharacter(); lblOutput.Text = objGetData.CurrentRoom.MovementText; //prints the image on the new Room lblMap[objGetData.CurrentLocation.x, objGetData.CurrentLocation.y].Image = Resources.sonic; LevelOverTransition(); } else { PlayGameState = PlayGameStates.Interactive; } }