forge/arma/server/addons/task/functions/fnc_makeCargo.sqf
Jacob Schmidt 45a4f7460a Integrate task contracts and CAD UI pipeline
- add the imported server task addon to the current framework with task ownership, task catalog, mission-manager attack generation, org-owned reward routing, participant notifications, and reputation syncing
- restructure org persistence so core org data, assets, fleet, and members are handled through the current Redis/extension model with matching Rust repository and service updates
- wire the client CAD addon into the framework, actor device action, shared web UI bridge pattern, and task listing/acceptance flow
- add a source-driven CAD web UI layout with ui.config.mjs and extend the shared web UI builder to support custom HTML template pages for multi-surface UIs
2026-03-28 02:20:34 -05:00

42 lines
1.4 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Author: IDSolutions
* Assigns cargo to a task for delivery
*
* Arguments:
* 0: Object to convert to delivery cargo <OBJECT>
* 1: Task ID to assign the cargo to <STRING>
*
* Return Value:
* None
*
* Example:
* [_cargoObject, "delivery_1"] call forge_server_task_fnc_makeCargo;
*
* Public: Yes
*/
params [["_cargo", objNull, [objNull]], ["_taskID", "", [""]]];
["INFO", format ["Make Cargo: %1", _this]] call EFUNC(common,log);
if (isNull _cargo) exitWith { ["ERROR", "Attempt to create cargo from null object"] call EFUNC(common,log); };
if (_taskID == "") exitWith { ["ERROR", "No task ID provided for cargo"] call EFUNC(common,log); };
SETPVAR(_cargo,assignedTask,_taskID);
GVAR(TaskStore) call ["registerTaskEntity", ["cargo", _taskID, _cargo]];
_cargo addEventHandler ["Dammaged", {
params ["_unit", "_hitSelection", "_damage", "_hitPartIndex", "_hitPoint", "_shooter", "_projectile"];
if (damage _unit >= 0.7) then {
private _taskID = GETVAR(_unit,assignedTask,"");
if (_taskID isEqualTo "") exitWith {};
if (_unit getVariable [QGVAR(cargoDamageWarned), false]) exitWith {};
_unit setVariable [QGVAR(cargoDamageWarned), true];
GVAR(TaskStore) call ["notifyParticipants", [_taskID, "warning", "Tasks", format ["Cargo for task %1 has been severely damaged.", _taskID]]];
};
}];