public bool AddEffect(UnitEffect new_effect) { if (ActiveEffects == null) { ActiveEffects = new List <UnitEffect>(); } if (!ActiveEffects.Contains(new_effect)) { if (new_effect.ReplaceEffect) { UnitEffect duplicate_on_unit = GetEffect(new_effect.Unique_ID); if (duplicate_on_unit != null) { int duplicate_duration = duplicate_on_unit.GetTicksAlive(); new_effect.SetDurationAlive(duplicate_duration); new_effect.MaxDuration = duplicate_duration + new_effect.GetMaxDuration(); ; MDebug.Log("^effects Removing Duplicate " + duplicate_on_unit.ToString()); ActiveEffects.Remove(duplicate_on_unit); Destroy(duplicate_on_unit); } } ActiveEffects.Add(new_effect); MDebug.Log("^effects Added Effect to " + m_Unit.GetID() + " \n" + new_effect.ToString()); new_effect.OnEffectTick += OnEffectTick; //MDebug.Log(" EFFECT_ADDED " + new_effect.GetShortHandle()); new_effect.OnEffectExpired += OnEffectExpired; if (OnEffectAdded != null) { OnEffectAdded(new_effect); } return(true); } else { MDebug.Log("^effects Already has this effect"); } MDebug.Log("^effects COULD NOT ADD EFFECT " + new_effect.ToString()); return(false); }
public void SetEffect(UnitEffect effect) { Description.text = effect.GetToolTipText(); if (effect.EffectBonus > 1) { // Description.color = UI_AdrenalineRushController.ADR_Color; } if (effect.GetMaxDuration() > 0) { DurationTF.text = effect.GetDurationLeft().ToString(); DurationIcon.gameObject.SetActive(true); } else { //DurationIcon.gameObject.SetActive(false); DurationTF.text = "instant"; } }