private void LeaveGame(GameCommand cmdReceived, PlayerGame playerGame, Game game) { if (playerGame == null) { new CommandFeedback(cmdReceived, enCommandStatus.Rejected, "User did not join this game").Save(this.FAppPrivate); } else { if (game == null) { new CommandFeedback(cmdReceived, enCommandStatus.Rejected, "Could not find this game").Save(this.FAppPrivate); } else { PlayerGame playerToRemove = game.PlayersInGame.Where(c => c.UserId == cmdReceived.UserId).FirstOrDefault(); if (playerToRemove == null) { new CommandFeedback(cmdReceived, enCommandStatus.Rejected, "Player not found in the game").Save(this.FAppPrivate); } else { game.PlayersInGame.Remove(playerToRemove); game.Save(this.FAppPublic); playerToRemove.Delete(this.FAppPrivate); new CommandFeedback(cmdReceived, enCommandStatus.Accepted, "Left the Game").Save(this.FAppPrivate); } } } }
private void btnAddGame_Click(object sender, EventArgs e) { var game = new Game() { Name = "Super Game", Rules = "There are no rules", MaxNumberOfPlayers = 2, AccessibleTerrainTypes = 2, InAccessibleTerrainTypes = 2, }; game.Map.LoadMap("Maps\\Map02.csv"); game.Map.Name = "Demo map"; game.Map.Description = "My first demo map created in google spreadsheets"; var gunSmallArms = new Weapon() { Class = 0, FiringRange = 2, Name = "small arms", RotatingSpeed = 90, ShieldDamage = 1, ArmorDamage = 2 }; var unitScout = new Unit() { Name = "Scout", Class = 0, Heading = enHeading.North, MovingSpeed = 3, MovingRange = 1, RotatingSpeed = 90, BuildTimeInSeconds = 10, MaxNumberOf = 1, Armor = 5, RadarRange = 1, Shields = 5, HasFixedGun = true, FixedGunArmorDamage = 1, FixedGunFiringRange = 1, FixedGunShieldDamage = 1, UnitTypeId = Guid.NewGuid().ToString() }; // unitScout.Weapons.Add(gunSmallArms); game.AvailableUnits.Add(unitScout); var gunTurret = new Weapon() { Class = 1, FiringRange = 2, Name = "heavy arms", RotatingSpeed = 45, ShieldDamage = 10, ArmorDamage = 20 }; var heavyUnit = new Unit() { Name = "Heavy", Class = 1, Heading = enHeading.NorthEast, MovingSpeed = 2, MovingRange = 1, RotatingSpeed = 45, BuildTimeInSeconds = 10, MaxNumberOf = 1, Armor = 100, RadarRange = 1, Shields = 200, HasFixedGun = true, FixedGunArmorDamage = 10, FixedGunFiringRange = 10, FixedGunShieldDamage = 10, UnitTypeId = Guid.NewGuid().ToString() }; // heavyUnit.Weapons.Add(gunTurret); game.AvailableUnits.Add(heavyUnit); game.Save(this.FAppPublic); }
private void JoinGame(GameCommand cmdReceived, Player player, PlayerGame playerGame, Game game) { if (playerGame != null) { new CommandFeedback(cmdReceived, enCommandStatus.Rejected, "User already joined game").Save(this.FAppPrivate); } else { if (game == null) { new CommandFeedback(cmdReceived, enCommandStatus.Rejected, "Game not found").Save(this.FAppPrivate); } else { if (game.PlayersInGame.Count >= game.MaxNumberOfPlayers) { new CommandFeedback(cmdReceived, enCommandStatus.Rejected, "Already too many players in the game").Save(this.FAppPrivate); } else { PlayerGame newPlayerGame = new PlayerGame(game, cmdReceived.UserId, player.NickName); foreach (MapTile tile in game.Map.MapTiles) { MapTile playerTile = new MapTile(); playerTile.TerrainType = -1;// tile.TerrainType; playerTile.UserId = newPlayerGame.UserId; playerTile.Xpos = tile.Xpos; playerTile.Ypos = tile.Ypos; newPlayerGame.Map.MapTiles.Add(playerTile); //set spawn, check if not occupied first if (newPlayerGame.Spawn == null && tile.IsSpawningPoint) { if (game.PlayersInGame.Where(c => c.Spawn.Xpos == tile.Xpos && c.Spawn.Ypos == tile.Ypos).Count() == 0) { //not used yet newPlayerGame.Spawn = playerTile; PlayerMapTile playerMapTile = new PlayerMapTile(game.Id, cmdReceived.UserId, playerTile); playerTile.TerrainType = 100; playerTile.IsSpawningPoint = true; playerTile.IsAccessible = true; playerMapTile.Save(this.FAppPrivate); } } } newPlayerGame.Save(this.FAppPrivate); game.PlayersInGame.Add(newPlayerGame); game.Save(this.FAppPublic); new CommandFeedback(cmdReceived, enCommandStatus.Accepted, "Joined the game").Save(this.FAppPrivate); } } } }