public BattleActionResult.StatusEffectResult GetStatusEffectResult(BattleCharacter target, List<StatusEffect> allStatusEffects) { var result = new BattleActionResult.StatusEffectResult(); var landedEffects = new List<StatusEffect>(); var resistedCount = 0; var ineffectiveCount = 0; foreach (var statusEffect in allStatusEffects) { var resistance = target.GetStatusEffectResistance(statusEffect.StatusEffectType); if (!this.IsResisted(resistance)) { if (target.CanApplyStatusEffect(statusEffect)) { landedEffects.Add(statusEffect); } else { ineffectiveCount++; } } else { resistedCount++; } } result.landedEffects = landedEffects; result.resultType = this.GetStatusResultType(allStatusEffects.Count, resistedCount, ineffectiveCount); return result; }