mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Rewrote unconscious effect
This commit is contained in:
parent
26627a451e
commit
57cacf63fa
@ -4,3 +4,10 @@ if (!hasInterface) exitWith {};
|
||||
|
||||
[] call FUNC(initEffects);
|
||||
[FUNC(handleEffects), 1, []] call CBA_fnc_addPerFrameHandler;
|
||||
|
||||
["ace_unconscious", {
|
||||
params ["_unit", "_unconscious"];
|
||||
if (_unit != ACE_player) exitWith {};
|
||||
|
||||
[_unconscious, 1] call FUNC(effectUnconscious);
|
||||
}] call CBA_fnc_addEventHandler;
|
||||
|
@ -4,45 +4,78 @@
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Enable <BOOL>
|
||||
* 1: Animated wake up <BOOL>
|
||||
* 1: Mode (0: instant, 1: animation, 2: fx handler) <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
params ["_enable", "_animated"];
|
||||
params ["_enable", "_mode"];
|
||||
|
||||
if (!_enable && !_animated) exitWith {
|
||||
GVAR(ppUnconsciousBlur) ppEffectEnable false;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectEnable false;
|
||||
};
|
||||
GVAR(ppUnconsciousBlur) ppEffectEnable true;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectEnable true;
|
||||
|
||||
if (_enable) then {
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [5];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 1], [0, 0, 0, 0.5], [0, 0, 0, 0], [0.2, 0.12, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit 0.2;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit 0.2;
|
||||
} else {
|
||||
// Animated wake up
|
||||
// Step 1: Widen eye "hole"
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [5];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0.83], [0, 0, 0, 0.5], [0, 0, 0, 0], [0.51, 0.17, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit 0.5;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit 0.5;
|
||||
|
||||
// Step 2: Open it
|
||||
[{
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [5];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0.83], [0, 0, 0, 0.5], [0, 0, 0, 0], [0.7, 0.78, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit 1;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit 2;
|
||||
}, [], 0.5] call CBA_fnc_waitAndExecute;
|
||||
|
||||
// Step 3: Fade away vignette
|
||||
[{
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0.83], [0, 0, 0, 0.0], [0, 0, 0, 0], [0.7, 0.78, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit 0.5;
|
||||
}, [], 1.5] call CBA_fnc_waitAndExecute;
|
||||
switch (_mode) do {
|
||||
// Instant (for Zeus or death)
|
||||
case 0: {
|
||||
GVAR(ppUnconsciousBlur) ppEffectEnable _enable;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectEnable _enable;
|
||||
};
|
||||
// Animated (triggered on unconscious event)
|
||||
case 1: {
|
||||
if (_enable) then {
|
||||
ACE_player setVariable [QGVAR(effectUnconsciousTimeout), CBA_missionTime + FX_UNCON_FADE_IN];
|
||||
GVAR(ppUnconsciousBlur) ppEffectEnable true;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectEnable true;
|
||||
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [0];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit 0;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit 0;
|
||||
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [5];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit FX_UNCON_FADE_IN;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit FX_UNCON_FADE_IN;
|
||||
} else {
|
||||
ACE_player setVariable [QGVAR(effectUnconsciousTimeout), CBA_missionTime + FX_UNCON_FADE_OUT];
|
||||
GVAR(ppUnconsciousBlur) ppEffectEnable true;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectEnable true;
|
||||
|
||||
// Step 1: Widen eye "hole"
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [5];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0.9], [0, 0, 0, 1], [0, 0, 0, 0], [0.51, 0.17, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit (FX_UNCON_FADE_OUT * 1/3);
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit (FX_UNCON_FADE_OUT * 1/3);
|
||||
|
||||
// Step 2: Open it
|
||||
[{
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [0];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0.8], [0, 0, 0, 1], [0, 0, 0, 0], [0.7, 0.78, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit (FX_UNCON_FADE_OUT * 2/3);
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit (FX_UNCON_FADE_OUT * 1/3);
|
||||
}, [], FX_UNCON_FADE_OUT * 1/3] call CBA_fnc_waitAndExecute;
|
||||
|
||||
// Step 3: Fade away vignette
|
||||
[{
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0], [0.7, 0.78, 0, 0, 0, 0, 1]];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit (FX_UNCON_FADE_OUT * 1/3);
|
||||
}, [], FX_UNCON_FADE_OUT * 2/3] call CBA_fnc_waitAndExecute;
|
||||
};
|
||||
};
|
||||
// Raised by effectsHandler (blocked if animation in progress)
|
||||
case 2: {
|
||||
private _animatedTimeOut = ACE_player getVariable [QGVAR(effectUnconsciousTimeout), 0];
|
||||
if (_animatedTimeOut > CBA_missionTime) exitWith {};
|
||||
|
||||
if (_enable) then {
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [5];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1]];
|
||||
} else {
|
||||
GVAR(ppUnconsciousBlur) ppEffectAdjust [0];
|
||||
GVAR(ppUnconsciousBlackout) ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1]];
|
||||
};
|
||||
GVAR(ppUnconsciousBlur) ppEffectCommit 0;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectCommit 0;
|
||||
|
||||
GVAR(ppUnconsciousBlur) ppEffectEnable _enable;
|
||||
GVAR(ppUnconsciousBlackout) ppEffectEnable _enable;
|
||||
};
|
||||
};
|
||||
|
@ -12,9 +12,9 @@
|
||||
|
||||
private _disableAll = (!isNull curatorCamera) || {!alive ACE_player};
|
||||
if (_disableAll) exitWith {
|
||||
[false, false] call FUNC(effectUnconscious);
|
||||
[false] call FUNC(effectPain);
|
||||
[false] call FUNC(effectBloodVolume);
|
||||
[false, 0] call FUNC(effectUnconscious);
|
||||
[false] call FUNC(effectPain);
|
||||
[false] call FUNC(effectBloodVolume);
|
||||
};
|
||||
|
||||
// - Current state info -------------------------------------------------------
|
||||
@ -26,7 +26,7 @@ private _heartRate = ACE_player getVariable [QEGVAR(medical,heartRate), 7
|
||||
private _pain = ACE_player getVariable [QEGVAR(medical,pain), 0];
|
||||
|
||||
// - Visual effects -----------------------------------------------------------
|
||||
[_unconscious, _unconscious] call FUNC(effectUnconscious);
|
||||
[_unconscious, 2] call FUNC(effectUnconscious);
|
||||
[
|
||||
true, linearConversion [BLOOD_VOLUME_CLASS_2_HEMORRHAGE, BLOOD_VOLUME_CLASS_4_HEMORRHAGE, _bloodVolume, 0, 1, true]
|
||||
] call FUNC(effectBloodVolume);
|
||||
|
@ -17,5 +17,8 @@
|
||||
|
||||
#include "\z\ace\addons\main\script_macros.hpp"
|
||||
#include "\z\ace\addons\medical\script_macros_medical.hpp"
|
||||
|
||||
#define FX_PAIN_FADE_IN 0.3
|
||||
#define FX_PAIN_FADE_OUT 0.7
|
||||
#define FX_UNCON_FADE_IN 2.0
|
||||
#define FX_UNCON_FADE_OUT 5.0
|
||||
|
Loading…
Reference in New Issue
Block a user