ACE3/addons/explosives/initKeybinds.inc.sqf

51 lines
2.0 KiB
Plaintext
Raw Permalink Normal View History

#include "\a3\ui_f\hpp\defineDIKCodes.inc"
["ACE3 Equipment", QGVAR(openCellphone), LLSTRING(cellphone_displayName), {
if (
!([ACE_player, "ACE_Cellphone"] call EFUNC(common,hasItem)) ||
!([ACE_player, objNull, ["isNotSwimming", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith))
) exitWith {};
closeDialog 0;
createDialog "Rsc_ACE_PhoneInterface";
true
}] call CBA_fnc_addKeybind; // Unbound
["ACE3 Equipment", QGVAR(detonateActiveClacker), LLSTRING(DetonateAllOnActive), {
// Prevent use of keybind while surrendering or captive
if !([ACE_player, objNull, ["isNotSwimming", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
private _detonator = GVAR(activeTrigger);
if (_detonator == "" || !(_detonator in ([ACE_player] call FUNC(getDetonators)))) exitWith {};
// When using a Dead Man's Switch, skip all other logic and just call fnc_onIncapacitated, since it already handles everything that is required to detonate all connected explosives
if (_detonator == "ACE_DeadManSwitch") exitWith {
[ACE_player] call FUNC(onIncapacitated);
};
private _range = getNumber (configFile >> "CfgWeapons" >> _detonator >> QGVAR(Range));
private _explosivesList = [];
{
if (!isNull (_x select 0)) then {
private _required = getArray (configFile >> "ACE_Triggers" >> _x select 4 >> "requires");
if (_detonator in _required) then {
_explosivesList pushBack _x;
};
};
} forEach ([ACE_player] call FUNC(getPlacedExplosives));
[ACE_player, _range, _explosivesList, _detonator] call FUNC(detonateExplosiveAll);
true
}] call CBA_fnc_addKeybind; // Unbound
["ACE3 Equipment", QGVAR(cycleActiveClacker), LLSTRING(CycleActiveTrigger), {
if !([ACE_player, objNull, ["isNotSwimming", "isNotInside", "isNotSitting"]] call EFUNC(common,canInteractWith)) exitWith {};
[ACE_player] call FUNC(cycleActiveTrigger);
true
}] call CBA_fnc_addKeybind; // Unbound