64 lines
2.8 KiB
Plaintext
64 lines
2.8 KiB
Plaintext
waitUntil {!isNil "save_is_loaded"};
|
|
waitUntil {!isNil "KP_liberation_civ_rep"};
|
|
waitUntil {save_is_loaded};
|
|
|
|
if (KP_liberation_asymmetric_debug > 0) then {[format ["Loop spawned on: %1", debug_source], "ASYMMETRIC"] call KPLIB_fnc_log;};
|
|
|
|
KP_liberation_asymmetric_sectors = [];
|
|
|
|
while {GRLIB_endgame == 0} do {
|
|
private _sectors_to_remove = [];
|
|
|
|
{
|
|
if (!(_x in blufor_sectors) || (KP_liberation_civ_rep > -25)) then {
|
|
_sectors_to_remove pushBack _x;
|
|
};
|
|
} forEach KP_liberation_asymmetric_sectors;
|
|
|
|
KP_liberation_asymmetric_sectors = KP_liberation_asymmetric_sectors - _sectors_to_remove;
|
|
|
|
if (KP_liberation_civ_rep <= -25) then {
|
|
{
|
|
private _sector = _x;
|
|
private _blocked = false;
|
|
private _units_at_sector = [markerPos _sector, GRLIB_sector_size, GRLIB_side_friendly] call KPLIB_fnc_getUnitsCount;
|
|
|
|
{
|
|
if ((_x select 0) == _sector) exitWith {
|
|
if ((((_x select 1) + 1800) < time) && (_units_at_sector == 0)) then {
|
|
asymm_blocked_sectors = asymm_blocked_sectors - [_x];
|
|
if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 removed from blocked sectors", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;};
|
|
} else {
|
|
_blocked = true;
|
|
if (KP_liberation_asymmetric_debug > 0) then {[format ["Sector %1 still blocked for ambush", markerText (_x select 0)], "ASYMMETRIC"] call KPLIB_fnc_log;};
|
|
};
|
|
};
|
|
} forEach asymm_blocked_sectors;
|
|
|
|
if ((_units_at_sector > 0) && !(_sector in KP_liberation_asymmetric_sectors) && !_blocked) then {
|
|
KP_liberation_asymmetric_sectors pushBack _sector;
|
|
|
|
if ((random 100) <= KP_liberation_resistance_ambush_chance) then {
|
|
private _hc = [] call KPLIB_fnc_getLessLoadedHC;
|
|
private _ieds = round (([] call KPLIB_fnc_crGetMulti) * GRLIB_difficulty_modifier);
|
|
|
|
if (isNull _hc) then {
|
|
[_sector, _ieds] spawn manage_asymIED;
|
|
[_sector] spawn asym_sector_ambush;
|
|
} else {
|
|
[_sector, _ieds] remoteExec ["manage_asymIED", _hc];
|
|
[_sector] remoteExec ["asym_sector_ambush",_hc];
|
|
};
|
|
};
|
|
};
|
|
|
|
if (!(_units_at_sector > 0) && (_sector in KP_liberation_asymmetric_sectors)) then {
|
|
KP_liberation_asymmetric_sectors = KP_liberation_asymmetric_sectors - [_sector];
|
|
};
|
|
} forEach ((sectors_capture + sectors_bigtown) select {_x in blufor_sectors});
|
|
};
|
|
publicVariable "KP_liberation_asymmetric_sectors";
|
|
publicVariable "asymm_blocked_sectors";
|
|
sleep 10;
|
|
};
|