1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- using System.Collections.Generic;
- namespace GFGGame
- {
- public class ItemData
- {
- public int id;
- public int num;
- public bool isOnceBonus;
- 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);
- 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);
- return CalculateHelper.GetItemAttribute(valueBase, percentAdd, valueAdd);
- }
- }
- }
|