initial files
This commit is contained in:
56
kp_liberation.brf_sumava/functions/fn_spawnBuildingSquad.sqf
Normal file
56
kp_liberation.brf_sumava/functions/fn_spawnBuildingSquad.sqf
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
File: fn_spawnBuildingSquad.sqf
|
||||
Author: KP Liberation Dev Team - https://github.com/KillahPotatoes
|
||||
Date: 2019-12-03
|
||||
Last Update: 2020-04-05
|
||||
License: MIT License - http://www.opensource.org/licenses/MIT
|
||||
|
||||
Description:
|
||||
Spawns given amount of infantry in buildings of given sector at given building positions.
|
||||
|
||||
Parameter(s):
|
||||
_type - Type of infantry. Either "militia" or "army" [STRING, defaults to "army"]
|
||||
_amount - Amount of infantry units to spawn [NUMBER, defaults to 0]
|
||||
_positions - Array of building positions [ARRAY, defaults to []]
|
||||
_sector - Sector where to spawn the units [STRING, defaults to ""]
|
||||
|
||||
Returns:
|
||||
Spawned units [ARRAY]
|
||||
*/
|
||||
|
||||
params [
|
||||
["_type", "army", [""]],
|
||||
["_amount", 0, [0]],
|
||||
["_positions", [], [[]]],
|
||||
["_sector", "", [""]]
|
||||
];
|
||||
|
||||
if (_sector isEqualTo "") exitWith {["Empty string given"] call BIS_fnc_error; []};
|
||||
|
||||
// Get classnames array
|
||||
private _classnames = [[] call KPLIB_fnc_getSquadComp, militia_squad] select (_type == "militia");
|
||||
|
||||
// Adjust amount, if needed
|
||||
if (_amount > floor ((count _positions) * GRLIB_defended_buildingpos_part)) then {
|
||||
_amount = floor ((count _positions) * GRLIB_defended_buildingpos_part)
|
||||
};
|
||||
|
||||
// Spawn units
|
||||
private _grp = createGroup [GRLIB_side_enemy, true];
|
||||
private _pos = markerPos _sector;
|
||||
private _unit = objNull;
|
||||
private _units = [];
|
||||
for "_i" from 1 to _amount do {
|
||||
// Create new group, if current group has 10 units
|
||||
if (count (units _grp) >= 10) then {
|
||||
_grp = createGroup [GRLIB_side_enemy, true];
|
||||
};
|
||||
|
||||
_unit = [selectRandom _classnames, _pos, _grp] call KPLIB_fnc_createManagedUnit;
|
||||
_unit setDir (random 360);
|
||||
_unit setPos (_positions deleteAt (random (floor (count _positions) - 1)));
|
||||
[_unit, _sector] spawn building_defence_ai;
|
||||
_units pushBack _unit;
|
||||
};
|
||||
|
||||
_units
|
||||
Reference in New Issue
Block a user