public void RemoveModifier(StatModifer mod) { if (mods.Contains(mod)) { mods.Remove(mod); } }
public void RemoveStatModifer(StatModifer modifer, AttributeEnum attributeType) { switch (attributeType) { case AttributeEnum.MovementSpeed: this.MovementSpeed.RemoveModifer(modifer); break; case AttributeEnum.LightningResistance: this.LightningResistance.RemoveModifer(modifer); break; case AttributeEnum.FrostResistance: this.FrostResistance.RemoveModifer(modifer); break; case AttributeEnum.EarthResitance: this.EarthResitance.RemoveModifer(modifer); break; case AttributeEnum.FireResistance: this.FireResistance.RemoveModifer(modifer); break; case AttributeEnum.WaterResistance: this.WaterResistance.RemoveModifer(modifer); break; } UpdateStats(); }
public override IEnumerator DoEffect(LivingEntity entity) { float elapsedTime = 0; var stacks = entity.GetComponent <StatusEffectSystem>().GetStacksFromStackEffect(this); while (effectLifeTime >= elapsedTime) { if (stacks.Count >= maxStacks) { resultingAbillity.TriggerAbility(entity.gameObject, entity.centerPosition.transform.position); EndEffect(entity); yield break; } yield return(null); } if (stacks.Count > 0) { StatModifer modifer = stacks.Pop(); entity.RemoveStatModifer(modifer, attriEnum); float value = entity.GetStat(attriEnum).Value; entity.StartCoroutine(DoEffect(entity)); } else { EndEffect(entity); } yield return(null); }
public void ModifyStat(StatModifer mod) { mods.Add(mod); //Debug.Log(mod.modType + " is the mod type"); Debug.Log(statType + " now has a value of " + GetModifiedValue()); }
public bool RemoveModifer(StatModifer mod) { if (statModifers.Remove(mod)) { isDirty = true; return(true); } return(false); }
public void AddModifer(StatModifer mod) { if (mod.Order == 0) { mod.Order = (int)mod.Type; } statModifers.Add(mod); statModifers.Sort(CompareModifer); isDirty = true; }
public void ApplyTrackedMod(BaseStatType statType, StatModifer mod) { BaseStat targetStat = GetStat(statType); if (targetStat == null) { Debug.Log("Stat: " + statType + " not found"); return; } targetStat.ModifyStat(mod); }
private int CompareModifer(StatModifer a, StatModifer b) { if (a.Order < b.Order) { return(-1); } else if (a.Order > b.Order) { return(1); } return(0); }
public void AddToStack(StackableEffect stackEffect) { var modifer = stackEffect.modifer; var newModifer = new StatModifer(modifer.Value, modifer.Type, modifer.Order, modifer.Source); var stacks = stackableEffects[stackEffect]; if (stacks != null) { entity.AddStatModifer(newModifer, stackEffect.attriEnum); stacks.Push(newModifer); } }
public override IEnumerator DoEffect(LivingEntity entity) { var modifer = new StatModifer(Amount, type, this); entity.AddStatModifer(modifer, attributeEnum); if (!isPersistent) { yield return(new WaitForSeconds(effectLifeTime)); entity.RemoveStatModifer(modifer, attributeEnum); entity.GetComponent <StatusEffectSystem>().RegisterDebuffCooldown(new Cooldown(reapplyCooldown, name)); EndEffect(entity); yield return(null); } }
public void RemoveTrackedMod(Constants.BaseStatType statType, StatModifer mod) { BaseStat targetStat = GetStat(statType); targetStat.RemoveModifier(mod); }
public void ApplyTrackedMod(Constants.BaseStatType statType, StatModifer mod) { BaseStat targetStat = GetStat(statType); targetStat.ModifyStat(mod); }
public void ModifyStat(StatModifer mod) { mods.Add(mod); }