Port ACE's Status Effects to CBA#1809
Conversation
|
I left the pre-seeded reasons from ACE in the offchance ACE switches to using the CBA functions instead. I think all the cases should be covered now but will need some testing |
|
Tested the status effects that I could (stuff like blockSpeaking/blockRadio I couldn't really test in SP to verify). All seem to be working, though |
|
as far as I know it's just for ace_adv_throw I've seen code that should work in theory but doesn't so should it be "ace_blockthrow"? but doing that will cause backward compatibly issues |
|
I mean technically this runs separately from ace's so it'd be fine there. If we have a known way of block vanilla throwing I wouldn't be opposed to adding it. ACE sets the current throwable ammo to 0 iirc, which works but idk if there's something better |
|
Statuses for |
|
We'll need compats for ACE |
| // TODO: disableNVG/TIEquipment only work on vehicles, but we could make the status effects work for units as well | ||
| // One possible solution would be hooking into VisionModeChanged and using `player action ["NvGogglesOff", player]` |
There was a problem hiding this comment.
I've got too many projects currently, but if someone wants to try to implement this, that'd be nice
I mean you could just: if (isNil "CBA_fnc_addStatusEffectType") then {
[...] call ace_common_fnc_statusEffects_addType; // or whatever its called
} else {
[...] call CBA_fnc_addStatusEffectType;
}; |
| ["_sendJIP", false, [false]], | ||
| ["_eventName", "", [""]] | ||
| ]; | ||
|
|
There was a problem hiding this comment.
Instead of modifying ace to call new CBA, maybe it's best to just have CBA use ace if it exists
| if ("ace_common" call CBA_fnc_isModLoaded) exitWith ace_common_fnc_statusEffect_addType; |
There was a problem hiding this comment.
But then someone using CBA stuff would have it break with ace loaded, unless every status effect function called ace if loaded and that just seems meh
There was a problem hiding this comment.
we can't have two different status effect systems that aren't compatible
so we have to do something like this in either ace or cba
I think it's safest to just leave ace alone and have CBA use ace if it exists in all relevant funcs
There was a problem hiding this comment.
But why not just update the ace ones to call the CBA functions? The only public ones are get/set, and addType should be kept BWC even though its not public. And if someone is manually checking the internal variables / calling stuff like sendEffects, respawnEH, etc. then they're just asking for something to break at some point.
IMO ACE should conform to CBA, not the other way around because its the more widely used mod with more than 2x the users (yes not every one of those people are using CBA stuff directly). If CBA calls ACE if its loaded then you risk incompatibilities / different behavior if the ACE functions are updated and someone doesn't make the same changes to CBA as well.
When merged this pull request will:
isModLoaded,endRadioTransmission,toBitMask,binarizeNumberfunctions to CBA.runAtSettingsInitializedto CBA.