Skip to content

Commit 5cf1b1a

Browse files
authored
Vehicle balance changes 082025 (#3670)
* tiny balance changes 19.8.25 Disabled AA truck squads on old and new UIs Disallowed unlocking of all launchers Reduced weight of attack helicopters Rebalanced vehicle prices Doubled income tick weapon rewards Increased support threat balance Created fixed groups using less anti-vehicle weapons overall Reduced number of starting RPGs in Vanilla FIA, CUP NAPA, RHS NAPA, and 3CB FIA Removed buyable static AA
1 parent 7db6ee4 commit 5cf1b1a

File tree

14 files changed

+51
-46
lines changed

14 files changed

+51
-46
lines changed

A3A/addons/core/Templates/Templates/3CB/3CB_Reb_FIA.sqf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
private _initialRebelEquipment = [
5050
"UK3CB_BHP", "rhs_weap_tt33",
5151
"uk3cb_enfield_l8", "uk3cb_enfield_l8_walnut",
52-
["rhs_weap_rpg75", 50],
52+
["rhs_weap_rpg75", 10],
5353
["IEDUrbanSmall_Remote_Mag", 10], ["IEDLandSmall_Remote_Mag", 10], ["IEDUrbanBig_Remote_Mag", 3], ["IEDLandBig_Remote_Mag", 3],
5454
"UK3CB_BHP_9_13Rnd", "rhs_mag_762x25_8", "uk3cb_l42_enfield_762_10Rnd_magazine", "uk3cb_l42_enfield_762_10Rnd_magazine_WT", "uk3cb_1rnd_riflegrenade_mas_flare", "rhs_grenade_mkii_mag", "rhs_grenade_mki_mag", "rhs_mag_rdg2_black", "rhs_grenade_m15_mag",
5555
"UK3CB_CHC_C_B_MED", "UK3CB_B_Bedroll_Backpack", "UK3CB_TKC_C_B_Sidor_MED", "UK3CB_CW_SOV_O_LATE_B_Sidor_RIF", "UK3CB_CW_SOV_O_EARLY_B_Sidor_RIF",

A3A/addons/core/Templates/Templates/CUP/CUP_Reb_NAPA.sqf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ private _initialRebelEquipment = [
5151
"CUP_sgun_slamfire", "CUP_srifle_LeeEnfield", "CUP_srifle_LeeEnfield_rail",
5252
"CUP_1Rnd_12Gauge_Pellets_No00_Buck", "CUP_1Rnd_12Gauge_Pellets_No3_Buck", "CUP_10x_303_M",
5353
"CUP_hgun_TaurusTracker455", "CUP_6Rnd_45ACP_M",
54-
["CUP_launch_RPG18", 50],
54+
["CUP_launch_RPG18", 10],
5555
["IEDUrbanSmall_Remote_Mag", 10], ["IEDLandSmall_Remote_Mag", 10], ["IEDUrbanBig_Remote_Mag", 3], ["IEDLandBig_Remote_Mag", 3],
5656
"CUP_HandGrenade_RGD5", "SmokeShell",
5757
"CUP_V_I_Carrier_Belt", "CUP_V_I_Guerilla_Jacket", "CUP_V_I_RACS_Carrier_Rig_2", "CUP_V_I_RACS_Carrier_Rig_wdl_2",

A3A/addons/core/Templates/Templates/RHS/RHS_Reb_NAPA.sqf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747

4848
private _initialRebelEquipment = [
4949
"rhs_weap_type94_new", "rhs_weap_tt33", "rhs_weap_Izh18", "rhs_weap_kar98k",
50-
["rhs_weap_rpg75", 50],
50+
["rhs_weap_rpg75", 10],
5151
["IEDUrbanSmall_Remote_Mag", 10], ["IEDLandSmall_Remote_Mag", 10], ["IEDUrbanBig_Remote_Mag", 3], ["IEDLandBig_Remote_Mag", 3],
5252
"rhs_mag_6x8mm_mhp", "rhs_mag_762x25_8", "rhsgref_1Rnd_00Buck", "rhsgref_1Rnd_Slug", "rhsgref_5Rnd_792x57_kar98k", "rhs_grenade_mkii_mag", "rhs_grenade_mki_mag", "rhs_mag_rdg2_black", "rhs_grenade_m15_mag",
5353
"B_FieldPack_blk", "B_FieldPack_cbr", "B_FieldPack_green_F", "B_FieldPack_khk", "B_FieldPack_oli",

A3A/addons/core/Templates/Templates/Vanilla/Vanilla_Reb_FIA.sqf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ private _initialRebelEquipment = [
9191
"acc_flashlight","acc_flashlight_smg_01","acc_flashlight_pistol"];
9292

9393
if ("expansion" in A3A_enabledDLC) then {
94-
_initialRebelEquipment append [["launch_RPG7_F", 15], ["RPG7_F", 45], "SMG_05_F", "hgun_Pistol_01_F", "10Rnd_9x21_Mag"];
94+
_initialRebelEquipment append [["launch_RPG7_F", 5], ["RPG7_F", 15], "SMG_05_F", "hgun_Pistol_01_F", "10Rnd_9x21_Mag"];
9595
} else {
96-
_initialRebelEquipment append [["launch_RPG32_F", 15], ["RPG32_F", 30]];
96+
_initialRebelEquipment append [["launch_RPG32_F", 5], ["RPG32_F", 15]];
9797
};
9898
if ("rf" in A3A_enabledDLC) then {
9999
_initialRebelEquipment append ["srifle_h6_tan_rf","10Rnd_556x45_AP_Stanag_red_Tan_RF","10Rnd_556x45_AP_Stanag_Tan_RF","10Rnd_556x45_AP_Stanag_green_Tan_RF"];

A3A/addons/core/dialogs.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2226,12 +2226,12 @@ class squad_recruit {
22262226
class HQ_button_ATteamM: A3A_core_BattleMenuRedButton
22272227
{
22282228
idc = 110;
2229-
text = $STR_antistasi_dialogs_squad_recruit_aa_car;
2229+
text = "";
22302230
x = 0.272481 * safezoneW + safezoneX;
22312231
y = 0.612025 * safezoneH + safezoneY;
22322232
w = 0.175015 * safezoneW;
22332233
h = 0.0560125 * safezoneH;
2234-
action = "closeDialog 0;nul = [(A3A_faction_reb get 'staticAA') # 0] spawn A3A_fnc_addFIAsquadHC";
2234+
// action = "closeDialog 0;nul = [(A3A_faction_reb get 'staticAA') # 0] spawn A3A_fnc_addFIAsquadHC";
22352235
};
22362236

22372237
class HQ_button_mortar: A3A_core_BattleMenuRedButton

A3A/addons/core/functions/Ammunition/fn_arsenalManage.sqf

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@ private _count = objNull;
2727
{
2828
_type = _x select 0;
2929
_magConfig = configFile >> "CfgMagazines" >> _type;
30+
_ammo = getText(_magConfig >> "ammo");
31+
_cfgAmmo = configFile >> "CfgAmmo" >> _ammo;
3032
_capacity = 1 max getNumber (_magConfig >> "count"); // Avoid div-by-zero on broken/missing config
3133

3234
// control unlocking missile launcher magazines
3335
// the capacity check is an optimisation to bypass the config check. ~18% perf gain on the loop.
3436
if (_capacity != 1 || allowGuidedLaunchers isEqualTo 1 ||
35-
{!(getText (_magConfig >> "ammo") isKindOf "MissileBase")}) then {
37+
{!(tolower getText(_cfgAmmo >> "simulation") in ["shotrocket", "shotmissile"])}) then {
3638
_bullets = _x select 1;
3739
_count = floor (_bullets/_capacity);
3840
_magazine pushBack [_type,_count];
@@ -49,6 +51,7 @@ private _categoriesToPublish = createHashMap;
4951

5052
private _categories = _item call A3A_fnc_equipmentClassToCategories;
5153
if ("MissileLaunchers" in _categories && {allowGuidedLaunchers == 0}) exitWith {};
54+
if ("RocketLaunchers" in _categories) exitWith {};
5255
if ("Explosives" in _categories && {allowUnlockedExplosives == 0}) exitWith {};
5356
if ("Backpacks" in _categories && {_item in allBackpacksTool}) exitWith {}; // should be UAV & static backpacks
5457
if ("StaticWeaponParts" in _categories) exitWith {};

A3A/addons/core/functions/Base/fn_getVehiclesAirSupport.sqf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ private _fnc_addArrayToWeights = {
2121

2222
private _vehWeights = [];
2323

24-
private _lightAHWeight = [70, 65, 60, 55, 50, 45, 40, 35, 30, 25] select _level;
25-
private _AHWeight = [ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50] select _level;
24+
private _lightAHWeight = [70, 65, 62, 59, 55, 50, 44, 38, 32, 25] select _level;
25+
private _AHWeight = [ 0, 2, 5, 9, 15, 21, 27, 34, 42, 50] select _level;
2626
private _casWeight = [ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20] select _level;
2727

2828
// eventually add dive bombers?

A3A/addons/core/functions/Dialogs/fn_squadRecruit.sqf

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,6 @@ if (str (_display) != "no display") then
5454
_costs = 2*_crewCost + ([(FactionGet(reb,"vehiclesAT")) # 0] call A3A_fnc_vehiclePrice);
5555
_ChildControl ctrlSetTooltip format [localize "STR_A3A_fn_dialogs_squadOptions",_costs,_costHR];
5656

57-
_ChildControl = _display displayCtrl 110;
58-
_costHR = 2;
59-
_costs = 2*_crewCost + ([(FactionGet(reb,"vehiclesTruck")) # 0] call A3A_fnc_vehiclePrice) + ([(FactionGet(reb,"staticAA")) # 0] call A3A_fnc_vehiclePrice);
60-
_ChildControl ctrlSetTooltip format [localize "STR_A3A_fn_dialogs_squadOptions",_costs,_costHR];
61-
6257
_ChildControl = _display displayCtrl 111;
6358
_costHR = 2;
6459
_costs = 2*_crewCost + ([(FactionGet(reb,"staticMortars")) # 0] call A3A_fnc_vehiclePrice);

A3A/addons/core/functions/Supports/fn_maxDefenceSpend.sqf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ else
149149
//};
150150
} forEach _nearFriends;
151151

152-
_threatBalance = (2.6*_recentDamage + _enemyStr) / (1 + _friendStr + _recentDamage);
152+
_threatBalance = (3.0*_recentDamage + _enemyStr) / (1 + _friendStr + _recentDamage);
153153
_threatBalance = 1 min (_threatBalance - 1);
154154
Debug_4("Threat balance %1 from: Recent damage %2 enemy strength %3 friend strength %4", _threatBalance, _recentDamage, _enemyStr, _friendStr);
155155
};

A3A/addons/core/functions/Templates/fn_compileGroups.sqf

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,15 @@ _faction set ["unitPoliceGrunt", unit(police, "Standard")];
5454
_faction set ["groupSentry", [unit(military, "Grenadier"), unit(military, "Rifleman")]];
5555
_faction set ["groupSniper", [unit(military, "Sniper"), unit(military, "Rifleman")]];
5656
_faction set ["groupsSmall", [_faction get "groupSentry", _faction get "groupSniper"]];
57-
_faction set ["groupAA", [unit(military, "SquadLeader"), unit(military, "AA"), unit(military, "AA"), unit(military, "Rifleman")]];
58-
_faction set ["groupAT", [unit(military, "SquadLeader"), unit(military, "AT"), unit(military, "AT"), unit(military, "Rifleman")]];
57+
_faction set ["groupAA", [unit(military, "SquadLeader"), unit(military, "AA"), unit(military, "Rifleman"), unit(military, "Rifleman")]];
58+
_faction set ["groupAT", [unit(military, "SquadLeader"), unit(military, "AT"), unit(military, "LAT"), unit(military, "Rifleman")]];
5959
_faction set ["groupsMedium", [
6060
[unit(military, "SquadLeader"), unit(military, "MachineGunner"), unit(military, "Grenadier"), unit(military, "LAT")]
6161
, _faction get "groupAA", _faction get "groupAT"
6262
]];
63-
63+
/*
6464
//old randomised behaviour maintained because... reasons
65+
// not anymore!
6566
private _squads = [];
6667
for "_i" from 1 to 5 do {
6768
_squads pushBack [
@@ -74,8 +75,17 @@ for "_i" from 1 to 5 do {
7475
selectRandomWeighted [unit(military, "Rifleman"), 2, unit(military, "Marksman"), 1],
7576
unit(military, "Medic")
7677
];
78+
// SquadLeader, Medic, MachineGunner, Rifleman, Grenadier, LAT, AT, AA, Engineer, Marksman
79+
// unit(military, "")
7780
};
78-
_faction set ["groupsSquads", _squads];
81+
*/
82+
_faction set ["groupsSquads", [
83+
[unit(military, "SquadLeader"), unit(military, "Medic"),unit(military, "MachineGunner"),unit(military, "Rifleman"),unit(military, "Rifleman"),unit(military, "Engineer"),unit(military, "Grenadier"),unit(military, "LAT")],
84+
[unit(military, "SquadLeader"), unit(military, "Medic"),unit(military, "MachineGunner"),unit(military, "Rifleman"),unit(military, "Rifleman"),unit(military, "Engineer"),unit(military, "Marksman"),unit(military, "LAT")],
85+
[unit(military, "SquadLeader"), unit(military, "Medic"),unit(military, "MachineGunner"),unit(military, "Rifleman"),unit(military, "Rifleman"),unit(military, "Engineer"),unit(military, "Grenadier"),unit(military, "Marksman")],
86+
[unit(military, "SquadLeader"), unit(military, "Medic"),unit(military, "MachineGunner"),unit(military, "Rifleman"),unit(military, "Rifleman"),unit(military, "Medic"),unit(military, "Grenadier"),unit(military, "AA")],
87+
[unit(military, "SquadLeader"), unit(military, "Medic"),unit(military, "MachineGunner"),unit(military, "Rifleman"),unit(military, "Rifleman"),unit(military, "Engineer"),unit(military, "MachineGunner"),unit(military, "AT")]
88+
]];
7989

8090
//specops
8191
_faction set ["groupSpecOps", [
@@ -131,7 +141,7 @@ for "_i" from 1 to 6 do {
131141
];
132142
};
133143
_faction set ["groupsMilitiaMedium", _militiaMid];
134-
144+
/*
135145
private _militiaSquads = [];
136146
for "_i" from 1 to 5 do {
137147
_militiaSquads pushBack [
@@ -146,7 +156,13 @@ for "_i" from 1 to 5 do {
146156
unit(militia, "Medic")
147157
];
148158
};
149-
_faction set ["groupsMilitiaSquads", _militiaSquads];
159+
*/
160+
_faction set ["groupsMilitiaSquads", [
161+
[unit(militia, "SquadLeader"),unit(militia, "Medic"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "Grenadier"),unit(militia, "LAT"),unit(militia, "ExplosivesExpert")],
162+
[unit(militia, "SquadLeader"),unit(militia, "Medic"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "MachineGunner"),unit(militia, "LAT"),unit(militia, "ExplosivesExpert")],
163+
[unit(militia, "SquadLeader"),unit(militia, "Medic"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "Grenadier"),unit(militia, "LAT"),unit(militia, "Marksman")],
164+
[unit(militia, "SquadLeader"),unit(militia, "Medic"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "Rifleman"),unit(militia, "MachineGunner"),unit(militia, "MachineGunner"),unit(militia, "Marksman")]
165+
]];
150166

151167
//police
152168
_faction set ["groupPolice", [_faction get "unitPoliceOfficer", _faction get "unitPoliceGrunt"]];

0 commit comments

Comments
 (0)