private["_aiunit","_xpos","_ypos","_unitpos","_aiGroup","_wppos","_wpradius","_wpnum","_numunits","_rndLOut","_ailoadout","_aiwep","_aiammo","_wp","_aispawnpos"];
_aiunit = objNull;
_aiGroup = createGroup resistance;
_aispawnpos =_this select 0;
_wpradius = _this select 1;
_wpnum = _this select 2;
_numunits = _this select 3;
_xpos = _aispawnpos select 0;
_ypos = _aispawnpos select 1;
diag_log format ["AIUNIT: Spawn initiated: Centre:%1 | Radius in m:%2 | Waypoint number:%3",_aispawnpos,_wpradius,_wpnum];
for [{ x=1 },{ x < _numunits+1 },{ x = x + 1; }] do {
_unitpos = [_xpos+x,_ypos+x,0];
_rndLOut=floor(random 3);
_ailoadout=
switch (_rndLOut) do
{
case 0: {["AK_47_M","30Rnd_762x39_AK47"]};
case 1: {["M4A1_AIM_SD_camo","30Rnd_556x45_StanagSD"]};
case 2: {["Remington870_lamp","8Rnd_B_Beneli_74Slug"]};
};
"BAF_Soldier_L_DDPM" createUnit [_unitpos, _aiGroup, "_aiunit=this;",0.6,"Private"];
diag_log format ["AIUNIT: Creating BAF_Soldier_L_DDPM by %1 at %2. Result:%3 | Loadout:%4 / Num:%5",player,_unitpos,_aiunit,_ailoadout,_rndLOut];
_aiunit enableAI "TARGET";
_aiunit enableAI "AUTOTARGET";
_aiunit enableAI "MOVE";
_aiunit enableAI "ANIM";
_aiunit enableAI "FSM";
_aiunit allowDammage true;
_aiunit setCombatMode "RED";
_aiunit setBehaviour "COMBAT";
//clear default weapons / ammo
removeAllWeapons _aiunit;
//add random selection
_aiwep = _ailoadout select 0;
_aiammo = _ailoadout select 1;
_aiunit addweapon _aiwep;
_aiunit addMagazine _aiammo;
_aiunit addMagazine _aiammo;
_aiunit addMagazine _aiammo;
_aiunit addMagazine _aiammo;
_aiunit addMagazine _aiammo;
_aiunit addMagazine _aiammo;
_aiunit addMagazine _aiammo;
_aiunit addMagazine _aiammo;
//set skills
_aiunit setSkill ["aimingAccuracy",.8];
_aiunit setSkill ["aimingShake",1];
_aiunit setSkill ["aimingSpeed",1];
_aiunit setSkill ["endurance",1];
_aiunit setSkill ["spotDistance",.8];
_aiunit setSkill ["spotTime",1];
_aiunit setSkill ["courage",1];
_aiunit setSkill ["reloadSpeed",1];
_aiunit setSkill ["commanding",1];
_aiunit setSkill ["general",1];
//sleep 0.5;
} ;
//generate waypoints
for [{ x=1 },{ x < _wpnum },{ x = x + 1; }] do {
_wppos = [_xpos+(x*20),_ypos+(x*20),_wpradius];
_wp = _aiGroup addWaypoint [_wppos, _wpradius];
_wp setWaypointType "MOVE";
};
_wp = _aiGroup addWaypoint [[_xpos,_ypos,0], _wpradius];
_wp setWaypointType "CYCLE";
diag_log format ["AIUNIT: Last Waypoint %1 at %2",_wp,_wppos];