You can trigger it. Set the regeneration type None and create trigger like:
Untitled Trigger 001
Time - Every 0.03 seconds of game time
Custom script: set bj_wantDestroyGroup = true
Unit Group - Pick every unit in (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to (==) Footman)) and do (Actions)
Loop - Actions
Set Point = (Position of (Picked unit))
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Terrain pathing at Point of type Floatability is off) Equal to (==) False
Then - Actions
Unit - Set life of (Picked unit) to ((Life of (Picked unit)) + ((Max life of (Picked unit)) x (0.01 x 0.03)))
Else - Actions
Custom script: call RemoveLocation( udg_Point )
Leakless simple function. Quick and realistic. Floatability is the water. 0.01*0.03 is that every second units regains their 1% of their hit points and 0.03 is that fps thingy. It could be 0.01/33.33 and also I recommend that too because you will able to set unit hitpoint easier. Like 0.5% per sec is 0.01/66.66 etc. Also change footman.
Of course working with hundreds of units slows game at this frame rate so you should increase periodic sleep time. Creating other things like this are not harder than this one.
Only regenerate on blight and at night are hard coded in the game engine and only 1 can be choosen for a unit object. They affect base regeneration only (not regeneration from strength). You can not make custom regeneration types.
You can however design a trigger system to emulate custom regeneration types but I would avoid applying it to too many units otherwise performance could be a problem.
🔨 Hive's 3D Viewer has been updated! 🔨 It now supports MDX1100 which should fix a lot of issues when viewing HD models in our 3D Viewer. We encourage you to check it out for yourself and report any issues you find in the Site Discussion board.