function P.Build_motorized_brigade(ic, viManpower, voType, voProductionData, viUnitsNeeded)
local liCYear = CCurrentGameState.GetCurrentDate():GetYear()
if viUnitsNeeded >= voType.Size then
local voSpecialType = {
NeededUnitName = "motorized_brigade", -- this should have a 100 % chance to be part of the division at least once and should match function name
Serial = 2,
DivisionSizeRatio = {},
DivisionComposition = {},
SpecialRatio = {},
SubUnit = {}
}
if liCYear < 1941 and not(voProductionData.IsExile) then <------------------ EXAMPLE OF SITUATIONAL FACTOR TO ACCOUNT FOR
-- ratio of how many brigades a division contains
voSpecialType.DivisionSizeRatio = { 0, -- 1 brig
0, -- 2 brigs
100, -- 3 brigs
0, -- 4 brigs
0} -- 5 brigs
-- it will never build more brigades then defined (if only two are defined the maximum division size is two
-- idependent of the division size ratio defined
-- with the keyword special_brigade one unit will be selected of the special ratio
voSpecialType.DivisionComposition[1] = {motorized_brigade = 100}
voSpecialType.DivisionComposition[2] = {light_armor_brigade = 100}
voSpecialType.DivisionComposition[3] = {special_brigade = 100}
voSpecialType.DivisionComposition[4] = {special_brigade = 100}
-- if we have superior firepower
voSpecialType.DivisionComposition[5] = {special_brigade= 100}
voSpecialType.SpecialRatio = { tank_destroyer_brigade = 20,
armored_car_brigade = 30,
mot_artillery_brigade = 10,
mot_anti_tank_brigade = 40}
else
-- ratio of how many brigades a division contains
voSpecialType.DivisionSizeRatio = { 0, -- 1 brig
0, -- 2 brigs
0, -- 3 brigs
100, -- 4 brigs
0} -- 5 brigs
voSpecialType.DivisionComposition[1] = {motorized_brigade = 100}
voSpecialType.DivisionComposition[2] = {motorized_brigade = 100}
voSpecialType.DivisionComposition[3] = {light_armor_brigade = 100}
voSpecialType.DivisionComposition[4] = {special_brigade = 100}
voSpecialType.DivisionComposition[5] = {special_brigade = 100}
voSpecialType.SpecialRatio = { tank_destroyer_brigade = 40,
armored_car_brigade = 20,
mot_artillery_brigade = 10,
mot_anti_tank_brigade = 40}
end
-- Sub Units that should be build when one of those mainunits is ordered (used for CAGs)
voSpecialType.SubUnit = { SubUnitName = nil,
SubUnitQuantity = 0 }
return Support.CreateCustomUnit(ic, viManpower, voSpecialType, voProductionData, viUnitsNeeded)
end
return ic, viManpower, viUnitsNeeded
end