private void GNet_OnGotMessage(Systems.IncomingMessage message) { if (message.Type == Systems.MessageType.Hail) { GNet.OpponentName = message.Message.ReadString(); GNet.OnGotMessage -= GNet_OnGotMessage; GScreens.OpenScreen <GameBoardScreen>(); } }
private void GNet_OnGotMessage(Systems.IncomingMessage message) { switch (message.Type) { case Systems.MessageType.Hail: GNet.OpponentName = message.Message.ReadString(); if (GNet.IsServer) { StartServerGame(); } break; case Systems.MessageType.CreateObject: { var _objType = (Systems.ObjectType)message.Message.ReadByte(); switch (_objType) { case Systems.ObjectType.Player: var _createSpec = Player.CreateSpec.Deserialize(message.Message); Player _player; if (_createSpec.IsServer) { _player = Player1 = GScene.Create <Player>(null, _createSpec.Id); } else { _player = Player2 = GScene.Create <Player>(null, _createSpec.Id); } _createSpec.Apply(_player); break; } } break; case Systems.MessageType.UpdateObject: { var _objType = (Systems.ObjectType)message.Message.ReadByte(); switch (_objType) { case Systems.ObjectType.Player: var _updateSpec = Player.UpdateSpec.Deserialize(message.Message); Player _player = GScene.GetObject <Player>(_updateSpec.Id); _updateSpec.Apply(_player); break; } } break; case Systems.MessageType.StartGame: _Started = true; break; } }