#include "..\script_component.hpp" /* * Author: IDSolutions * Initializes the defuse module * * Arguments: * 0: Logic - The logic object * 1: Units - The array of units * 2: Activated - Whether the module is activated * * Return Value: * None * * Example: * [logicObject, [unit1, unit2], true] call forge_server_task_fnc_defuseModule; * * Public: No */ params [["_logic", objNull, [objNull]], ["_units", [], [[]]], ["_activated", true, [true]]]; if !(_activated) exitWith {}; private _taskID = _logic getVariable ["TaskID", ""]; private _limitFail = _logic getVariable ["LimitFail", -1]; private _limitSuccess = _logic getVariable ["LimitSuccess", -1]; private _companyFunds = _logic getVariable ["CompanyFunds", 0]; private _ratingFail = _logic getVariable ["RatingFail", 0]; private _ratingSuccess = _logic getVariable ["RatingSuccess", 0]; private _endSuccess = _logic getVariable ["EndSuccess", false]; private _endFail = _logic getVariable ["EndFail", false]; private _timeLimit = _logic getVariable ["TimeLimit", 0]; ["INFO", format ["Defuse Module Parameters: TaskID: %1, LimitFail: %2, LimitSuccess: %3, Funds: %4, RatingFail: %5, RatingSuccess: %6, EndSuccess: %7, EndFail: %8, Time: %9", _taskID, _limitFail, _limitSuccess, _companyFunds, _ratingFail, _ratingSuccess, _endSuccess, _endFail, _timeLimit]] call EFUNC(common,log); private _syncedModules = synchronizedObjects _logic; ["INFO", format ["Defuse Module Synced Modules: %1", _syncedModules]] call EFUNC(common,log); private _iedModule = (_syncedModules select { typeOf _x == "FORGE_Module_Explosives" }) select 0; private _protectedModule = (_syncedModules select { typeOf _x == "FORGE_Module_Protected" }) select 0; private _explosiveEntities = synchronizedObjects _iedModule; ["INFO", format ["Defuse Module Explosive Entites: %1", _explosiveEntities]] call EFUNC(common,log); private _protectedEntities = synchronizedObjects _protectedModule; ["INFO", format ["Defuse Module Protected Entities: %1", _protectedEntities]] call EFUNC(common,log); { if (!isNull _x) then { [_x, _taskID, _timeLimit] spawn FUNC(makeIED); }; } forEach _explosiveEntities; { if (!isNull _x) then { [_x, _taskID] spawn FUNC(makeObject); }; } forEach _protectedEntities; private _params = [_taskID, _limitFail, _limitSuccess, _companyFunds, _ratingFail, _ratingSuccess, _endSuccess, _endFail]; ["defuse", _params, 0, ""] spawn FUNC(handler); deleteVehicle _logic;