public SceneManager(Game game) : base(game) { this.game = game; floorEffect = Game.Content.Load <Effect>("effects"); player = Game.Content.Load <PlayerData>("Configuration/PlayerData"); tankmode = Game.Content.Load <Mode[]>(@"Configuration/TankMode"); world = Game.Content.Load <WorldMatrix>("Configuration/WorldData"); tankStatus = new TankStatusMode(tankmode[0]); city = new City(); background = new BackGround(game); inputHandler = new InputHandler(); textHandler = new TextHandler(); levelHander = new GameLevelHandler(Game.Content); explosionHandler = new ExplosionHandler(game); gameMenu = new GameMenuScreen(game, levelHander); worldData = new GameWorldData(world); camera = new FirstPersonCamera(game); background.InitializeModel(floorEffect); camera.prepareCamera(); camera.setWeapon(Game.Content.Load <Model>(@"Models\weapon")); }
public GameWorldData Post([FromBody] GameWorldData worldData) { if (worldData.Sounds.Length == 0) { return(worldData); } string serializedBlob = JsonConvert.SerializeObject(worldData); try { var updatedWorld = _dbContext.Worlds.First((world) => world.WorldId == worldData.UserId); updatedWorld.DataBlob = serializedBlob; _dbContext.Worlds.Update(updatedWorld); } catch (InvalidOperationException exception) { _dbContext.Worlds.Add(new WorldModel() { WorldId = worldData.UserId, DataBlob = serializedBlob }); } _dbContext.SaveChanges(); return(worldData); }
public static void ImportWorld(GameWorldData worldData) { foreach (var sound in worldData.Sounds) { var gobj = new GameObject(); gobj.transform.position = sound.Position; var soundController = gobj.AddComponent <SoundController>(); soundController.selectedSoundId = sound.Id; } }
/// <summary> /// Creates a new game world and start ticking. /// </summary> public static GameTicker StartTicking(GameWorldData levelData) { var gameWorld = new GameWorld(levelData); var newTicker = new GameObject("GameWorldTicker").AddComponent <GameTicker>(); newTicker.Camera = Camera.main; newTicker.DefaultOrtographicSize = newTicker.Camera.orthographicSize; newTicker.GameWorld = gameWorld; newTicker.ViewController = new BattleViewController(); newTicker.RoomController = new Room3DController(gameWorld); Game.ActiveGame = newTicker; return(newTicker); }
public void Post(GameWorldData world) { HttpWebRequest request = new HttpWebRequest(new Uri(String.Format("{0}{1}", host, path))); request.ContentType = "application/json"; request.Method = "POST"; var bodyStream = request.GetRequestStream(); using (var writer = new StreamWriter(bodyStream)) { var serializedWorld = JsonUtility.ToJson(world); writer.Write(serializedWorld); } }
public Octree(Game game, SceneManager sceneManager, GameWorldData worldData) : base(game) { this.sceneManager = sceneManager; octreeRoot = new OcTreeNode(worldData.OCTREE_WORLD_CENTER1, worldData.OCTREE_WORLD_SIZE1); octreeRoot.RootSize = worldData.OCTREE_WORLD_SIZE1; boundryLeft = worldData.BoundryLeft; boundryRight = worldData.BoundryRight; boundryNear = worldData.BoundryNear; boundryFar = worldData.BoundryFar; enemyIDs = new List <int>(); playerIDs = new List <int>(); enemyBulletIDs = new List <int>(); playerBulletIDs = new List <int>(); tankIDs = new List <int>(); rnd = new Random(); controlTankEnabled = false; timeLastStamp = 0; }
public static GameWorldData ExportCurrentWorld() { var world = new GameWorldData(); world.UserId = Guid.NewGuid().ToString(); world.CreatedDate = DateTime.Now; var worldSounds = GameObject.FindObjectsOfType <SoundController>(); var worldSoundList = new List <SoundData>(); foreach (var worldSound in worldSounds) { worldSoundList.Add(new SoundData() { Id = worldSound.selectedSoundId, Position = worldSound.transform.position }); } world.Sounds = worldSoundList.ToArray(); return(world); }
public GameWorld(GameWorldData levelData) { Debug.Log("Entering Level " + levelData.LevelId); // init basic stuff GameWorldData = levelData; RandomGenerator = new Unity.Mathematics.Random((uint)GetHashCode()); ViewEventPipe = new ViewEventsPipe(); // init rooms int x = 0, y = 0; Rooms = new List <Room>(); // do the rooms var roomPresets = new List <RoomPreset>(); if (levelData.LevelId > 1) { roomPresets.Add(LoadRoomPreset("Pause")); } roomPresets.AddRange(LoadPresets(1, 5, randomize: levelData.LevelId > 1)); roomPresets.Add(LoadRoomPreset("Pause")); roomPresets.AddRange(LoadPresets(6, 10)); roomPresets.Add(LoadRoomPreset("Pause")); roomPresets.AddRange(LoadPresets(11, 15)); roomPresets.Add(LoadRoomPreset("Boss")); roomPresets.Add(LoadRoomPreset("Organ")); foreach (var roomPreset in roomPresets) { Rooms.Add(new Room(this, x, y, roomPreset)); // move up or right var proc = UnityEngine.Random.Range(0, 100) > 50; if (proc) { x++; } else { y++; } } // set next room refs for (int i = 0; i < Rooms.Count - 1; i++) { Rooms[i].SetNextRoom(Rooms[i + 1]); } Rooms[Rooms.Count - 1].SetNextRoom(null); for (int i = 1; i < Rooms.Count; i++) { Rooms[i].SetRoomBefore(Rooms[i - 1]); } // add player Player = new Player ( initialRoom: Rooms[0], settings: Game.PlayerSettings, initialPosition: float2.zero ); }
public static string ExportWorldToJson(GameWorldData gameworld) { return(JsonUtility.ToJson(gameworld)); }
/// <summary> /// Starts the game and its management/handlers etc. /// </summary> public async void StartAsync(MySqlConnectionSettings mySqlConnSettings) { if (_loadingInProgress) { _logger.UpdateLog("Game loading in progress!"); return; } _loadingInProgress = true; try { if (this.State == GameState.Active) { _logger.UpdateLog("The game is already active!"); return; } _mySqlConnSettings = mySqlConnSettings; int counter; try { //GAME DATA using (MySqlDbManager gwdDbManager = new MySqlDbManager(_mySqlConnSettings)) { #region Connection starting //CONNECTION STARTING _logger.UpdateLog("Starting connection for data loading..."); bool connectionSuccess = false; using (BoxedData connStartData = await gwdDbManager.StartConnectionTaskStart()) { if (!String.IsNullOrEmpty(connStartData.Msg)) { _logger.UpdateLog(connStartData.Msg); } connectionSuccess = (bool)connStartData.Data; } if (!connectionSuccess) { throw new Exception("connection not estabilished!"); } #endregion #region Account data //ACCOUNT DATA _accountData = new AccountData(_logger); _accountData.LoadAccountsAsync(gwdDbManager); while (!_accountData.IsLoaded) { await Task.Factory.StartNew(() => Thread.Sleep(1000)); if (_accountData.LoadingError) { throw new Exception("account data loading failure!"); } } //_accountData.ShowAccountsInLog(); //NOTE: only for testing (shows secret account details)! #endregion #region Game world data //GAME DATA LOADING _gameWorldData = new GameWorldData(_logger); _gameWorldData.LoadWorldDataAsync(gwdDbManager); counter = 0; while (!_gameWorldData.IsLoaded) { await Task.Factory.StartNew(() => Thread.Sleep(1000)); counter++; if (_gameWorldData.LoadingError) { throw new Exception("game world data loading failure!"); } } _logger.UpdateLog($"Game data loading ended in {counter} seconds."); #endregion } //PLAYER HANDLER _playerHandler = new PlayerHandler(_logger); //GAME STATE HANDLER _gameStateHandler = new GameStateHandler(_logger, _gameWorldData, _gameWorldData, _playerHandler); //CHAT HANDLER _chatHandler = new ChatHandler(_logger, _gameWorldData, _playerHandler); //COMMAND HANDLER _commandHandler = new CommandHandler(_logger); _commandHandler.RegisterCommandHandlingStrategy(new CmdPingStrategy()); _commandHandler.RegisterCommandHandlingStrategy(new MoveCharRequestStrategy(_logger, _gameStateHandler, _gameWorldData, _playerHandler)); _commandHandler.RegisterCommandHandlingStrategy(new CmdChatStrategy(_logger, _chatHandler)); _commandHandler.RegisterCommandHandlingStrategy(new SwitchPlaceRequestStrategy(_logger, _gameStateHandler, _gameWorldData, _gameWorldData, _playerHandler)); _commandHandler.RegisterCommandHandlingStrategy(new CmdGetLocationCharsStrategy(_logger, _gameWorldData)); _commandHandler.RegisterCommandHandlingStrategy(new CmdGetWorldDetailsStrategy(_logger, _gameWorldData)); _commandHandler.RegisterCommandHandlingStrategy(new CmdLoginStrategy(_logger, _accountData, _playerHandler)); _commandHandler.RegisterCommandHandlingStrategy(new CmdLogoutStrategy(_playerHandler)); _commandHandler.RegisterCommandHandlingStrategy(new CmdGetAccountCharsStrategy(_logger, _accountData, _gameWorldData)); _commandHandler.RegisterCommandHandlingStrategy(new CmdChooseCharacterStrategy(_logger, _accountData, _gameWorldData, _playerHandler)); //CONNECTION HANDLER _tcpConnectionHandler = TcpConnectionHandler.GetInstance(_tcpLogger, _commandHandler, _playerHandler); _tcpConnectionHandler.StartConnection(_uiHandler.GetTcpConnectionSettings()); //REGULAR OPERATION HANDLER _regularOperationHandler = new RegularOperationHandler(_logger); //ETC this.State = GameState.Active; } catch (Exception exception) { this.State = GameState.Error; _logger.UpdateLog($"An error occured during game starting: {exception.Message}"); } } finally { _logger.UpdateLog($"*** ENDED WITH GAME STATE [{this.State.ToString()}]"); _loadingInProgress = false; } }
public CmdGetWorldDetailsStrategy(ILogger logger, GameWorldData gameWorldData) { _logger = logger ?? throw new Exception("CmdGetWorldDetailsStrategy - logger cannot be NULL!"); _gameWorldData = gameWorldData ?? throw new Exception("CmdGetWorldDetailsStrategy - game world data cannot be NULL!"); }