Skip to content

Commit

Permalink
Merge pull request #1674 from TomDraal/TomDraal-AdvChem
Browse files Browse the repository at this point in the history
Add: Setting to toggle chemical side mission and chemical weapon cache probability
  • Loading branch information
Vdauphin authored Dec 19, 2024
2 parents b76d511 + 4341a99 commit a8b975e
Show file tree
Hide file tree
Showing 11 changed files with 31 additions and 16 deletions.
5 changes: 3 additions & 2 deletions =BTC=co@30_Hearts_and_Minds.Altis/core/def/mission.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,8 @@ btc_p_civ_max_veh = "btc_p_civ_max_veh" call BIS_fnc_getParamValue;

//<< Gameplay options >>
btc_p_sea = ("btc_p_sea" call BIS_fnc_getParamValue) isEqualTo 1;
btc_p_chem = ("btc_p_chem" call BIS_fnc_getParamValue) isEqualTo 1;
btc_p_chem_sides = ("btc_p_chem_sides" call BIS_fnc_getParamValue) isEqualTo 1;
btc_p_chem_cache_probability = ("btc_p_chem_cache_probability" call BIS_fnc_getParamValue)/100;
btc_p_spect = ("btc_p_spect" call BIS_fnc_getParamValue) isEqualTo 1;
btc_p_side_mission_cycle = "btc_p_side_mission_cycle" call BIS_fnc_getParamValue;

Expand Down Expand Up @@ -231,7 +232,7 @@ if (isServer) then {
btc_side_ID = 0;
btc_side_list = ["supply", "mines", "vehicle", "get_city", "tower", "civtreatment", "checkpoint", "convoy", "rescue", "capture_officer", "hostage", "hack", "kill", "EMP", "removeRubbish", "massacre"]; // On ground (Side "convoy" and "capture_officer" are not design for map with different islands. Start and end city can be on different islands.)
if (btc_p_sea) then {btc_side_list append ["civtreatment_boat", "underwater_generator"]}; // On sea
if (btc_p_chem) then {btc_side_list append ["chemicalLeak", "pandemic"]};
if (btc_p_chem_sides) then {btc_side_list append ["chemicalLeak", "pandemic"]};
btc_side_list_use = [];
btc_type_tower = ["Land_Communication_F", "Land_TTowerBig_1_F", "Land_TTowerBig_2_F"];
btc_type_barrel = ["Land_GarbageBarrel_01_F", "Land_BarrelSand_grey_F", "MetalBarrel_burning_F", "Land_BarrelWater_F", "Land_MetalBarrel_F", "Land_MetalBarrel_empty_F"];
Expand Down
10 changes: 8 additions & 2 deletions =BTC=co@30_Hearts_and_Minds.Altis/core/def/param.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,18 @@ class Params {
texts[] = {$STR_DISABLED,$STR_ENABLED};
default = 1;
};
class btc_p_chem { // Chemical warfare
title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_CHEM"]);
class btc_p_chem_sides { // Toggle chemical side missions:
title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_CHEM_SIDES"]);
values[] = {0,1};
texts[] = {$STR_DISABLED,$STR_ENABLED};
default = 1;
};
class btc_p_chem_cache_probability { // Chemical weapon cache probability:
title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_CHEM_CACHE_PROBABILITY"]);
values[]={0,10,20,30,40,50,60,70,80,90,100};
texts[]={"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"};
default = 50;
};
class btc_p_spect { // Spectrum devices
title = __EVAL(format [" %1", localize "STR_BTC_HAM_PARAM_GAMEPLAY_SPECT"]);
values[] = {0,1};
Expand Down
8 changes: 4 additions & 4 deletions =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/cache/create.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Description:
Parameters:
_cache_pos - Position of the cache. [Array]
_p_chem - Allow chemical cache. [Boolean]
_probabilityNotChemical - Probability to not create a chemical cache. [Number]
_probabilityChemical - Probability to create a chemical cache. [Number]
Returns:
Expand All @@ -28,13 +28,13 @@ Author:

params [
["_cache_pos", btc_cache_pos, [[]]],
["_p_chem", btc_p_chem, [true]],
["_probabilityNotChemical", 0.5, [0]]
["_p_chem", btc_p_chem_cache_probability > 0, [true]],
["_probabilityChemical", btc_p_chem_cache_probability, [0]]
];

private _isChem = false;
if (_p_chem) then {
_isChem = random 1 > _probabilityNotChemical;
_isChem = random 1 < _probabilityChemical;
};
private _cacheType = selectRandom (btc_cache_type select 0);
btc_cache_obj = _cacheType createVehicle _cache_pos;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Author:
---------------------------------------------------------------------------- */

if !(btc_p_chem) exitWith {};
if !(btc_p_chem_sides || (btc_p_chem_cache_probability > 0)) exitWith {};

private _bodyParts = ["head","body","hand_l","hand_r","leg_l","leg_r"];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Author:
---------------------------------------------------------------------------- */

if !(btc_p_chem) exitWith {};
if !(btc_p_chem_sides || (btc_p_chem_cache_probability > 0)) exitWith {};

params [
["_minDistance", 5, [2]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ Author:
params [
["_group", grpNull, [grpNull]],
["_active_city", objNull, [objNull]],
["_area", btc_patrol_area, [0]],
["_p_chem", btc_p_chem, [false]]
["_area", btc_patrol_area, [0]]
];

if (isNil "btc_civilian_id") then {btc_civilian_id = -1;};
Expand Down
2 changes: 1 addition & 1 deletion =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ btc_cache_pos = _cache_pos;
btc_cache_n = _cache_n;
btc_cache_info = _cache_info;

[_cache_pos, btc_p_chem, [1, 0] select _isChem] call btc_cache_fnc_create;
[_cache_pos, btc_p_chem_cache_probability > 0, [1, 0] select _isChem] call btc_cache_fnc_create;
btc_cache_obj setVariable ["btc_cache_unitsSpawned", _cache_unitsSpawned];

btc_cache_markers = [];
Expand Down
2 changes: 1 addition & 1 deletion =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/db/load_old.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ btc_cache_pos = _cache_pos;
btc_cache_n = _cache_n;
btc_cache_info = _cache_info;

[_cache_pos, btc_p_chem, [1, 0] select _isChem] call btc_cache_fnc_create;
[_cache_pos, btc_p_chem_cache_probability > 0, [1, 0] select _isChem] call btc_cache_fnc_create;
btc_cache_obj setVariable ["btc_cache_unitsSpawned", _cache_unitsSpawned];

btc_cache_markers = [];
Expand Down
2 changes: 1 addition & 1 deletion =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/player.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ _player addEventHandler ["WeaponAssembled", {
_this remoteExecCall ["btc_log_fnc_init", 2];
}] call CBA_fnc_addEventHandler;

if (btc_p_chem) then {
if (btc_p_chem_sides || (btc_p_chem_cache_probability > 0)) then {
// Add biopsy
[missionNamespace, "probingEnded", btc_chem_fnc_biopsy] call BIS_fnc_addScriptedEventHandler;

Expand Down
3 changes: 2 additions & 1 deletion =BTC=co@30_Hearts_and_Minds.Altis/core/fnc/eh/server.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ if (btc_p_auto_db) then {
};
}];
};
if (btc_p_chem) then {

if (btc_p_chem_sides || (btc_p_chem_cache_probability > 0)) then {
["ace_cargoLoaded", btc_chem_fnc_propagate] call CBA_fnc_addEventHandler;
["AllVehicles", "GetIn", {[_this select 0, _this select 2] call btc_chem_fnc_propagate}] call CBA_fnc_addClassEventHandler;
["DeconShower_01_F", "init", {
Expand Down
8 changes: 8 additions & 0 deletions =BTC=co@30_Hearts_and_Minds.Altis/stringtable.xml
Original file line number Diff line number Diff line change
Expand Up @@ -961,6 +961,14 @@
<French>Guerre chimique:</French>
<Czech>Chemická válka:</Czech>
</Key>
<Key ID="STR_BTC_HAM_PARAM_GAMEPLAY_CHEM_SIDES">
<Original>Chemical side missions:</Original>
<French>Missions secondaires chimiques :</French>
</Key>
<Key ID="STR_BTC_HAM_PARAM_GAMEPLAY_CHEM_CACHE_PROBABILITY">
<Original>Chemical weapon cache probability:</Original>
<French>Probabilité de cache d'armes chimiques :</French>
</Key>
<Key ID="STR_BTC_HAM_PARAM_GAMEPLAY_SPECT">
<Original>Spectrum devices:</Original>
<French>Appareils à spectre:</French>
Expand Down

0 comments on commit a8b975e

Please sign in to comment.