Enhance mission generator markers with alpha, brush, and color settings
This commit is contained in:
parent
afb3c665af
commit
256ce0d5af
@ -355,6 +355,9 @@ CaptureHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
_extZone setMarkerShape "ELLIPSE";
|
||||
_extZone setMarkerSize [160, 160];
|
||||
_extZone setMarkerText format ["HVT Extraction Zone %1", _grid];
|
||||
_extZone setMarkerAlpha 0.5;
|
||||
_extZone setMarkerBrush "DiagGrid";
|
||||
_extZone setMarkerColor "ColorOrange";
|
||||
|
||||
private _success = [
|
||||
"hvt",
|
||||
|
||||
@ -291,6 +291,9 @@ DefendMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
_defenseZone setMarkerShape "ELLIPSE";
|
||||
_defenseZone setMarkerSize [25, 25];
|
||||
_defenseZone setMarkerText format ["Defense Zone %1", _grid];
|
||||
_defenseZone setMarkerAlpha 0.5;
|
||||
_defenseZone setMarkerBrush "DiagGrid";
|
||||
_defenseZone setMarkerColor "ColorOrange";
|
||||
|
||||
private _success = [
|
||||
"defend",
|
||||
|
||||
@ -235,7 +235,9 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
private _position = _locationData getOrDefault ["position", [0, 0, 0]];
|
||||
private _grid = _locationData getOrDefault ["grid", mapGridPosition _position];
|
||||
private _taskID = format ["task_delivery_%1", round (diag_tickTime * 1000)];
|
||||
private _pickupMarker = format ["forge_delivery_pickup_%1", _taskID];
|
||||
private _deliveryZone = format ["forge_delivery_zone_%1", _taskID];
|
||||
private _dropoffMarker = format ["forge_delivery_dropoff_%1", _taskID];
|
||||
private _worldSize = worldSize;
|
||||
private _center = [_worldSize / 2, _worldSize / 2, 0];
|
||||
private _deliveryPos = [0, 0, 0];
|
||||
@ -265,10 +267,23 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
|
||||
if (_cargoObjects isEqualTo []) exitWith { "" };
|
||||
|
||||
createMarker [_pickupMarker, _position];
|
||||
_pickupMarker setMarkerType "hd_pickup";
|
||||
_pickupMarker setMarkerColor "ColorBLUFOR";
|
||||
_pickupMarker setMarkerText format ["Pickup %1", _grid];
|
||||
|
||||
createMarker [_deliveryZone, _deliveryPos];
|
||||
_deliveryZone setMarkerShape "ELLIPSE";
|
||||
_deliveryZone setMarkerSize [25, 25];
|
||||
_deliveryZone setMarkerText format ["Delivery Zone %1", _deliveryGrid];
|
||||
_deliveryZone setMarkerAlpha 0.5;
|
||||
_deliveryZone setMarkerBrush "DiagGrid";
|
||||
_deliveryZone setMarkerColor "ColorOrange";
|
||||
|
||||
createMarker [_dropoffMarker, _deliveryPos];
|
||||
_dropoffMarker setMarkerType "hd_end";
|
||||
_dropoffMarker setMarkerColor "ColorBLUFOR";
|
||||
_dropoffMarker setMarkerText format ["Drop-off %1", _deliveryGrid];
|
||||
|
||||
private _fundsReward = _rewardRange call BIS_fnc_randomNum;
|
||||
private _reputationReward = _reputationRange call BIS_fnc_randomNum;
|
||||
@ -305,7 +320,9 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
] call forge_server_task_fnc_startTask;
|
||||
|
||||
if !(_success) exitWith {
|
||||
deleteMarker _pickupMarker;
|
||||
deleteMarker _deliveryZone;
|
||||
deleteMarker _dropoffMarker;
|
||||
""
|
||||
};
|
||||
|
||||
@ -313,7 +330,7 @@ DeliveryMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
_activeMissionRegistry set [_taskID, createHashMapFromArray [
|
||||
["generatorType", _self call ["getGeneratorType", []]],
|
||||
["position", _position],
|
||||
["markers", [_deliveryZone]],
|
||||
["markers", [_pickupMarker, _deliveryZone, _dropoffMarker]],
|
||||
["startedAt", serverTime]
|
||||
]];
|
||||
_manager set ["activeMissionRegistry", _activeMissionRegistry];
|
||||
|
||||
@ -555,6 +555,9 @@ HostageMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
_extZone setMarkerShape "ELLIPSE";
|
||||
_extZone setMarkerSize [25, 25];
|
||||
_extZone setMarkerText format ["Hostage Extraction %1", _grid];
|
||||
_extZone setMarkerAlpha 0.5;
|
||||
_extZone setMarkerBrush "DiagGrid";
|
||||
_extZone setMarkerColor "ColorOrange";
|
||||
|
||||
private _hostageCount = count _hostageUnits;
|
||||
private _limitFail = 1;
|
||||
|
||||
@ -295,67 +295,6 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
private _reputationPenalty = _penaltyRange call BIS_fnc_randomNum;
|
||||
private _timeLimit = _timeRange call BIS_fnc_randomNum;
|
||||
|
||||
private _extZone = format ["forge_hvt_ext_zone_%1", _taskID];
|
||||
private _extPos = [0, 0, 0];
|
||||
private _extZoneMarkers = allMapMarkers select {
|
||||
(toLowerANSI (markerText _x) find "extzone") == 0
|
||||
|| { (toLowerANSI _x find "extzone") == 0 }
|
||||
|| { (toLowerANSI (markerText _x) find "extmarker") == 0 }
|
||||
|| { (toLowerANSI _x find "extmarker") == 0 }
|
||||
};
|
||||
|
||||
if (_extZoneMarkers isNotEqualTo []) then {
|
||||
_extPos = getMarkerPos (selectRandom _extZoneMarkers);
|
||||
_extPos set [2, 0];
|
||||
} else {
|
||||
private _blkListMarkers = allMapMarkers select { markerShape _x in ["RECTANGLE", "ELLIPSE"] };
|
||||
_blkListMarkers = _blkListMarkers select {
|
||||
(
|
||||
(toLowerANSI _x find "blklist") == 0
|
||||
|| { (toLowerANSI (markerText _x) find "blklist") == 0 }
|
||||
|| { (toLowerANSI _x find "blkmarker") == 0 }
|
||||
|| { (toLowerANSI (markerText _x) find "blkmarker") == 0 }
|
||||
)
|
||||
&& { getMarkerPos _x distance2D [0, 0] > 0 }
|
||||
};
|
||||
|
||||
if (_blkListMarkers isNotEqualTo []) then {
|
||||
private _selectedBlk = selectRandom _blkListMarkers;
|
||||
private _attempt = 0;
|
||||
while { _attempt < 60 && { _extPos isEqualTo [0, 0, 0] } } do {
|
||||
_attempt = _attempt + 1;
|
||||
private _candidate = [getMarkerPos _selectedBlk, 0, 2000, 3, 0, 0.3, 0] call BIS_fnc_findSafePos;
|
||||
if (_candidate isEqualTo [0, 0, 0]) then { continue; };
|
||||
if !(_candidate inArea _selectedBlk) then { continue; };
|
||||
_candidate set [2, 0];
|
||||
_extPos = _candidate;
|
||||
};
|
||||
};
|
||||
|
||||
if (_extPos isEqualTo [0, 0, 0]) then {
|
||||
private _attempt = 0;
|
||||
while { _attempt < 80 && { _extPos isEqualTo [0, 0, 0] } } do {
|
||||
_attempt = _attempt + 1;
|
||||
private _probe = [random worldSize, random worldSize, 0];
|
||||
if ((_probe distance2D _position) < 2000) then { continue; };
|
||||
private _safe = [_probe, 0, 500, 3, 0, 0.3, 0] call BIS_fnc_findSafePos;
|
||||
if (_safe isEqualTo [0, 0, 0]) then { continue; };
|
||||
_safe set [2, 0];
|
||||
_extPos = _safe;
|
||||
};
|
||||
};
|
||||
|
||||
if (_extPos isEqualTo [0, 0, 0]) then {
|
||||
_extPos = _position vectorAdd [2500, 0, 0];
|
||||
_extPos set [2, 0];
|
||||
};
|
||||
};
|
||||
|
||||
createMarker [_extZone, _extPos];
|
||||
_extZone setMarkerShape "ELLIPSE";
|
||||
_extZone setMarkerSize [160, 160];
|
||||
_extZone setMarkerText format ["HVT Extraction Zone %1", _grid];
|
||||
|
||||
private _success = [
|
||||
"hvt",
|
||||
_taskID,
|
||||
@ -366,7 +305,6 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
createHashMapFromArray [
|
||||
["limitFail", 0],
|
||||
["limitSuccess", 1],
|
||||
["extractionZone", _extZone],
|
||||
["captureHvt", false],
|
||||
["funds", _fundsReward],
|
||||
["ratingFail", _reputationPenalty],
|
||||
@ -385,16 +323,12 @@ KillHvtMissionGeneratorBaseClass = compileFinal createHashMapFromArray [
|
||||
"mission_manager"
|
||||
] call forge_server_task_fnc_startTask;
|
||||
|
||||
if !(_success) exitWith {
|
||||
deleteMarker _extZone;
|
||||
""
|
||||
};
|
||||
if !(_success) exitWith { "" };
|
||||
|
||||
private _activeMissionRegistry = _manager getOrDefault ["activeMissionRegistry", createHashMap];
|
||||
_activeMissionRegistry set [_taskID, createHashMapFromArray [
|
||||
["generatorType", _self call ["getGeneratorType", []]],
|
||||
["position", _position],
|
||||
["markers", [_extZone]],
|
||||
["startedAt", serverTime]
|
||||
]];
|
||||
_manager set ["activeMissionRegistry", _activeMissionRegistry];
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user