How Can We Help?
Ground.Type = None on HitDefs/Projectiles behave similarly to ReversalDefs because ReversalDefs use Ground.Type None
(ReversalDefs and HitDefs have strong correlation as they use the same addresses for some of their parameters)
Without a reversal.attr supplied to the Hitdef/Proj however the enemy is not reversed.
HitOverRide still works as expected as do ReversalDefs (See irreversable)
Non Interrupting Type
Hitting the enemy with these does not do damage, but does not interrupt them either, for making special non interrupting attacks
Using P1StateNo on Helper Hitdefs or P1StateNo on Projectiles (Root only) will allow you to detect if these connect
Note that TargetLifeAdd on a separate helper is required to actually apply ‘damage’ from these attacks, and you need a guard state prevention buffer as well.
Extended Devil’s Eye Killer (Bypass TIME = 0)
By using P2GetP1State = 1 while P2StateNo is -1
(Inferred default or explicitly set, allowing control over P2StateNo)
Hitting the enemy with these will cause them to be custom stated to the same state number they are in your states, if it doesn’t exist then they will go to an invalid state.
The key difference here is that their TIME is not reset (Bypassing Time = 0 stateno checks)
This also applies to using ReversalDefs with P2GetP1State = 0
(Time will not change.)
Note that doing so is perceived as MoveReversed and is less likely to work
*Ground.Type None with Enemy Helper vs Enemy Root?