using System;
using System.Collections.Generic;
using Cal;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.Options;
namespace ET
{
public enum StarSoulItemSortType: byte
{
///
/// 优先品质
///
QualityFirst,
///
/// 优先套装
///
TypeFirst,
///
/// 优先等级
///
LevelFirst,
}
public class StarSoulItem
{
public long Id;
///
/// 套装Id
///
public int typeId;
public byte level;
public int exp;
///
/// 装备栏
///
public EquipType posType;
public Quality quality;
public bool isUsed;
public bool isLocked;
// [BsonRepresentation(MongoDB.Bson.BsonType.Double, AllowTruncation = true)]
public int mainId;
public int[] viceIds = new int[4];
[BsonRepresentation(MongoDB.Bson.BsonType.Double, AllowTruncation = true)]
public float[] viceAdd = new float[4];
public byte addViceCount;
public override string ToString()
{
return $"id={this.Id} type={this.typeId} {this.posType} {this.quality} level={this.level} isUsed={this.isUsed} islocked={this.isLocked}";
}
}
public class StarSoulSuit
{
[System.Flags]
public enum StarSoulSuitType:byte
{
None,
Suit4=1,
///
/// 不要使用,不存在这种情况
///
Suit8=1<<1,
Suit4And8 = Suit4|Suit8,
}
public int Id;
public StarSoulSuitType type;
}
[BsonIgnoreExtraElements]
public class StarSoulBag: Entity,ICombatBounds
{
public const ushort MaxCount = 1000;
public int ItemCount;
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public SortedDictionary itemDic = new SortedDictionary();
public long lastSortTime;
public const int sortTimeIntervel = 120 * 1000;
public List Suits = new List();
///
/// 星魂数量,用于计算套装
///
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary typeStarSoulCount = new Dictionary();
[BsonDictionaryOptions(DictionaryRepresentation.ArrayOfArrays)]
public Dictionary usedStarSoulDic = new Dictionary();
[BsonIgnore]
public Func getAttributeFunc { get; set; }
}
}