private void MessageReceiver_FMD_S_TEAM_READY(AllegianceInterop.ClientConnection client, AllegianceInterop.FMD_S_TEAM_READY message) { // Only the game controller can launch the game. if (IsGameController == false) { // If we are not the game controller, then re-send the ready message in case the other side joined after we readied up the first time. AllegianceInterop.FMD_CS_FORCE_TEAM_READY forceReady = new AllegianceInterop.FMD_CS_FORCE_TEAM_READY(SideIndex, true); client.SendMessageServer(forceReady); return; } Log($"FMD_S_TEAM_READY - Received ready status: {message.fReady} for side: {message.iSide}"); CheckForLaunch(client, message.iSide, message.fReady); }
// Set the game parameters back to their proper defaults (map to hihigher, etc.) private void ResetGameParameters(AllegianceInterop.ClientConnection client) { AllegianceInterop.FMD_CS_MISSIONPARAMS missionParameters = new AllegianceInterop.FMD_CS_MISSIONPARAMS( GameName, AllegianceInterop.MapType.c_mmHiHigher, MaxPlayersPerGame, MaxPlayersPerGame / 2 ); client.SendMessageServer(missionParameters); Log($"ResetGameParameters: SideIndex = {SideIndex}"); AllegianceInterop.FMD_CS_FORCE_TEAM_READY forceReady = new AllegianceInterop.FMD_CS_FORCE_TEAM_READY(SideIndex, true); client.SendMessageServer(forceReady); }
// When a bot comm is made team leader, then it should set it's team name and faction. private void MessageReceiver_FMD_CS_SET_TEAM_LEADER(AllegianceInterop.ClientConnection client, AllegianceInterop.FMD_CS_SET_TEAM_LEADER message) { if (message.shipID <= 0) { return; } AllegianceInterop.FMD_S_PLAYERINFO playerInfo; if (message.shipID == _shipID) { Log($"This player is now the team leader of side index: {message.sideID}, _hasSetTeamAndCiv: {_hasSetTeamAndCiv}"); if (_hasSetTeamAndCiv == false) { int noSquad = -1; string[] teamNames = { "Yellow Pigs", "Blue Pigs" }; AllegianceInterop.FMD_CS_SET_TEAM_INFO teamInfo = new AllegianceInterop.FMD_CS_SET_TEAM_INFO(noSquad, SideIndex, teamNames[SideIndex]); client.SendMessageServer(teamInfo); var enumValues = Enum.GetValues(typeof(Civilization)); _targetCivID = (short)enumValues.GetValue(_random.Next(0, enumValues.Length)); AllegianceInterop.FMD_CS_CHANGE_TEAM_CIV teamCiv = new AllegianceInterop.FMD_CS_CHANGE_TEAM_CIV(SideIndex, _targetCivID, false); client.SendMessageServer(teamCiv); AllegianceInterop.FMD_CS_FORCE_TEAM_READY forceReady = new AllegianceInterop.FMD_CS_FORCE_TEAM_READY(SideIndex, true); client.SendMessageServer(forceReady); _hasSetTeamAndCiv = true; //_isCurrentCommander = true; } } //else if (message.sideID == SideIndex) // Someone else was made the leader of our side. This is an outrage! //{ // _isCurrentCommander = false; //} }
private void MessageReceiver_FMD_CS_FORCE_TEAM_READY(AllegianceInterop.ClientConnection client, AllegianceInterop.FMD_CS_FORCE_TEAM_READY message) { Log($"FMD_CS_FORCE_TEAM_READY - side: {message.iSide}, ready: {message.fForceReady}"); _readyStatus[message.iSide] = message.fForceReady; if (IsGameController == true) { CheckForLaunch(client, message.iSide, message.fForceReady); } }