Extending crushing/omnicrushing to integer levels

Registered by codyfun123

Instead of adding a "crush omnicrush-immune vehicles" flag, the crushing/omnicrushing system could be extended infinitely by adding new flags which take integers rather than booleans.

These integers would represent different "tiers" of crushing. Two new flags, one representing a "crusher" while the other represents "crushable", would be set to specific integer levels to match specific tiers.
I will demonstrate using examples as follows (I'll be using CrusherLevel=(integer) and CrushableLevel=(integer) as temporary names, but better flag names would be welcome):

CrusherLevel=0 ;Equivalent to a vehicle with Crusher=no, meaning it can't crush infantry
CrushableLevel=0 ;Equivalent to an infantry with Crushable=yes, meaning can be crushed by any vehicles with Crusher=yes

CrusherLevel=1 ;Equivalent to Crusher=yes, vehicle can crush infantry but not vehicles.
CrushableLevel=1 ;Equivalent to Crushable=no, vehicles with Crusher=yes or CrusherLevel=1 cannot crush this infantry/unit

CrusherLevel=2 ;Same as OmniCrush=yes
CrushableLevel=2 ;Same as OmniCrushResistant=yes

CrusherLevel=3 ;Can crush Crushable and OmniCrushResistant units
CrushableLevel=3 ;Immune to Crush, OmniCrush, and CrusherLevel=3

CrusherLevel=4 ;Crushes all CrushableLevels up to 3
CrushableLevel=4 ;Immune to all CrusherLevels up to 4

... and so on.

-------------------------------
ADDITIONAL DETAILS:

https://blueprints.launchpad.net/ares/+spec/omnicrushimmune-deployed
This suggestion could be tied into the integer crushlevels system by adding a third flag that behaves similarly to CrushableLevel, except it only applies to infantry while deployed.

A possible downside of the crushlevels system as suggested is that it does not represent infantry with Crushable=yes but OmniCrushResistant=yes... as little sense as that makes.
A possible solution is to instead implement this as an array of integers, for instance CrusherLevel=1,2,3 meaning it can crush the equivalent 0, 1, and 2 crushable levels. Is that really necessary, though?

This system may be slightly confusing at first glance with CrusherLevels meaning crushing the level below. However, the alternative of having CrusherLevel crush up to the same CrushableLevel means that infantry start with a CrushableLevel of 1, which is confusing in a different way. Whether you go with the main suggestion or this version, modmakers will need to think a little when writing code with these tags.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
codyfun123
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.