| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | using System.Collections.Generic;namespace GFGGame{    public class ItemData    {        public int id;        public long num;        public long numRandomeMin;        public bool isOnceBonus;        public int itemType;        public int subType;        public int rarity;        public int[][] syntheticMateriarsArr;        public int[] param2Arr;        private Dictionary<int, int> AttributesDic = new Dictionary<int, int>();        public void Reset()        {            id = 0;            num = 0;            isOnceBonus = false;            AttributesDic.Clear();        }        public void SetAttributes(List<int> keys, List<int> values)        {            for (var i = 0; i < keys.Count; ++i)            {                SetAttribute(keys[i], values[i], false);            }        }        public void SetAttribute(int key, int value, bool dispatch = true)        {            AttributesDic[key] = value;            if (dispatch)            {                EventAgent.DispatchEvent(ConstMessage.ITEM_ATTRIBUTE_CHANGED, id);            }        }        public int MainScore        {            get            {                var cfg = ItemCfgArray.Instance.GetCfg(id);                return GetScore(cfg.mainScore > 0 ? cfg.mainScore : 1);            }        }        public int GetScore(int scoreType)        {            int valueBase = 0;            var cfg = ItemCfgArray.Instance.GetCfg(id);            if (cfg.itemType == ConstItemType.CARD)            {                CardData cardData = CardDataManager.GetCardDataById(id);                if (cardData == null || !cardData.scores.ContainsKey(scoreType)) return 0;                return CardDataManager.GetCardDataById(id).scores[scoreType];            }            switch (scoreType)            {                case (int)ConstItemAttributeType.FENG:                    valueBase = cfg.score1;                    break;                case (int)ConstItemAttributeType.HUA:                    valueBase = cfg.score2;                    break;                case (int)ConstItemAttributeType.XUE:                    valueBase = cfg.score3;                    break;                case (int)ConstItemAttributeType.YUE:                    valueBase = cfg.score4;                    break;            }            AttributesDic.TryGetValue(CalculateHelper.GetItemScoreKey(scoreType, (int)ConstItemAttributeActionType.ADD_VALUE), out var valueAdd);            AttributesDic.TryGetValue(CalculateHelper.GetItemScoreKey(scoreType, (int)ConstItemAttributeActionType.ADD_PERCENT), out var percentAdd);            float count = (float)CalculateHelper.GetItemAttribute(valueBase, percentAdd, valueAdd) * CollectPartDataManager.Instance.GetEquipScoresWithPartId(id);            return (int)count;        }    }}
 |