using System; using System.Collections.Generic; using MongoDB.Bson.Serialization.Attributes; using ProtoBuf; namespace ET { [ProtoContract] [Config] public partial class SkillConfigCategory : ProtoObject, IMerge { public static SkillConfigCategory Instance; [ProtoIgnore] [BsonIgnore] private Dictionary dict = new Dictionary(); [BsonElement] [ProtoMember(1)] private List list = new List(); public SkillConfigCategory() { Instance = this; } public void Merge(object o) { SkillConfigCategory s = o as SkillConfigCategory; this.list.AddRange(s.list); } public override void EndInit() { foreach (SkillConfig config in list) { config.EndInit(); this.dict.Add(config.Id, config); } this.AfterEndInit(); } public SkillConfig Get(int id) { this.dict.TryGetValue(id, out SkillConfig item); if (item == null) { throw new Exception($"配置找不到,配置表名: {nameof (SkillConfig)},配置id: {id}"); } return item; } public bool Contain(int id) { return this.dict.ContainsKey(id); } public Dictionary GetAll() { return this.dict; } public List GetList() { return this.list; } public SkillConfig GetOne() { if (this.dict == null || this.dict.Count <= 0) { return null; } return this.dict.Values.GetEnumerator().Current; } } [ProtoContract] public partial class SkillConfig: ProtoObject, IConfig { /// 编号 [ProtoMember(1)] public int Id { get; set; } /// 技能名称 [ProtoMember(2)] public string Name { get; set; } /// 施放类型 [ProtoMember(3)] public int Type { get; set; } /// 等级上限 [ProtoMember(4)] public int LevelCap { get; set; } /// 一级解锁等级 [ProtoMember(5)] public int UnlockOne { get; set; } /// 一级效果 [ProtoMember(6)] public int EffectOne { get; set; } /// 一级被动效果 [ProtoMember(7)] public int PassiveEffectOne { get; set; } /// 二级解锁等级 [ProtoMember(8)] public int UnlockTwo { get; set; } /// 二级效果 [ProtoMember(9)] public int EffectTwo { get; set; } /// 二级被动效果 [ProtoMember(10)] public int PassiveEffectTwo { get; set; } /// 三级解锁等级 [ProtoMember(11)] public int UnlockThree { get; set; } /// 三级效果 [ProtoMember(12)] public int EffectThree { get; set; } /// 三级被动效果 [ProtoMember(13)] public int PassiveEffectThree { get; set; } /// 四级解锁等级 [ProtoMember(14)] public int UnlockFour { get; set; } /// 四级效果 [ProtoMember(15)] public int EffectFour { get; set; } /// 四级被动效果 [ProtoMember(16)] public int PassiveEffectFour { get; set; } /// 五级解锁等级 [ProtoMember(17)] public int UnlockFive { get; set; } /// 五级效果 [ProtoMember(18)] public int EffectFive { get; set; } /// 五级被动效果 [ProtoMember(19)] public int PassiveEffectFive { get; set; } /// 六级解锁等级 [ProtoMember(20)] public int UnlockSix { get; set; } /// 六级效果 [ProtoMember(21)] public int EffectSix { get; set; } /// 六级被动效果 [ProtoMember(22)] public int PassiveEffectSix { get; set; } /// 七级解锁等级 [ProtoMember(23)] public int UnlockSeven { get; set; } /// 七级效果 [ProtoMember(24)] public int EffectSeven { get; set; } /// 七级被动效果 [ProtoMember(25)] public int PassiveEffectSeven { get; set; } /// 八级解锁等级 [ProtoMember(26)] public int UnlockEight { get; set; } /// 八级效果 [ProtoMember(27)] public int EffectEight { get; set; } /// 八级被动效果 [ProtoMember(28)] public int PassiveEffectEight { get; set; } /// 九级解锁等级 [ProtoMember(29)] public int UnlockNine { get; set; } /// 九级效果 [ProtoMember(30)] public int EffectNine { get; set; } /// 九级被动效果 [ProtoMember(31)] public int PassiveEffectNine { get; set; } /// 十级解锁等级 [ProtoMember(32)] public int UnlockTen { get; set; } /// 十级效果 [ProtoMember(33)] public int EffectTen { get; set; } /// 十级被动效果 [ProtoMember(34)] public int PassiveEffectTen { get; set; } /// 技能动作 [ProtoMember(35)] public string Action { get; set; } /// 技能图标 [ProtoMember(36)] public string Icon { get; set; } /// 技能描述 [ProtoMember(37)] public string Describe { get; set; } } }