diff --git a/Engine/CLEngine.Core/framework/ItemManager.cs b/Engine/CLEngine.Core/framework/ItemManager.cs index f0273e365db2fbfd0b403c5205ba9cd1ea4fe299..d88fb9e2ac78298e9c4dfad1c7c2f7a9eea3a0bf 100644 --- a/Engine/CLEngine.Core/framework/ItemManager.cs +++ b/Engine/CLEngine.Core/framework/ItemManager.cs @@ -184,17 +184,19 @@ namespace CLEngine.Core.framework /// /// /// - public static void GetItemById(int id, int number) + public static void GetItemById(int id, int number)//需要注意检索是否装备唯一 { var onget = WorldFindItemById(id); ItemObject item = null; - int max = _playerItem.Count; - bool is_finish = false; - for (int i = 0; i < max; i++) + var max = _playerItem.Count; + var is_finish = false; + var have = false; + for (var i = 0; i < max; i++) { item = _playerItem[i]; if (item.Id == id) { + have = true; if (item.Number + number <= item.MaxNumber) { item.Number += number; @@ -203,7 +205,7 @@ namespace CLEngine.Core.framework } } } - if (!is_finish) + if (!is_finish||(!have&&item.OnlyGetOne)) { onget.Number = number; _playerItem.Add(onget); @@ -221,11 +223,13 @@ namespace CLEngine.Core.framework ItemObject item = null; var max = _playerItem.Count; var is_finish = false; + var have = false; for (int i = 0; i < max; i++) { item = _playerItem[i]; if (item.Name == name) { + have = true; if (item.Number + number <= item.MaxNumber) { item.Number += number; @@ -234,7 +238,7 @@ namespace CLEngine.Core.framework } } } - if (!is_finish) + if (!is_finish || (!have && item.OnlyGetOne)) { onget.Number = number; _playerItem.Add(onget); diff --git a/Engine/CLEngine.Core/framework/ItemObject.cs b/Engine/CLEngine.Core/framework/ItemObject.cs index 265729cce30bc0cf2e7d36dc28cabc1ef3d4d23c..41c1a7c8e4388fd1a24fa71a4595984bb96d4df1 100644 --- a/Engine/CLEngine.Core/framework/ItemObject.cs +++ b/Engine/CLEngine.Core/framework/ItemObject.cs @@ -95,10 +95,40 @@ namespace CLEngine.Core.framework [DataMember] private int _addADDef; [DataMember] private int _addAPDef; [DataMember] private int _cd; + [DataMember] private bool _onlyGetOne; + [DataMember] private float _hitAccuracy; + [DataMember] private float _missPercent; + [DataMember] private float _magicUseSpeed; + [DataMember] private string _classification; + [DataMember] private bool _onlyStoreOne; [NonSerialized] private Texture2D _texture; private int _positionInBag; /// + /// 仓库唯一 + /// + public bool OnlyStoreOne{ get{ return _onlyStoreOne; }set{ _onlyStoreOne = value; } } + /// + /// 分类 + /// + public string Classification{ get{ return _classification; }set{ _classification = value; } } + /// + /// 施法速率 + /// + public float MagicUseSpeed{ get{ return _magicUseSpeed; }set{ _magicUseSpeed = value; } } + /// + /// 闪避率 + /// + public float MissPercent { get { return _missPercent; } set { _missPercent = value; } } + /// + /// 命中率 + /// + public float HitAccuracy{ get{ return _hitAccuracy; }set{ _hitAccuracy = value; } } + /// + /// 背包唯一 + /// + public bool OnlyGetOne{ get{ return _onlyGetOne; }set{ _onlyGetOne = value; } } + /// /// 冷却时间 /// public int CD{ get { return _cd; }set { _cd = value; } } @@ -297,7 +327,7 @@ namespace CLEngine.Core.framework /// /// 附加属性:角色魔法值 /// - public int AddHeroMp { get { return _addMp; } set { _addMp = value; } } + public int AddMp { get { return _addMp; } set { _addMp = value; } } /// /// 附加属性:角色生命值恢复 ///