public void ChangeStats(UnitStatsProperty stat, int amount, bool set = false, bool force = false) { if (stat == UnitStatsProperty.DUR) { Debug.LogError("Status should not change Durability"); } if (m_Stats.ContainsKey(stat)) { if (set) { m_Stats[stat] = amount; } else { m_Stats[stat] += amount; } } else if (force) { m_Stats.Add(stat, amount); } else { Debug.LogError("Can't Change " + stat + ": Stats Doesn't Exist"); } }
public int GetStat(UnitStatsProperty stat) { int value; m_Stats.TryGetValue(stat, out value); //Debug.Log(m_Owner + " has Status: [" + stat + ":" + value + "]"); return(value); }
public string GetText(UnitStatsProperty property) { AllText allText = AllText.Instance; if (allText != null) { return(allText.GetText(property.ToString())); } else { return(property.ToString()); } }
public void Display(UnitStatsProperty statsProperty, int value) { if (StatsDisplayReference.Instance.boolProperties.Contains(statsProperty)) { m_Value.gameObject.SetActive(false); m_bool.Display(value > 0); } else { m_bool.gameObject.SetActive(false); m_Value.text = value.ToString(); } m_Label.text = AllTextEnumProxy.Instance.GetText(statsProperty); ChangeTootltip(statsProperty); }
private void ChangeTootltip(UnitStatsProperty statsProperty) { //Debug.Log("Change Tooltip"); if (tooltip == null) { return; } TextProperty tip = StatsDisplayReference.Instance.tooltipList[(int)statsProperty]; if (tip == null) { tooltip.enabled = false; } else { tooltip.enabled = true; tooltip.m_Tooltip = tip.ToString(); } }
public int GetStat(UnitStatsProperty stat) { if (m_Stats == null) { InitStats(); } int value; m_Stats.TryGetValue(stat, out value); //Debug.Log(m_Owner + " has [" + stat + ":" + value + "]"); if (m_Owner != null) { int deltaValue = m_Owner.m_Status.GetStat(stat); value += deltaValue; } return(value); }
/// <summary> /// Change unit's stats. /// </summary> /// <param name="stat">The field to change</param> /// <param name="amount">The value of change</param> /// <param name="set">True if replace original value with amount. False if original value += amount</param> /// <param name="force">True if add new field when needed</param> public void ChangeStats(UnitStatsProperty stat, int amount, bool set = false, bool force = false) { if (m_Owner == null) { return; } //Debug.Log(m_Owner + " " + stat + " : " + GetStat(stat)); UnitStatsChangeData eventData = new UnitStatsChangeData(); eventData.m_Unit = m_Owner; eventData.m_ChangedStats = stat; eventData.m_BeforeChange = GetStat(stat); PrivateChangeStats(stat, amount, set, force); eventData.m_AfterChange = GetStat(stat); m_StatsChangedEventForDisplay.Trigger(eventData); m_StatsChangedEventForUnits.Trigger(m_Owner, eventData); //Debug.Log(m_Owner + " " + stat + " Change to: " + GetStat(stat)); }
private void PrivateChangeStats(UnitStatsProperty stat, int amount, bool set, bool force) { TriggerSFX(amount); if (m_Stats.ContainsKey(stat)) { if (set) { m_Stats[stat] = amount; } else { m_Stats[stat] += amount; } } else if (force) { m_Stats.Add(stat, amount); } else { Debug.LogError("Can't Change " + stat + ": Stats Doesn't Exist"); } }