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;
    }