/* File: fn_addActionsPlayer.sqf Author: KP Liberation Dev Team - https://github.com/KillahPotatoes Date: 2020-04-13 Last Update: 2020-08-07 License: MIT License - http://www.opensource.org/licenses/MIT Description: Adds Liberation player actions to the given player. Parameter(s): _player - Player to add the actions to [OBJECT, defaults to player] Returns: Function reached the end [BOOL] */ params [ ["_player", player, [objNull]] ]; if !(isPlayer _player) exitWith {["No player given"] call BIS_fnc_error; false}; if (isNil "KP_liberation_resources_global") then {KP_liberation_resources_global = false;}; // Tutorial _player addAction [ ["", localize "STR_TUTO_ACTION", ""] joinString "", {howtoplay = 1;}, nil, -700, false, true, "", " alive _originalTarget && {_originalTarget getVariable ['KPLIB_isNearStart', false]} " ]; // HALO _player addAction [ ["", localize "STR_HALO_ACTION", ""] joinString "", "scripts\client\spawn\do_halo.sqf", nil, -710, false, true, "", " GRLIB_halo_param > 0 && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 || {_originalTarget getVariable ['KPLIB_isNearStart', false]} } && {build_confirmed isEqualTo 0} " ]; // Redeploy _player addAction [ ["", localize "STR_DEPLOY_ACTION", ""] joinString "", {GRLIB_force_redeploy = true;}, nil, -720, false, true, "", " isNull (objectParent _originalTarget) && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 || {_originalTarget getVariable ['KPLIB_isNearMobRespawn', false]} || {_originalTarget getVariable ['KPLIB_isNearStart', false]} } && {build_confirmed isEqualTo 0} " ]; // Squad management _player addAction [ ["", localize "STR_SQUAD_MANAGEMENT_ACTION", ""] joinString "", "scripts\client\ui\squad_management.sqf", nil, -730, false, true, "", " isNull (objectParent _originalTarget) && {alive _originalTarget} && {!((units group _originalTarget) isEqualTo [_originalTarget])} && {(leader group _originalTarget) isEqualTo _originalTarget} && {build_confirmed isEqualTo 0} " ]; // Arsenal _player addAction [ ["", localize "STR_ARSENAL_ACTION", ""] joinString "", "scripts\client\actions\open_arsenal.sqf", nil, -740, false, true, "", " isNull (objectParent _originalTarget) && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 || {_originalTarget getVariable ['KPLIB_isNearArsenal', false]} || {_originalTarget getVariable ['KPLIB_isNearMobRespawn', false]} || {_originalTarget getVariable ['KPLIB_isNearStart', false]} } && {build_confirmed isEqualTo 0} " ]; // Build _player addAction [ ["", localize "STR_BUILD_ACTION", ""] joinString "", "scripts\client\build\open_build_menu.sqf", nil, -750, false, true, "", " isNull (objectParent _originalTarget) && {alive _originalTarget} && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} && { _originalTarget getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission} } && {build_confirmed isEqualTo 0} " ]; // Secondary missions _player addAction [ ["", localize "STR_SECONDARY_OBJECTIVES", ""] joinString "", "scripts\client\ui\secondary_ui.sqf", nil, -760, false, true, "", " isNull (objectParent _originalTarget) && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_fobDist', 99999] < 20 || {_originalTarget getVariable ['KPLIB_isNearStart', false]} } && { _originalTarget getVariable ['KPLIB_hasDirectAccess', false] || {[5] call KPLIB_fnc_hasPermission} } && {build_confirmed isEqualTo 0} " ]; // Build sector storage _player addAction [ ["", localize "STR_SECSTORAGEBUILD_ACTION", ""] joinString "", "scripts\client\build\do_sector_build.sqf", [KP_liberation_small_storage_building], -770, false, true, "", " !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission} } && {(_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo []} && {build_confirmed isEqualTo 0} " ]; // Build supply facility _player addAction [ ["", localize "STR_SECSUPPLYBUILD_ACTION", ""] joinString "", "scripts\client\build\do_sector_build.sqf", ["supply"], -780, false, true, "", " !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission} } && {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])} && {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 4)} && {build_confirmed isEqualTo 0} " ]; // Build ammo facility _player addAction [ ["", localize "STR_SECAMMOBUILD_ACTION", ""] joinString "", "scripts\client\build\do_sector_build.sqf", ["ammo"], -790, false, true, "", " !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission} } && {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])} && {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 5)} && {build_confirmed isEqualTo 0} " ]; // Build fuel facility _player addAction [ ["", localize "STR_SECFUELBUILD_ACTION", ""] joinString "", "scripts\client\build\do_sector_build.sqf", ["fuel"], -800, false, true, "", " !(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo []) && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && { _originalTarget getVariable ['KPLIB_hasDirectAccess', false] || {[3] call KPLIB_fnc_hasPermission} } && {!((_originalTarget getVariable ['KPLIB_nearProd', []] select 3) isEqualTo [])} && {!((_originalTarget getVariable ['KPLIB_nearProd', []]) select 6)} && {build_confirmed isEqualTo 0} " ]; // Switch global/local resources _player addAction [ ["", localize "STR_RESOURCE_GLOBAL_ACTION", ""] joinString "", {KP_liberation_resources_global = !KP_liberation_resources_global}, nil, -810, false, true, "", " alive _originalTarget && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} && {build_confirmed isEqualTo 0} " ]; // Production _player addAction [ ["", localize "STR_PRODUCTION_ACTION", ""] joinString "", "scripts\client\commander\open_production.sqf", nil, -820, false, true, "", " _originalTarget getVariable ['KPLIB_hasDirectAccess', false] && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && {!(KP_liberation_production isEqualTo [])} && { _originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8) || {!(_originalTarget getVariable ['KPLIB_nearProd', []] isEqualTo [])} } && {build_confirmed isEqualTo 0} " ]; // Logistic _player addAction [ ["", localize "STR_LOGISTIC_ACTION", ""] joinString "", "scripts\client\commander\open_logistic.sqf", nil, -830, false, true, "", " KP_liberation_ailogistics && {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]} && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} && {!( GRLIB_all_fobs isEqualTo [] || KP_liberation_production isEqualTo [] )} && {build_confirmed isEqualTo 0} " ]; // Permissions _player addAction [ ["", localize "STR_COMMANDER_ACTION", ""] joinString "", "scripts\client\commander\open_permissions.sqf", nil, -840, false, true, "", " GRLIB_permissions_param && {_originalTarget getVariable ['KPLIB_hasDirectAccess', false]} && {alive _originalTarget} && {build_confirmed isEqualTo 0} " ]; // Reassign Zeus if (player == ([] call KPLIB_fnc_getCommander)) then { _player addAction [ ["", localize "STR_REASSIGN_ZEUS", ""] joinString "", {[] call KPLIB_fnc_requestZeus}, nil, -870, false, true, "", " alive _originalTarget && {isNull (_originalTarget getVariable ['KPLIB_ownedZeusModule', objNull])} && {build_confirmed isEqualTo 0} " ]; }; // Create FOB clearance _player addAction [ ["", localize "STR_CLEARANCE_ACTION", ""] joinString "", {[player getVariable ["KPLIB_fobPos", [0, 0, 0]], GRLIB_fob_range * 0.9, true] call KPLIB_fnc_createClearanceConfirm;}, nil, -850, false, true, "", " _originalTarget getVariable ['KPLIB_hasDirectAccess', false] && {isNull (objectParent _originalTarget)} && {alive _originalTarget} && {_originalTarget getVariable ['KPLIB_fobDist', 99999] < (GRLIB_fob_range * 0.8)} && {build_confirmed isEqualTo 0} " ]; true