public void UpdateActiveEffect() { activeEffectMod = new Effect(); activeEffectMod.SetAsModifier(); activeEffectMul = new Effect(); activeEffectMul.SetAsMultiplier(); for (int i = 0; i < allEffectList.Count; i++) { activeEffectMod.stun |= allEffectList[i].stun; if (!allEffectList[i].IsMultiplier()) { activeEffectMod.stats.hp += allEffectList[i].stats.hp; activeEffectMod.stats.sh += allEffectList[i].stats.sh; activeEffectMod.stats.hpRate += allEffectList[i].stats.hpRate * DamageTable.GetModifier(GetArmorType(), allEffectList[i].stats.damageType); activeEffectMod.stats.shRate += allEffectList[i].stats.shRate; activeEffectMod.stats.speed += allEffectList[i].stats.speed; activeEffectMod.stats.damageMin += allEffectList[i].stats.damageMin; activeEffectMod.stats.damageMax += allEffectList[i].stats.damageMax; activeEffectMod.stats.attackRange += allEffectList[i].stats.attackRange; activeEffectMod.stats.aoeRange += allEffectList[i].stats.aoeRange; activeEffectMod.stats.cooldown += allEffectList[i].stats.cooldown; activeEffectMod.stats.hit += allEffectList[i].stats.hit; activeEffectMod.stats.dodge += allEffectList[i].stats.dodge; activeEffectMod.stats.critChance += allEffectList[i].stats.critChance; activeEffectMod.stats.critMultiplier += allEffectList[i].stats.critMultiplier; activeEffectMod.stats.dmgReduc += allEffectList[i].stats.dmgReduc; activeEffectMod.stats.critReduc += allEffectList[i].stats.critReduc; activeEffectMod.stats.effectOnHitChance += allEffectList[i].stats.effectOnHitChance; for (int n = 0; n < activeEffectMod.stats.rscGain.Count; n++) { activeEffectMod.stats.rscGain[n] += allEffectList[i].stats.rscGain[n]; } } else { activeEffectMul.stats.hp *= allEffectList[i].stats.hp; activeEffectMul.stats.sh *= allEffectList[i].stats.sh; activeEffectMul.stats.hpRate *= allEffectList[i].stats.hpRate; activeEffectMul.stats.shRate *= allEffectList[i].stats.shRate; activeEffectMul.stats.speed *= allEffectList[i].stats.speed; activeEffectMul.stats.damageMin *= allEffectList[i].stats.damageMin; activeEffectMul.stats.damageMax *= allEffectList[i].stats.damageMax; activeEffectMul.stats.attackRange *= allEffectList[i].stats.attackRange; activeEffectMul.stats.aoeRange *= allEffectList[i].stats.aoeRange; activeEffectMul.stats.cooldown *= allEffectList[i].stats.cooldown; activeEffectMul.stats.hit *= allEffectList[i].stats.hit; activeEffectMul.stats.dodge *= allEffectList[i].stats.dodge; activeEffectMul.stats.critChance *= allEffectList[i].stats.critChance; activeEffectMul.stats.critMultiplier *= allEffectList[i].stats.critMultiplier; activeEffectMul.stats.dmgReduc *= allEffectList[i].stats.dmgReduc; activeEffectMul.stats.critReduc *= allEffectList[i].stats.critReduc; activeEffectMul.stats.effectOnHitChance *= allEffectList[i].stats.effectOnHitChance; for (int n = 0; n < activeEffectMul.stats.rscGain.Count; n++) { activeEffectMul.stats.rscGain[n] *= allEffectList[i].stats.rscGain[n]; } } } }
public void ClearAllEffect() //called when destroyed { activeEffectMod = new Effect(); activeEffectMod.SetAsModifier(); activeEffectMul = new Effect(); activeEffectMul.SetAsMultiplier(); allEffectList = new List <Effect>(); }