private void GenerateMap() { /*********** Generate Items ***********/ Logger.WriteLine("Room {0} : Generating items", Id); ItemGenerator itemGenerator = new ItemGenerator(); itemGenerator.Generate(); _itemList = itemGenerator.ItemList; NetworkWriter writer = new NetworkWriter(InGameProtocol.TCPServerToClient.ItemList); writer.Put(itemGenerator.ItemList.Count); foreach (var item in itemGenerator.ItemList) { writer.Put(item.Value.SpawnIndex); writer.Put(item.Value.ID); writer.Put(item.Value.Type); writer.Put(item.Value.Rarity); writer.Put(item.Value.Quantity); Logger.WriteLine("Room {0} : Item generated -> id = {1}\tquantity = {2}\ttype = {3}", Id, item.Value.ID, item.Value.Quantity, (ItemTypes.ItemEnum)item.Value.Type); } _server.SendAll(writer, DeliveryMethod.ReliableOrdered); Logger.WriteLine("Room {0} : Generating items finish", Id); /*********** Generate Enigmas ***********/ Logger.WriteLine("Room {0} : Generating enigmas", Id); EnigmasGenerator enigmasGenerator = new EnigmasGenerator(); enigmasGenerator.Generate(); _enigmasList = enigmasGenerator.EnigmasList; writer = new NetworkWriter(InGameProtocol.TCPServerToClient.EnigmasList); writer.Put(enigmasGenerator.EnigmasList.Count); foreach (var enimga in enigmasGenerator.EnigmasList) { writer.Put(enimga.Value.SpawnIndex); writer.Put(enimga.Value.EnigmaID); writer.Put(enimga.Value.EnigmaType); Logger.WriteLine("Room {0} : Enigma generated -> id = {1}\ttype = {2}", Id, enimga.Value.EnigmaID, enimga.Value.EnigmaType); } _server.SendAll(writer, DeliveryMethod.ReliableOrdered); Logger.WriteLine("Room {0} : Generating enigmas finish", Id); }
private void OpenCrateMessage(InGamePlayer player, NetworkMessage msg) { if (!GameStarted || GameEnded) { return; } int crateID = msg.GetInt(); Logger.WriteLine("Room {0} : Player {1} open crate {2}.", Id, player.Id, crateID); var itemList = ItemGenerator.GenerateCrateItem(); var writer = new NetworkWriter(InGameProtocol.TCPServerToClient.OpenCrate); writer.Put(player.Id); writer.Put(crateID); writer.Put(itemList.Count); foreach (var item in itemList) { writer.Put(item.ID); writer.Put(item.Type); writer.Put(item.Rarity); writer.Put(item.Quantity); _itemList.Add(item.ID, item); Logger.WriteLine("Room {0} : Item generated on crate {1} -> id = {2}\tquantity = {3}\ttype = {4}", Id, crateID, item.ID, item.Quantity, (ItemTypes.ItemEnum)item.Type); } _server.SendAll(writer, DeliveryMethod.ReliableOrdered); }