while what you said is awesome,
i do think we can draw the line at a couple things. (at least for now)
things like reflecting hits back, etc, are not known properties. I’d say we can limit the engine to known properties (the properties that matter during combat that is)
this includes:
attack
defense
bombard
aa
air
sea
double dice rolls (heavy bomber)
double dice rolls pick the best of them (heavy bomber larry harris rules)
first strike (sub)
anti-first-strike (destroyer)
two hit
gives support (artillery)
supportable (infantry-like)
can not hit air (like sub)
can not be hit by air (like sub)
so… take all those properties, and apply them to:
x number of units rolling at 1
x number of units rolling at 2
x number of units rolling at 3
x number of units rolling at 4
x number of units rolling at 5
x number of units rolling at 6
and there you have basically what the engine should look like (and what triplea is already capable of doing).
hard-coding that there is something called submarine, and that is rolls at 2 attack and 1 defense is dumb.
what if i get super subs? what if i get larry harris super-subs?
what if it is a two-hit land elephant that attacks at 4 and defends at 5?
there are the properties I would code, and i don’t believe there are any more within the axis and allies world that apply to combat