Skip to content

Roster engine ignores NewRecruit enum values added in #308 #333

Description

@amis92

#308 added a large batch of NewRecruit values to ModifierKind, ConditionKind, ConditionGroupKind, ConstraintKind and SelectionEntryKind. The roster engine's mapping switches were written before that and do not handle them.

  • src/WarHub.ArmouryModel.Concrete.Extensions/Symbols/ConditionGroupingBaseSymbol.cs:34
  • src/WarHub.ArmouryModel.Concrete.Extensions/Symbols/ModifierEffectSymbol.cs:17

Both end in _ => fallbacks that emit ERR_UnknownEnumerationValue, so there is no build break and no silent wrong answer — but NewRecruit datafiles using any of these values will fail to evaluate rather than being applied.

Unhandled values include the numeric operations (multiply, divide, modulo, power, exponent, triangular, ceil, floor, the cumulative-* family), the string operations (prepend, replace) and hide, plus the extended ConditionGroupKind set (count, min, max, greaterOrEqual, …).

This is feature work — each needs its evaluation semantics defined, not just a switch arm.

Related: ProtocolConverter in RosterEngine.Spec had the same class of problem and was fixed in #322 by deriving its wire-name maps from the [XmlEnum] attributes instead of hand-maintaining switches, so it now stays complete as the model grows. The same approach may not suit these two, since they map to behaviour rather than to names.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions