using UnityEngine; using UnityEngine.UI; using System.Collections; public class PowerMenuItem : MonoBehaviour { public Image icon; public Text text; public void SetData(Power power) { string info = power.GetName(); info += AddDamage(power); text.text = info; icon.sprite = power.GetIcon(); } private string AddDamage(Power power) { string info = ""; if(!StringUtil.Empty(power.GetDescription())) info += "\n"+power.GetDescription(); if(power.GetPowerType() != Power.PowerType.Summon) { info += "\n"; info += Language.GetStr("Power", "target"); info += Language.GetStr("Power", "target"+power.GetTargetRange().ToString()); string side = TargetType.IsContainTarget(TargetType.ENEMY, power.targetType) ? Language.GetStr("Power", "opp") : Language.GetStr("Power", "ally"); info = info.Replace("%SIDE%", side); } string paramInfo = ""; if(power.GetValue() > 0) { if(power.GetValueType() == Power.ValueType.Constant) { paramInfo += Language.GetStr("Power", power.GetPowerEffect().ToString().ToLower()).Replace("%VALUE%", power.GetValue().ToString()); } else if(power.GetValueType() == Power.ValueType.Percent) { paramInfo += Language.GetStr("Power", power.GetPowerEffect().ToString().ToLower()).Replace("%VALUE%", power.GetValue().ToString()+"%"); } } if(power.GetDistance() > 0) { paramInfo += StringUtil.Empty(paramInfo) ? "" : " "; paramInfo += Language.GetStr("Power", "range").Replace("%RANGE%", power.GetDistance().ToString()); } if(power.GetTargetLimit() > 0 && power.GetTargetLimit() != int.MaxValue) { paramInfo += StringUtil.Empty(paramInfo) ? "" : " "; paramInfo += Language.GetStr("Power", "targetLimit").Replace("%NUM%", power.GetTargetLimit().ToString()); } else if(power.GetTargetRange() != Power.TargetRange.SingleObject && power.GetTargetRange() != Power.TargetRange.Self) { paramInfo += StringUtil.Empty(paramInfo) ? "" : " "; paramInfo += Language.GetStr("Power", "targetUnlimit"); } if(!StringUtil.Empty(paramInfo)) info += "\n"+paramInfo; info += "\n"+Language.GetStr("Power", "cd").Replace("%CD%", power.GetCDDuration().ToString()); return info; } }