123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- using UnityEngine;
- using UnityEngine.Events;
- using System.Collections;
- public class Equipment
- {
- public enum Priority
- {
- None = 0,
- Hp = 1,
- Damage = 2,
- Move = 3
- }
- private static System.Array priorityArr = System.Enum.GetValues (typeof(Priority));
- public static Priority GetPriorityByCode(int code)
- {
- return (Priority)priorityArr.GetValue (code);
- }
- public UnityEvent Updated = new UnityEvent ();
- private int id;
- private EquipData data;
- public Equipment(int id, EquipData data)
- {
- this.id = id;
- this.data = data;
- }
- public int GetId()
- {
- return id;
- }
- public EquipData GetData()
- {
- return this.data;
- }
- private int m_Level = 1;
- public int GetLevel()
- {
- return m_Level;
- }
- public void SetLevel(int level)
- {
- m_Level = Mathf.Max(1, level);
- }
- public int GetMaxLevel()
- {
- return UpgradeUtil.GetMaxLevel (GetData ().quality);
- }
- public string GetLevelLabel()
- {
- return Language.GetStr ("EquipPanel", "levelLabel")+" "+GetLevel();
- }
- private int m_Count;
- public int GetCount()
- {
- return m_Count;
- }
- public void SetCount(int value)
- {
- m_Count = value;
- }
- public int GetNextLevelCount()
- {
- return UpgradeUtil.GetUpgradeCount (GetLevel ());
- }
- public int GetUpgradePrice()
- {
- return UpgradeUtil.GetUpgradePrice (GetLevel (), GetData ().quality);
- }
- public void Upgrade(int level, int count)
- {
- SetLevel (level);
- SetCount (count);
- Updated.Invoke ();
- }
- public string GetDescription()
- {
- string desc = "";
- // desc += Language.GetStr("Equip", "currentLevel") + "\n\n";
- if (HasHp ())
- desc += "\t+" + GetHp (GetLevel()) + " " + Language.GetStr ("Equip", "hp") + "\n";
- if (HasDmg ())
- desc += "\t+" + GetDmg (GetLevel()) + " " + Language.GetStr ("Equip", "dmg") + "\n";
- int maxLevel = UpgradeUtil.GetMaxLevel (data.quality);
- if (GetLevel () < maxLevel) {
- desc += "\n"+Language.GetStr ("Equip", "nextLevel") + "\n";
- if (HasHp ())
- desc += "\t+" + GetHp (GetLevel () + 1) + " " + Language.GetStr ("Equip", "hp") + "\n";
- if (HasDmg ())
- desc += "\t+" + GetDmg (GetLevel () + 1) + " " + Language.GetStr ("Equip", "dmg") + "\n";
- } else {
- desc += "\n"+Language.GetStr ("Equip", "maxLevel");
- }
- return desc;
- }
- public bool HasHpProperty()
- {
- return HasHp ();
- }
- public float GetHpProperty()
- {
- float hp = data.hp + data.hp_up * (float)m_Level;
- float hpProperty = hp;
- return hpProperty;
- }
- public bool HasDamageProperty()
- {
- return HasDmg ();
- }
- public float GetDamageProperty()
- {
- float dmg = data.dmg + data.dmg_up * (float)m_Level;
- float dmgProperty = dmg;
- return dmgProperty;
- }
- public bool HasMoveProperty()
- {
- return HasMove ();
- }
- public float GetMoveProperty()
- {
- // float move = data.hp + data.hp_up * (float)m_Level;
- //
- // float hpProperty = hp;
- // return hpProperty;
- return 0;
- }
- public float GetHp(int level)
- {
- float value = data.hp + (data.hp_up * (float)(level - 1));
- return UpgradeUtil.GetHp (value);
- }
- public bool HasHp()
- {
- return data.hp > 0;
- }
- public float GetDmg(int level)
- {
- float value = data.dmg + (data.dmg_up * (float)(level - 1));
- return UpgradeUtil.GetDamage (value);
- }
- public bool HasDmg()
- {
- return data.dmg > 0;
- }
- public float GetMove(int level)
- {
- float value = data.mov + (data.mov_up * (float)(level - 1));
- return value;
- }
- public bool HasMove()
- {
- return data.mov > 0;
- }
- public void Dispose()
- {
- Updated.RemoveAllListeners ();
- }
- }
|