public BattalionState GetWithModifiersApplied(IEnumerable <BattalionStateModifier> modifiers)
    {
        AttributesTable newAttributes = GetModifiedAttributes(attributes, modifiers);

        SelfModify(newAttributes);
        return(new BattalionState(Id,
                                  Position,
                                  newAttributes.AsReadonly(),
                                  EffectSources));
    }