PowerMenuItem.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4. public class PowerMenuItem : MonoBehaviour {
  5. public Image icon;
  6. public Text text;
  7. public void SetData(Power power)
  8. {
  9. string info = power.GetName();
  10. info += AddDamage(power);
  11. text.text = info;
  12. icon.sprite = power.GetIcon();
  13. }
  14. private string AddDamage(Power power)
  15. {
  16. string info = "";
  17. if(!StringUtil.Empty(power.GetDescription()))
  18. info += "\n"+power.GetDescription();
  19. if(power.GetPowerType() != Power.PowerType.Summon)
  20. {
  21. info += "\n";
  22. info += Language.GetStr("Power", "target");
  23. info += Language.GetStr("Power", "target"+power.GetTargetRange().ToString());
  24. string side = TargetType.IsContainTarget(TargetType.ENEMY, power.targetType) ? Language.GetStr("Power", "opp") : Language.GetStr("Power", "ally");
  25. info = info.Replace("%SIDE%", side);
  26. }
  27. string paramInfo = "";
  28. if(power.GetValue() > 0)
  29. {
  30. if(power.GetValueType() == Power.ValueType.Constant)
  31. {
  32. paramInfo += Language.GetStr("Power", power.GetPowerEffect().ToString().ToLower()).Replace("%VALUE%", power.GetValue().ToString());
  33. }
  34. else if(power.GetValueType() == Power.ValueType.Percent)
  35. {
  36. paramInfo += Language.GetStr("Power", power.GetPowerEffect().ToString().ToLower()).Replace("%VALUE%", power.GetValue().ToString()+"%");
  37. }
  38. }
  39. if(power.GetDistance() > 0)
  40. {
  41. paramInfo += StringUtil.Empty(paramInfo) ? "" : " ";
  42. paramInfo += Language.GetStr("Power", "range").Replace("%RANGE%", power.GetDistance().ToString());
  43. }
  44. if(power.GetTargetLimit() > 0 && power.GetTargetLimit() != int.MaxValue)
  45. {
  46. paramInfo += StringUtil.Empty(paramInfo) ? "" : " ";
  47. paramInfo += Language.GetStr("Power", "targetLimit").Replace("%NUM%", power.GetTargetLimit().ToString());
  48. }
  49. else if(power.GetTargetRange() != Power.TargetRange.SingleObject && power.GetTargetRange() != Power.TargetRange.Self)
  50. {
  51. paramInfo += StringUtil.Empty(paramInfo) ? "" : " ";
  52. paramInfo += Language.GetStr("Power", "targetUnlimit");
  53. }
  54. if(!StringUtil.Empty(paramInfo))
  55. info += "\n"+paramInfo;
  56. info += "\n"+Language.GetStr("Power", "cd").Replace("%CD%", power.GetCDDuration().ToString());
  57. return info;
  58. }
  59. }