Capture current mission, AI, map and administration development
Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
This commit is contained in:
@@ -0,0 +1,460 @@
|
||||
--- a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c
|
||||
@@ -8,12 +8,12 @@
|
||||
{
|
||||
static array<string> Keys()
|
||||
{
|
||||
- return {"roadblockCount", "civilianTrafficCount", "startMode", "radioDefenceSeconds", "aiIntelChancePercent", "intelRevealChancePercent", "startTimeMinutes", "timeMultiplier", "startDateCode", "weatherProfile", "viewDistanceMetres", "reportIntervalSeconds", "supportSquadLimit", "responseRadiusMetres", "convoyCount", "antiAirChancePercent", "antiPersonnelMineChancePercent", "heliTimerMinutes"};
|
||||
+ return {"hunterSpawnDistanceMetres", "roadblockCount", "civilianTrafficCount", "startMode", "radioDefenceSeconds", "aiIntelChancePercent", "intelRevealChancePercent", "startTimeMinutes", "timeMultiplier", "startDateCode", "weatherProfile", "viewDistanceMetres", "reportIntervalSeconds", "supportSquadLimit", "responseRadiusMetres", "convoyCount", "antiAirChancePercent", "antiPersonnelMineChancePercent", "heliTimerMinutes"};
|
||||
}
|
||||
static bool Available(string key, bool hq, bool intel)
|
||||
{
|
||||
if (key == "aiIntelChancePercent") return intel;
|
||||
- if (key == "heliTimerMinutes" || key == "antiAirChancePercent" || key == "antiPersonnelMineChancePercent" || key == "convoyCount" || key == "reportIntervalSeconds" || key == "supportSquadLimit" || key == "responseRadiusMetres") return hq;
|
||||
+ if (key == "hunterSpawnDistanceMetres" || key == "heliTimerMinutes" || key == "antiAirChancePercent" || key == "antiPersonnelMineChancePercent" || key == "convoyCount" || key == "reportIntervalSeconds" || key == "supportSquadLimit" || key == "responseRadiusMetres") return hq;
|
||||
return Keys().Contains(key);
|
||||
}
|
||||
// A short journal has no older off-screen lines, even if its slider is zero.
|
||||
@@ -44,7 +44,8 @@
|
||||
static string Command(string key, string value)
|
||||
{
|
||||
string prefix;
|
||||
- if (key == "roadblockCount") prefix = "mission roadblocks";
|
||||
+ if (key == "hunterSpawnDistanceMetres") prefix = "mission hunterdistance";
|
||||
+ else if (key == "roadblockCount") prefix = "mission roadblocks";
|
||||
else if (key == "civilianTrafficCount") prefix = "mission traffic";
|
||||
else if (key == "startMode") prefix = "mission start";
|
||||
else if (key == "radioDefenceSeconds") prefix = "mission radio";
|
||||
--- a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c
|
||||
@@ -4,6 +4,7 @@
|
||||
{
|
||||
static string CoreSetting(string section, string option)
|
||||
{
|
||||
+ if (section == "mission" && option == "hunterdistance") return "hunterSpawnDistanceMetres";
|
||||
if (section == "mission" && option == "roadblocks") return "roadblockCount";
|
||||
if (section == "mission" && option == "traffic") return "civilianTrafficCount";
|
||||
if (section == "mission" && option == "start") return "startMode";
|
||||
@@ -144,6 +145,7 @@
|
||||
}
|
||||
protected string SettingHelp(string key)
|
||||
{
|
||||
+ if (key == "hunterSpawnDistanceMetres") return "Set 800..3000 metres (default 1000). Applies next round to the opening UAZs and troop truck, on separate sides. Roads allow 250m variation; unsuitable terrain uses safe objective-road fallback.";
|
||||
if (key == "roadblockCount") return "Set 0..12 roadblocks (default 4; 0 disables). Applies next round. Each has four guards; unsuitable sites are skipped.";
|
||||
if (key == "civilianTrafficCount") return "Set 0..6 civilian cars (default 3). Zero disables new traffic. Unclaimed cars retire only far from all players and out of sight; player-entered cars are preserved.";
|
||||
if (key == "keepWeaponOnUnconscious") return "Set 1 to retain the held firearm during unconsciousness and equip it after recovery; 0 keeps normal dropping. Applies to the next knockout.";
|
||||
@@ -155,7 +157,7 @@
|
||||
}
|
||||
protected string RoadblockTiming(string key)
|
||||
{
|
||||
- if (key == "roadblockCount") return " for next round";
|
||||
+ if (key == "hunterSpawnDistanceMetres" || key == "roadblockCount") return " for next round";
|
||||
return "";
|
||||
}
|
||||
protected void SettingCommand(ERR_Settings settings, string key, array<string> parts, array<string> replies)
|
||||
--- a/addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c
|
||||
@@ -9,11 +9,12 @@
|
||||
|
||||
static array<string> Keys()
|
||||
{
|
||||
- return {"roadblockCount", "civilianTrafficCount", "startMode", "keepWeaponOnUnconscious", "reportIntervalSeconds", "supportSquadLimit", "responseRadiusMetres", "aiIntelChancePercent", "intelRevealChancePercent", "radioDefenceSeconds", "startTimeMinutes", "timeMultiplier", "startDateCode", "weatherProfile", "viewDistanceMetres", "antiAirChancePercent", "antiPersonnelMineChancePercent", "automaticEquipmentChancePercent", "automaticConvoyEnabled", "convoyCount", "heliTimerMinutes"};
|
||||
+ return {"hunterSpawnDistanceMetres", "roadblockCount", "civilianTrafficCount", "startMode", "keepWeaponOnUnconscious", "reportIntervalSeconds", "supportSquadLimit", "responseRadiusMetres", "aiIntelChancePercent", "intelRevealChancePercent", "radioDefenceSeconds", "startTimeMinutes", "timeMultiplier", "startDateCode", "weatherProfile", "viewDistanceMetres", "antiAirChancePercent", "antiPersonnelMineChancePercent", "automaticEquipmentChancePercent", "automaticConvoyEnabled", "convoyCount", "heliTimerMinutes"};
|
||||
}
|
||||
|
||||
static bool Valid(string key, int value)
|
||||
{
|
||||
+ if (key == "hunterSpawnDistanceMetres") return value >= 800 && value <= 3000;
|
||||
if (key == "roadblockCount") return value >= 0 && value <= 12;
|
||||
if (key == "civilianTrafficCount") return value >= 0 && value <= 6;
|
||||
if (key == "startMode") return value == 0 || value == 1;
|
||||
@@ -101,6 +102,7 @@
|
||||
|
||||
static int AddedDefault(string key)
|
||||
{
|
||||
+ if (key == "hunterSpawnDistanceMetres") return 1000;
|
||||
if (key == "roadblockCount") return 4;
|
||||
if (key == "civilianTrafficCount") return 3;
|
||||
if (key == "startMode") return 0;
|
||||
@@ -120,6 +122,7 @@
|
||||
void ERR_Settings(string path = PATH)
|
||||
{
|
||||
m_Path = path;
|
||||
+ m_Values.Set("hunterSpawnDistanceMetres", AddedDefault("hunterSpawnDistanceMetres"));
|
||||
m_Values.Set("roadblockCount", AddedDefault("roadblockCount"));
|
||||
m_Values.Set("civilianTrafficCount", AddedDefault("civilianTrafficCount"));
|
||||
m_Values.Set("startMode", AddedDefault("startMode"));
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c
|
||||
@@ -156,6 +156,7 @@
|
||||
m_Mode = mode;
|
||||
m_Equipment = new ERR_EnemyEquipment(mode);
|
||||
m_Hunters = new ERR_HunterService(mode, null);
|
||||
+ m_Hunters.ConfigureOpening(mode.Settings().Get("hunterSpawnDistanceMetres"));
|
||||
m_ObjectiveDefence = new ERR_ObjectiveDefence(mode, this);
|
||||
m_Towns = new ERR_TownGarrisons(mode);
|
||||
m_Roadblocks = new ERR_Roadblocks(mode);
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c
|
||||
@@ -1,6 +1,18 @@
|
||||
// Deployment geometry only. Pursuit destinations always come from delivered HQ reports.
|
||||
class ERR_HunterOpeningRules
|
||||
{
|
||||
+ static bool InBand(vector center, vector point, float radius)
|
||||
+ {
|
||||
+ if (!ERR_ForceRules.FiniteVector(center) || !ERR_ForceRules.FiniteVector(point) || !ERR_ForceRules.Finite(radius) || radius < 800 || radius > 3000) return false;
|
||||
+ float distance = vector.DistanceXZ(center, point);
|
||||
+ return distance >= Math.Max(600, radius - 250) && distance <= radius + 250;
|
||||
+ }
|
||||
+ static float ScanRadius(float radius, int ring)
|
||||
+ {
|
||||
+ if (ring == 1) return radius - 150;
|
||||
+ if (ring == 2) return radius + 150;
|
||||
+ return radius;
|
||||
+ }
|
||||
static bool Spread(vector center, vector first, vector second)
|
||||
{
|
||||
vector a = first - center; a[1] = 0;
|
||||
@@ -30,6 +42,7 @@
|
||||
class ERR_HunterOpeningPlan
|
||||
{
|
||||
vector Center;
|
||||
+ float Radius;
|
||||
ref array<vector> Positions = {};
|
||||
ref array<vector> Angles = {};
|
||||
protected ref array<vector> m_Candidates = {};
|
||||
@@ -37,7 +50,7 @@
|
||||
protected int m_Scanned;
|
||||
protected bool m_Done;
|
||||
protected float m_Heading;
|
||||
- void ERR_HunterOpeningPlan(vector center) { Center = center; m_Heading = Math.RandomFloat(0, 360); }
|
||||
+ void ERR_HunterOpeningPlan(vector center, float radius = 1000) { Center = center; Radius = radius; m_Heading = Math.RandomFloat(0, 360); }
|
||||
bool Ready() { return Positions.Count() == 3; }
|
||||
bool Done() { return m_Done; }
|
||||
static bool AwayFromPlayers(vector position, array<IEntity> players)
|
||||
@@ -55,12 +68,12 @@
|
||||
int candidate = m_Scanned++;
|
||||
int ring = candidate / 16;
|
||||
int sector = candidate % 16;
|
||||
- float radius = 800 + ring * 450;
|
||||
- float bearing = (m_Heading + sector * 22.5) * Math.DEG2RAD;
|
||||
+ float radius = ERR_HunterOpeningRules.ScanRadius(Radius, ring);
|
||||
+ float bearing = (m_Heading + sector * 22.5 + ring * 5.625) * Math.DEG2RAD;
|
||||
vector seed = Center + Vector(Math.Sin(bearing) * radius, 0, Math.Cos(bearing) * radius);
|
||||
vector position, angles;
|
||||
if (!ERR_SupplyConvoySystem.ApproachDirected(seed, position, angles, 300)) continue;
|
||||
- if (vector.DistanceXZ(Center, position) < 600 || !AwayFromPlayers(position, players)) continue;
|
||||
+ if (!ERR_HunterOpeningRules.InBand(Center, position, Radius) || !AwayFromPlayers(position, players)) continue;
|
||||
if (!ERR_SupplyConvoyRules.Separated(position, m_Candidates, 100) || !placement.Clear(position, angles[0])) continue;
|
||||
m_Candidates.Insert(position); m_Angles.Insert(angles);
|
||||
}
|
||||
@@ -69,12 +82,12 @@
|
||||
{
|
||||
foreach (int index : selected) { Positions.Insert(m_Candidates[index]); Angles.Insert(m_Angles[index]); }
|
||||
m_Done = true;
|
||||
- ERR_HQ.Event("HUNTER OPENING", "three clear road starts reserved at least 90 degrees apart; center=" + Center.ToString());
|
||||
+ ERR_HQ.Event("HUNTER OPENING", string.Format("two UAZs and one troop truck: target radius=%1m (+/-250m), three clear road starts at least 90 degrees apart; center=%2", Radius, Center));
|
||||
}
|
||||
else if (m_Scanned == 64)
|
||||
{
|
||||
m_Done = true;
|
||||
- ERR_HQ.Event("HUNTER OPENING FALLBACK", "no three safe, widely separated road starts in 64 candidates; deployment will use checked roads near friendly objectives");
|
||||
+ ERR_HQ.Event("HUNTER OPENING FALLBACK", string.Format("no three safe, widely separated road starts near %1m in 64 candidates; deployment will use checked roads near friendly objectives, possibly farther away", Radius));
|
||||
}
|
||||
}
|
||||
}
|
||||
--- a/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c
|
||||
+++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c
|
||||
@@ -19,6 +19,8 @@
|
||||
class ERR_HunterVehicle : ERR_ConvoyVehicle
|
||||
{
|
||||
bool TroopTransport;
|
||||
+ bool OpeningPatrol;
|
||||
+ vector PatrolHome;
|
||||
bool RadioRequested;
|
||||
ref ERR_EnemyEquipmentCallback RadioOperation;
|
||||
string Source;
|
||||
@@ -80,6 +82,12 @@
|
||||
protected float m_NextSpawn;
|
||||
protected float m_NextSummary;
|
||||
protected int m_Target = 3;
|
||||
+ protected int m_OpeningDistance = 1000;
|
||||
+ // Called once when the round's HQ is created; menu edits affect the next HQ.
|
||||
+ void ConfigureOpening(int distance)
|
||||
+ {
|
||||
+ if (!m_Opening && m_Hunters.IsEmpty() && ERR_Settings.Valid("hunterSpawnDistanceMetres", distance)) m_OpeningDistance = distance;
|
||||
+ }
|
||||
protected ref ERR_HunterOpeningPlan m_Opening;
|
||||
protected ref ERR_HunterCoordination m_Coordination;
|
||||
bool Contains(SCR_AIGroup group)
|
||||
@@ -238,6 +246,7 @@
|
||||
}
|
||||
ERR_HunterVehicle unit = new ERR_HunterVehicle();
|
||||
unit.TroopTransport = ERR_HunterFleetRules.Transport(m_Hunters.Count());
|
||||
+ unit.OpeningPatrol = m_Hunters.Count() < 3; unit.PatrolHome = position;
|
||||
unit.Source = "aggression-uaz-" + (m_Hunters.Count() + 1).ToString();
|
||||
if (unit.TroopTransport) unit.Source = "aggression-truck-" + (m_Hunters.Count() + 1).ToString();
|
||||
ResourceName vehiclePrefab = ERR_HunterFleetRules.VehiclePrefab(m_Hunters.Count());
|
||||
@@ -282,6 +291,19 @@
|
||||
return true;
|
||||
}
|
||||
protected bool Coordinated(vector position) { return m_Coordination && m_Coordination.Covered(position); }
|
||||
+ // Before a delivered sighting, opening crews patrol their own deployment
|
||||
+ // sector. This uses their fixed starting position, never a live player position.
|
||||
+ protected bool OpeningPatrolPoint(ERR_HunterVehicle unit, out vector destination, out vector angles)
|
||||
+ {
|
||||
+ for (int attempt = 0; attempt < 8; attempt++)
|
||||
+ {
|
||||
+ vector seed = unit.PatrolHome + Vector(Math.RandomFloat(-300, 300), 0, Math.RandomFloat(-300, 300));
|
||||
+ if (!ERR_SupplyConvoySystem.ApproachDirected(seed, destination, angles, 150)) continue;
|
||||
+ if (vector.DistanceXZ(destination, unit.PatrolHome) > 500 || vector.DistanceXZ(destination, unit.Entity.GetOrigin()) < 100) continue;
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false; // Hold/retry rather than sending an opening crew across the island.
|
||||
+ }
|
||||
protected void QueueDestination(ERR_HunterVehicle unit, ERR_HQ hq, float now)
|
||||
{
|
||||
array<ref ERR_HQReport> reports = {}; hq.HunterContacts(reports, now);
|
||||
@@ -320,11 +342,19 @@
|
||||
unit.SourceMessage = 0;
|
||||
if (unit.Waypoint && !unit.Waypoint.IsWithinCompletionRadius(unit.Group)) return;
|
||||
bool found;
|
||||
+ if (unit.OpeningPatrol && !unit.DeliveredContact)
|
||||
+ {
|
||||
+ found = OpeningPatrolPoint(unit, destination, angles);
|
||||
+ reason = "local patrol around opening sector";
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
for (int i = 0; i < m_Mode.Sites().Count(); i++)
|
||||
{
|
||||
ERR_SiteRuntime site = m_Mode.Sites().At(Math.RandomInt(0, m_Mode.Sites().Count()));
|
||||
if (!site || !site.Definition || !ERR_ObjectiveDefence.Objective(site.Definition.Kind) || (site.Group && site.Group.GetFaction() != m_Mode.EnemyFaction())) continue;
|
||||
if (ERR_SupplyConvoySystem.ApproachDirected(site.Definition.Position, destination, angles) && vector.DistanceXZ(destination, unit.Entity.GetOrigin()) > 200) { found = true; break; }
|
||||
+ }
|
||||
}
|
||||
if (!found) return;
|
||||
}
|
||||
@@ -371,7 +401,7 @@
|
||||
vector center = m_Mode.PrisonPosition(); vector sum; int count;
|
||||
foreach (IEntity player : openingPlayers) if (player) { sum += player.GetOrigin(); count++; }
|
||||
if (count > 0) center = sum / count;
|
||||
- m_Opening = new ERR_HunterOpeningPlan(center);
|
||||
+ m_Opening = new ERR_HunterOpeningPlan(center, m_OpeningDistance);
|
||||
}
|
||||
if (!m_Opening.Done())
|
||||
{
|
||||
--- a/addons/core/UI/layouts/ERR/AdminMenu.layout
|
||||
+++ b/addons/core/UI/layouts/ERR/AdminMenu.layout
|
||||
@@ -385,47 +385,52 @@
|
||||
}
|
||||
}
|
||||
TextWidgetClass {
|
||||
- Name "Label_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 384 OffsetTop 384 SizeX 368 OffsetRight -396 SizeY 28 OffsetBottom -412 }
|
||||
+ Name "Label_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 384 OffsetTop 384 SizeX 444 OffsetRight -472 SizeY 24 OffsetBottom -408 }
|
||||
Color 0.9 0.92 0.94 1 Text "Anti-personnel mine carriers (0-100%)" "Font Size" 20 "Min Font Size" 20 Wrap 1 FontProperties FontProperties {
|
||||
Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt"
|
||||
}
|
||||
}
|
||||
TextWidgetClass {
|
||||
- Name "Saved_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 416 OffsetTop 416 SizeX 936 OffsetRight -964 SizeY 24 OffsetBottom -440 }
|
||||
- Color 0.9 0.92 0.94 1 Text "Waiting for saved value" "Font Size" 16 "Min Font Size" 16 Wrap 1 FontProperties FontProperties {
|
||||
- Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt"
|
||||
- }
|
||||
- }
|
||||
-TextWidgetClass {
|
||||
- Name "Help_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 440 OffsetTop 440 SizeX 936 OffsetRight -964 SizeY 20 OffsetBottom -460 }
|
||||
- Color 0.72 0.81 0.87 1 Text "New soldiers only: up to two carried AP mines. Mines are not automatically planted." "Font Size" 16 "Min Font Size" 16 Wrap 1
|
||||
- FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" }
|
||||
-}
|
||||
-
|
||||
-ButtonWidgetClass : "{DA43C77A0D1E59F8}UI/layouts/ERR/AdminValue.layout" {
|
||||
- Name "antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 408 OffsetLeft 408 PositionY 384 OffsetTop 384 SizeX 240 OffsetRight -648 SizeY 42 OffsetBottom -426 }
|
||||
- components {
|
||||
- SCR_EditBoxComponent "{547290FFBD5B33E9}" {
|
||||
- m_sLabel ""
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" {
|
||||
- Name "Apply_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 660 OffsetLeft 660 PositionY 384 OffsetTop 384 SizeX 112 OffsetRight -772 SizeY 42 OffsetBottom -426 }
|
||||
- components {
|
||||
- SCR_ButtonTextComponent "{5548F0143AE99095}" {
|
||||
- m_sText "Apply"
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" {
|
||||
- Name "Random_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 784 OffsetLeft 784 PositionY 384 OffsetTop 384 SizeX 180 OffsetRight -964 SizeY 42 OffsetBottom -426 }
|
||||
- components {
|
||||
- SCR_ButtonTextComponent "{5548F0143AE99095}" {
|
||||
- m_sText "Random"
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
+ Name "Saved_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 452 OffsetTop 452 SizeX 444 OffsetRight -472 SizeY 20 OffsetBottom -472 }
|
||||
+ Color 0.9 0.92 0.94 1 Text "Waiting for saved value" "Font Size" 16 "Min Font Size" 16 Wrap 1 FontProperties FontProperties {
|
||||
+ Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt"
|
||||
+ }
|
||||
+ }
|
||||
+TextWidgetClass {
|
||||
+ Name "Help_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 472 OffsetTop 472 SizeX 444 OffsetRight -472 SizeY 14 OffsetBottom -486 }
|
||||
+ Color 0.72 0.81 0.87 1 Text "New soldiers only; carried mines are not planted automatically." "Font Size" 12 "Min Font Size" 12 Wrap 1
|
||||
+ FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" }
|
||||
+}
|
||||
+
|
||||
+ButtonWidgetClass : "{DA43C77A0D1E59F8}UI/layouts/ERR/AdminValue.layout" {
|
||||
+ Name "antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 412 OffsetTop 412 SizeX 130 OffsetRight -158 SizeY 38 OffsetBottom -450 }
|
||||
+ components {
|
||||
+ SCR_EditBoxComponent "{547290FFBD5B33E9}" {
|
||||
+ m_sLabel ""
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" {
|
||||
+ Name "Apply_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 170 OffsetLeft 170 PositionY 412 OffsetTop 412 SizeX 110 OffsetRight -280 SizeY 38 OffsetBottom -450 }
|
||||
+ components {
|
||||
+ SCR_ButtonTextComponent "{5548F0143AE99095}" {
|
||||
+ m_sText "Apply"
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" {
|
||||
+ Name "Random_antiPersonnelMineChancePercent" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 292 OffsetLeft 292 PositionY 412 OffsetTop 412 SizeX 180 OffsetRight -472 SizeY 38 OffsetBottom -450 }
|
||||
+ components {
|
||||
+ SCR_ButtonTextComponent "{5548F0143AE99095}" {
|
||||
+ m_sText "Random"
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+TextWidgetClass { Name "Label_hunterSpawnDistanceMetres" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 508 OffsetLeft 508 PositionY 384 OffsetTop 384 SizeX 456 OffsetRight -964 SizeY 24 OffsetBottom -408 } Color 0.9 0.92 0.94 1 Text "Opening patrol distance (800-3000 m)" "Font Size" 20 "Min Font Size" 20 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } }
|
||||
+ButtonWidgetClass : "{DA43C77A0D1E59F8}UI/layouts/ERR/AdminValue.layout" { Name "hunterSpawnDistanceMetres" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 508 OffsetLeft 508 PositionY 412 OffsetTop 412 SizeX 130 OffsetRight -638 SizeY 38 OffsetBottom -450 } components { SCR_EditBoxComponent "{547290FFBD5B33E9}" { m_sLabel "" } } }
|
||||
+ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Apply_hunterSpawnDistanceMetres" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 650 OffsetLeft 650 PositionY 412 OffsetTop 412 SizeX 110 OffsetRight -760 SizeY 38 OffsetBottom -450 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Apply" } } }
|
||||
+TextWidgetClass { Name "Saved_hunterSpawnDistanceMetres" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 508 OffsetLeft 508 PositionY 452 OffsetTop 452 SizeX 456 OffsetRight -964 SizeY 20 OffsetBottom -472 } Color 0.9 0.92 0.94 1 Text "Waiting for saved value" "Font Size" 16 "Min Font Size" 16 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } }
|
||||
+TextWidgetClass { Name "Help_hunterSpawnDistanceMetres" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 508 OffsetLeft 508 PositionY 472 OffsetTop 472 SizeX 456 OffsetRight -964 SizeY 14 OffsetBottom -486 } Color 0.9 0.92 0.94 1 Text "UAZs + truck; next round. Safe terrain fallback may be farther." "Font Size" 12 "Min Font Size" 12 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } }
|
||||
} }
|
||||
FrameWidgetClass { Name "WorldPage" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 160 OffsetTop 160 SizeX 1000 OffsetRight -1000 SizeY 486 OffsetBottom -646 } {
|
||||
TextWidgetClass {
|
||||
--- a/tests/test_admin_menu.py
|
||||
+++ b/tests/test_admin_menu.py
|
||||
@@ -10,7 +10,7 @@
|
||||
layout = BASE / 'addons/core/UI/layouts/ERR/AdminMenu.layout'
|
||||
keys = re.findall(r'"([A-Za-z]+)"', body(source, 'static array<string> Keys('))
|
||||
settings = re.findall(r'"([A-Za-z]+)"', body(BASE / 'addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c', 'static array<string> Keys('))
|
||||
-assert len(keys) == 18 and set(settings) - set(keys) == {"automaticConvoyEnabled", "keepWeaponOnUnconscious", "automaticEquipmentChancePercent"}
|
||||
+assert len(keys) == 19 and set(settings) - set(keys) == {"automaticConvoyEnabled", "keepWeaponOnUnconscious", "automaticEquipmentChancePercent"}
|
||||
assert set(keys) <= set(settings) # Every menu field must have a server setting.
|
||||
# Native layouts place child widget declarations inside an anonymous Children
|
||||
# block. A missing brace can preserve most widget names yet prevent menu load.
|
||||
@@ -48,7 +48,7 @@
|
||||
assert len(names) == len(set(names)), 'Menu widget names must be unique'
|
||||
for key in keys:
|
||||
assert all(name in names for name in (key, 'Apply_' + key, 'Saved_' + key, 'Help_' + key))
|
||||
- if key not in ('startMode','civilianTrafficCount','roadblockCount'): assert ('Default_' if key == 'viewDistanceMetres' else 'Random_') + key in names
|
||||
+ if key not in ('startMode','civilianTrafficCount','roadblockCount','hunterSpawnDistanceMetres'): assert ('Default_' if key == 'viewDistanceMetres' else 'Random_') + key in names
|
||||
else: assert 'Random_startMode' not in names
|
||||
for name in ('Close', 'SettingsPage', 'HQPage', 'JournalPage', 'JournalText', 'JournalContent', 'JournalScroll', 'PauseJournal', 'LatestJournal', 'Status'):
|
||||
assert name in names
|
||||
@@ -99,7 +99,7 @@
|
||||
{"intelRevealChancePercent","intel reveal"},{"startTimeMinutes","mission time"},
|
||||
{"timeMultiplier","mission speed"},{"startDateCode","mission date"},
|
||||
{"weatherProfile","mission weather"},{"viewDistanceMetres","mission viewdistance"},{"reportIntervalSeconds","hq interval"},
|
||||
- {"roadblockCount","mission roadblocks"},{"civilianTrafficCount","mission traffic"},{"heliTimerMinutes","hq heli timer"},{"supportSquadLimit","hq squads"},{"responseRadiusMetres","hq radius"},{"convoyCount","hq convoy count"},{"antiAirChancePercent","hq aa"},{"antiPersonnelMineChancePercent","hq mines"}};
|
||||
+ {"hunterSpawnDistanceMetres","mission hunterdistance"},{"roadblockCount","mission roadblocks"},{"civilianTrafficCount","mission traffic"},{"heliTimerMinutes","hq heli timer"},{"supportSquadLimit","hq squads"},{"responseRadiusMetres","hq radius"},{"convoyCount","hq convoy count"},{"antiAirChancePercent","hq aa"},{"antiPersonnelMineChancePercent","hq mines"}};
|
||||
for(auto pair:cases){
|
||||
assert(Fields::Command(pair.first," 42 ")==pair.second+" set 42");
|
||||
assert(Fields::Command(pair.first,"Random")==pair.second+" set Random");
|
||||
@@ -122,7 +122,7 @@
|
||||
for(string key:{"intelRevealChancePercent","radioDefenceSeconds","startTimeMinutes","timeMultiplier","startDateCode","weatherProfile"}) assert(Fields::Available(key,false,false));
|
||||
}
|
||||
''')
|
||||
-print('PASS: actual menu command routing covers all eighteen settings, rejects unsupported keys, gates companions, and matches unique authored widgets')
|
||||
+print('PASS: actual menu command routing covers all nineteen settings, rejects unsupported keys, gates companions, and matches unique authored widgets')
|
||||
|
||||
assert all(name in names for name in ('KeepWeaponOn', 'KeepWeaponOff', 'Saved_keepWeaponOnUnconscious'))
|
||||
click=body(source,'protected void OnButton(')
|
||||
--- a/tests/test_hunter_opening.py
|
||||
+++ b/tests/test_hunter_opening.py
|
||||
@@ -2,7 +2,8 @@
|
||||
import re
|
||||
from policy_harness import ROOT, body, run
|
||||
rules_path=ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c'
|
||||
-rules='\n'.join(body(rules_path,x) for x in ('static bool Spread(', 'static bool FreshOrder(', 'static bool Select('))
|
||||
+rules='\n'.join(body(rules_path,x) for x in ('static bool InBand(', 'static float ScanRadius(', 'static bool Spread(', 'static bool FreshOrder(', 'static bool Select('))
|
||||
+rules=rules.replace('ERR_ForceRules.FiniteVector', 'FiniteVector').replace('ERR_ForceRules.Finite', 'std::isfinite').replace('Math.Max', 'std::max<float>')
|
||||
rules=re.sub(r'\bvector (?=\w)', 'Vec ', rules).replace('vector.', 'Geometry::').replace('array<vector> candidates','Array<Vec> candidates').replace('array<int> selected','Array<int>& selected')
|
||||
p=ROOT/'addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c'
|
||||
queue=body(p,'protected void QueueDestination(').replace('protected ','').replace('foreach (','for (')
|
||||
@@ -28,6 +29,7 @@
|
||||
using string=std::string;
|
||||
template<class... T>string Format(string,T...){return "investigate";}void Event(string,string,int){}
|
||||
struct Vec{float x=0,y=0,z=0;float& operator[](int i){return i==0?x:i==1?y:z;}Vec operator-(Vec b){return {x-b.x,y-b.y,z-b.z};}string ToString(){return "position";}};
|
||||
+bool FiniteVector(Vec v){return std::isfinite(v.x)&&std::isfinite(v.y)&&std::isfinite(v.z);}
|
||||
namespace Geometry{float DistanceXZ(Vec a,Vec b){return std::hypot(a.x-b.x,a.z-b.z);}float Dot(Vec a,Vec b){return a.x*b.x+a.y*b.y+a.z*b.z;}}
|
||||
template<class T>struct Array:std::vector<T>{using std::vector<T>::vector;int Count(){return this->size();}void Insert(T v){this->push_back(v);}void Clear(){this->clear();}};
|
||||
struct ERR_HunterOpeningRules{
|
||||
@@ -37,7 +39,7 @@
|
||||
struct Entity{Vec GetOrigin(){return {};}};
|
||||
struct Waypoint{bool complete=false;bool IsWithinCompletionRadius(Group*){return complete;}};
|
||||
struct Route{};
|
||||
-struct ERR_HunterVehicle{float NextOrder=99999,LastContact=-1,NextContactOrder=0;Route* Downlink=nullptr;int SourceMessage=0;Vec Destination,ContactPosition,DeliveredContactPosition;bool DeliveredContact=false;string Source="hunter";struct Group* Group=nullptr;struct Entity* Entity=nullptr;struct Waypoint* Waypoint=nullptr;};
|
||||
+struct ERR_HunterVehicle{bool OpeningPatrol=false,TroopTransport=false;Vec PatrolHome;float NextOrder=99999,LastContact=-1,NextContactOrder=0;Route* Downlink=nullptr;int SourceMessage=0;Vec Destination,ContactPosition,DeliveredContactPosition;bool DeliveredContact=false;string Source="hunter";struct Group* Group=nullptr;struct Entity* Entity=nullptr;struct Waypoint* Waypoint=nullptr;};
|
||||
struct ERR_HQReport{int Target=1;};
|
||||
struct ERR_HQBelief{bool actionable=true;float ObservedAt=10,Confidence=1,Radius=50;int MessageId=7;Vec PredictedPosition={1000,0,2000};bool Actionable(){return actionable;}};
|
||||
struct Memory{ERR_HQBelief belief;ERR_HQBelief* Get(int){return &belief;}};
|
||||
@@ -48,12 +50,23 @@
|
||||
namespace Math{int RandomInt(int,int){return 0;}}
|
||||
namespace ERR_ObjectiveDefence{bool Objective(int){return true;}}
|
||||
namespace ERR_SupplyConvoySystem{bool available=true;int calls=0;bool ApproachDirected(Vec p,Vec& dst,Vec& angles,float radius=500){calls++;dst=p;return available;}}
|
||||
-struct Service{bool coordinated=false;bool Coordinated(Vec){return coordinated;}Mode mode;Mode* m_Mode=&mode;
|
||||
+struct Service{int localCalls=0;bool localRoad=true;bool OpeningPatrolPoint(ERR_HunterVehicle*,Vec& point,Vec&){localCalls++;point={800,0,0};return localRoad;}bool coordinated=false;bool Coordinated(Vec){return coordinated;}Mode mode;Mode* m_Mode=&mode;
|
||||
'''+queue+r'''
|
||||
};
|
||||
Vec polar(float degrees,float radius=1000){return {std::sin(degrees*3.14159265f/180)*radius,0,std::cos(degrees*3.14159265f/180)*radius};}
|
||||
int main(){
|
||||
Array<int> chosen;Vec center;
|
||||
+ assert(ERR_HunterOpeningRules::InBand(center,polar(0,750),1000));
|
||||
+ assert(ERR_HunterOpeningRules::InBand(center,polar(0,1250),1000));
|
||||
+ assert(!ERR_HunterOpeningRules::InBand(center,polar(0,749),1000));
|
||||
+ assert(!ERR_HunterOpeningRules::InBand(center,polar(0,1251),1000));
|
||||
+ assert(!ERR_HunterOpeningRules::InBand(center,polar(0,599),800));
|
||||
+ assert(ERR_HunterOpeningRules::InBand(center,polar(0,600),800));
|
||||
+ assert(!ERR_HunterOpeningRules::InBand(center,polar(0,1000),0));
|
||||
+ assert(ERR_HunterOpeningRules::ScanRadius(1000,0)==1000);
|
||||
+ assert(ERR_HunterOpeningRules::ScanRadius(1000,1)==850);
|
||||
+ assert(ERR_HunterOpeningRules::ScanRadius(1000,2)==1150);
|
||||
+ assert(ERR_HunterOpeningRules::ScanRadius(1000,3)==1000);
|
||||
assert(ERR_HunterOpeningRules::Select(center,{polar(0),polar(120),polar(240)},chosen)&&chosen.Count()==3);
|
||||
assert(!ERR_HunterOpeningRules::Select(center,{polar(0),polar(5),polar(10)},chosen)&&chosen.empty());
|
||||
assert(!ERR_HunterOpeningRules::Spread(center,polar(359),polar(1)));
|
||||
@@ -63,6 +76,15 @@
|
||||
assert(!ERR_HunterOpeningRules::FreshOrder(10,10,100,0,false));
|
||||
assert(!ERR_HunterOpeningRules::FreshOrder(11,10,100,101,false));
|
||||
assert(!ERR_HunterOpeningRules::FreshOrder(11,10,100,0,true));
|
||||
+ // Both opening vehicle types use a local patrol until a delivered contact.
|
||||
+ for(bool transport:{false,true}){
|
||||
+ Service opening;ERR_HQ command;ERR_HunterVehicle crew;crew.OpeningPatrol=true;crew.TroopTransport=transport;crew.NextOrder=0;
|
||||
+ opening.QueueDestination(&crew,&command,100);assert(opening.localCalls==1&&command.requests==1&&crew.SourceMessage==0&&crew.Destination.x==800);
|
||||
+ crew.Downlink=nullptr;crew.NextOrder=0;opening.localRoad=false;
|
||||
+ opening.QueueDestination(&crew,&command,200);assert(command.requests==1); // unsafe/absent local road holds, no distant fallback
|
||||
+ crew.NextOrder=0;command.contact=true;
|
||||
+ opening.QueueDestination(&crew,&command,300);assert(command.requests==2&&crew.SourceMessage==7&&crew.Destination.x==1000);
|
||||
+ }
|
||||
Service service;ERR_HQ hq;ERR_HunterVehicle unit;Route patrol;unit.Downlink=&patrol;
|
||||
service.QueueDestination(&unit,&hq,100);assert(unit.Downlink==&patrol&&hq.requests==0); // no magical position
|
||||
hq.contact=true;service.QueueDestination(&unit,&hq,100);
|
||||
--- a/tests/test_start_settings.py
|
||||
+++ b/tests/test_start_settings.py
|
||||
@@ -56,6 +56,12 @@
|
||||
disk["old"]={{"reportIntervalSeconds",10},{"supportSquadLimit",4},{"responseRadiusMetres",2000},{"aiIntelChancePercent",60},{"intelRevealChancePercent",15},{"radioDefenceSeconds",180}};
|
||||
ERR_Settings settings;assert(settings.Read("old",settings.m_Values)&&settings.Get("startMode")==0);
|
||||
for(float bad:{-1.f,-2.f,2.f,.5f}){disk["bad"]=disk["old"];disk["bad"]["startMode"]=bad;Values ignored;assert(!settings.Read("bad",ignored));}
|
||||
+ assert(settings.Get("hunterSpawnDistanceMetres")==1000);
|
||||
+ assert(!ERR_Settings::Randomizable("hunterSpawnDistanceMetres"));
|
||||
+ assert(!settings.Set("hunterSpawnDistanceMetres",799)&&!settings.Set("hunterSpawnDistanceMetres",3001));
|
||||
+ assert(settings.Set("hunterSpawnDistanceMetres",1800));
|
||||
+ ERR_Settings savedRadius;assert(savedRadius.Read("settings",savedRadius.m_Values)&&savedRadius.Get("hunterSpawnDistanceMetres")==1800);
|
||||
+ failSave=true;assert(!settings.Set("hunterSpawnDistanceMetres",1000)&&settings.Get("hunterSpawnDistanceMetres")==1800);failSave=false;
|
||||
Mode mode{&settings,0};Admin admin;Array<string> replies;
|
||||
assert(!admin.StartCommand(&mode,{"mission","radio","show"},replies));
|
||||
assert(admin.StartCommand(&mode,{"mission","start","set","crash"},replies));
|
||||
@@ -0,0 +1,789 @@
|
||||
PASS: traffic distance/grace, all-observer veto, player claims, foreign custody, bounded spawn cadence, failure/stall retention and shutdown preserve nearby/claimed entities
|
||||
PASS: actual observer collection includes spectator targets and controlled bodies; missing views/controllers and open editor cameras veto spawn/cleanup
|
||||
PASS: civilian traffic defaults to three; menu command resolves to persisted 0..6 setting with zero disabling new cars
|
||||
PASS: bounded exit-road selection can turn along a coastline when the opposite road is unavailable; no-route case is withheld
|
||||
PASS: managed traffic pins both native garbage entries; release/retirement removes only those pins, including partial creation
|
||||
PASS: exhausted/blocked terrain opening falls back to checked objective roads; bounds, player clearance, separation, force cap and retry delay retained
|
||||
PASS: separated rear vehicle approaches, opposite infantry sectors, radio-gated ownership, failed-order preservation, visual cover or bounded supported reconnaissance, bounded dismount/search/regroup and loss cleanup
|
||||
PASS: production dismount/boarding allocation, all crew allowances, waypoint ownership, one-time vehicle detach/restore and capture/teardown guards
|
||||
PASS: covering support requires the original conscious turret gunner, valid mounted driver, live crew and delivered assignment
|
||||
PASS: only original fit loaded healthy uncaptured gunners stay mounted; driver can leave; infantry readiness excludes the retained gunner but regroup requires all survivors
|
||||
PASS: actual HQ allocator selects reachable reports, distinct cover/flanks, simultaneous fronts, bounded reservations and failed-radio/placement rollback
|
||||
PASS: shared own-force attack spacing, own-group refresh, exact release, expiry/deletion, finite capacity and fresh confirmed sighting-only flank permission
|
||||
PASS: actual convoy foot transport detachment is idempotent; regroup restores only its live friendly uncaptured original truck
|
||||
PASS: opposing native flank orders are transactional; arrived teams sweep twice, travelling/boarding teams retain orders, failed redirects retry and replayed contacts are ignored
|
||||
PASS: expired-report approach, arrival-only search, completion, newer/older/replayed reports, visual priority, interrupted search and bounded travel
|
||||
PASS: nearest reported idle team, blocked teams, guards, active/pending orders, combat, radio routes, stale status and distance limit
|
||||
PASS: six editor listeners transferred idempotently, unrelated handlers retained, authority guard and lifecycle ordering
|
||||
PASS: takeover reconnect creates only missing managers, restores native roles, never grants non-admin access, skips stale/disconnected/client states
|
||||
PASS: Game Master button becomes enabled on native permission arrival and disabled on revocation; no permission bypass
|
||||
PASS: shared config transaction rejects client writes, preserves first-save/prior/fallback state across open, write, backup, partial-copy, readback and mismatch failures
|
||||
PASS: actual Save/Commit preserves semantically valid backup across unrelated menu edits and repairs; unknown fields/default sections retained; actual terrain parser; other parsers, catalog and disk doubled
|
||||
.....TTS request rejected: authentication failed (403)
|
||||
TTS request completed (200)
|
||||
...TTS request completed (200)
|
||||
TTS request completed (200)
|
||||
..
|
||||
----------------------------------------------------------------------
|
||||
Ran 10 tests in 0.514s
|
||||
|
||||
OK
|
||||
PASS: actual welcome tick waits for URL/readiness/server permit, preserves local once-only state across worlds and refuses stopped callbacks
|
||||
PASS: account greeting survives client/controller/round changes; owner validation, delayed readiness, idempotent retry, stale replies and bounded ledger
|
||||
PASS: original body/equipment retained past old timeout; expiry, death, canonical account/body, occupied controller, failed handoff and no replacement life
|
||||
PASS: actual view buffer validates samples, follows position/roll/FOV, rejects stale/foreign/reordered data, interpolates without drift and expires gaps
|
||||
PASS: actual relay rejects noncanonical sources, live/foreign/stale viewers, invalid/replayed/fast packets; bounds leases and owner-only target delivery
|
||||
PASS: native head/helmet fade is local, target-scoped, restored on exit/switch and does not overwrite a later camera owner
|
||||
PASS: production TTS settings/test/enable/failure/disable/timeout flows preserve fallback, secrets, authorization, saved state and late-callback cancellation
|
||||
PASS: TTS admin authorization, limits, case preservation and menu control contract
|
||||
PASS: 37 prefabs have unique saved root entity IDs
|
||||
PASS: actual objective overlay lifecycle preserves separate ownership, late readiness/reopen, data refresh, pan/zoom/culling, supported sibling/shared-frame parents, coordinate offsets, native task-clear isolation and terminal cleanup; native rendering remains unverified
|
||||
PASS: actual map element initializes each widget, retries missing widgets, updates position and changes only stale text/icon data; no native image-load claim
|
||||
PASS: actual native fixture root/config ownership and idempotent cleanup preserve foreign map, selector excludes ordinary route, fixed budgets/screenshots/UGC boundaries retained; native operations not executed
|
||||
PASS: actual full Inspect rejects canvas parenting, wrong active container/canvas, omitted origin offset, wrong rendered box and stale coordinates; differing origins and DPI accepted
|
||||
PASS: actual long-warning phases retain visible label through1500ms checkpoint then restore radio before close; synthetic marker separated from unmoved player
|
||||
PASS: actual Center places marker100screenpx left of pan center at both fixture zooms without altering disclosed coordinates
|
||||
PASS: missing, child-only, malformed, zero and duplicate prefab root IDs rejected
|
||||
PASS: delayed scene/inventory arrival, deferred preload, identity checks, stale replies, timeout and observer cleanup
|
||||
PASS: actual inventory manifest, delayed/missing/wrong-owner item links, finite cap, consumed-stock refresh and preload ordering
|
||||
PASS: spawn scene remains held through final acknowledgement and nearby use; leaving, reassignment, disconnect and teardown release it
|
||||
PASS: production prison AI hold/release, repeat activation, authority/faction/player exclusion, dead actor and stop cleanup
|
||||
PASS: actual protected/capped damage plus exact-actor terminal fixture bypass through delayed native damage, fail-closed ownership and untouched ordinary actor; no native claim
|
||||
PASS: actual full planner selection/commit body, 360 equivalence scenarios, orders/reservations/cooldowns identical; one128-unit scan vs >10000 repeated unit visits; no FPS claim
|
||||
PASS: actual observer monitor/recovery/cleanup rejects retained old controller, preserves new camera/editor/hints/timer, restarts once and retains normal recovery; native effects modeled from SDK, no runtime claim
|
||||
PASS: former chat controller releases only its own callbacks and preserves replacement menu; current-owner stop/scope and repeated teardown remain intact
|
||||
PASS: wrong observer fixture selector rejected before runtime/profile setup; no engine launched
|
||||
PASS: actual depot mixed-roster worker/item selection, ownership/refusal and radio/planning/two-leg state transitions, fixed deadline, late proof quarantine, finite import and no adoption after Stop
|
||||
PASS: actual depot HQ lifecycle, existing planner priority, server/mode/owner gates, idempotent polling and owner replacement
|
||||
PASS: actual HQ mine/magazine claim separation, real demand methods, exact token cleanup and original authority gates; native availability doubled
|
||||
PASS: actual full magazine/inert-PMN4 depot leaf, exact custody, isolated callbacks, finite reservation, false/unknown and Stop quarantine, once-only delivery and caps; native movement unqualified
|
||||
PASS: actual mine/magazine provenance and separated finite mine imports; actual authored identity capture, READY-only detached provenance, same shared stock admission, completed exact two-leg proof, lifetime caps and Stop no late adoption
|
||||
PASS: 299 original script entries tracked across 18 unfinished responsibilities
|
||||
PASS: 1 isolated addons, acyclic dependencies, 59 unique resources, exact vanilla/authorized external references
|
||||
PASS: road width/bridge/length checks, prison and post spacing, setting bounds/default, finite startup and owned HQ admission
|
||||
PASS: actual crash geometry, detached definition setup, frozen server choice and guarded phase policy; integration/source ordering checked
|
||||
PASS: actual GameMode readiness admission and common full-footprint survey require crash authorization and both surveyed areas
|
||||
PASS: actual start defaults/parse/save, failure retention and authorized command wiring; current/next feedback, aliases and no random choice; native UI and core mode freezing are separate
|
||||
PASS: actual immutable measured footprint/root/attachment matching, bounds/transforms, moving geometry, seated-body and cargo reciprocity, finite hierarchy caps; native geometry doubled
|
||||
PASS: actual BMP singleton geometry and typed current order; one survey, full straight segment, width, known history, reservations, settlement/clearance and work caps; placement/footprint tested separately
|
||||
PASS: actual five random-radius diagnostic wrappers, disabled transparency, cached opt-in, exact zero and exclusion branch, native arguments/returns/outarg preservation, single superclass call and shared16-log cap
|
||||
PASS: zero-radius trace disabled by default, scoped before setup, exact opt-in emission; no native launch
|
||||
PASS: complete actual supply-travel probe, immutable 6+2 formations and 25 actors, admission/travel deadlines, six observed native-boundary moves, stop/ownership/partial-substitution refusals
|
||||
PASS: actual distinct supply-travel hook, fixed420s selector, original observer protection/restoration, failure/terminal cleanup and no legacy convoy setup
|
||||
PASS: actual supply-travel selector requires Chat, one round and480s; existing outcomes unaffected; no native launch
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mounted-bmp] [--mine-stock]
|
||||
[--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mounted-bmp] [--mine-stock]
|
||||
[--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mounted-bmp] [--mine-stock]
|
||||
[--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mounted-bmp] [--mine-stock]
|
||||
[--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds
|
||||
usage: test_native_mounted_intercept.py [-h] [--steam STEAM]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
--compat COMPAT --profile PROFILE
|
||||
[--smoke {crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}]
|
||||
[--trace-random-radius]
|
||||
[--maintenance-refuel]
|
||||
[--mounted-swap-eligibility]
|
||||
[--mounted-bmp] [--mine-stock]
|
||||
[--mounted-courier]
|
||||
[--mounted-intercept] [--convoy-cover]
|
||||
[--field-terrain-audit]
|
||||
[--field-service-cancel]
|
||||
[--route-service-cancel]
|
||||
[--station-teardown-diagnostics]
|
||||
[--flight-autohover]
|
||||
[--flight-action-inputs]
|
||||
[--flight-input-diagnostics]
|
||||
[--recon-takeover-only]
|
||||
[--body-recovery-only]
|
||||
[--rounds ROUNDS] [--timeout TIMEOUT]
|
||||
[--project {core,chat}]
|
||||
test_native_mounted_intercept.py: error: --mounted-intercept and --convoy-cover are mutually exclusive
|
||||
PASS: actual native interception witness requires real radio cursor/lineage, original actor identities, fixed movement/hold/expiry/resume and immutable deadline; no movement/delivery injection
|
||||
PASS: actual CLI rejects wrong mode/project/rounds/899s/conflict before runtime; valid flag and terminal branch identify synthetic-observation qualification
|
||||
PASS: visible base hook and actual fixture override delegate once; delivery proof uses retained pre-super route only on successful production transition
|
||||
actual mounted HQ dispatch planning, radio, ownership and lifecycle checks passed
|
||||
PASS: actual mounted intercept eligibility/order chronology, fixed destinations, native road selection bounds, width, segment heading, clearance and settlement delegation; no native driving claim
|
||||
PASS: actual paired arc geometry,40m/80m spacing, separate original polylines, both-position validation and128road/4096segment budget; no native driving proof
|
||||
PASS: actual typed original BMP singleton, loss/footprint/custody guards and native cancellation, UAZ-only pair admission, rollback, native allocation/revocation boundaries, per-member ownership, hold and expiry
|
||||
PASS: actual Tick clock initialization admits fractional first ticks and expires without extending the original start
|
||||
PASS: actual finite conservation/deadline/callback policies; read-only selection, bounded once-only inventory submission and no can refill; native transfer not executed
|
||||
PASS: actual exact-context membership, bounded identity/reach gates, native start/cache/eligibility ordering and no duplicate/foreign action start; fuel manager identity and empty-can headroom guards checked
|
||||
PASS: actual detached node/value snapshot and conservation refuse mismatched lengths before indexed reads, retain original identities under native out-array aliasing and log bounded counts once; native cause remains unknown
|
||||
PASS: actual mine evidence sealing/recovery, historical coarse publication, caps, canonical ownership, marker join retry/owner-change/stop; native arming and replicated vector-array transport untested
|
||||
PASS: actual full document recovery retains authored/sealed targets, one shared spent ledger, retry/exhaustion semantics and canonical multi-player ownership alongside supplemental mine intel
|
||||
PASS: actual infantry search suspension, quiet grace, finite resume, expiry/replacement and defensive/ownership boundaries
|
||||
PASS: infantry combat gate precedes radio delivery and preserves non-task transports
|
||||
PASS: actual HQ contact transition wakes only fit squad members, cancels only task orders and logs changes once
|
||||
PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards
|
||||
PASS: only recent native detected/identified threats suspend hunter travel; stale/disarmed/destroyed contacts cannot strand patrols
|
||||
PASS: actual hunter combat transition cancels only its travel once, holds through renewed contact and resumes after quiet; unregistered startup preserved
|
||||
PASS: captured sighting retention, immutable details, expiry, replay rejection, bounded sound uncertainty/cooldown, radio loss, priority and overdue-status fairness
|
||||
PASS: arrow press/release, held keys, opposing keys, disabled/menu input and firearm-only retention
|
||||
PASS: town trigger and hard 700m exclusion for all observers, empty/invalid positions and final-check crossings
|
||||
PASS: exact finite site squads, invalid roster/count rejection, committed-site spacing and safe fallback boundary
|
||||
PASS: mortar couriers use the mobile site team and refuse permanent-only garrisons
|
||||
PASS: omitted preferred mortar depot selects a surviving owned camp/mobile team; no camp, foreign cache and permanent-only sites are unavailable; historical priority retained
|
||||
PASS: real-session mortar deadline, failed-support convoy admission and hunter survivor/recovery gates
|
||||
PASS: native-route retry preserves delivered target, limits attempts and suspends during combat
|
||||
PASS: stale/deleted AI utility cannot receive Complete; mortar HQ preflight withholds unsafe orders; mounted convoy cover never creates infantry Defend
|
||||
PASS: flight crew affiliation and group precede native boarding; preparation remains bounded even while passengers wait
|
||||
PASS: factionless/deleted map targets do not abort perception; faction lookup tolerates teardown; deleting helicopter releases without capture/engine access
|
||||
PASS: shoot adapter waits for a physical round; bounded same-shell retries, interrupted/never-started loads, committed no-retry, order/owner changes and normal native delegation
|
||||
PASS: missing/invalid faction crew defers before any native spawn or allowance insertion; all registered RHS factions have explicit soldier and medic profiles
|
||||
PASS: vehicle radio issued once; pending, refusal and looting cannot duplicate or fabricate a physical radio link
|
||||
PASS: actual vehicle-radio link requires the original seated crew, physical manpack and live uncaptured mission vehicle; looting, dismount, release and teardown remove it
|
||||
PASS: actual hunter release preserves survivors/HQ, releases driving ownership once, delegates capture/teardown, and excludes prison/patrol/mortar from generic objective defence
|
||||
PASS: actual player-entry hook latches original hunter capture before native callbacks; both release layers cancel ownership without new entities/refund; bounded current-owner guards and prior-release policy
|
||||
PASS: real opening road geometry enforces wide azimuths; fresh delivered contact preempts patrol cooldown, respects radio failures and does not starve in-flight interception
|
||||
PASS: delivered ground search survives the 60-second mortar cutoff, with five-minute/500m uncertainty bounds and no live target reads; mortar policy unchanged
|
||||
PASS: actual scoped 10% tighter REGULAR aim error and alert perception; preserves equipment multiplier and restores vanilla behavior when unbound
|
||||
PASS: physical inspection and parent-wreck retention; server-only searched/report delivery unlocks native cleanup once with a 300-second delay
|
||||
PASS: bounded same-group empty-spawn retries, no casualty refill, queue retirement, delivery-gated intel, prepared-team reuse, throttled diagnostics and LOD release
|
||||
PASS: production airborne memory confidence, persistence, ground coverage, confirmed losses, artillery veto, cooldown and invalid-input rules
|
||||
PASS: production cover retains the carried HQ target until its deadline; airport reload waits until the drop pass and cover have finished
|
||||
PASS: air logistics reservation preserves delivered search until radio handoff, excludes guards/combat/in-flight orders, and quarantines unresolved native loads/moves
|
||||
PASS: actual ammunition cargo selector handles empty rifle/machinegun/sniper magazines, preserves loaded variants, excludes auxiliary launchers and tolerates missing native metadata
|
||||
PASS: original 15-minute launch/loss cadence, active/captured timer disarm, saved delay reset, stop, 300m orbit and bounded close-contact standoff at 30/60/120 Hz
|
||||
PASS: actual aircraft-removal notification guards owner/server/active/stop and schedules one full delay without replay extension
|
||||
PASS: actual helicopter delay applies resolved Random values, preserves countdown on save failure, and leaves active flights running
|
||||
PASS: hill prominence/elevation, actual road edges/heights/bends and server-only finite scout admission, pending stock, timeout and no replacements/refills
|
||||
PASS: mortar duty scope excludes players, other crews, stopped/client/inactive states; only destruction releases an active assignment, while the gunner may approach the gun
|
||||
PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries
|
||||
PASS: actual killais eligibility includes the 1000m boundary, excludes players/retained bodies/dead/non-character entities and checks full 3D distance
|
||||
PASS: actual generation scheduler bounds each tick, enforces deadline/candidate ceiling, validates fallback, commits only accepted positions, skips only dispensable sites, preserves required objectives/intel, and resets the next search budget
|
||||
PASS: terrain placement samples world bounds, retains streaming candidates, bounds waits/work, rejects foreign fallbacks, preserves objectives/intel and validates completion
|
||||
PASS: actual navigation readiness supports static meshes, yields only for loadable streaming tiles and refuses unreachable positions
|
||||
PASS: real sampling handles absent airports and extraction clearance preserves geometry/navigation/flatness while selecting the correct aircraft survey
|
||||
PASS: universal connector, embedded/standalone exports, multiple terrains, stable IDs, native nav configs, missing-nav visibility, path validation and overwrite protection
|
||||
PASS: airfield detection accepts physical runways/towers and bounded authored markers, rejects unrelated props, water and out-of-world markers, and samples terrain height
|
||||
PASS: configured airport parsing, bounded readiness, stale admission rejection and cleanup wiring
|
||||
PASS: automatic default, explicit header/CLI opt-out, editor/authored-mode guards, optional airport override precedence and fresh-round saving guard
|
||||
PASS: singleton identity guards, paired faction deserialization and client world-cleanup wiring
|
||||
PASS: task/map/respawn getters survive delayed old destruction and preserve ordinary-mode behavior
|
||||
PASS: replication hierarchy refuses absent/aliased nodes and establishes delivery dependencies idempotently
|
||||
PASS: standalone old faction delegates collected once, with null/deleted owners ignored
|
||||
PASS: actual terrain takeover startup skips mode-less/menu worlds, always forwards super, retains eligible/unsupported/authored/client/editor semantics
|
||||
PASS: native name callback preserves authored modes, opt-outs and failures; terrain suffix follows world changes, cached resolution and confirmed takeover metadata restores on cleanup without changing scenario resource or overwriting later titles
|
||||
PASS: actual terrain parent traversal, Armenhof/Nogova names, Everon alias, missing-resource fallback, empty names and bounded cycles/depth
|
||||
PASS: actual loading title hooks follow late takeover/terrain changes, keep native initialization/progress updates, bound refreshes and tolerate missing headers/widgets/game
|
||||
PASS: saved terrain GUIDs, defaults, restart persistence, clearing, backup recovery, corrupt-file preservation, write failures, and client write denial
|
||||
PASS: startup terrain capture protects client/editor/menu worlds, default behavior, same-map loads and reload-loop recovery
|
||||
PASS: actual transition waits for native startup, disconnects without bans, requires an empty session, retains every loaded mod, bounds waiting and consumes requests once
|
||||
PASS: actual faction resolution reserves explicit roles, samples without replacement, substitutes disabled selections, and rejects duplicate/unknown/missing choices and insufficient pools
|
||||
PASS: Random all submits persistent random roles immediately; manual mixed choices, stale/unauthorized UI guards and debounce preserved
|
||||
PASS: actual content policy gates parent packs, individual factions, faction identity and finite group rotation with vanilla fallback
|
||||
PASS: actual delivered road eligibility, ahead projection without chords, reservations, stock road query bounds, terrain/water/obstruction refusal and clean outputs
|
||||
PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery
|
||||
PASS: actual original-roster local handoff,100m3D bound,busy carrier/budget exclusion,origin interruption including deletedsource,normal radio delivery and per-source replay history
|
||||
PASS: actual visual intake retains source/time/position/id, rejects replay, prefers usable own route, excludes simultaneous callers and conservatively resets negative-sweep dwell
|
||||
PASS: actual fixture local/radio gating, immutable source/time/position, interrupted-report exclusion and exact-owner cleanup
|
||||
PASS: local-handoff runner refuses wrong project/round count/insufficient deadline before runtime work
|
||||
PASS: actual fixture allocator terminal/unsubmitted guard, original-group lookup and both candidate gates
|
||||
PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim
|
||||
PASS: actual Place/Stop waits native pose update, bounds four attempts, preserves original position, restores pending/settled placement and respects ownership/accepted-move quarantine
|
||||
PASS: actual fixture current/original recipient ownership, unresolved transfer cleanup, exact-token release and idempotent Stop
|
||||
PASS: actual fixture phased-cargo readiness, bounded callbacks, captured-stock mixed-caliber selection/continuation, reservation cleanup and component magazine counts
|
||||
PASS: actual inventory-fixture setup uses ordinary prison unlock before constructing its convoy-waiting probe; failed unlock cannot run fixture
|
||||
PASS: actual authored storage anchors, native trace flags, own-hierarchy exclusion, external wall/vehicle obstruction, range, unknown geometry and bounded context refusal
|
||||
PASS: actual Compatible and bounded stock preflight before report/claim consumption, later compatible truck, launcher controls, convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup
|
||||
PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown
|
||||
PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence
|
||||
PASS: actual original turret identity, native/canonical guards, scoped maximum-skill profile, reset, dismount/reboard, requested-skill preservation and restoration
|
||||
PASS: bounded HQ startup/memory windows and outcome-specific full-route deadlines
|
||||
PASS: explicit escape-route skips only administrator stress, preserving original full-fixture wait/failure paths
|
||||
PASS: normal escape route keeps ordinary catalog and generated placement; historical selectors remain unchanged
|
||||
PASS: actual patrol fixture leaves prison before responder HQ proof, followed by separate permanent-patrol observation
|
||||
PASS: exact patrol-hq finite responder preparation and native search-radius receipt verification
|
||||
PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest
|
||||
PASS: actual automatic convoy timing/authority/admission/one-attempt/manual-task/stop policy; native deployment unproved
|
||||
PASS: late authoritative failure reason refreshes open result; detach, mode change and success subscriptions preserved
|
||||
infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed
|
||||
PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership
|
||||
PASS: actual designated zero/one original carrier selection, settled startup, shared finite claims, no refund after submission
|
||||
PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed
|
||||
PASS: actual finite PMN4 designated-zero/one entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry
|
||||
PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries
|
||||
PASS: actual shared finite identity reservation; competing consumers, submission permanence, stale cleanup and96-item bound
|
||||
PASS: actual carried-mounted swap, shared committed claim, physical slot reach, exact two-way proof, uncertainty and terminal cleanup
|
||||
PASS: actual mounted pickup, exact finite ownership, pre-submission commit, physical custody, bounded callback and quarantine lifecycle; no native coverage claim
|
||||
PASS: actual mounted courier admission, radio, individual orders, two-stage transfer, reboarding, token cleanup and quarantine lifecycle
|
||||
PASS: actual scoped crew permit and native board completion/failure preserves foreign seats without teleport fallback
|
||||
PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling
|
||||
PASS: actual carried/mounted early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures requested check-ins and non-urgent detached carried-mine status
|
||||
PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation
|
||||
PASS: actual maintenance native-stock check rejects missing/duplicate/wrong-identity/unowned/depleted/malformed stock and is read-only; native runtime not executed
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 0.301s
|
||||
|
||||
OK
|
||||
PASS: actual radio node rejects current incapacitation, death, ownership and faction changes despite cached inventory; one-second capability refresh remains explicit
|
||||
PASS: Southern finite maintenance stock preserves weapons/clues and optional transport, historical Western fixture stays separate; native capacity/consumption untested
|
||||
PASS: optional transport deferred behind required readiness, bounded once-only spawn/omission, isolated cleanup, occupied-candidate retention and required-default preservation
|
||||
PASS: actual diagnostic fallback runs only on failed missing-context call, derives unique native pilot door, preserves stock eligibility and restores prior index on success/failure; diagnostics mutate no game state.
|
||||
PASS: actual native-prelude cleanup restores only original changed damage, refuses stale/incapacitated/aboard teleport; bounded five-seat/four-door fixture wiring checked. Native execution remains pending.
|
||||
PASS: actual CreateTransport requires successful scoped Configure after handbrake, preserves ordinary vehicles, tracks spawned entity before failures and never treats failed lock registration as ready.
|
||||
PASS: actual preparation Configure guards/idempotence/breach preservation, security eligibility/final current-body server mutation and all scoped action guards; all five seat/four door resource overrides. Native hold, prefab merge, replication and boarding remain unverified.
|
||||
PASS: production vehicle alarm single trigger/replica completion/no replay, fixed deadline/readiness wait, failed audio, dedicated server, moving exact handle, destruction/native end/deletion/clock and mission teardown. Native sound and multiplayer delivery require engine qualification.
|
||||
PASS: production alarm emitter/receiver original time/location, explicit native queue only, 32-entry cap, 50m local witness eligibility, bound perception, native-super preservation; actual engine broadcast/hearing remains unverified.
|
||||
PASS: actual optional candidate barrier, exact callback/custody proof and unchanged mine/primary snapshots; no native transfer claim
|
||||
Native finite mine-stock runner: parser, scope, exclusions and command pass
|
||||
PASS: actual bounded native mounted proof/detached payload/deadline/cleanup methods, production-only setup and isolated runner selector
|
||||
PASS: actual one-existing-convoy candidate readiness, sender-root identity, incomplete cargo refusal and fixed three-candidate bound
|
||||
PASS: actual BMP capture requires complete armed exact original resource; pinned delivery/slot checks and isolated CLI flag
|
||||
PASS: actual opt-in pre-unlock isolation refuses wrong mode/phase/flag and existing hunters; no baseline service changes
|
||||
PASS: actual once-only native dry query, exact before/after slots, native refusal, shutdown; shared bounded discovery and distinct opt-in verdict
|
||||
PASS: actual completion selector and pre-cleanup variant capture preserve separate radio and eligibility verdicts
|
||||
PASS: actual cargo diagnostic stages separate absent/foreign magazines, used/empty/invalid rounds, well mismatch and exact truck storage/attachment without mutation
|
||||
PASS: actual native courier witness rejects missing radio/custody/swap/reboard evidence; CLI opt-in bounded; native success remains unqualified
|
||||
PASS: actual courier constructor/Tick waits for preparation, returns before physical checks, preserves fixed deadline and sticky stop/failure; Enfusion startup awaits native verification
|
||||
PASS: actual arranged native alarm fixture deadline, single emit, natural-route observation, original timestamp/area/detail assertions, natural observer proximity/activation wait, failure cleanup and independent canonical-body restoration; native delivery itself remains unqualified.
|
||||
PASS: actual convoy cover observation/snapshot/uplink/HOLD/RESUME/cleanup transitions; native boundaries mocked, non-convoy runner opt-in refused
|
||||
Enemy optics actual-service ownership, preservation, callback, deadline and bounded-inspection policies passed
|
||||
PASS: actual delivered cover freshness/lineage/replay and canonical executor; owned waypoint-only hold, one resume at preserved route index, invalid ownership/crew/ledger refusal and fail-closed native recreation
|
||||
PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim
|
||||
PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved
|
||||
HQ convoy delivered-report planning and downlink regressions passed
|
||||
PASS: actual own-inventory ammo inspection deduplicates loaded/carried/shared wells, separates chambers/launchers, freezes scalar snapshots and treats unsupported/capped/foreign inventory as unknown
|
||||
PASS: actual carried PMN4 inventory, original-owner guards, bounded deduplication, independent unknown state and detached counts
|
||||
PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation
|
||||
PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal
|
||||
PASS: actual HQ original convoy-root admission rejects wrong force/server/group and never supplies replacement lookup
|
||||
PASS: production mounted structural seat scan ignores >128 carried/cargo descendants, shares exact native mount/magazine ownership, preserves attachment seats and exact occupants, rejects unknown/cyclic/oversize structures; native binding still requires qualification.
|
||||
PASS: native body fixture uses existing immutable actors, real production LOS/queued uplink, pre-delivery isolation, actual status overlap, bounded cleanup and no fabricated reports/spawns
|
||||
PASS: actual native fixture lookup selects exact BODY kind/identity/message from bounded evaluations, never sighting-only Get
|
||||
PASS: actual ammo snapshot comparison checks every scalar/category flag; native probe requires real roster rescan, loaded-round lower bound and separate immutable pending/Watch objects
|
||||
PASS: actual delivered slot-union bodies preserve overlap/disjoint evidence, replay idempotence, status subset integrity, full-wipe closure and formation-local bounds
|
||||
test_review_added_allowed_media_invalidates_snapshot (__main__.ReviewTests.test_review_added_allowed_media_invalidates_snapshot) ... ok
|
||||
test_review_added_source_directory_rejected (__main__.ReviewTests.test_review_added_source_directory_rejected) ... ok
|
||||
test_review_loose_root_resource_and_symlink_rejected (__main__.ReviewTests.test_review_loose_root_resource_and_symlink_rejected) ... ok
|
||||
test_review_metadata_media_and_sidecars_remain_allowed_and_bound (__main__.ReviewTests.test_review_metadata_media_and_sidecars_remain_allowed_and_bound) ... ok
|
||||
test_review_missing_link_rejected (__main__.ReviewTests.test_review_missing_link_rejected) ... ok
|
||||
test_review_package_guard_sees_new_scripts (__main__.ReviewTests.test_review_package_guard_sees_new_scripts) ... ok
|
||||
test_review_retargeted_private_link_rejected (__main__.ReviewTests.test_review_retargeted_private_link_rejected) ... ok
|
||||
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.074s
|
||||
|
||||
OK
|
||||
PASS: actual report methods reproduce old starvation; status-first scheduler delivers check-ins and requires 30s without combat or actual visible contacts before negative reports
|
||||
PASS: actual actor group lookup retains controlled character membership when seated/inherited vehicle agents differ; missing control or parent refuses
|
||||
.................
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 4.436s
|
||||
|
||||
OK
|
||||
PASS: actual convoy motion thresholds, native-only proof boundaries, physical cargo/crew ownership and pre-launch runner restrictions
|
||||
PASS: actual new measured ClearFootprint 25/441 sample grids, measured extents/height, water/invalid world/terrain/trace refusal plus legacy filled rotated-footprint TraceBox and nine terrain/water samples; broad tree/cable bounds alone accepted, actual collision/nonfinite trace refused, nonzero sweep and ENTS/OCEAN flags, bounded diagnostic query and reset
|
||||
PASS: actual road interpolation/projection/orientation, six35m starts,200m forward tail, preserved bends, short/far/degenerate/nonfinite/overdense/hairpin refusal and deterministic candidate ties
|
||||
PASS: actual authenticated convoy dispatch, active/ready admission gates, canonical receipt, safe unconsumed preflight retry, pool refusal, retained partial failure and consumed no-retry
|
||||
PASS: actual native readiness exact membership, one-time per-vehicle ledger admission/reservation, partial readiness retry without duplicate records and one-pass56-item cargo allocation without replenishment
|
||||
PASS: actual per-vehicle readiness reasons, native agent/activity counts, intended-seat diagnostics, five-second throttle and read-only observation
|
||||
PASS: actual convoy dispatch validates before receipt consumption, consumes once before native mutation, retains all10 partial-failure paths, accepts the selected non-USSR enemy, and allocates exact10 bodies without capacity shrinking
|
||||
PASS: own memberless prefab disables automatic spawn before initialization; actual admission rejects populated, immediate or authored-slot templates before finite crew creation
|
||||
PASS: actual native seated-group arrival outside35m, native waypoint removal, idempotent advance, and convoy waypoint idempotence/arrival/deadline, missing/dead/captured/reparented crew refusal, failed native waypoint release, original vehicle/member preservation and no replacement
|
||||
PASS: actual convoy/team Release retains original active survivors and HQ identity, rejects takeover/terminal/unknown roster, preserves exact logistics quarantine and normal eligibility
|
||||
PASS: actual convoy receipt identity/one-use, shared60-body and128-formation caps, outstanding/native-ledger accounting, exact10-body composition, source reuse, mode/client guards and no consumed receipt refunds
|
||||
PASS: actual supply route cycling/arrival/stops, finite startup bounds, contact freshness, dismount hold, quiet interval, interrupted boarding, timeout and lost-truck release
|
||||
PASS: moving-convoy perception boundaries and scoped individual/group abandonment priorities
|
||||
PASS: actual supply startup reasons expose unchanged body budget/requirement, journal only failure changes, preserve retry cadence/caps and report the true final refusal
|
||||
PASS: actual combat start releases only exact intercept claims before owning route/orders; foreign claim defers combat takeover
|
||||
PASS: actual StartOne plus actual pool preserve unconsumed receipt retry, reject consumed replay, skip impossible new-budget surveys, retain equality, retry caps and journal dedup; no FPS claim
|
||||
PASS: actual admission seeds use exact installed loaded prefab, reject replacement/foreign/projectile paths and preserve bounded immutable identity
|
||||
PASS: actual primary-before-mounted one-shot batch, shared96/128 caps, physical snapshot headroom, original ownership, callback refusal and admission pinning
|
||||
PASS: actual bounded HQ query validates only existing original binding without admission or replacement lookup
|
||||
PASS: exact optional PMN4 startup, primary callback independence, original owner,128 capacity/callback limits, terminal no-retry and callback-proven freeze
|
||||
PASS: production convoy spacing, physical arrival, stable follower targets, supply ownership, leader promotion and bounded stuck recovery
|
||||
PASS: convoy combat keeps native manoeuvres for unchanged contacts and refreshes when contact moves
|
||||
PASS: native convoy proof excludes pre-departure movement and ends via explicit fixture reset, not prohibited player death
|
||||
PASS: boarding retries only after approach/seat progress stops, capped at three, with delayed native reissue and completed-team preservation
|
||||
PASS: slow only owned vehicles near fit dismounted infantry; ignore passengers, casualties and released teams/vehicles
|
||||
PASS: restore missing native driving registration only for healthy owned seated crews; preserve existing association and refuse invalid/released vehicles
|
||||
PASS: actual body observer enforces owned physical roster, local death-only candidates, native trace gating, budget/cadence/caps, immutable body-only snapshots, radio retries and confirmed suppression
|
||||
PASS: own initial roster, explicit retained corpse evidence, unconscious/missing/ref transfer guards, fixed strength, no replacement adoption, detached samples, surviving radio sender, immutable convoy root/ledger, mounted capture release and lost-root unknown
|
||||
PASS: delivered-only status snapshots, two missed check-ins/reply deadline, last reported coordinates, episode/replay guards, confirmed-loss idempotence, detached/validated mounted payload replacement 256-record cap and detached carried-mine radio delivery/chronology
|
||||
PASS: actual failed-retask deadline rollback plus assignment cancellation/release preserves radio ownership, native waypoint lifecycle and failed-order retry boundaries
|
||||
PASS: actual force ledger, finite casualties/identity/cap, routes/arrival/elevation/overshoot, server and physical guards, staggered 256-record simulated hour without world queries
|
||||
PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound
|
||||
PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment
|
||||
PASS: automatic inventory one-shot roll, exact item ownership, finite compatible ammo, rejection, capture/stop, deletion, loot and late callback quarantine
|
||||
PASS: enabled/valid catalog eligibility, category restrictions, content filtering, GUID deduplication across factions and bounded catalogs
|
||||
PASS: actual engineer native group-envelope admission and phase cancellation, preparation/deadline, original custody/identity, once-only callback removal, cancellation quarantine, withdrawal/clearance, native refusal and owned-action cleanup; native execution untested
|
||||
PASS: actual mine selector respects road and settlement flank safety; native boundaries doubled
|
||||
PASS: actual HQ and post ledger: second delivered post, one query/tick,2 active/32 jobs,4 consumed lifetime attempts, no-stock/query refusal consumption, pending old job and original identity constraints
|
||||
PASS: actual mine post ledger immutable history, strict chronology/evidence, aliases, >160m separation, detached sites and finite4/32 consumed attempts
|
||||
PASS: actual objective heading/threat/approach rules, persistent doctrine weight, fresh-contact coverage invalidation, stale-sweep rejection and atomic radio retask ownership
|
||||
PASS: actual bounded delivered-negative coverage, replay/freshness/expiry/invalid guards, oldest eviction, small-circle and nearest-unswept selection, reserved-cell exclusion and cleanup
|
||||
PASS: actual HQ active/pending reservations, interruption, committed replacement, bounded coverage and unchanged force counts
|
||||
PASS: actual bounded pursuit roles/objectives/scores, stale search degradation, physical/busy/home guards, finite lifetime and two-bearing escape gap; no hidden player reads or spawning
|
||||
PASS: actual finite45..110 radius and both ordinary search queue snapshot expressions
|
||||
PASS: actual HQ memory rules/service preserve delivered snapshots, chronology, replay bounds, decay, motion limits, identity and negative-search revisions
|
||||
..........
|
||||
----------------------------------------------------------------------
|
||||
Ran 10 tests in 0.227s
|
||||
|
||||
OK
|
||||
PASS: actual session Tick + journal router delivers each grant completion and new HQ line once, without repeats on empty/unavailable feeds or unauthorized ticks
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.511s
|
||||
|
||||
OK
|
||||
PASS: actual current-controller/admin/mode authorization, per-round anti-replay, token-rotation refusal, command/snapshot throttles and client scope; owner-only replies and player-tool cleanup wiring
|
||||
PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded
|
||||
PASS: actual menu command routing covers all nineteen settings, rejects unsupported keys, gates companions, and matches unique authored widgets
|
||||
PASS: explicit weapon retention buttons use the same ready/authorized server command path
|
||||
PASS: item editor, preset controls and dynamic item-row layout are structurally valid
|
||||
PASS: catalog requests use authenticated sessions, independent admin page selections, loaded-mod allowlisting, bounded pages and allowlisted item mutations
|
||||
PASS: actual item rules, shared-source conflicts, missing/returning mods, bulk reset, independent named presets, bounds, malformed data and failed-save state preservation
|
||||
PASS: actual summaries preserve queued/delivered meaning, clear counts and IDs; raw records, legacy display, cursor gaps and RPC limits remain intact
|
||||
PASS: actual admin body authorization, god restoration, vanilla item deposit, callback completion/failure, timeout quarantine and stop/revocation paths
|
||||
PASS: same-body revoke/regrant preserves pending insertions and timeout quarantine; new-body binding isolates late callbacks and never inherits god mode
|
||||
PASS: actual Intel commands distinguish status/start/failure, preserve authorization gate and reject malformed requests; spent ledger is idempotent, server-only and bounded
|
||||
PASS: actual reroll snapshot, authority, cancellation, ownership, accepted operations, quarantine, bounded work and stop methods; no native runtime claim
|
||||
PASS: production Intel feedback coalescing, rough secrecy, rate limit, bounded dedupe, local/remote delivery and round cleanup; native UI/RPC not exercised
|
||||
PASS: actual per-squad bounded report selector rotates visible targets, survives ordering/turnover, records only queued attempts, and preserves radio intake ordering
|
||||
PASS: actual action denial/clearing, server request failure, single submitted-result feedback, current rescuer identity and terminal/stop suppression; native UI/RPC pending
|
||||
PASS: actual physical denial precedence and transport-seat occupancy/reservation/access/lock checks
|
||||
PASS: actual initial admission exhaustion and ServerTick grace; new/pending/empty/controller/life guards, normal death preserved
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 0.272s
|
||||
|
||||
OK
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 27.950s
|
||||
|
||||
OK
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 3.164s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 2.521s
|
||||
|
||||
OK
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 1.236s
|
||||
|
||||
OK
|
||||
PASS: actual field result/braking observer and Chat dispatch rules; one finite fixed candidate, deferred callback failure and guarded cleanup; no native measurement
|
||||
PASS: actual opt-in terrain audit records one fixed1681-point grid, preserves original survey refusal/success and exact no-allocation scope; malformed heights stop without retry; no native data acquired
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.691s
|
||||
|
||||
OK
|
||||
PASS: actual field PI/ramp/vector caps, antiwindup, braking hypothesis, immutable admission limits and segment bounds; no native physics tested
|
||||
PASS: actual100m whole-field survey sampling/4096cap, rotated coverage, all-node terrain and native trace refusal; original certificate lineage retained; no native qualification
|
||||
PASS: actual QualifyField preserves original identity/footprint/time, orders complete surveys before issuance, and refuses failed stages/moved body/expired or changed world; native boundaries faked
|
||||
PASS: WORKBENCH first-refusal diagnostics preserve ordinary predicates, query order/count/budget and opt-in scope; no native logging run
|
||||
PASS: actual field startup delegation, immutable lease/target, braking/settling/cancel transitions, early abort, callback scope, physical terminal policy and shared landing demand; native boundaries faked
|
||||
PASS: actual inherited airborne pre-CLIMB cancellation enables verified native autohover once, refuses failed enable and never writes after capture
|
||||
PASS: actual Core maintenance/default/tick/stop methods; empty/populated authority, terminal reentry, no tactical resume or new scheduler; native boundaries substituted
|
||||
PASS: actual finite registration, unique claims/tokens, retention/cancel/stop, readiness gating, capture/expiry retirement and bounded cross-kind order history and typed field/route construction; native boundaries faked
|
||||
PASS: actual WORKBENCH route observer returns exact retained route subtype and refuses absent/field controllers
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.715s
|
||||
|
||||
OK
|
||||
......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 22 tests in 0.193s
|
||||
|
||||
OK
|
||||
................
|
||||
----------------------------------------------------------------------
|
||||
Ran 16 tests in 11.181s
|
||||
|
||||
OK
|
||||
......
|
||||
----------------------------------------------------------------------
|
||||
Ran 6 tests in 0.019s
|
||||
|
||||
OK
|
||||
PASS: actual production bridge lookup, lease/world/mode/seat/capture guards, no allocation, native super ordering and read-only fixture hooks
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 0.058s
|
||||
|
||||
OK
|
||||
.............
|
||||
----------------------------------------------------------------------
|
||||
Ran 13 tests in 5.343s
|
||||
|
||||
OK
|
||||
PASS: actual route gain/caps/braking, callback selection, old landing/cancellation control and matching read-only telemetry
|
||||
..............................
|
||||
----------------------------------------------------------------------
|
||||
Ran 30 tests in 0.454s
|
||||
|
||||
OK
|
||||
..............
|
||||
----------------------------------------------------------------------
|
||||
Ran 14 tests in 0.260s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.126s
|
||||
|
||||
OK
|
||||
PASS: actual gate observer binds native registered action/context and current life, reads accumulated progress, refuses stale bindings and never revives outside original bounds
|
||||
PASS: actual read-only look observer methods enforce explicit scope, pinned native camera/body/identity, normalized pose, terminal cancellation and original sample/time bounds
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.075s
|
||||
|
||||
OK
|
||||
.......................
|
||||
----------------------------------------------------------------------
|
||||
Ran 23 tests in 0.036s
|
||||
|
||||
OK
|
||||
PASS: actual initial WAITING task/guide copy, configured duration, unchanged interruption and rounded progress; native task assertion pending
|
||||
........
|
||||
----------------------------------------------------------------------
|
||||
Ran 8 tests in 0.014s
|
||||
|
||||
OK
|
||||
PASS: actual inventory adapter scope, grid placement, sole compatible host, refresh reuse, rollback, foreign hierarchy refusal and exactly-once native delegation; native compatibility pending
|
||||
.................................................................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 81 tests in 0.566s
|
||||
|
||||
OK
|
||||
......
|
||||
----------------------------------------------------------------------
|
||||
Ran 6 tests in 0.079s
|
||||
|
||||
OK
|
||||
.................
|
||||
----------------------------------------------------------------------
|
||||
Ran 17 tests in 0.004s
|
||||
|
||||
OK
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.088s
|
||||
|
||||
OK
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.370s
|
||||
|
||||
OK
|
||||
PASS: actual observer nonce, admission pins, baseline/menu sequencing, snapshots, bounded clocks/samples, cleanup and one-attempt latch; native untested
|
||||
PASS: actual corridor caps/height/hold and whole-rectangle survey bounds, terrain refusal, native trace refusal and exact certificate lineage; native route unqualified
|
||||
PASS: actual route entry, fixed corridor/target, hover hold, cancellation landing freeze, shared lease/capture/deadline gate and unchanged native startup/tick sequence
|
||||
PASS: finite opt-in route fixture, original native input order, meaningful physical-arrival evidence and guarded cleanup; no native launch
|
||||
PASS: actual Chat route step result dispatch and scoped completion/cleanup wiring; six real early-parser refusal paths leave no prefix/profile output
|
||||
PASS: actual retained-service fixture entry, immutable controller/token/deadline/count bindings, observer getter and cleanup ownership ordering; native route validation pending
|
||||
PASS: actual measured cancellation gate, one-shot retained service Stop, no premature drain, immutable lease, fresh real controller readback and separate physical cancellation result policy
|
||||
PASS: actual rough-intel objective selection, exact precedence, source grid dimensions and unchanged other-phase dispatch; native UI pending
|
||||
.................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 33 tests in 0.109s
|
||||
|
||||
OK
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 0.037s
|
||||
|
||||
OK
|
||||
PASS: actual preparation status scope, persistent updates, spinner restoration, placeholder replacement/deletion/destruction, native observation persistence/timeout; rendering remains native-pending
|
||||
PASS: replaced respawn system receives frame updates, disabled updater wakes, stale/non-Escape binding refused; terminal and stale preload leases release black overlay
|
||||
PASS: actual guide ownership and scoped timer cancellation, current-controller preservation/reacquisition, hint retry/dedup and observer boundaries; native UI not exercised
|
||||
PASS: actual native-end shutdown, existing terminal snapshots, reentrancy, unchanged native end data and stale preparation guards
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 1.521s
|
||||
|
||||
OK
|
||||
PASS: actual three-state result wording and UI refresh; stale winner IDs never manufacture escape
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.118s
|
||||
|
||||
OK
|
||||
PASS: actual immutable target, bounded autohover demand, drift refusal, five-second hold and unchanged qualification/deadline
|
||||
PASS: actual admission attempt budget bounds blocked/missing prerequisites; preparation, spent life and async pending remain protected
|
||||
PASS: delayed admission retry retains controller ownership across same-account recycled connection IDs
|
||||
PASS: actual scene deadline overrides delayed native preload only for rejection; late completion cannot assign, ordinary verified admission preserved
|
||||
PASS: actual action permission matrix unchanged; useful phase/intel/consciousness denials, stale reason cleared, native door denial preserved; no native UI claim
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.263s
|
||||
|
||||
OK
|
||||
PASS: actual aircraft cancellation/stage rules, ground-only completion, expiry/capture faults, input ownership and no physical shortcuts
|
||||
PASS: actual exact-instance single-use qualification, native-clock staleness/movement refusal, footprint bounds and ownership-safe ground/fault cleanup
|
||||
PASS: actual optional screenshot helper flag/identity/world/life revalidation, one queued attempt, delayed capture and mission/world cleanup; no native image/presentation claim
|
||||
PASS: actual yard diagnostic exact registered prison ownership, eight native-bound corner projections, no root-sibling escape, bounded duplicate/deep/wide hierarchy traversal; native projection/mask still unmeasured
|
||||
PASS: actual CurrentActor, SpawnPosition and observer-selection methods reject pending/unregistered/replaced/recycled/foreign bodies; canonical live selection and roster-corpse cycling, unconscious following and prison/geometry fallback preserved; native boundaries adapted
|
||||
PASS: actual native-map fixture ownership, cleanup and callback evidence fail closed; native execution remains separate
|
||||
PASS: actual shared-map callbacks bind exact map/config/root, preserve replacement UI/camera, defer focus, and remove only owned delayed work
|
||||
PASS: actual Intel/HQ methods and one-shot qualified readiness handoff deliver late actors once; duplicate readiness, accepted spawn, pickup/drop, death and original negative rolls do not mint assignments
|
||||
PASS: Workbench-only read accessor rejects unknown/nonserver identities; Chat observes all distinct ready crew before existing shell-depletion mutation
|
||||
PASS: actual native-event latch survives deselection, requires exact activity/order, detaches before cleanup, preserves failure/timeout and never infers completion from physical shot count
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.116s
|
||||
|
||||
OK
|
||||
PASS: actual refresh-fixture gates pin immutable observations/actual downlinks/original activity, reject unaccepted or relabelled commits, stop queueing early and require all queued contacts claimed before replay
|
||||
..........................
|
||||
----------------------------------------------------------------------
|
||||
Ran 26 tests in 0.219s
|
||||
|
||||
OK
|
||||
PASS: actual refresh scheduler/delivery/cancellation/projectile methods reject interrupted or replayed reports, retain committed ownership, preserve immutable snapshots/aim geometry and isolate stopped or replaced orders; native radio/crew behavior remains separate
|
||||
.....................
|
||||
----------------------------------------------------------------------
|
||||
Ran 21 tests in 0.038s
|
||||
|
||||
OK
|
||||
...........
|
||||
----------------------------------------------------------------------
|
||||
Ran 11 tests in 0.037s
|
||||
|
||||
OK
|
||||
PASS: actual full-salvo gates require eight fresh committed physical launches, natural closure and exact finite inventory; reject partial/extra/replayed events
|
||||
PASS: actual reason/availability guidance and refresh matrix; no-target copy omits cycling, hint retry retained, existing command/admin paths unchanged; native UI pending
|
||||
PASS: actual client camera policy closes immediately on healing or mission end; late unconscious metadata cannot keep the view active
|
||||
PASS: actual input dispatch, one press per edge, menu-held suppression; actual revival camera handoff with editor close/retry, missing camera, replacement body and stopped round
|
||||
................usage: test_native_package.py [-h] [--project {core}] --session SESSION
|
||||
--compat COMPAT [--steam STEAM]
|
||||
[--timeout TIMEOUT]
|
||||
[--external-addons EXTERNAL_ADDONS]
|
||||
[--silent-workbench | --exit-after-init]
|
||||
[--continue-on-failure]
|
||||
test_native_package.py: error: argument --exit-after-init: not allowed with argument --silent-workbench
|
||||
................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 48 tests in 15.522s
|
||||
|
||||
OK
|
||||
.......
|
||||
----------------------------------------------------------------------
|
||||
Ran 7 tests in 0.294s
|
||||
|
||||
OK
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 3.307s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.346s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.070s
|
||||
|
||||
OK
|
||||
PASS: actual finite-courier age, token, exact ownership/callback and delivered-status admission reject stale, replayed, captured, canceled and ambiguous work
|
||||
PASS: actual native-gun ownership gate rejects player/foreign/replaced/dead occupant, faction change, missing seat and missing registry
|
||||
PASS: four-battery courier selection preserves pending trip/report/transfer identity, skips unavailable crews, and selects the next depleted battery without new stock
|
||||
PASS: 64 bounded distinct storage candidates; native gates, five-store barrier and finite-stock ownership retained; native placement pending
|
||||
PASS: 128 coarse+80 local refinement+169 airport grid candidates retain all native clearance gates; real terrain untested
|
||||
PASS: actual prison registration/crossing policies reject missing/duplicate/destroyed initial gate, incomplete ownership/scan, outside-only body, jumps and stale samples; physical exit independent of later gate damage
|
||||
PASS: actual prison door execution blocks direct AI/UI bypass while locked and delegates unchanged native action once after unlock and permission approval
|
||||
..................
|
||||
----------------------------------------------------------------------
|
||||
Ran 18 tests in 2.531s
|
||||
|
||||
OK
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 1.353s
|
||||
|
||||
OK
|
||||
PASS: native local-admission snapshot rejects changed life/key/body/participant/pending state; authentication is not simulated
|
||||
PASS: actual mortar report ledger prevents duplicate response after cancellation, expiry and interleaved reports; native scheduler separate
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.015s
|
||||
|
||||
OK
|
||||
....
|
||||
----------------------------------------------------------------------
|
||||
Ran 4 tests in 0.197s
|
||||
|
||||
OK
|
||||
PASS: actual aim renewal requires fresh same-report solve and original-command equivalence; native firing untested
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.043s
|
||||
|
||||
OK
|
||||
PASS: actual startup/generation/ownership/timeout/callback policies and native-counter wait; integration preserves one-shot allocation and pending-crew cancellation
|
||||
PASS: rapid mortar cycle counts eight physical rounds once and waits for native completion without a ninth aim or shell
|
||||
PASS: actual probe binds native events to fresh immutable commits, permits delayed emission, rejects unrelated expiry closure and premature stop
|
||||
PASS: actual noSplash Load body requires both explicit diagnostic and noSplash, preserves vanilla otherwise, and handles repeated Load/reload
|
||||
PASS: actual fixture method permits one native resilience operation and restores either prior protection state, including failure paths
|
||||
PASS: actual safe-exit boundary policy, native action/door selection, stop/cache cleanup, separate old mechanism and opt-in runner contracts
|
||||
PASS: actual one-shot deadline/stability policies and preparation ownership, fuel, cleanup integration contracts
|
||||
PASS: pending-only cancellation retires copied instance intent, preserves physical/control actors, and stops once
|
||||
PASS: actual short-cast hit, upward support normal, no self support and no dynamic support
|
||||
PASS: actual committed-ticket structure preserves reservation after death, rejects missing bodies/seats and ends at observation expiry
|
||||
PASS: actual pending callback expires an empty-server reservation once, preserves its full lease, and cancels on completion/Stop
|
||||
PASS: rescue lease expiry/reordering, fresh five-second settling, independent rescue ranges and grounded upright aircraft motion boundaries
|
||||
PASS: requested guard population requires complete physical conscious membership before deadline
|
||||
......................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 38 tests in 0.021s
|
||||
|
||||
OK
|
||||
..........
|
||||
----------------------------------------------------------------------
|
||||
Ran 10 tests in 0.003s
|
||||
|
||||
OK
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 1.075s
|
||||
|
||||
OK
|
||||
PASS: authored radio/optional-site bounds and physical horizontal/vertical boundaries
|
||||
...
|
||||
----------------------------------------------------------------------
|
||||
Ran 3 tests in 0.001s
|
||||
|
||||
OK
|
||||
PASS: all phase transitions, terminal states, defence boundaries, stale/future observations, intel discovery
|
||||
PASS: Core document-discovery alias, companion-only alias exclusion, strict integer parsing and setting boundaries
|
||||
PASS: player admission phase/life/identity/controller matrix, preload displacement limits, pending reservation overlap and owner exclusion
|
||||
PASS: actual gate and pre-inventory document guards reject noncanonical/faction/life/disconnect/server mismatches; canonical reconnect and unconscious carried intel preserved
|
||||
PASS: WB-only native fault injection restores both body mutations before checks/returns and requires eligible held-document negative/positive proof; runtime pending
|
||||
PASS: actual discovery coordinates disclose stable 500m cell center until identified, then exact point, including negative/boundary coordinates
|
||||
PASS: actual local admission context/selection/latch, same-round late identity, replacement/mode failure, fresh round and untouched network path
|
||||
PASS: prison search packs 16 unique 3m-spaced inside-wall centers, prioritizes inner/edge positions and never bypasses clearance
|
||||
PASS: physical body occupancy rejects overlap, permits diagonal neighboring slots, and excludes own body and unrelated broad-phase bounds
|
||||
PASS: recovery state excludes dead bodies, preserves reservations, requires controlled rescuers and distinguishes empty/all-dead teams
|
||||
PASS: actual native-probe lifecycle/counters with doubled boundaries; fixed deadline, exact seven sources, true forwarding, async close, no late updates and selector wiring
|
||||
PASS: actual one-argument adapter, explicit refresh, native initialization flag, duplicate/blood ownership, rebind/detach/destruction and foreign-mode transparency
|
||||
PASS: authority-scoped slow recovery, bleeding pauses resilience, medicine unaffected, player-only lethal damage cap without healing
|
||||
PASS: bleeding severity survives low health, retains armour, causes no knockout and restores the actual damage/blood-loss cap
|
||||
PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat
|
||||
PASS: every minute round-trips, malformed clocks rejected, defaults limited to added keys, progression bounds and day duration aligned
|
||||
PASS: native settings policy matches calendar boundaries 1900-2050, date/profile parsing is strict, authored defaults preserve old worlds
|
||||
PASS: view-distance bounds, default, save failures, command parsing, temporary ownership, server/platform limits and lifecycle wiring
|
||||
.....
|
||||
----------------------------------------------------------------------
|
||||
Ran 5 tests in 0.649s
|
||||
|
||||
OK
|
||||
.
|
||||
----------------------------------------------------------------------
|
||||
Ran 1 test in 0.439s
|
||||
|
||||
OK
|
||||
PASS: radio authorization/discovery/phase matrix, exact distance limits, defender handover, interruption, empty samples, clock regression and duration boundary
|
||||
PASS: actual radio feedback policy, initial wait, interruption persistence, resumption and terminal/new-round reset
|
||||
...............
|
||||
----------------------------------------------------------------------
|
||||
Ran 15 tests in 2.361s
|
||||
|
||||
OK
|
||||
..............................................
|
||||
----------------------------------------------------------------------
|
||||
Ran 46 tests in 0.973s
|
||||
|
||||
OK
|
||||
PASS: legacy values preserved, unsupported fields reported, invalid data rejected, existing files protected, runtime bounds aligned
|
||||
PASS: failed initial settings promotion leaves defaults writable after restart; prior/fallback saves survive copy, readback and mismatch faults
|
||||
PASS: real-carrier shortest-hop paths, 500m boundary, three-hop cap, no-manpack failure, three-second originating-call interruption, unchanged downlink hop timing, completed-hop survival, interrupted final uplink, radio loss, capture, motion, timeout, reset and network bounds
|
||||
PASS: migrated aircraft availability policy (controller migration still pending)
|
||||
PASS: migrated salvo offsets are deterministic, spread and bounded (native firing and complete salvo qualification are separate)
|
||||
All repository checks passed. Native compilation and multiplayer tests are separate requirements.
|
||||
@@ -0,0 +1,538 @@
|
||||
---------------------------------------------
|
||||
Log /home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/profile/logs/logs_2026-10-05_18-57-09/console.log started at 2026-10-05 18:57:09 (2026-10-05 16:57:09 UTC)
|
||||
|
||||
18:57:09.205 ENGINE : FileSystem: Adding relative directory '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/profile/logs/logs_2026-10-05_18-57-09' to filesystem under name logs
|
||||
18:57:09.205 ENGINE : FileSystem: Adding relative directory '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/profile/profile' to filesystem under name profile
|
||||
18:57:09.205 ENGINE : FileSystem: Current working directory: '/tmp/runtime/'
|
||||
18:57:09.207 ENGINE : Initializing engine, version 192142
|
||||
18:57:09.207 ENGINE : CLI Params: -server {C1E20667DCE324ED}Missions/ERR_Everon.conf -addonsDir /home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons -addons 2528466DE220D91C,70C981A53E02B64F -profile /home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/profile -noBackend -noSound -bindIP 127.0.0.1 -bindPort 2001 -maxFPS 30 -logconsole -noSplash -noThrow -disableCrashReporter
|
||||
18:57:09.214 ENGINE : Addon dirs:
|
||||
18:57:09.214 ENGINE : dir: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons'
|
||||
18:57:09.214 ENGINE : dir: './addons'
|
||||
18:57:09.214 ENGINE : dir: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/profile/addons'
|
||||
18:57:09.214 ENGINE : Available addons:
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF' (packed)
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB' (packed)
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6' (packed)
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B' (packed)
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577' (packed)
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2' (packed)
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E' (packed)
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERR_Core/addon.gproj' guid: '2528466DE220D91C'
|
||||
18:57:09.214 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/Nogova/addon.gproj' guid: '70C981A53E02B64F'
|
||||
18:57:09.214 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed)
|
||||
18:57:09.214 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed)
|
||||
18:57:09.214 ENGINE : FileSystem: Adding relative directory '/home/jakub/devel/gabreta/addons/NogovaReforger' to filesystem under name NogovaReforger
|
||||
18:57:09.214 ENGINE : FileSystem: Adding relative directory '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/source' to filesystem under name ERR_Core
|
||||
18:57:09.214 ENGINE : FileSystem: Adding package '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_65930CB4CD0237B2/' (pak count: 1) to filesystem under name Parachutes
|
||||
18:57:09.214 ENGINE : FileSystem: Adding package '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E524E4FEECCA92B/' (pak count: 1) to filesystem under name WCS_BMP-1
|
||||
18:57:09.215 ENGINE : FileSystem: Adding package '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E389BB9F58B79A6/' (pak count: 1) to filesystem under name WCS_SpaceCore
|
||||
18:57:09.216 ENGINE : FileSystem: Adding package '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_629B2BA37EFFD577/' (pak count: 1) to filesystem under name WCS_Armaments
|
||||
18:57:09.224 ENGINE : FileSystem: Adding package '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_595F2BF2F44836FB/' (pak count: 1) to filesystem under name RHS_Core
|
||||
18:57:09.225 ENGINE : FileSystem: Adding package '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_BADC0DEDABBEDA5E/' (pak count: 2) to filesystem under name RHS_Content_02
|
||||
18:57:09.229 ENGINE : FileSystem: Adding package '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_1337C0DE5DABBEEF/' (pak count: 4) to filesystem under name RHS_Content_01
|
||||
18:57:09.357 ENGINE : FileSystem: Adding package './addons/data/' (pak count: 14) to filesystem under name ArmaReforger
|
||||
18:57:09.361 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core
|
||||
18:57:09.361 ENGINE : CPU vendor : AuthenticAMD
|
||||
18:57:09.361 ENGINE : CPU type : 2
|
||||
18:57:09.361 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor
|
||||
18:57:09.361 ENGINE : CPU cache info : Unknown cache
|
||||
18:57:09.361 ENGINE : CPU count logical : 16
|
||||
18:57:09.361 ENGINE : CPU count physical : 8
|
||||
18:57:09.361 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2
|
||||
18:57:09.361 RESOURCES : ResourceDB: loading cache (id=0 name=NogovaReforger path=/home/jakub/devel/gabreta/addons/NogovaReforger/resourceDatabase.rdb)
|
||||
18:57:09.373 RESOURCES : ResourceDB: loading cache (id=1 name=ERR_Core path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/source/resourceDatabase.rdb)
|
||||
18:57:09.373 RESOURCES : ResourceDB: loading cache (id=2 name=Parachutes path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_65930CB4CD0237B2/resourceDatabase.rdb)
|
||||
18:57:09.374 RESOURCES : ResourceDB: loading cache (id=3 name=WCS_BMP-1 path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E524E4FEECCA92B/resourceDatabase.rdb)
|
||||
18:57:09.374 RESOURCES : ResourceDB: loading cache (id=4 name=WCS_SpaceCore path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E389BB9F58B79A6/resourceDatabase.rdb)
|
||||
18:57:09.374 RESOURCES : ResourceDB: loading cache (id=5 name=WCS_Armaments path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_629B2BA37EFFD577/resourceDatabase.rdb)
|
||||
18:57:09.377 RESOURCES : ResourceDB: loading cache (id=6 name=RHS_Core path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_595F2BF2F44836FB/resourceDatabase.rdb)
|
||||
18:57:09.389 RESOURCES : ResourceDB: loading cache (id=7 name=RHS_Content_02 path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_BADC0DEDABBEDA5E/resourceDatabase.rdb)
|
||||
18:57:09.390 RESOURCES : ResourceDB: loading cache (id=8 name=RHS_Content_01 path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_1337C0DE5DABBEEF/resourceDatabase.rdb)
|
||||
18:57:09.397 RESOURCES : ResourceDB: loading cache (id=9 name=ArmaReforger path=./addons/data/resourceDatabase.rdb)
|
||||
18:57:09.548 RESOURCES : ResourceDB: loading cache (id=10 name=core path=./addons/core/resourceDatabase.rdb)
|
||||
18:57:09.550 RESOURCES : ResourceDB: loading cache (id=11 name=profile path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/profile/profile/resourceDatabase.rdb)
|
||||
18:57:09.550 RESOURCES : ResourceDB: loading cache (id=12 name=logs path=/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/profile/logs/logs_2026-10-05_18-57-09/resourceDatabase.rdb)
|
||||
18:57:09.762 ENGINE : GameProject load
|
||||
18:57:09.762 ENGINE : Loaded addons:
|
||||
18:57:09.762 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C'
|
||||
18:57:09.762 ENGINE : gproj: './addons/data/ArmaReforger.gproj' guid: '58D0FB3206B6F859'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERR_Core/addon.gproj' guid: '2528466DE220D91C'
|
||||
18:57:09.762 ENGINE : gproj: '/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/Nogova/addon.gproj' guid: '70C981A53E02B64F'
|
||||
18:57:09.763 ENGINE : GameProject load
|
||||
18:57:09.763 INIT : GameProject load project data @"/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_595F2BF2F44836FB/addon.gproj"
|
||||
18:57:09.763 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource"
|
||||
18:57:09.764 INIT : GameProject load project data @"/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_629B2BA37EFFD577/addon.gproj"
|
||||
18:57:09.764 RESOURCES (E): Wrong GUID/name for resource @"{41FA2A08B6971D4C}Language/wcs_armament_localization.st" in property "StringTableSource"
|
||||
18:57:09.764 INIT : GameProject load project data @"/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E389BB9F58B79A6/addon.gproj"
|
||||
18:57:09.764 RESOURCES (E): Wrong GUID/name for resource @"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st" in property "StringTableSource"
|
||||
18:57:09.764 INIT : GameProject load project data @"/home/jakub/devel/escapistsrereintroduced/.local/uaz-test-tmp/native/hunter-radius-20261005/addons/ERRI_5E524E4FEECCA92B/addon.gproj"
|
||||
18:57:09.764 RESOURCES (E): Wrong GUID/name for resource @"{E50E557B468C7073}Language/wcs_bmp1_localization.st" in property "StringTableSource"
|
||||
18:57:09.764 ENGINE : Loading custom engine user config '$profile:.save/settings/ReforgerEngineSettings.conf'
|
||||
18:57:09.764 ENGINE : No Enfusion settings file loaded. Continuing with defaults
|
||||
18:57:09.764 RENDER : Basic screen setup:
|
||||
18:57:09.764 RENDER : Back buffer width x height: 0x0
|
||||
18:57:09.764 RENDER : Back buffer format : TEXFMT_UNKNOWN (0)
|
||||
18:57:09.764 RENDER : MSAA : none
|
||||
18:57:09.764 RENDER : GPU_DUMMY (0xFFFF) (Enfusion dummy render) with 1 GPU detected, VRAM 128MB (fast 128MB), shared 128MB, driver version Unknown version
|
||||
18:57:09.764 RENDER : Detected output devices:
|
||||
18:57:09.764 RENDER : * 1 device/s connected to Dummy:
|
||||
18:57:09.764 RENDER : Dummy output (Dummy device for our dummy render.), 1920x1080 (offset 0x0), 60Hz
|
||||
18:57:09.764 RENDER : Concurrent frames limit 2
|
||||
18:57:09.764 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=7
|
||||
18:57:09.779 PROFILING : Settings changed took: 0.024000 ms
|
||||
18:57:09.781 ENGINE : Initializing inputs.
|
||||
18:57:09.787 NETWORK : Initializing networking.
|
||||
18:57:09.787 NETWORK : Using new GameRplScheduler.
|
||||
18:57:09.788 SCRIPT : SCRIPT : Initializing scripts
|
||||
18:57:09.788 SCRIPT : SCRIPT : ScriptProjectManager init
|
||||
18:57:09.788 PROFILING : ScriptProjectManager init took: 0.009000 ms
|
||||
18:57:09.806 PROFILING : Initializing scripts took: 18.014000 ms
|
||||
18:57:09.806 BACKEND : Backend Services are disabled.
|
||||
18:57:09.806 ENGINE : Enfusion engine successfully created.
|
||||
18:57:09.808 GUI : Using default language (en_us)
|
||||
18:57:09.808 GUI : Loading 'en_us' localization file.
|
||||
18:57:09.808 INIT : INIT : Loading StringTable
|
||||
18:57:09.834 PROFILING : Loading StringTable took: 25.967000 ms
|
||||
18:57:09.834 SCRIPT : SCRIPT : Compiling GameLib scripts
|
||||
18:57:09.865 SCRIPT : Module: GameLib; loaded 466x files; 608x classes; used 654K of static memory; defines: "PLATFORM_LINUX,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: d66caacb
|
||||
18:57:09.866 PROFILING : Compiling GameLib scripts took: 31.734000 ms
|
||||
18:57:09.866 SCRIPT : SCRIPT : Compiling Game scripts
|
||||
18:57:10.589 SCRIPT : Compiling Game scripts
|
||||
18:57:10.589 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables
|
||||
18:57:11.026 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,785": 'GetPlayerPlatformKind' is obsolete
|
||||
18:57:11.026 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,786": 'GetPlayerPlatformId' is obsolete
|
||||
18:57:11.366 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,359": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
18:57:11.382 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed
|
||||
18:57:11.428 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete
|
||||
18:57:11.609 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete
|
||||
18:57:11.609 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete
|
||||
18:57:11.609 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete
|
||||
18:57:11.609 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete
|
||||
18:57:11.647 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead
|
||||
18:57:11.708 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c,64": 'GetPlayerIdentityId' is obsolete
|
||||
18:57:11.721 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete
|
||||
18:57:11.721 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete
|
||||
18:57:11.722 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete
|
||||
18:57:11.786 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,45": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
18:57:11.786 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,56": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly.
|
||||
18:57:11.788 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api.
|
||||
18:57:11.788 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api.
|
||||
18:57:11.853 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete
|
||||
18:57:12.065 SCRIPT : Module: Game; loaded 6730x files; 13500x classes; used 33405K of static memory; defines: "PLATFORM_LINUX,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: 9845064c
|
||||
18:57:12.092 PROFILING : Compiling Game scripts took: 2225.987000 ms
|
||||
18:57:12.092 INIT : Creating game instance(ArmaReforgerScripted), version 1.8.0.13 built 2026-08-21 14:30:18 UTC.
|
||||
18:57:12.123 ENGINE : Game successfully created.
|
||||
18:57:12.189 PLATFORM : Save data from container 'settings' have been loaded
|
||||
18:57:12.289 PLATFORM : Save data from container 'sessions' have been loaded
|
||||
18:57:12.289 PLATFORM : System language differs from the saved one - using new language {new: 'en_us'; old: ''}
|
||||
18:57:12.289 PLATFORM : Save data transaction to 'settings' started.
|
||||
18:57:12.289 NETWORK : Starting local multiplayer server using command line args.
|
||||
18:57:12.388 DEFAULT : [SaveGameManager] Starting new playthrough nr.0 '' for mission '{C1E20667DCE324ED}Missions/ERR_Everon.conf'.
|
||||
18:57:12.389 WORLD : WORLD : Entities load '$ERR_Core:Worlds/ERR_Everon.ent'
|
||||
18:57:13.338 PROFILING : Entities load took: 949.130000 ms
|
||||
18:57:13.340 WORLD : WORLD : Game::LoadEntities
|
||||
18:57:13.340 WORLD : WORLD : Initializing world systems @"{C50579A2EC48E8EF}Configs/Systems/MissionSystems.conf"
|
||||
18:57:13.341 NETWORK : Enabled lag compensation, 29 frames with 100 FPS and 280 ms rewind limits.
|
||||
18:57:13.341 WORLD : WORLD : CreateEntities
|
||||
18:57:13.341 WORLD : WORLD : CreateEntities
|
||||
18:57:13.341 WORLD : WORLD : NotifyBeforeEntitiesCreated
|
||||
18:57:13.343 RESOURCES : Loaded mission headers from 11 addon(s)!
|
||||
18:57:13.343 PROFILING : NotifyBeforeEntitiesCreated took: 1.614000 ms
|
||||
18:57:13.343 WORLD : WORLD : Wait for preloading data
|
||||
18:57:14.870 PROFILING : Wait for preloading data took: 1526.707000 ms
|
||||
18:57:14.946 ENTITY : Create entity @"ENTITY:2" ('Eden', GenericTerrainEntity) at <0.000000 0.000000 0.000000> @"{5AD924374E8C7AF6}Prefabs/World/Game/Eden/GenericTerrain_Eden.et"
|
||||
18:57:14.946 PROFILING : PROFILING : Terrain load
|
||||
18:57:16.558 PROFILING : Terrain load took: 1611.801000 ms
|
||||
18:57:19.605 WORLD : Game::LoadEntities
|
||||
18:57:19.605 WORLD : CreateEntities
|
||||
18:57:19.605 WORLD : CreateEntities
|
||||
18:57:19.605 ENTITY : Create entity @"ENTITY:610406" ('StaticModelEntity','Assets/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.xob') at <1931.796021 81.777000 5138.725098> @"{6A004A8F0571D456}Prefabs/Structures/Infrastructure/Towers/TransmitterTower_01/TransmitterTower_01_small.et"
|
||||
18:57:19.605 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
18:57:19.605 DEFAULT (W): World doesn't contain RadioManagerEntity to support any BaseRadioComponent.
|
||||
18:57:25.098 ENTITY : Create entity @"ENTITY:2305843009213693956" ('Factions', SCR_FactionManager) at <0.000000 0.000000 0.000000> @"{5414041A15DC4B54}Prefabs/ERR/FactionManager.et"
|
||||
18:57:25.098 RESOURCES : GetResourceObject @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
18:57:25.098 WORLD : Entity prefab load @"{442939C9617DF228}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_FIA.et"
|
||||
18:57:25.098 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
18:57:25.098 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
18:57:25.098 RESOURCES : GetResourceObject @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
18:57:25.098 WORLD : Entity prefab load @"{532B5F3CF8496E59}Prefabs/Vehicles/Wheeled/BRDM2/BRDM2_base.et"
|
||||
18:57:25.098 WORLD (E): Unknown keyword/data 'Parent' at offset 35955(0x8c73)
|
||||
18:57:25.098 WORLD (E): Unknown keyword/data 'Parent' at offset 36915(0x9033)
|
||||
18:57:25.100 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
18:57:25.100 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
18:57:25.100 RESOURCES : GetResourceObject @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
18:57:25.100 WORLD : Entity prefab load @"{B47110AA1A806556}Prefabs/Vehicles/Wheeled/BTR70/BTR70_FIA.et"
|
||||
18:57:25.100 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
18:57:25.100 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
18:57:25.100 RESOURCES : GetResourceObject @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
18:57:25.100 WORLD : Entity prefab load @"{1C5FE7B7FF49BB8D}Prefabs/Vehicles/Wheeled/BTR70/BTR70_Base.et"
|
||||
18:57:25.100 WORLD (E): Unknown keyword/data 'Parent' at offset 42646(0xa696)
|
||||
18:57:25.100 WORLD (E): Unknown keyword/data 'Parent' at offset 43645(0xaa7d)
|
||||
18:57:25.100 WORLD (E): Unknown keyword/data 'Parent' at offset 44617(0xae49)
|
||||
18:57:25.100 WORLD (E): Unknown keyword/data 'Parent' at offset 45590(0xb216)
|
||||
18:57:25.203 RESOURCES : GetResourceObject @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
18:57:25.203 WORLD : Entity prefab load @"{F6B23D17D5067C11}Prefabs/Vehicles/Wheeled/M151A2/M151A2_M2HB.et"
|
||||
18:57:25.203 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
18:57:25.203 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
18:57:25.203 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
18:57:25.203 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
18:57:25.203 RESOURCES : GetResourceObject @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
18:57:25.203 WORLD : Entity prefab load @"{F649585ABB3706C4}Prefabs/Vehicles/Wheeled/M151A2/M151A2.et"
|
||||
18:57:25.203 WORLD (E): Unknown keyword/data 'SlidingTrackMaterial' at offset 19441(0x4bf1)
|
||||
18:57:25.646 WORLD : WORLD : NotifyBeforeEntitiesInitialized
|
||||
18:57:25.646 PROFILING : NotifyBeforeEntitiesInitialized took: 0.038000 ms
|
||||
18:57:25.646 WORLD : InitEntities 'world'
|
||||
18:57:25.646 ENTITY : Init entity @"ENTITY:3" ('SCR_MapEntity1', SCR_MapEntity) at <6400.000000 0.000000 6400.000000> @"{E1B88C66BF6CA1F9}Prefabs/World/Game/Eden/MapEntity_Everon.et"
|
||||
18:57:25.646 SCRIPT (W): SCR_MapEntity: Cannot get the size from terrain. Using default.
|
||||
18:57:26.235 WORLD : InitEntities 'world'
|
||||
18:57:26.235 ENTITY : Init entity @"ENTITY:2305843009213693953" ('Reintroduced', ERR_GameMode) at <60.452000 1.000000 213.136002> @"{978E045E53EF36C8}Prefabs/ERR/GameMode.et"
|
||||
18:57:26.235 SCRIPT : Reintroduced [config]: using $profile:Escapists.json; legacy files retained but no longer used.
|
||||
18:57:26.241 WORLD : WORLD : NotifyEntitiesInitialized
|
||||
18:57:26.241 TERRAIN : TERRAIN : Initializing road networks...
|
||||
18:57:26.244 PROFILING : Initializing road networks... took: 2.559000 ms
|
||||
18:57:26.306 SCRIPT : Reintroduced [terrain selection]: discovered 46 playable scenario headers; truncated=0
|
||||
18:57:26.306 DEFAULT : DEFAULT : WorldVolumesCollection
|
||||
18:57:26.368 PROFILING : WorldVolumesCollection took: 61.810000 ms
|
||||
18:57:26.368 INIT : INIT : SoundWorldInit
|
||||
18:57:26.386 PROFILING : SoundWorldInit took: 17.386000 ms
|
||||
18:57:26.386 PROFILING : NotifyEntitiesInitialized took: 144.763000 ms
|
||||
18:57:26.386 PROFILING : CreateEntities took: 13044.645000 ms
|
||||
18:57:26.386 PROFILING : CreateEntities took: 13044.660000 ms
|
||||
18:57:26.386 WORLD : WORLD : EOnActivate
|
||||
18:57:26.421 PROFILING : EOnActivate took: 34.852000 ms
|
||||
18:57:26.421 PROFILING : Game::LoadEntities took: 13081.184000 ms
|
||||
18:57:26.484 NETWORK : Starting RPL server, listening on address 0.0.0.0:2001, fastValidation=false
|
||||
18:57:26.972 DEFAULT : Entered online game state.
|
||||
18:57:26.973 PROFILING : Settings changed took: 0.427000 ms
|
||||
18:57:30.011 SCRIPT : Map load time: 1803ms
|
||||
18:57:30.094 WORLD : Frame start
|
||||
18:57:30.094 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated.
|
||||
18:57:30.102 WORLD : UpdateEntities
|
||||
18:57:30.102 WORLD : Frame
|
||||
18:57:30.102 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME
|
||||
18:57:31.517 SCRIPT : Co10 Escape Reintroduced factions: players=US enemy=USSR independent=FIA
|
||||
18:57:33.004 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-prison-1 position=<7288.09,122.994,5188.44> heading=238.411 attempts=136 fallback=0
|
||||
18:57:34.720 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-radio-1 position=<5758.26,85.748,5291.57> heading=345.311 attempts=1981 fallback=0
|
||||
18:57:36.319 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-1 position=<5669.14,27.9815,10162> heading=11.0306 attempts=1666 fallback=0
|
||||
18:57:36.590 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-2 position=<5537.81,85.4931,5660.33> heading=130.544 attempts=473 fallback=0
|
||||
18:57:37.116 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-3 position=<4777.19,27.8638,11135.9> heading=358.704 attempts=284 fallback=0
|
||||
18:57:37.919 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-mortar-4 position=<3284.1,1.21308,1574.27> heading=167.261 attempts=1039 fallback=0
|
||||
18:57:39.517 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-1 position=<4683.39,16.5985,10358.1> heading=119.03 attempts=1380 fallback=0
|
||||
18:57:40.853 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-outpost-1 position=<2573.51,106.864,5677.91> heading=233.752 attempts=1551 fallback=0
|
||||
18:57:41.383 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-2 position=<6286.31,87.29,5665.41> heading=285.203 attempts=552 fallback=0
|
||||
18:57:42.456 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-medical-3 position=<1608.08,61.9378,5861.9> heading=271.557 attempts=1470 fallback=0
|
||||
18:57:44.589 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-2 position=<4604.43,23.5992,9675.69> heading=293.816 attempts=2508 fallback=0
|
||||
18:57:45.920 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-3 position=<3825.05,59.4637,7043.58> heading=263.229 attempts=1342 fallback=0
|
||||
18:57:47.522 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-4 position=<4610.69,84.9887,8583.47> heading=59.0094 attempts=1743 fallback=0
|
||||
18:57:49.651 SCRIPT : Co10 Escape Reintroduced [generated site]: id=everon-camp-5 position=<4939.79,2.2075,3879.81> heading=238.059 attempts=2041 fallback=0
|
||||
18:57:49.660 SCRIPT : Reintroduced [sites]: authored everon-prison-1 at <7288.09,123.287,5188.44>
|
||||
18:57:49.660 SCRIPT : Reintroduced [sites]: cache clearance position=<6150,203.288,7050> clear=1
|
||||
18:57:49.666 SCRIPT : Reintroduced [sites]: authored everon-supply-1 at <6150,203.288,7050>
|
||||
18:57:49.668 ENTITY : SpawnEntityPrefab @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
18:57:49.668 ENTITY : Create entity @"ENTITY:4611686018427388511" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <5750.978516 85.928459 5291.729004> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"
|
||||
18:57:49.668 ENTITY : CreateComponent 'ScriptedRadioComponent'
|
||||
18:57:49.668 DEFAULT (W): BaseRadioComponent does not have any transceiver. (Entity: @"ENTITY:4611686018427388511" ('GenericEntity','Assets/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02.xob') at <5750.978516 85.928459 5291.729004> @"{B3949F6D215A9F78}Prefabs/Props/Military/Antennas/Antenna_FIA_02/Antenna_FIA_02_base.et"). Only printing this message once. There're possibly more nodes with this requirement.
|
||||
18:57:49.672 SCRIPT : Reintroduced [sites]: authored everon-radio-1 at <5758.26,85.8812,5291.57>
|
||||
18:57:49.705 SCRIPT : Reintroduced [sites]: authored everon-extraction-1 at <4800.95,27.8202,11487.4>
|
||||
18:57:49.715 SCRIPT : Reintroduced [sites]: authored everon-medical-1 at <4683.39,16.8304,10358.1>
|
||||
18:57:49.719 SCRIPT : Reintroduced [sites]: authored everon-outpost-1 at <2573.51,107.067,5677.91>
|
||||
18:57:49.719 SCRIPT : Reintroduced [sites]: authored everon-mortar-1 at <5669.14,28.3192,10162>
|
||||
18:57:49.719 SCRIPT : Reintroduced [sites]: authored everon-mortar-2 at <5537.81,85.7875,5660.33>
|
||||
18:57:49.719 SCRIPT : Reintroduced [sites]: authored everon-mortar-3 at <4777.19,27.9438,11135.9>
|
||||
18:57:49.719 SCRIPT : Reintroduced [sites]: authored everon-mortar-4 at <3284.1,1.5417,1574.27>
|
||||
18:57:49.723 SCRIPT : Reintroduced [sites]: authored everon-medical-2 at <6286.31,87.5467,5665.41>
|
||||
18:57:49.726 SCRIPT : Reintroduced [sites]: authored everon-medical-3 at <1608.08,62.2237,5861.9>
|
||||
18:57:49.729 SCRIPT : Reintroduced [sites]: authored everon-camp-2 at <4604.43,24.013,9675.69>
|
||||
18:57:49.733 SCRIPT : Reintroduced [sites]: authored everon-camp-3 at <3825.05,59.8614,7043.58>
|
||||
18:57:49.736 SCRIPT : Reintroduced [sites]: authored everon-camp-4 at <4610.69,85.1625,8583.47>
|
||||
18:57:49.739 SCRIPT : Reintroduced [sites]: authored everon-camp-5 at <4939.79,2.2875,3879.81>
|
||||
18:57:49.740 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4800.95,27.8202,11487.4> up=1
|
||||
18:57:49.740 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0 angularSpeed=0
|
||||
18:57:49.740 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=0 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
18:57:49.740 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4800.95,28.1168,11489.7>
|
||||
18:57:49.740 SCRIPT : ERR GEAR TERRAIN: bottom=<4800.95,27.8168,11489.7> terrainY=27.7202 tireTerrainGap=0.0965805
|
||||
18:57:49.740 SCRIPT : ERR GEAR SUPPORT: center=<4800.95,28.1168,11489.7> radius=0.3 bottom=<4800.95,27.8168,11489.7> fraction=0.893554 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.0965824
|
||||
18:57:49.740 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.68,28.585,11485.4>
|
||||
18:57:49.740 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.68,28.135,11485.4> terrainY=27.8121 tireTerrainGap=0.322891
|
||||
18:57:49.740 SCRIPT : ERR GEAR SUPPORT: center=<4798.68,28.585,11485.4> radius=0.45 bottom=<4798.68,28.135,11485.4> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
|
||||
18:57:49.740 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.23,28.585,11485.4>
|
||||
18:57:49.740 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.23,28.135,11485.4> terrainY=27.649 tireTerrainGap=0.485987
|
||||
18:57:49.740 SCRIPT : ERR GEAR SUPPORT: center=<4803.23,28.585,11485.4> radius=0.45 bottom=<4803.23,28.135,11485.4> fraction=1 normal=<0,0,0> self=0 dynamic=0 supported=0 gap=0.120001
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:49.740 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=0 conscious=0 nativeComplete=0
|
||||
18:57:50.716 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=0 origin=<4801.01,27.599,11487.4> up=0.997118
|
||||
18:57:50.716 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.703446 angularSpeed=0.166169
|
||||
18:57:50.716 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
18:57:50.716 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.07,27.9685,11489.6>
|
||||
18:57:50.716 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.07,27.6685,11489.6> terrainY=27.7165 tireTerrainGap=-0.0479908
|
||||
18:57:50.716 SCRIPT : ERR GEAR SUPPORT: center=<4801.07,27.9685,11489.6> radius=0.3 bottom=<4801.07,27.6685,11489.6> fraction=0.236417 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.0479889
|
||||
18:57:50.716 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.71,28.2298,11485.4>
|
||||
18:57:50.716 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.71,27.7798,11485.4> terrainY=27.8104 tireTerrainGap=-0.0306225
|
||||
18:57:50.716 SCRIPT : ERR GEAR SUPPORT: center=<4798.71,28.2298,11485.4> radius=0.45 bottom=<4798.71,27.7798,11485.4> fraction=0.315282 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.0306377
|
||||
18:57:50.716 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.25,28.0823,11485.3>
|
||||
18:57:50.716 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.25,27.6323,11485.3> terrainY=27.6483 tireTerrainGap=-0.0160923
|
||||
18:57:50.716 SCRIPT : ERR GEAR SUPPORT: center=<4803.25,28.0823,11485.3> radius=0.45 bottom=<4803.25,27.6323,11485.3> fraction=0.381375 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.016098
|
||||
18:57:50.716 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:50.716 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:50.716 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:50.716 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:50.716 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:51.249 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:51.249 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:51.249 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:51.249 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:51.782 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.03,27.5922,11487.4> up=0.996387
|
||||
18:57:51.782 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.200441 angularSpeed=0.0437107
|
||||
18:57:51.782 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.3
|
||||
18:57:51.782 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.09,28.0272,11489.6>
|
||||
18:57:51.782 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.09,27.7272,11489.6> terrainY=27.7161 tireTerrainGap=0.011095
|
||||
18:57:51.782 SCRIPT : ERR GEAR SUPPORT: center=<4801.09,28.0272,11489.6> radius=0.3 bottom=<4801.09,27.7272,11489.6> fraction=0.504961 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.0110912
|
||||
18:57:51.782 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.73,28.2658,11485.4>
|
||||
18:57:51.782 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.73,27.8158,11485.4> terrainY=27.8094 tireTerrainGap=0.00644875
|
||||
18:57:51.782 SCRIPT : ERR GEAR SUPPORT: center=<4798.73,28.2658,11485.4> radius=0.45 bottom=<4798.73,27.8158,11485.4> fraction=0.483788 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=0.00643349
|
||||
18:57:51.782 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.28,28.1062,11485.3>
|
||||
18:57:51.782 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.28,27.6562,11485.3> terrainY=27.6474 tireTerrainGap=0.0087719
|
||||
18:57:51.782 SCRIPT : ERR GEAR SUPPORT: center=<4803.28,28.1062,11485.3> radius=0.45 bottom=<4803.28,27.6562,11485.3> fraction=0.494414 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.0087719
|
||||
18:57:51.782 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:51.782 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:51.782 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:51.782 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:51.782 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:52.315 SCRIPT : Reintroduced [extraction placement]: native supported aircraft stable for one second, fuel present, exactly one initial wake
|
||||
18:57:52.315 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:52.315 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:52.315 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:52.315 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:52.849 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.08,27.5872,11487.4> up=0.996173
|
||||
18:57:52.849 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=1 speed=0.068103 angularSpeed=0.0418337
|
||||
18:57:52.849 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
18:57:52.849 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.15,28.0128,11489.6>
|
||||
18:57:52.849 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.15,27.7128,11489.6> terrainY=27.714 tireTerrainGap=-0.00118637
|
||||
18:57:52.849 SCRIPT : ERR GEAR SUPPORT: center=<4801.15,28.0128,11489.6> radius=0.3 bottom=<4801.15,27.7128,11489.6> fraction=0.449171 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00118256
|
||||
18:57:52.849 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.77,28.2524,11485.4>
|
||||
18:57:52.849 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.77,27.8024,11485.4> terrainY=27.8078 tireTerrainGap=-0.00541496
|
||||
18:57:52.849 SCRIPT : ERR GEAR SUPPORT: center=<4798.77,28.2524,11485.4> radius=0.45 bottom=<4798.77,27.8024,11485.4> fraction=0.429871 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.00542831
|
||||
18:57:52.849 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.32,28.0914,11485.3>
|
||||
18:57:52.849 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.32,27.6414,11485.3> terrainY=27.6464 tireTerrainGap=-0.00501442
|
||||
18:57:52.849 SCRIPT : ERR GEAR SUPPORT: center=<4803.32,28.0914,11485.3> radius=0.45 bottom=<4803.32,27.6414,11485.3> fraction=0.431754 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00501442
|
||||
18:57:52.849 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:52.849 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:52.850 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:52.850 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:52.850 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:53.382 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:53.382 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:53.382 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:53.382 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:53.915 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996038
|
||||
18:57:53.915 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
18:57:53.915 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
18:57:53.915 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
18:57:53.915 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.00171661
|
||||
18:57:53.915 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462355 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00171852
|
||||
18:57:53.915 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
18:57:53.915 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00235748
|
||||
18:57:53.915 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443688 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.002388
|
||||
18:57:53.915 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
18:57:53.916 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.0026207
|
||||
18:57:53.916 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
18:57:53.916 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:53.916 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:53.916 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:53.916 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:53.916 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:54.203 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:54.203 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:54.203 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:54.203 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:54.736 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:54.736 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:54.736 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:54.736 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:55.015 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996038
|
||||
18:57:55.015 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
18:57:55.015 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
18:57:55.015 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
18:57:55.015 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.00171661
|
||||
18:57:55.015 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462355 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00171852
|
||||
18:57:55.015 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
18:57:55.015 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00235748
|
||||
18:57:55.015 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443688 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.002388
|
||||
18:57:55.015 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
18:57:55.015 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.0026207
|
||||
18:57:55.015 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
18:57:55.015 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:55.249 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:55.249 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
18:57:55.249 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=4 conscious=4 nativeComplete=0
|
||||
18:57:55.249 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:55.815 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:55.816 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:55.816 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=1 conscious=1 nativeComplete=0
|
||||
18:57:55.816 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:56.082 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996038
|
||||
18:57:56.082 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
18:57:56.082 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
18:57:56.082 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
18:57:56.082 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.00171661
|
||||
18:57:56.082 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462355 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00171852
|
||||
18:57:56.082 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
18:57:56.082 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00235748
|
||||
18:57:56.082 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443688 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.002388
|
||||
18:57:56.082 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
18:57:56.082 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.0026207
|
||||
18:57:56.082 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
18:57:56.082 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:56.349 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:56.349 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:56.349 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:56.350 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=2 physical=2 conscious=2 nativeComplete=1
|
||||
18:57:56.882 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=4 conscious=4 nativeComplete=0
|
||||
18:57:56.882 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=4 conscious=4 nativeComplete=0
|
||||
18:57:56.883 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:56.883 SCRIPT : Reintroduced [guards]: initial site=everon-camp-5 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:57.149 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996038
|
||||
18:57:57.149 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
18:57:57.149 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
18:57:57.149 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
18:57:57.149 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.00171661
|
||||
18:57:57.149 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462355 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00171852
|
||||
18:57:57.149 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
18:57:57.149 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00235748
|
||||
18:57:57.149 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443688 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.002388
|
||||
18:57:57.149 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
18:57:57.149 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.0026207
|
||||
18:57:57.149 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
18:57:57.149 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:57.415 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
18:57:57.417 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=5 conscious=5 nativeComplete=0
|
||||
18:57:57.417 SCRIPT : Reintroduced [guards]: initial site=everon-medical-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:57.417 SCRIPT : Reintroduced [guards]: initial site=everon-outpost-1 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:57.949 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:57.949 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=2 conscious=2 nativeComplete=0
|
||||
18:57:57.950 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:57.950 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:58.218 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996038
|
||||
18:57:58.218 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
18:57:58.218 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
18:57:58.218 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
18:57:58.218 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.00171661
|
||||
18:57:58.218 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462355 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00171852
|
||||
18:57:58.218 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
18:57:58.218 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00235748
|
||||
18:57:58.218 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443688 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.002388
|
||||
18:57:58.218 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
18:57:58.218 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.0026207
|
||||
18:57:58.218 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
18:57:58.218 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:58.482 SCRIPT : Reintroduced [guards]: initial site=everon-prison-1 requested=5 physical=5 conscious=5 nativeComplete=1
|
||||
18:57:58.482 SCRIPT : Reintroduced [guards]: initial site=everon-supply-1 requested=5 physical=5 conscious=5 nativeComplete=1
|
||||
18:57:58.482 SCRIPT : Reintroduced [guards]: initial site=everon-radio-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
18:57:58.482 SCRIPT : Reintroduced [guards]: initial site=everon-extraction-1 requested=6 physical=6 conscious=6 nativeComplete=1
|
||||
18:57:59.016 SCRIPT : Reintroduced [guards]: initial site=everon-medical-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:59.016 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=3 conscious=3 nativeComplete=0
|
||||
18:57:59.016 SCRIPT : Reintroduced [guards]: initial site=everon-camp-2 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:59.016 SCRIPT : Reintroduced [guards]: initial site=everon-camp-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:59.282 SCRIPT : ERR EXTRACTION PLACEMENT: wakes=1 alive=1 ready=1 origin=<4801.1,27.5902,11487.4> up=0.996038
|
||||
18:57:59.282 SCRIPT : ERR EXTRACTION PHYSICS: dynamic=1 awake=0 speed=0 angularSpeed=0
|
||||
18:57:59.282 SCRIPT : ERR EXTRACTION NATIVE: valid=1 contact=1 engine=0 origin=<0,0,0> up=1 entityDifference=12450.4
|
||||
18:57:59.282 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_F node=-1704401612 center=<4801.19,28.0145,11489.6>
|
||||
18:57:59.282 SCRIPT : ERR GEAR TERRAIN: bottom=<4801.19,27.7145,11489.6> terrainY=27.7127 tireTerrainGap=0.00171661
|
||||
18:57:59.282 SCRIPT : ERR GEAR SUPPORT: center=<4801.19,28.0145,11489.6> radius=0.3 bottom=<4801.19,27.7145,11489.6> fraction=0.462355 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=0.00171852
|
||||
18:57:59.282 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bL node=-410678372 center=<4798.79,28.2546,11485.4>
|
||||
18:57:59.282 SCRIPT : ERR GEAR TERRAIN: bottom=<4798.79,27.8046,11485.4> terrainY=27.8069 tireTerrainGap=-0.00235748
|
||||
18:57:59.282 SCRIPT : ERR GEAR SUPPORT: center=<4798.79,28.2546,11485.4> radius=0.45 bottom=<4798.79,27.8046,11485.4> fraction=0.443688 normal=<0.0468236,0.998903,0> self=0 dynamic=0 supported=1 gap=-0.002388
|
||||
18:57:59.282 SCRIPT : ERR GEAR PIVOT: bone=v_wheel_bR node=-410678366 center=<4803.33,28.0932,11485.3>
|
||||
18:57:59.282 SCRIPT : ERR GEAR TERRAIN: bottom=<4803.33,27.6432,11485.3> terrainY=27.6458 tireTerrainGap=-0.0026207
|
||||
18:57:59.282 SCRIPT : ERR GEAR SUPPORT: center=<4803.33,28.0932,11485.3> radius=0.45 bottom=<4803.33,27.6432,11485.3> fraction=0.442648 normal=<0.0312348,0.999512,0> self=0 dynamic=0 supported=1 gap=-0.00261688
|
||||
18:57:59.282 SCRIPT : ERR EXTRACTION FUEL: manager=1 hasFuel=1
|
||||
18:57:59.549 SCRIPT : Reintroduced [guards]: initial site=everon-medical-3 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:59.549 SCRIPT : Reintroduced [guards]: initial site=everon-camp-4 requested=4 physical=4 conscious=4 nativeComplete=1
|
||||
18:57:59.550 SCRIPT : Reintroduced [sites]: transport parking=<6150,202.725,7038> radius=4 terrainRange=0.625 obstructed=0 clear=1
|
||||
18:57:59.574 SCRIPT : Reintroduced [sites]: 16 sites and 240 physical stock items ready
|
||||
18:58:00.354 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=1 position=<10565.5,229.665,2530.55> heading=180
|
||||
18:58:00.617 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=2 position=<4426.98,67.6955,3981.37> heading=0
|
||||
18:58:00.888 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=3 position=<9339.73,252.115,3232.13> heading=0
|
||||
18:58:02.219 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=4 position=<1750.36,78.8301,5613.45> heading=135
|
||||
18:58:02.488 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=5 position=<8342.25,206.554,1702.79> heading=270
|
||||
18:58:02.754 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=6 position=<5851.67,145.852,6215.82> heading=0
|
||||
18:58:03.021 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=7 position=<5044.93,145.591,7646.33> heading=90
|
||||
18:58:03.283 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=8 position=<9969.8,133.775,651.975> heading=45
|
||||
18:58:03.287 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=9 position=<3451.78,75.9813,4021.22> heading=90
|
||||
18:58:03.554 SCRIPT : Co10 Escape Reintroduced [scout survey]: post=10 position=<8833.56,266.286,4277.48> heading=45
|
||||
18:58:15.015 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-1 faction=USSR group=<0x0000000058ABA700> SCR_AIGroup position=<10565.5,229.678,2530.55> living=1
|
||||
18:58:15.015 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<10565.5,229.665,2530.55> backpack magazines=40
|
||||
18:58:15.549 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-2 faction=USSR group=<0x0000000058AD2100> SCR_AIGroup position=<4426.98,67.8028,3981.37> living=1
|
||||
18:58:15.549 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<4426.98,67.6955,3981.37> backpack magazines=40
|
||||
18:58:15.549 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-3 faction=USSR group=<0x0000000058AE9250> SCR_AIGroup position=<9339.73,252.015,3232.13> living=1
|
||||
18:58:15.549 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9339.73,252.115,3232.13> backpack magazines=40
|
||||
18:58:16.082 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-4 faction=USSR group=<0x0000000058AF17E0> SCR_AIGroup position=<1750.36,78.7301,5613.45> living=1
|
||||
18:58:16.082 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<1750.36,78.8301,5613.45> backpack magazines=40
|
||||
18:58:16.082 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-5 faction=USSR group=<0x0000000058C8AFE0> SCR_AIGroup position=<8342.25,206.644,1702.79> living=1
|
||||
18:58:16.082 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8342.25,206.554,1702.79> backpack magazines=40
|
||||
18:58:16.616 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-6 faction=USSR group=<0x0000000058CA19F0> SCR_AIGroup position=<5851.67,145.778,6215.82> living=1
|
||||
18:58:16.616 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<5851.67,145.852,6215.82> backpack magazines=40
|
||||
18:58:16.616 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-7 faction=USSR group=<0x0000000058E78D90> SCR_AIGroup position=<5044.93,145.491,7646.33> living=1
|
||||
18:58:16.616 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<5044.93,145.591,7646.33> backpack magazines=40
|
||||
18:58:17.149 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-8 faction=USSR group=<0x0000000058F45770> SCR_AIGroup position=<9969.8,133.675,651.975> living=1
|
||||
18:58:17.149 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<9969.8,133.775,651.975> backpack magazines=40
|
||||
18:58:17.149 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-9 faction=USSR group=<0x0000000058F5E530> SCR_AIGroup position=<3451.78,75.8813,4021.22> living=1
|
||||
18:58:17.149 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<3451.78,75.9813,4021.22> backpack magazines=40
|
||||
18:58:17.683 SCRIPT : Reintroduced [SPAWN GROUP]: source=hill-scout-10 faction=USSR group=<0x00000000592433E0> SCR_AIGroup position=<8833.56,266.186,4277.48> living=1
|
||||
18:58:17.683 SCRIPT : Co10 Escape Reintroduced [scout ready]: position=<8833.56,266.286,4277.48> backpack magazines=40
|
||||
18:58:25.183 SCRIPT : Reintroduced [SPAWN GROUP]: source=roadblock-0 faction=USSR group=<0x00000000599329E0> SCR_AIGroup position=<5060.24,22.165,12157.8> living=4
|
||||
18:58:25.183 SCRIPT : Reintroduced [roadblocks]: roadblock-0 at <5067.81,21.8385,12158.7> guards=4 roadPassage=open HQ=registered
|
||||
18:58:27.049 SCRIPT : Reintroduced [SPAWN GROUP]: source=roadblock-1 faction=USSR group=<0x000000005941AE40> SCR_AIGroup position=<7656.02,1.49606,9244.65> living=4
|
||||
18:58:27.049 SCRIPT : Reintroduced [roadblocks]: roadblock-1 at <7649.91,1.60287,9240.1> guards=4 roadPassage=open HQ=registered
|
||||
18:58:29.948 SCRIPT : Reintroduced [roadblocks]: placed=2 requested=4 attempts=117 roadCandidates=28 clearPlans=2; bounded search complete; unsuitable locations skipped
|
||||
18:58:29.949 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-1 location=<5669.14,28.3192,10162> authored=<5669.14,27.9815,10162>
|
||||
18:58:29.955 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-2 location=<5537.81,85.7875,5660.33> authored=<5537.81,85.4931,5660.33>
|
||||
18:58:29.958 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-3 location=<4777.19,27.9438,11135.9> authored=<4777.19,27.8638,11135.9>
|
||||
18:58:29.960 SCRIPT : Reintroduced [mortars]: preparing everon-mortar-4 location=<3284.1,1.5417,1574.27> authored=<3284.1,1.21308,1574.27>
|
||||
18:58:29.964 SCRIPT : Reintroduced [environment]: date=authored weather=authored
|
||||
18:58:29.965 SCRIPT : Reintroduced [time]: started at 14:00 with 1x progression
|
||||
18:58:29.965 SCRIPT : Reintroduced [mission]: phase 0 -> 1
|
||||
18:58:29.965 SCRIPT : Reintroduced [prison]: owned composition raw={BE6B8D56349038A6}Prefabs/ERR/Prison.et resolved={BE6B8D56349038A6}Prefabs/ERR/Prison.et position=<7288.09,122.994,5188.44>
|
||||
18:58:29.965 SCRIPT : Reintroduced [prison]: gate candidate raw= resolved={67F17696FF278AE0}Prefabs/Structures/BuildingParts/Doors/Door_Metal_A_RIGHT_EXT_COV_B.et lock=1 door=1 position=<7293.5,122.994,5190.99>
|
||||
18:58:29.965 SCRIPT : Reintroduced [prison]: one intact successor lock in owned prison
|
||||
18:58:29.986 SCRIPT : ERR RADIUS POSITION: target=1000 actual=990.522 band=1
|
||||
18:58:29.986 SCRIPT : ERR RADIUS POSITION: target=1000 actual=801.659 band=1
|
||||
18:58:29.986 SCRIPT : ERR RADIUS POSITION: target=1000 actual=974.278 band=1
|
||||
18:58:30.000 SCRIPT : ERR RADIUS PATROL: truck=0 found=1 homeDistance=100.921 travel=100.921
|
||||
18:58:30.000 SCRIPT : ERR RADIUS PATROL: truck=1 found=1 homeDistance=287.47 travel=287.47
|
||||
18:58:30.001 SCRIPT : ERR RADIUS RESULT: radius=1000 valid=1 positions=3
|
||||
18:58:30.015 SCRIPT (W): GM Budget got clamped at some point!
|
||||
18:58:30.120 SCRIPT : ERR RADIUS POSITION: target=1800 actual=1878.04 band=1
|
||||
18:58:30.120 SCRIPT : ERR RADIUS POSITION: target=1800 actual=1609.77 band=1
|
||||
18:58:30.120 SCRIPT : ERR RADIUS POSITION: target=1800 actual=1650.75 band=1
|
||||
18:58:30.128 SCRIPT : ERR RADIUS PATROL: truck=0 found=1 homeDistance=291.1 travel=291.1
|
||||
18:58:30.128 SCRIPT : ERR RADIUS PATROL: truck=1 found=1 homeDistance=223.736 travel=223.736
|
||||
18:58:30.129 SCRIPT : ERR RADIUS RESULT: radius=1800 valid=1 positions=3
|
||||
18:58:30.129 SCRIPT : ERR RADIUS COMPLETE
|
||||
18:58:30.148 SCRIPT (W): GM Budget got clamped at some point!
|
||||
@@ -0,0 +1,50 @@
|
||||
modded class ERR_HunterService
|
||||
{
|
||||
bool ProbePatrol(ERR_HunterVehicle unit)
|
||||
{
|
||||
vector destination, angles;
|
||||
bool found = OpeningPatrolPoint(unit, destination, angles);
|
||||
PrintFormat("ERR RADIUS PATROL: truck=%1 found=%2 homeDistance=%3 travel=%4", unit.TroopTransport, found, vector.DistanceXZ(destination, unit.PatrolHome), vector.DistanceXZ(destination, unit.Entity.GetOrigin()));
|
||||
return found && vector.DistanceXZ(destination, unit.PatrolHome) <= 500 && vector.DistanceXZ(destination, unit.Entity.GetOrigin()) >= 100;
|
||||
}
|
||||
}
|
||||
modded class ArmaReforgerScripted
|
||||
{
|
||||
protected ref ERR_HunterOpeningPlan m_RadiusPlan;
|
||||
protected ref ERR_HunterService m_RadiusService;
|
||||
protected int m_RadiusStage;
|
||||
protected float m_RadiusNext;
|
||||
override void OnUpdate(BaseWorld world, float timeslice)
|
||||
{
|
||||
super.OnUpdate(world, timeslice);
|
||||
ERR_GameMode mode = ERR_GameMode.Get();
|
||||
if (!mode || mode.Phase() < ERR_Phase.PRISON || m_RadiusStage >= 2) return;
|
||||
float now = world.GetWorldTime(); if (now < m_RadiusNext) return; m_RadiusNext = now + 1000;
|
||||
int radius = 1000; if (m_RadiusStage == 1) radius = 1800;
|
||||
if (!m_RadiusPlan) m_RadiusPlan = new ERR_HunterOpeningPlan(mode.PrisonPosition(), radius);
|
||||
array<IEntity> players = {}; m_RadiusPlan.Step(players);
|
||||
if (!m_RadiusPlan.Done()) return;
|
||||
bool valid = m_RadiusPlan.Ready();
|
||||
foreach (vector point : m_RadiusPlan.Positions)
|
||||
{
|
||||
bool band = ERR_HunterOpeningRules.InBand(m_RadiusPlan.Center, point, radius); valid = valid && band;
|
||||
PrintFormat("ERR RADIUS POSITION: target=%1 actual=%2 band=%3", radius, vector.DistanceXZ(point, m_RadiusPlan.Center), band);
|
||||
}
|
||||
if (valid)
|
||||
{
|
||||
m_RadiusService = new ERR_HunterService(mode, null);
|
||||
ERR_HunterVehicle unit = new ERR_HunterVehicle(); unit.PatrolHome = m_RadiusPlan.Positions[0];
|
||||
unit.Entity = Vehicle.Cast(ERR_Actors.Spawn(ERR_HunterFleetRules.VehiclePrefab(0), unit.PatrolHome, m_RadiusPlan.Angles[0]));
|
||||
if (!unit.Entity) valid = false;
|
||||
else
|
||||
{
|
||||
valid = m_RadiusService.ProbePatrol(unit) && valid;
|
||||
unit.TroopTransport = true; valid = m_RadiusService.ProbePatrol(unit) && valid;
|
||||
ERR_Actors.DeleteSpawned(unit.Entity);
|
||||
}
|
||||
}
|
||||
PrintFormat("ERR RADIUS RESULT: radius=%1 valid=%2 positions=%3", radius, valid, m_RadiusPlan.Positions.Count());
|
||||
m_RadiusStage++; m_RadiusPlan = null;
|
||||
if (m_RadiusStage == 2) Print("ERR RADIUS COMPLETE");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"reason": "complete", "exit": -15}
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"date": "2026-10-05",
|
||||
"repository_checks": "tools/check.py exited 0; all registered checks passed",
|
||||
"native": "isolated silent dedicated Everon run compiled and completed both 1000 m and 1800 m three-position surveys; actual local patrol helper succeeded with UAZ and truck flags",
|
||||
"limits": [
|
||||
"No multiplayer or menu rendering check",
|
||||
"Patrol fixture tests destination selection, not sustained vehicle driving",
|
||||
"Sparse terrain safe objective fallback may exceed configured radius",
|
||||
"Local changes not published or deployed to the live server"
|
||||
],
|
||||
"live_bvp_investigation": {
|
||||
"journal_session": "1791215287-2",
|
||||
"combat_started_event": 6638,
|
||||
"bmp_hold_delivered_event": 6662,
|
||||
"resume_rejected_events": [
|
||||
6896,
|
||||
6910,
|
||||
6935,
|
||||
6965,
|
||||
7004
|
||||
],
|
||||
"finding": "Resume orders were rejected during active local combat. Current support placement is behind reported contact without a visibility check; exact BVP route cannot be established from existing logs. No BVP tactical change made in this checkpoint."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user