ItemData.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Diagnostics;
  3. using System.Reflection;
  4. namespace GFGGame
  5. {
  6. public class ItemData
  7. {
  8. public int id;
  9. public int num;
  10. public bool isOnceBonus;
  11. public int[] AddScoresArr;
  12. public int[] AddPercentArr;
  13. delegate object MemberGetDelegate(ItemCfg p);
  14. public void Reset()
  15. {
  16. id = 0;
  17. num = 0;
  18. isOnceBonus = false;
  19. AddScoresArr = null;
  20. AddPercentArr = null;
  21. }
  22. //public int MainScore
  23. //{
  24. // get
  25. // {
  26. // var cfg = ItemCfgArray.Instance.GetCfg(id);
  27. // return GetScore(cfg.mai)
  28. // }
  29. //}
  30. public int GetScore(int scoreType)
  31. {
  32. var cfg = ItemCfgArray.Instance.GetCfg(id);
  33. Type type = typeof(ItemCfg);
  34. PropertyInfo property = type.GetProperty("score" + scoreType);
  35. MemberGetDelegate memberGet = (MemberGetDelegate)System.Delegate.CreateDelegate(typeof(MemberGetDelegate), property.GetGetMethod());
  36. Stopwatch stopwatch = Stopwatch.StartNew();
  37. var scoreBase = (int)memberGet(cfg);
  38. int index = scoreType - 1;
  39. var scoreadd = AddScoresArr[index];
  40. var percentAdd = AddPercentArr[index];
  41. return CalculateUtil.GetItemScore(scoreBase, percentAdd, scoreadd);
  42. }
  43. }
  44. }