コード例 #1
0
ファイル: Server.cs プロジェクト: sander3991/SecretHitler
 internal static Server GetInstance(Game game, GamePanel panel, Client client)
 {
     if (game == null)
         throw new ArgumentException("Game may not be null!", nameof(game));
     if (Instance == null)
         Instance = new Server(game, panel, client);
     return Instance;
 }
コード例 #2
0
ファイル: Server.cs プロジェクト: sander3991/SecretHitler
 private Server(Game game, GamePanel panel, Client client)
 {
     this.game = game;
     GameState = new ServerGameState(this);
     for (var i = 1; i < 5; i++)
         GameState.SeatedPlayers[i] = Player.GetPlayerServerSide($"Temp {i}");
     ServerMessageHandler = new ServerMessageHandler(this, GameState);
 }
コード例 #3
0
ファイル: Netviewer.cs プロジェクト: sander3991/SecretHitler
 public Netviewer(Server server, Client client)
     :this()
 {
     this.server = server;
     this.client = client;
     if(client != null && client.ReceiveHandler != null)
     {
         client.ReceiveHandler.OnReceive += ClientReceive;
         client.OnSent += ClientSent;
     }
     if (server != null)
     {
         server.ServerMessageHandler.OnReceive += ServerReceive;
         server.OnSent += ServerSent;
     }
 }
コード例 #4
0
 public ClientGameState(GamePanel panel, Client client, Game game, bool isHost)
     : base()
 {
     IsHost = isHost;
     Client = client;
     Chat = ChatHandler.Initialize(this);
     client.OnConnected += BindGetGamestate;
     panel.InitializePiles(DrawPile, DiscardPile);
     for (var i = 0; i < 17; i++)
         DrawPile.AddCard(new CardPolicyUnknown());
     Window = game;
     this.panel = panel;
     OnStart += (ClientGameState state) =>
     {
         state.FascistActions = FascistAction.GetActionsForPlayers(state.PlayerCount);
     };
 }
コード例 #5
0
ファイル: Game.cs プロジェクト: sander3991/SecretHitler
 public Game(ServerClientDialog dialog)
 {
     InitializeComponent();
     client = Client.GetClient(this, dialog.Username);
     client.Name = dialog.Username;
     if (!dialog.Join)
     {
         //Host code
         server = Server.GetInstance(this, gamePanel, client);
         server.Start();
         while (!server.Running) ;
     }
     GameState = new ClientGameState(gamePanel, client, this, server != null);
     gamePanel.InitializeState(GameState);
     client.Connect(dialog.IPAddress);
     statusLabel.Parent = gamePanel;
     playerMsg.Parent = gamePanel;
 }
コード例 #6
0
 public DebugConsole(Server server, ServerGameState serverGameState, Client client, ClientGameState clientGameState)
     :this()
 {
     this.server = server;
     this.serverGameState = serverGameState;
     this.client = client;
     this.clientGameState = clientGameState;
     for(var i = 0; i < serverGameState.SeatedPlayers.Length; i++)
     {
         if (serverGameState.SeatedPlayers[i] == null) continue;
         playerButtons[i].Enabled = true;
         playerButtons[i].Text = serverGameState.SeatedPlayers[i].Name;
         playerButtons[i].Tag = serverGameState.SeatedPlayers[i];
     }
     for (var i = 0; i < policyButtons.Length; i++)
     {
         policyButtons[i].Tag = (byte)i;
     }
 }
コード例 #7
0
 private void BindGetGamestate(Client obj)
 {
     obj.ReceiveHandler.OnReceive += OnMessageReceived;
     obj.RequestGameState();
 }
コード例 #8
0
 private void Client_OnConnected(Client obj)
 {
     obj.ReceiveHandler.OnReceive += OnReceive;
 }
コード例 #9
0
ファイル: Netviewer.cs プロジェクト: sander3991/SecretHitler
 public Netviewer(Client client)
     : this(null, client)
 { }
コード例 #10
0
ファイル: Client.cs プロジェクト: sander3991/SecretHitler
 public static Client GetClient(Game game, string username)
 {
     Instance = new Client(game, username);
     return Instance;
 }
コード例 #11
0
ファイル: Client.cs プロジェクト: sander3991/SecretHitler
 public SendMsgHandler(NetworkObject obj, Client client, Action<NetworkObject> callback = null)
 {
     this.obj = obj;
     this.client = client;
     this.callback = callback;
     DoWork += StartSendMessage;
     RunWorkerAsync();
 }
コード例 #12
0
ファイル: Client.cs プロジェクト: sander3991/SecretHitler
 public ReceiveMsgHandler(Client client)
 {
     this.client = client;
     DoWork += ReceiveFromServer;
 }