public void Serialize(BinaryWriter binaryWriter) { int size = EquipList.Count; binaryWriter.Write(size); for (int i = 0; i < size; i++) { BaseGoods equipment = EquipList[i]; binaryWriter.Write(equipment.Type); binaryWriter.Write(equipment.Index); binaryWriter.Write(equipment.GoodsNum); } size = GoodsList.Count; binaryWriter.Write(size); for (int i = 0; i < size; i++) { BaseGoods goods = GoodsList[i]; binaryWriter.Write(goods.Type); binaryWriter.Write(goods.Index); binaryWriter.Write(goods.GoodsNum); } }
/// <summary> /// 在物品列表中增加指定type和index的物品num个 /// </summary> /// <param name="type"></param> /// <param name="index"></param> /// <param name="num"></param> public void AddGoods(int type, int index, int num) { if (type >= 1 && type <= 7) { // 装备 if (EquipList.Where(m => m.Type == type && m.Index == index).FirstOrDefault() is BaseGoods equip) //已有物品 { equip.AddGoodsNum(num); } else //增加物品 { BaseGoods newGoods = Context.LibData.GetGoods(type, index); newGoods.GoodsNum = num; EquipList.Add(newGoods); } } else if (type >= 8 && type <= 14) { // 物品 if (GoodsList.Where(m => m.Type == type && m.Index == index).FirstOrDefault() is BaseGoods goods) //已有物品 { goods.AddGoodsNum(num); } else //增加物品 { BaseGoods newGoods = Context.LibData.GetGoods(type, index); newGoods.GoodsNum = num; GoodsList.Add(newGoods); } } }
public void Deserialize(BinaryReader binaryReader) { Clear(); int size = binaryReader.ReadInt32(); for (int i = 0; i < size; i++) { BaseGoods equipment = Context.LibData.GetGoods(binaryReader.ReadInt32(), binaryReader.ReadInt32()); equipment.GoodsNum = binaryReader.ReadInt32(); EquipList.Add(equipment); } size = binaryReader.ReadInt32(); for (int i = 0; i < size; i++) { BaseGoods goods = Context.LibData.GetGoods(binaryReader.ReadInt32(), binaryReader.ReadInt32()); goods.GoodsNum = binaryReader.ReadInt32(); GoodsList.Add(goods); } }