public void NetworkCardObject() { var networkObj = new NetworkCardObject(ServerCommands.AnnounceCard, new CardBallotNo(), new CardBallotYes(), new CardPolicyVeto(), new CardPolicyLiberal()); var decoder = new NetworkCardObject.CardObjectReader(); var bytes = decoder.GenerateByteStream(networkObj); var generatedObj = decoder.GenerateObject(bytes, false); Assert.IsInstanceOfType(generatedObj, typeof(NetworkCardObject)); var generatedCardObj = generatedObj as NetworkCardObject; Assert.IsTrue(generatedCardObj.Cards.Length == networkObj.Cards.Length); for(var i = 0; i < generatedCardObj.Cards.Length; i++) Assert.AreSame(generatedCardObj.Cards[i].GetType(), networkObj.Cards[i].GetType()); CompareDefaultObject(networkObj, generatedCardObj); }
public void LaunchGame() { var playerCount = PlayerCount; var fascistCount = playerCount % 2 == 0 ? playerCount / 2 - 1 : playerCount / 2; var liberalCount = playerCount - fascistCount; //Generate Decks PlayerHand[] decks = new PlayerHand[playerCount]; var j = 0; for (var i = 0; i < fascistCount; i++, j++) decks[j] = new PlayerHand(new CardSecretRoleFascist(i), new CardMembershipFascist()); for (var i = 0; i < liberalCount; i++, j++) decks[j] = new PlayerHand(new CardSecretRoleLiberal(i), new CardMembershipLiberal()); Player hitler = null; var fascists = new List<Player>(); //Shuffle and hand out decks decks.Shuffle(); var sendMsgs = new ServerResponse(); StartGame(); for (var i = 0; i < playerCount; i++) { var player = SeatedPlayers[i]; player.Dead = false; player.Hand = decks[i]; var sendToPlayer = new NetworkCardObject(ServerCommands.AnnounceCard, decks[i].Membership, decks[i].Role, decks[i].Yes, decks[i].No); if (decks[i].Role.IsFascist) fascists.Add(player); if (decks[i].Role.IsHitler) hitler = player; sendMsgs.AddObject(sendToPlayer, player); //Announce decks to player } var rand = new Random(Environment.TickCount * 5); var president = SeatedPlayers[rand.Next(playerCount)]; SetPresident(president); var presidentMsg = new NetworkPlayerObject(ServerCommands.AnnouncePresident, president); sendMsgs.AddObject(presidentMsg); //Announce Fascists to other party members for (var i = 0; i < playerCount; i++) { var player = SeatedPlayers[i]; if (player.Hand.Membership.IsFascist && (playerCount <= 6 || !player.Hand.Role.IsHitler)) foreach (Player announcePlayer in fascists) if (player != announcePlayer) sendMsgs.AddObject(new NetworkRevealRoleObject(announcePlayer), player); } Server.SendResponse(sendMsgs); FascistActions = FascistAction.GetActionsForPlayers(playerCount); }
/// <summary> /// 根据指定的资源类型创建一个资源对象 /// </summary> /// <param name="objType">资源类型编码</param> /// <returns></returns> public static ConfigObject CreateObject(int objType) { ConfigObject configObject; switch (objType) { case S1110Consts.RESOURCE_MACHINE: configObject = new MachineObject(); break; case S1110Consts.RESOURCE_LICENSESERVER: configObject = new LicenseServiceObject(); break; case S1110Consts.RESOURCE_ALARMSERVER: configObject = new AlarmServerObject(); break; case S1110Consts.RESOURCE_VOICESERVER: configObject = new VoiceServiceObject(); break; case S1110Consts.RESOURCE_DATATRANSFERSERVER: case S1110Consts.RESOURCE_CTIHUBSERVER: case S1110Consts.RESOURCE_DBBRIDGE: case S1110Consts.RESOURCE_ALARMMONITOR: case S1110Consts.RESOURCE_SFTP: case S1110Consts.RESOURCE_SCREENSERVER: case S1110Consts.RESOURCE_ISASERVER: case S1110Consts.RESOURCE_CMSERVER: case S1110Consts.RESOURCE_KEYGENERATOR: case S1110Consts.RESOURCE_FILEOPERATOR: case S1110Consts.RESOURCE_SPEECHANALYSISPARAM: case S1110Consts.RESOURCE_RECOVERSERVER: case S1110Consts.RESOURCE_CAPTURESERVER: configObject = new ServiceObject(); break; case S1110Consts.RESOURCE_STORAGEDEVICE: configObject = new StorageDeviceObject(); break; case S1110Consts.RESOURCE_PBXDEVICE: configObject = new PBXDeviceObject(); break; case S1110Consts.RESOURCE_CHANNEL: configObject = new VoiceChannelObject(); break; case S1110Consts.RESOURCE_SCREENCHANNEL: configObject = new ChannelObject(); break; case S1110Consts.RESOURCE_NETWORKCARD: configObject = new NetworkCardObject(); break; case S1110Consts.RESOURCE_VOIPPROTOCAL: configObject = new VoipProtocalObject(); break; case S1110Consts.RESOURCE_CONCURRENT: configObject = new ConcurrentObject(); break; case S1110Consts.RESOURCE_CTICONNECTION: configObject = new CTIConnectionObject(); break; case S1110Consts.RESOURCE_CTICONNECTIONGROUP: configObject = new CTIConnectionGroupObject(); break; case S1110Consts.RESOURCE_CTICONNECTIONGROUPCOLLECTION: configObject = new CTIConnectionGroupCollectionObject(); break; case S1110Consts.RESOURCE_DOWNLOADPARAM: configObject = new DownloadParamObject(); break; case S1110Consts.RESOURCE_ALARMMONITORPARAM: configObject = new AlarmMonitorParamObject(); break; case S1110Consts.RESOURCE_CTIDBBRIDGE: configObject = new CTIDBBServerObject(); break; case S1110Consts.RESOURCE_ALARMSERVICE: configObject = new AlarmServiceObject(); break; case S1110Consts.RESOURCE_ALARMPROCESS: configObject = new AlarmProcessObject(); break; default: configObject = new ConfigObject(); break; } configObject.ObjectType = objType; return(configObject); }
public List<NetworkCardObject> GetNetworkCards() { List<NetworkCardObject> NetworkCards = new List<NetworkCardObject>(); int DeviceIdentifier = 0; foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { if (nic.OperationalStatus == OperationalStatus.Up && nic.NetworkInterfaceType.ToString() != "Loopback") { NetworkCardObject NetworkCard = new NetworkCardObject(); try { NetworkCard.model.detection_string = nic.Description.ToString(); } catch { } NetworkCard.guid = nic.Id; NetworkCard.device_identifier = DeviceIdentifier; NetworkCard.mac_address = FormatMacAddress(nic.GetPhysicalAddress()); NetworkCard.adapter_type.detection_string = nic.NetworkInterfaceType.ToString(); NetworkCard.max_speed = nic.Speed / 1024 / 1024; foreach (UnicastIPAddressInformation ip_address in nic.GetIPProperties().UnicastAddresses) { NetworkCard.ip_addresses.Add(ip_address.Address.ToString()); } NetworkCards.Add(NetworkCard); } DeviceIdentifier++; } return NetworkCards; }