Skip to content
This repository was archived by the owner on Jan 5, 2024. It is now read-only.

Commit b6a61a9

Browse files
committed
Fixed a dday bug that made screens wonky if you were capturing 2 regions at once
1 parent 844c114 commit b6a61a9

File tree

1 file changed

+43
-44
lines changed

1 file changed

+43
-44
lines changed

Data/Missions.rte/Activities/DecisionDay.lua

Lines changed: 43 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1409,57 +1409,56 @@ function DecisionDay:UpdateRegionScreens()
14091409
if bunkerRegionData.enabled then
14101410
local currentFauxdanDisplayFrameString;
14111411
local currentLoginScreenFrameString;
1412-
for _, player in pairs(self.humanPlayers) do
1413-
if math.abs((bunkerRegionData.totalArea.Center - CameraMan:GetScrollTarget(player)).X) < FrameMan.PlayerScreenWidth * 0.75 then
1414-
if bunkerRegionData.fauxdanDisplayArea ~= nil and bunkerRegionData.ownerTeam == self.aiTeam and self.currentStage == self.stages.attackBrain then
1415-
for box in bunkerRegionData.fauxdanDisplayArea.Boxes do
1416-
local boxCenterPos = box.Center;
1417-
local fauxdanDisplayScreenKey = tostring(boxCenterPos.FlooredX) .. "," .. tostring(boxCenterPos.FlooredY);
1418-
1419-
local boxBlockedByCaptureDisplay = false;
1420-
if bunkerRegionData.captureCount > 0 then
1421-
for captureDisplayBox in bunkerRegionData.captureDisplayArea.Boxes do
1422-
if captureDisplayBox.Center.Floored == boxCenterPos.Floored then
1423-
boxBlockedByCaptureDisplay = true;
1424-
break;
1425-
end
1426-
end
1427-
end
1412+
1413+
if bunkerRegionData.fauxdanDisplayArea ~= nil and bunkerRegionData.ownerTeam == self.aiTeam and self.currentStage <= self.stages.attackBrain then
1414+
for box in bunkerRegionData.fauxdanDisplayArea.Boxes do
1415+
local boxCenterPos = box.Center;
1416+
local fauxdanDisplayScreenKey = tostring(boxCenterPos.FlooredX) .. "," .. tostring(boxCenterPos.FlooredY);
14281417

1429-
if not boxBlockedByCaptureDisplay and bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] == nil then
1430-
local fauxdanDisplayScreen = self.fauxdanDisplayScreenTemplate:Clone();
1431-
fauxdanDisplayScreen.Pos = boxCenterPos;
1432-
MovableMan:AddParticle(fauxdanDisplayScreen);
1433-
bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] = fauxdanDisplayScreen;
1434-
elseif boxBlockedByCaptureDisplay and bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] ~= nil then
1435-
bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey].ToDelete = true;
1436-
bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] = nil;
1418+
local boxBlockedByCaptureDisplay = false;
1419+
if bunkerRegionData.captureCount > 0 then
1420+
for captureDisplayBox in bunkerRegionData.captureDisplayArea.Boxes do
1421+
if captureDisplayBox.Center.Floored == boxCenterPos.Floored then
1422+
boxBlockedByCaptureDisplay = true;
1423+
break;
14371424
end
14381425
end
1439-
else
1440-
for _, fauxdanDisplayScreen in pairs(bunkerRegionData.fauxdanDisplayScreens) do
1441-
fauxdanDisplayScreen.ToDelete = true;
1442-
end
1443-
bunkerRegionData.fauxdanDisplayScreens = {};
14441426
end
14451427

1446-
if bunkerRegionData.captureCount > 0 then
1447-
if #bunkerRegionData.captureDisplayScreens == 0 then
1448-
for box in bunkerRegionData.captureDisplayArea.Boxes do
1449-
local captureDisplayScreen = self.captureDisplayScreenTemplate:Clone();
1450-
captureDisplayScreen.Pos = box.Center;
1451-
MovableMan:AddParticle(captureDisplayScreen);
1452-
bunkerRegionData.captureDisplayScreens[#bunkerRegionData.captureDisplayScreens + 1] = captureDisplayScreen;
1453-
end
1454-
end
1455-
for _, captureDisplayScreen in ipairs(bunkerRegionData.captureDisplayScreens) do
1456-
captureDisplayScreen.Frame = math.floor((bunkerRegionData.captureCount / bunkerRegionData.captureLimit) * (captureDisplayScreen.FrameCount));
1457-
captureDisplayScreen.Age = 0;
1458-
end
1459-
else
1460-
bunkerRegionData.captureDisplayScreens = {};
1428+
if not boxBlockedByCaptureDisplay and bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] == nil then
1429+
local fauxdanDisplayScreen = self.fauxdanDisplayScreenTemplate:Clone();
1430+
fauxdanDisplayScreen.Pos = boxCenterPos;
1431+
MovableMan:AddParticle(fauxdanDisplayScreen);
1432+
bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] = fauxdanDisplayScreen;
1433+
elseif boxBlockedByCaptureDisplay and bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] ~= nil then
1434+
bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey].ToDelete = true;
1435+
bunkerRegionData.fauxdanDisplayScreens[fauxdanDisplayScreenKey] = nil;
1436+
end
1437+
end
1438+
elseif next(bunkerRegionData.fauxdanDisplayScreens) ~= nil then
1439+
for _, fauxdanDisplayScreen in pairs(bunkerRegionData.fauxdanDisplayScreens) do
1440+
fauxdanDisplayScreen.ToDelete = true;
1441+
end
1442+
bunkerRegionData.fauxdanDisplayScreens = {};
1443+
end
1444+
1445+
if bunkerRegionData.captureCount > 0 then
1446+
if #bunkerRegionData.captureDisplayScreens == 0 then
1447+
for box in bunkerRegionData.captureDisplayArea.Boxes do
1448+
local captureDisplayScreen = self.captureDisplayScreenTemplate:Clone();
1449+
captureDisplayScreen.Pos = box.Center;
1450+
MovableMan:AddParticle(captureDisplayScreen);
1451+
bunkerRegionData.captureDisplayScreens[#bunkerRegionData.captureDisplayScreens + 1] = captureDisplayScreen;
1452+
end
1453+
end
1454+
for index, captureDisplayScreen in ipairs(bunkerRegionData.captureDisplayScreens) do
1455+
if MovableMan:ValidMO(captureDisplayScreen) then
1456+
captureDisplayScreen.Frame = math.floor((bunkerRegionData.captureCount / bunkerRegionData.captureLimit) * (captureDisplayScreen.FrameCount));
1457+
captureDisplayScreen.Age = 0;
14611458
end
14621459
end
1460+
elseif #bunkerRegionData.captureDisplayScreens > 0 then
1461+
bunkerRegionData.captureDisplayScreens = {};
14631462
end
14641463
end
14651464
end

0 commit comments

Comments
 (0)