public CCGame InitializeGame(Rooms playerRoom, CCPlayer RequestingPlayer) { // Get info for the other player CCPlayer player2 = playerRoom.Players.First(x => x.PlayerName != RequestingPlayer.PlayerName); //Intialize the armies List <Army> playerArmies = new List <Army>(); Army army1 = new Army(RequestingPlayer.PlayerName, 0, 0, null); Army army2 = new Army(player2.PlayerName, 0, 0, null); playerArmies.Add(army1); playerArmies.Add(army2); // Create the game CCGame playerGame = new CCGame(1, "Unit Selection", playerArmies, playerRoom, ""); //playerGame.Room.Players.Where(x => x.PlayerName == RequestingPlayer.PlayerName).Select(x => { x.Ready = false; return x; }); //playerGame.Room.Players.Where(x => x.PlayerName == player2.PlayerName).Select(x => { x.Ready = false; return x; }); foreach (CCPlayer player in playerGame.Room.Players) { player.Ready = false; } return(playerGame); }
public async Task SubmitUnitsToGroup(string playerGameToJson) { CCGame playerGame = new CCGame(0, null, null, null, ""); playerGame = JsonConvert.DeserializeAnonymousType(playerGameToJson, playerGame); CCPlayer RequestingPlayer = playerGame.Room.Players.First(x => x.ConnectionId == Context.ConnectionId); Army RequestingArmy = playerGame.Armies.First(x => x.PlayerName == RequestingPlayer.PlayerName); foreach (CCPlayer player in playerGame.Room.Players) { if (player.PlayerName == RequestingPlayer.PlayerName) { player.AvailableInf -= RequestingArmy.Infantry; player.AvailableTanks -= RequestingArmy.Tanks; } } foreach (CCPlayer player in playerGame.Room.Players) { Console.WriteLine("Submitted units " + player.PlayerName + " : " + player.Ready.ToString()); } if (playerGame.Room.Players.All(x => x.Ready == true)) { playerGame.Phase = "Card Selection"; foreach (CCPlayer player in playerGame.Room.Players) { player.Ready = false; } } await Clients.Group(playerGame.Room.RoomName).SendAsync("Units Submitted To Group", JsonConvert.SerializeObject(playerGame)); }
// Called before AI is run public override bool PreAI(Projectile projectile) { // Disable tombstones if (CrowdControlMod._server != null && ((Main.netMode != Terraria.ID.NetmodeID.Server && CCServer._disableTombstones) || Main.netMode == Terraria.ID.NetmodeID.Server) && m_graves.Contains(projectile.type)) { if (Main.netMode == Terraria.ID.NetmodeID.Server) { try { CCPlayer player = Main.player[projectile.owner].GetModPlayer <CCPlayer>(); if (player.m_servDisableTombstones) { projectile.active = false; NetMessage.SendData(Terraria.ID.MessageID.SyncNPC, -1, player.player.whoAmI, null, projectile.whoAmI); TDebug.WriteDebug("Server disabled " + player.player.name + "'s tombstone", Color.Yellow); return(false); } } catch { } } else { projectile.active = false; TDebug.WriteDebug("Client disabled tombstone", Color.Yellow); return(false); } } return(base.PreAI(projectile)); }
public async Task CreateOrJoinRoom(string roomName) { if (!String.IsNullOrEmpty(roomName)) { JoinRoom(roomName); } CCPlayer RequestingPlayer = playerList.First(x => x.ConnectionId == Context.ConnectionId); await Clients.Caller.SendAsync("Room Joined", JsonConvert.SerializeObject(playerList), JsonConvert.SerializeObject(RequestingPlayer), JsonConvert.SerializeObject(roomList)); }
private static readonly float m_paintMaxSpeed = 6f; // Maximum speed of paint projectiles // Override the spawn rate for every NPC public override void EditSpawnRate(Player player, ref int spawnRate, ref int maxSpawns) { // Increase spawnrate per player CCPlayer ccPlayer = player.GetModPlayer <CCPlayer>(); if (ccPlayer != null) { spawnRate = (int)(spawnRate / ccPlayer.m_spawnRate); maxSpawns = (int)(maxSpawns * ccPlayer.m_spawnRate); } }
private void Awake() { if (main == null) { main = this; } else { Destroy(main); main = this; } transform.position = transform.position.withY(1.8f); ResetAcceleration(); }
private void Awake() { if (main == null) { main = this; } else { Destroy(main); main = this; } transform.position = transform.position.withY(1.8f); characterController = GetComponent <CharacterController>(); ResetAcceleration(); }
public async Task CreatePlayerName(string playername) { bool userNameTaken = playerList.Any(x => x.PlayerName == playername); CCPlayer RequestingPlayer = playerList.First(x => x.ConnectionId == Context.ConnectionId); if (!userNameTaken) { RequestingPlayer.PlayerName = playername; } else if (userNameTaken) { RequestingPlayer.PlayerName = ""; } await Clients.Caller.SendAsync("Player Name Added", JsonConvert.SerializeObject(playerList), JsonConvert.SerializeObject(RequestingPlayer), JsonConvert.SerializeObject(roomList)); }
public CCGame WinnerOfBattle(CCGame playerGame) { Console.WriteLine("Chosing a winning player"); CCPlayer RequestingPlayer = playerGame.Room.Players.First(x => x.ConnectionId == Context.ConnectionId); Army RequestingPlayerArmy = playerGame.Armies.First(x => x.PlayerName == RequestingPlayer.PlayerName); Army OtherPlayerArmy = playerGame.Armies.First(x => x.PlayerName != RequestingPlayer.PlayerName); int RequestingPlayerTotalPower = (RequestingPlayerArmy.Tanks * 2) + RequestingPlayerArmy.Infantry + RequestingPlayerArmy.PlayerCard.Power; int OtherPlayerTotalPower = (OtherPlayerArmy.Tanks * 2) + OtherPlayerArmy.Infantry + OtherPlayerArmy.PlayerCard.Power; if (RequestingPlayerTotalPower > OtherPlayerTotalPower) { playerGame.WinningPlayer = RequestingPlayerArmy.PlayerName; } else if (RequestingPlayerTotalPower == OtherPlayerTotalPower) { if (RequestingPlayerArmy.PlayerCard.Power > OtherPlayerArmy.PlayerCard.Power) { playerGame.WinningPlayer = RequestingPlayerArmy.PlayerName; } else if (RequestingPlayerArmy.PlayerCard.Power < OtherPlayerArmy.PlayerCard.Power) { playerGame.WinningPlayer = OtherPlayerArmy.PlayerName; } else if (RequestingPlayerArmy.PlayerCard.Power == OtherPlayerArmy.PlayerCard.Power) { if (RequestingPlayerArmy.Infantry > OtherPlayerArmy.Infantry) { playerGame.WinningPlayer = RequestingPlayerArmy.PlayerName; } else if (RequestingPlayerArmy.Infantry < OtherPlayerArmy.Infantry) { playerGame.WinningPlayer = OtherPlayerArmy.PlayerName; } else if (RequestingPlayerArmy.Infantry == OtherPlayerArmy.Infantry) { playerGame.WinningPlayer = "tie"; } } } else if (RequestingPlayerTotalPower < OtherPlayerTotalPower) { playerGame.WinningPlayer = OtherPlayerArmy.PlayerName; } return(playerGame); }
public CCGame ResolveAttackDefense(CCGame playerGame) { Console.WriteLine("resolving attack / defense"); if (playerGame.WinningPlayer != "tie") { CCPlayer WinningPlayer = playerGame.Room.Players.First(x => x.PlayerName == playerGame.WinningPlayer); CCPlayer LosingPlayer = playerGame.Room.Players.First(x => x.PlayerName != playerGame.WinningPlayer); Army WinningArmy = playerGame.Armies.First(x => x.PlayerName == playerGame.WinningPlayer); Army LosingArmy = playerGame.Armies.First(x => x.PlayerName != playerGame.WinningPlayer); if (WinningArmy.PlayerCard.AttackValue > 0) { int TotalDamage = WinningArmy.PlayerCard.AttackValue - LosingArmy.PlayerCard.DefenseValue; if (TotalDamage > 0) { //remove tanks first LosingArmy.Tanks -= TotalDamage; if (LosingArmy.Tanks < 0) { TotalDamage = Math.Abs(LosingArmy.Tanks); LosingArmy.Tanks = 0; } else { TotalDamage = 0; } LosingArmy.Infantry -= TotalDamage; if (LosingArmy.Infantry < 0) { LosingArmy.Infantry = 0; } foreach (Army army in playerGame.Armies) { if (army.PlayerName == LosingPlayer.PlayerName) { army.Tanks = LosingArmy.Tanks; army.Infantry = LosingArmy.Infantry; } } } } } return(playerGame); }
public async Task ReadyUp() { CCPlayer RequestingPlayer = playerList.First(x => x.ConnectionId == Context.ConnectionId); Rooms playerRoom = roomList.First(x => x.RoomName == RequestingPlayer.RoomName); RequestingPlayer.Ready = true; playerRoom.Players.Where(x => x.PlayerName == RequestingPlayer.PlayerName).Select(x => { x.Ready = true; return(x); }); bool arePlayersReady = CheckIfPlayersReady(); CCGame playerGame = new CCGame(1, "", null, null, ""); // setup the game if players are all ready if (arePlayersReady) { playerGame = InitializeGame(playerRoom, RequestingPlayer); } await Clients.Group(RequestingPlayer.RoomName).SendAsync("User Readied", JsonConvert.SerializeObject(playerList), arePlayersReady, JsonConvert.SerializeObject(playerRoom.Players), JsonConvert.SerializeObject(playerGame)); }
public bool CheckIfPlayersReady() { CCPlayer RequestingPlayer = playerList.First(x => x.ConnectionId == Context.ConnectionId); Rooms playerRoom = roomList.First(x => x.RoomName == RequestingPlayer.RoomName); if (playerRoom.Players.Count == 2) { if (playerRoom.Players.Any(x => x.Ready == false)) { return(false); } else { return(true); } } else { return(false); } }
public void JoinRoom(string roomName) { bool roomExist = roomList.Any(x => x.RoomName == roomName); CCPlayer RequestingPlayer = playerList.First(x => x.ConnectionId == Context.ConnectionId); if (!roomExist) { Console.WriteLine("creating new room"); List <CCPlayer> roomPlayers = new List <CCPlayer>(); Rooms newRoom = new Rooms(roomName, roomPlayers); newRoom.Players.Add(RequestingPlayer); roomList.Add(newRoom); RequestingPlayer.RoomName = roomName; /* * Rooms newRoom = roomList.First(x => x.RoomName == roomName); * newRoom.Players.Add(RequestingPlayer); * RequestingPlayer.RoomName = roomName; */ } else { Console.WriteLine("Joining existing room"); Rooms roomToJoin = roomList.First(x => x.RoomName == roomName); if (roomToJoin.Players.Count < 2) { List <CCPlayer> roomPlayers = (List <CCPlayer>)roomToJoin.Players; bool playerAlreadyJoined = roomPlayers.Any(x => x.PlayerName == RequestingPlayer.PlayerName); if (!playerAlreadyJoined) { roomToJoin.Players.Add(RequestingPlayer); RequestingPlayer.RoomName = roomName; } } } Groups.AddToGroupAsync(Context.ConnectionId, roomName); }
public override Task OnDisconnectedAsync(Exception exception) { // Remove the player from any game rooms CCPlayer RequestingPlayer = playerList.First(x => x.ConnectionId == Context.ConnectionId); Rooms roomJoined = new Rooms(null, null); try { roomJoined = roomList.First(x => x.RoomName == RequestingPlayer.RoomName); } catch (Exception e) { } if (!String.IsNullOrEmpty(roomJoined.RoomName)) { // git changes.. //Rooms roomJoined = roomList.First(x => x.RoomName == RequestingPlayer.RoomName); CCPlayer playerToRemove = new CCPlayer(null, null, false, null, 0, 0, 0, 0, null, null, 0); try { playerToRemove = roomJoined.Players.Where(x => x.PlayerName == RequestingPlayer.PlayerName).First(); } catch (Exception e) { } roomJoined.Players.Remove(playerToRemove); bool isRoomEmpty = IsRoomEmpty(RequestingPlayer.RoomName); if (isRoomEmpty) { roomList.RemoveAll(x => x.RoomName == RequestingPlayer.RoomName); } if (!String.IsNullOrEmpty(RequestingPlayer.RoomName)) { LeaveRoom(RequestingPlayer.RoomName); } } // remove the player from the player list playerList.RemoveAll(x => x.ConnectionId == Context.ConnectionId); return(base.OnDisconnectedAsync(exception)); }
private void OnDestroy() { main = null; Shader.SetGlobalFloat("_GlobalStretch", 0); }