PlayerData.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using MongoDB.Bson;
  2. using MongoDB.Bson.Serialization.Attributes;
  3. using MongoDB.Driver;
  4. using NetCore.Protocol.MemoryPack;
  5. namespace NetServer.MongoDB.DBData;
  6. public class PlayerData
  7. {
  8. [BsonId] public ObjectId id { get; set; }
  9. public long playerId { get; set; }
  10. public string account { get; set; }
  11. public string password { get; set; }
  12. public string token { get; set; }
  13. public string ip { get; set; }
  14. public string device { get; set; }
  15. /// <summary>
  16. /// 玩家等级
  17. /// </summary>
  18. public int playerLevel { get; set; }
  19. /// <summary>
  20. /// 关卡进度
  21. /// </summary>
  22. public int levelBattleId { get; set; }
  23. public List<PlayerHero> PlayerHero { get; set; }
  24. public List<PlayerItemData> PlayerItemDatas { get; set; }
  25. public List<PlayerEquipData> PlayerEquipDatas { get; set; }
  26. [BsonIgnore] public UpdateDefinition<PlayerData> Update;
  27. public UpdateDefinition<PlayerData> CapyUpdate()
  28. {
  29. lock (Update)
  30. {
  31. UpdateDefinition<PlayerData> updateValue = Update;
  32. Update = null;
  33. return updateValue;
  34. }
  35. }
  36. public void AddUpdateDefinition(UpdateDefinition<PlayerData> updateDefinition)
  37. {
  38. if (Update != null)
  39. {
  40. Builders<PlayerData>.Update.Combine(Update, updateDefinition);
  41. }
  42. else
  43. {
  44. Update = updateDefinition;
  45. }
  46. }
  47. public HeroData PlayerHeroToHeroData(PlayerHero playerHero)
  48. {
  49. HeroData heroData = new HeroData();
  50. heroData.heroId = playerHero.heroId;
  51. heroData.heroLevel = playerHero.heroLevel;
  52. heroData.heroExp = playerHero.heroExp;
  53. heroData.heroStar = playerHero.heroStar;
  54. heroData.equipID = playerHero.equipID;
  55. return heroData;
  56. }
  57. }