summaryrefslogtreecommitdiffstats
path: root/Common/Functions/Common_UseStationaryDefense.sqf
blob: 6f90f094c1a514b9e6c5988b33d9854fd6c602de (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Private["_count","_defense","_defenses","_defenseTypes","_emptyDefenses","_range","_total","_totalDefenses","_unit","_units"];

_units = _this select 0;
_range = _this select 1;

_total = count _units;
if (_total < 1) exitWith {diag_log Format["[WFBE (ERROR)][frameno:%1 | ticktime:%2] Common_UseStationaryDefense.sqf: No units were specified",diag_frameno,diag_tickTime]};

_defenseTypes = Format["WFBE_%1DEFENSENAMES",side leader group (_units select 0)] Call GetNamespace;
_defenses = (leader group (_units select 0)) nearEntities[_defenseTypes,_range];

_emptyDefenses = [];

{if (_x EmptyPositions "gunner" > 0) then {_emptyDefenses = _emptyDefenses + [_x]}} forEach _defenses;

for [{_count = 0},{_count < _total},{_count = _count + 1}] do
{
	_unit = _units select _count;

	_totalDefenses = count _emptyDefenses;
	if (_totalDefenses < 1) exitWith {};

	//If not in a vehicle then check for available defense.
	if (alive _unit && _unit == vehicle _unit) then
	{
		_defense = _emptyDefenses select (_totalDefenses - 1);

		[_unit] allowGetIn true;
		_unit assignAsGunner _defense;
		_emptyDefenses = _emptyDefenses - [_defense];
	};
};