public void WriteCreateCharacter(string nickname, GameObjectDAO charData) { using (MemoryStream ms = new MemoryStream()) using (BinaryWriter bw = new BinaryWriter(ms)) { bw.Write((byte)ASCII.SOH); bw.Write((byte)Opcodes.NEW_PLAYER); bw.Write((byte)ASCII.STX); bw.Write(nickname); bw.Write(charData.Id); bw.Write(charData.X); bw.Write(charData.Y); bw.Write(charData.Width); bw.Write(charData.Height); bw.Write(0); // Temporary till EntityType enum is implemented on server. bw.Write((byte)ASCII.EOT); SendTcp(ms.ToArray()); } }
public void WriteCreateCharacter(string nickname, GameObjectDAO charData) { using (MemoryStream ms = new MemoryStream()) using (BinaryWriter bw = new BinaryWriter(ms)) { bw.Write((byte)ASCII.SOH); bw.Write((uint)Opcodes.NEW_PLAYER); bw.Write((byte)ASCII.STX); bw.Write(nickname); bw.Write(charData.Id); bw.Write(charData.X); bw.Write(charData.Y); bw.Write(charData.Width); bw.Write(charData.Height); bw.Write(charData.Specialization); bw.Write(charData.Type); bw.Write((byte)ASCII.EOT); BroadcastTcp(ms.ToArray()); } }
public Character AddCharacter(string nickname, Specializations specialization) { Character c = CharacterFactory.CreateCharacter(specialization); if (GameObjects.TryAdd(c.Id, c)) { c.Register(Observation.KILLING, this, ExterminationNotification); c.Register(Observation.EXTERMINATION, this, ExterminationNotification); Body b = c.Body; GameObjectDAO data = new GameObjectDAO { X = b.Position.X, Y = b.Position.Y, Width = b.Width, Height = b.Height, Id = c.Id, Specialization = (int)c.Specialization }; Broker.WriteCreateCharacter(nickname, data); } return c; }