protected virtual void ApplyStatusEffects(IList <UnitTemplate.StatusEffectProperty> list, Entity target) { for (int i = 0; i < list.Count; i++) { Unit.Upgrades.GetElements(list[i].Upgrade, out var template, out var data); float rate; if (template == null || data == null) { rate = 0f; } else { rate = data.Value / 1f / ItemsUpgradesCore.Max; } var probability = list[i].Probability.Sample(rate); if (StatusEffect.CheckProbability(probability)) { StatusEffect.Afflict(list[i].Data, target, this.Unit); } else { } } }
void DoDamageCallback(Damage.Result result) { if (StatusEffect.CheckProbability(probabilty + Attack.Power.Percentage)) { StatusEffect.Afflict(data, result.Target, result.Source); } }
void TookDamageCallback(Damage.Result result) { if (result.Method == Damage.Method.Contact) { if (StatusEffect.CheckProbability(probabilty)) { StatusEffect.Afflict(data, result.Source, this.Entity); } } }
void HitCallback(Collider2D collider) { var entity = collider.gameObject.GetComponent <Entity>(); if (entity == null) { } else if (Owner is Base && entity is Base) //Very Crude, Don't judge me { } else { if (StatusEffect.CheckProbability(probabilty)) { StatusEffect.Afflict(data, entity, Owner); } } }