@@ -221,7 +221,7 @@ function DecisionDay:StartActivity(isNewGame)
221
221
222
222
self .aiData = {};
223
223
self .aiData .externalSpawnTimer = Timer (120000 / self .difficultyRatio );
224
- self .aiData .internalReinforcementsTimer = Timer (90000 / self .difficultyRatio );
224
+ self .aiData .internalReinforcementsTimer = Timer (100000 / self .difficultyRatio );
225
225
self .aiData .internalReinforcementLimit = 12 * self .difficultyRatio ;
226
226
self .aiData .numberOfInternalReinforcementsCreated = 0 ;
227
227
self .aiData .internalReinforcementPositionsCalculationCoroutines = {};
@@ -1404,18 +1404,14 @@ function DecisionDay:UpdateAIDecisions()
1404
1404
for _ , internalReinforcementPosition in pairs (self .internalReinforcementsData [bunkerRegionData .bunkerId ].positions ) do
1405
1405
if box :IsWithinBox (internalReinforcementPosition ) then
1406
1406
internalReinforcementPositionsToEnemyTargets [internalReinforcementPosition ] = {};
1407
- table.insert (internalReinforcementPositionsToEnemyTargets [internalReinforcementPosition ], captureAreaCenter );
1408
- if self .difficultyRatio > 0.5 then
1409
- table.insert (internalReinforcementPositionsToEnemyTargets [internalReinforcementPosition ], captureAreaCenter );
1410
- end
1411
- if self .difficultyRatio >= (1 + RangeRand (- 0.25 , 0.25 )) then
1407
+ for i = 1 , 5 do
1412
1408
table.insert (internalReinforcementPositionsToEnemyTargets [internalReinforcementPosition ], captureAreaCenter );
1413
1409
end
1414
1410
break ;
1415
1411
end
1416
1412
end
1417
1413
end
1418
- self :CreateInternalReinforcements (" CQB" , internalReinforcementPositionsToEnemyTargets );
1414
+ self :CreateInternalReinforcements (math.random () < self . difficultyRatio * 0.75 and " CQB" or " Light " , internalReinforcementPositionsToEnemyTargets , nil , 450 * self . difficultyRatio );
1419
1415
end
1420
1416
1421
1417
bunkerRegionData .aiRegionDefenseTimer :Reset ();
@@ -2100,7 +2096,7 @@ function DecisionDay:CreateInternalReinforcements(loadout, internalReinforcement
2100
2096
2101
2097
print (" Internal reinforcement position " .. tostring (internalReinforcementPosition ).. " has " .. tostring (# enemyTargetsForPosition ).. " enemy targets!" )
2102
2098
2103
- local numberOfInternalReinforcementsToCreateAtPosition = math.min (# enemyTargetsForPosition , 3 );
2099
+ local numberOfInternalReinforcementsToCreateAtPosition = math.min (# enemyTargetsForPosition , 5 );
2104
2100
if numberOfInternalReinforcementsToCreateAtPosition == 1 and math.random () < (self .difficultyRatio * 0.5 ) then
2105
2101
numberOfInternalReinforcementsToCreateAtPosition = 2 ;
2106
2102
if math.random () < (self .difficultyRatio * 0.1 ) then
@@ -2118,14 +2114,13 @@ function DecisionDay:CreateInternalReinforcements(loadout, internalReinforcement
2118
2114
else
2119
2115
internalReinforcement = self :CreateInfantry (self .aiTeam );
2120
2116
end
2121
- print (" Creating internal reinforcement " .. internalReinforcement .PresetName .. " who costs " .. tostring (internalReinforcement :GetTotalValue (self .aiTeamTech , 1 )))
2122
2117
internalReinforcement .Team = self .aiTeam ;
2123
2118
internalReinforcement .Pos = internalReinforcementPosition ;
2124
- if numberOfInternalReinforcementsToCreateAtPosition == 2 then
2125
- internalReinforcement .Pos .X = internalReinforcement .Pos .X + (i == 1 and - 10 or 10 );
2126
- elseif numberOfInternalReinforcementsToCreateAtPosition == 3 then
2127
- internalReinforcement .Pos .X = internalReinforcement .Pos .X - 30 + (i * 15 );
2119
+ if numberOfInternalReinforcementsToCreateAtPosition > 1 then
2120
+ local leftmostSpawnOffset = 20 ;
2121
+ internalReinforcement .Pos .X = internalReinforcement .Pos .X - leftmostSpawnOffset + ((i - 1 ) * ((leftmostSpawnOffset * 2 ) / (numberOfInternalReinforcementsToCreateAtPosition - 1 )));
2128
2122
end
2123
+ print (" Creating internal reinforcement " .. internalReinforcement .PresetName .. " who costs " .. tostring (internalReinforcement :GetTotalValue (self .aiTeamTech , 1 )).. " at " .. tostring (internalReinforcement .Pos ))
2129
2124
if internalReinforcement :IsInGroup (" Actors - Turrets" ) then
2130
2125
internalReinforcement .AIMode = Actor .AIMODE_SENTRY ;
2131
2126
else
0 commit comments