ACE3
ACE3 copied to clipboard
Fire - Mini-Rewrite
When merged this pull request will:
- Contains #9991, #9992 and #9993. Wait until the above has been processed before merging this.
- If you want to burn something now, you call a targeted event
ace_fire_burn
(previously it was a global event). - Fixes a bug where invulnerable units can burn. Repro steps: Go into the arsenal mission and stand next to a vehicle cooking off (advanced vehicle damage must be enabled).
- Split fire effects and simulation.
- Simulation PFH runs where unit is local ~~on every machine, but code is only executed if unit is local.~~
- The above makes fire JIP compatible for both simulation and effects (at least, looking at the code suggests it wasn't compatible).
- There was a mention of fire propagation in the code, which did not work as I expected.
Changed it so that if a unit is close to a burning unit, said unit can start burning. For this to happen, the fire must be above a threshold (
#define BURN_THRESHOLD_INTENSE 3
, can be changed). - Dead units can now catch fire.
- Code cleanup.
Tested in SP and MP.
IMPORTANT
- If the contribution affects the documentation, please include your changes in this pull request so the documentation will appear on the website.
- Development Guidelines are read, understood and applied.
- Title of this PR uses our standard template
Component - Add|Fix|Improve|Change|Make|Remove {changes}
.
I was able to test this on a dedicated server:
- Medical damage did not work on dead units, as the API function in
medical
doesn't like dead units. Changed it so that it uses events directly instead. - JIP works.
- Units propagating fire between each other works.
- Fire sources work.
BURN_MAX_INTENSITY
is never enforced anywhere. Is it a limit that we want/should enforce?
Can you change the burn event for SOG in this PR too? https://github.com/acemod/ACE3/blob/60eabda47e16c660911a0a98327ace33359f0e75/addons/compat_sog/functions/fnc_woundsHandlerIncendiary.sqf#L37