Files
KPLibSumava/kp_liberation.brf_sumava/functions/fn_spawnGuerillaGroup.sqf

81 lines
2.9 KiB
Plaintext

/*
File: fn_spawnGuerillaGroup.sqf
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
Date: 2017-10-08
Last Update: 2020-04-05
License: MIT License - http://www.opensource.org/licenses/MIT
Description:
Spawns a group of guerilla units with random gear depending on guerilla strength.
Parameter(s):
_pos - Position where to spawn the group [POSITION, defaults to [0, 0, 0]]
_amount - Amount of units for the group. 0 for automatic calculation [NUMBER, defaults to 0]
Returns:
Spawned group [GROUP]
*/
params [
["_pos", [0, 0, 0], []],
["_amount", 0, []]
];
// Get tier and civilian reputation depending values
private _tier = [] call KPLIB_fnc_getResistanceTier;
private _cr_multi = [] call KPLIB_fnc_crGetMulti;
if (_amount == 0) then {_amount = (6 + (round (random _cr_multi)) + (round (random _tier)));};
private _weapons = missionNamespace getVariable ("KP_liberation_guerilla_weapons_" + str _tier);
private _uniforms = missionNamespace getVariable ("KP_liberation_guerilla_uniforms_" + str _tier);
private _vests = missionNamespace getVariable ("KP_liberation_guerilla_vests_" + str _tier);
private _headgear = missionNamespace getVariable ("KP_liberation_guerilla_headgear_" + str _tier);
// Spawn guerilla units
private _grp = createGroup [GRLIB_side_resistance, true];
private _unit = objNull;
private _weapon = [];
for "_i" from 1 to _amount do {
// Create unit
_unit = [selectRandom KP_liberation_guerilla_units, _pos, _grp, "PRIVATE", 5] call KPLIB_fnc_createManagedUnit;
// Clear inventory
removeAllWeapons _unit;
removeAllItems _unit;
removeAllAssignedItems _unit;
removeUniform _unit;
removeVest _unit;
removeBackpack _unit;
removeHeadgear _unit;
removeGoggles _unit;
// Add uniform etc.
_unit forceAddUniform (selectRandom _uniforms);
_unit addItemToUniform "FirstAidKit";
_unit addItemToUniform "MiniGrenade";
_unit addVest (selectRandom _vests);
_unit addHeadgear (selectRandom _headgear);
if (_tier > 1) then {_unit addGoggles (selectRandom KP_liberation_guerilla_facegear);};
// Add standard items
_unit linkItem "ItemMap";
_unit linkItem "ItemCompass";
_unit linkItem "ItemWatch";
_unit linkItem "ItemRadio";
// Add weapon
_weapon = selectRandom _weapons;
_unit addWeapon (_weapon select 0);
for "_i" from 1 to (_weapon select 2) do {_unit addItemToVest (_weapon select 1);};
_unit addPrimaryWeaponItem (_weapon select 3);
_unit addPrimaryWeaponItem (_weapon select 4);
// Add possible RPG launcher
if ((_tier > 1) && ((random 100) <= KP_liberation_resistance_at_chance)) then {
_unit addBackpack "rhs_rpg_2";
for "_i" from 1 to 3 do {_unit addItemToBackpack "rhs_rpg7_PG7V_mag";};
_unit addWeapon "gm_rpg7_wud";
};
};
_grp