public void AddEffect(StatEffectData effectData) { if (!m_effectsDictionary.ContainsKey(effectData.EffectType)) { m_effectsDictionary.Add(effectData.EffectType, new List <StatEffectData>()); } m_effectsDictionary[effectData.EffectType].Add(effectData); if (m_statusEffectPanel != null) { m_statusEffectPanel.UpdatePanel(effectData, 1 /*TODO: Get the stacked value*/); } }
public override void Init(EffectData effectData) { base.Init(effectData); if (effectData is StatEffectData) { m_statEffectData = (StatEffectData)effectData; } else { Debug.LogError("An AOE Effect Trigger does not have a Stat Effect type"); } }
public void RemoveEffect(StatEffectData effectData) { if (!m_effectsDictionary.ContainsKey(effectData.EffectType)) { return; } for (var i = 0; i < m_effectsDictionary[effectData.EffectType].Count; i++) { if (m_effectsDictionary[effectData.EffectType][i] == effectData) { m_effectsDictionary[effectData.EffectType].RemoveAt(i); i--; } } if (m_effectsDictionary[effectData.EffectType].Count == 0) { m_effectsDictionary.Remove(effectData.EffectType); if (m_statusEffectPanel != null) { m_statusEffectPanel.UpdatePanel(effectData, 0 /*TODO: Get the stacked value*/); } } }
public void UpdatePanel(StatEffectData data, int amount) { if (m_statEffectDictionnary.ContainsKey(data.EffectType)) { m_statEffectDictionnary[data.EffectType].SetStackAmount(amount); if (m_statEffectDictionnary[data.EffectType].StackAmount <= 0) { m_statEffectDictionnary.Remove(data.EffectType); } } else { foreach (var effectUi in m_effectUis) { if (!effectUi.gameObject.activeSelf) { effectUi.Init(data.EffectSprite, amount); m_statEffectDictionnary.Add(data.EffectType, effectUi); break; } } } }
protected void SufferEffect(StatEffectData effectData, int amount) { }