Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
 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;
 }