using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Driver;
using NetCore.Protocol.MemoryPack;
namespace NetServer.MongoDB.DBData;
public class PlayerData
{
[BsonId] public ObjectId id { get; set; }
public long playerId { get; set; }
public string account { get; set; }
public string password { get; set; }
public string token { get; set; }
public string ip { get; set; }
public string device { get; set; }
///
/// 玩家等级
///
public int playerLevel { get; set; }
///
/// 关卡进度
///
public int levelBattleId { get; set; }
public List PlayerHero { get; set; }
public List PlayerItemDatas { get; set; }
public List PlayerEquipDatas { get; set; }
[BsonIgnore] public UpdateDefinition Update;
public UpdateDefinition CapyUpdate()
{
lock (Update)
{
UpdateDefinition updateValue = Update;
Update = null;
return updateValue;
}
}
public void AddUpdateDefinition(UpdateDefinition updateDefinition)
{
if (Update != null)
{
Builders.Update.Combine(Update, updateDefinition);
}
else
{
Update = updateDefinition;
}
}
public HeroData PlayerHeroToHeroData(PlayerHero playerHero)
{
HeroData heroData = new HeroData();
heroData.heroId = playerHero.heroId;
heroData.heroLevel = playerHero.heroLevel;
heroData.heroExp = playerHero.heroExp;
heroData.heroStar = playerHero.heroStar;
heroData.equipID = playerHero.equipID;
return heroData;
}
}