ACE3/optionals/compat_rhs_gref3/CfgWeapons.hpp
Drofseh f83c605958
Overheating - Add cook off and rate of fire features and additional customization settings (#8064)
* Add jamming coef to change or disable jamming.

* change max to 5

* add setting for overheating effects distance, unjaming on barrel swap, increase rate of fire with heat

- add setting for overheating effects distance
- add unjaming on barrel swap, with setting
- add increase rate of fire with heat, with setting
- fix some formatting

* little tweaks

* add overheating cookoff feature

- add overheating cookoff feature
- add documentation
- bugfixes/improvements

* Update ace3-config-entries.md

* Update overheating-framework.md

* Update addons/overheating/XEH_postInit.sqf

Co-authored-by: jonpas <jonpas33@gmail.com>

* Update addons/overheating/XEH_postInit.sqf

Co-authored-by: jonpas <jonpas33@gmail.com>

* Update addons/overheating/functions/fnc_firedEH.sqf

Co-authored-by: jonpas <jonpas33@gmail.com>

* Update addons/overheating/stringtable.xml

Co-authored-by: jonpas <jonpas33@gmail.com>

* Update docs/wiki/feature/overheating.md

Co-authored-by: jonpas <jonpas33@gmail.com>

* Update addons/overheating/stringtable.xml

Co-authored-by: jonpas <jonpas33@gmail.com>

* Update addons/overheating/functions/fnc_jamWeapon.sqf

Co-authored-by: jonpas <jonpas33@gmail.com>

* Update addons/overheating/functions/fnc_jamWeapon.sqf

Co-authored-by: jonpas <jonpas33@gmail.com>

* remove extra underwater cooling, make cookoffCoef enable cookoff

- add coef setting for heat generation per shot
- merge cookoff setting into cookoff coef setting
- remove check for water that increased cooling
- change max rof increase from heat to 10%
- change ammo heating to a less linear formula
- change cookoffCoef to effect inginition tempurature instead of heat amount
- delay cookoff shot until any firing animation is done
- update strings based on feedback

* Update stringtable.xml

* add cookoff notification

* improvements from play testing

- move ammo heat loop into seperate function with a tighter loop
- factor rain into cooling calculation
- handle cooling while swimming
- merge cookoff take event handler into fnc_handleTakeEH
- fix case where cookoff could potentially come from underbarrel weapon muzzle
- only add TakeEH if required by enabled settings
- improve cookoff muzzle/mode handling

* fix missing semi that I swear I already fixed before pushing

* Update overheating-framework.md

* Update fnc_updateAmmoTemperature.sqf

* include wind speed in cooling calculation

* cool with X

- add ace interactions to allow cooling with water sources when Ace X is loaded
- add documentation for cooling
- move getting barrel mass to a function

* documentation formatting

* Add config array for weapon jam types, as not all weapon can get all types IRL.

* remove variable that's not required

* add some compat entries for RHS

* fix merge conflict

* fix a happy little accident

* move to CBA settings, minor styling.

* Update error message in fnc_jamWeapon.sqf

Co-authored-by: jonpas <jonpas33@gmail.com>

* Apply suggestions from code review

Co-authored-by: TyroneMF <TyroneMF@hotmail.com>

Co-authored-by: jonpas <jonpas33@gmail.com>
Co-authored-by: TyroneMF <TyroneMF@hotmail.com>
2021-10-14 10:47:52 -05:00

150 lines
3.9 KiB
C++

class CfgWeapons {
// ACE Ballistics
class rhs_weap_kar98k_Base_F;
class rhs_weap_kar98k: rhs_weap_kar98k_Base_F {
ACE_barrelTwist = 240;
ACE_barrelLength = 600;
};
class rhs_weap_m38_Base_F;
class rhs_weap_m38: rhs_weap_m38_Base_F {
ACE_barrelTwist = 250;
ACE_barrelLength = 315;
};
class rhs_weap_m38_rail;
class rhs_weap_mosin_sbr: rhs_weap_m38_rail {
ACE_barrelTwist = 240;
ACE_barrelLength = 254;
};
class rhs_weap_m70_base;
class rhs_weap_m70ab2: rhs_weap_m70_base {
ACE_barrelTwist = 240;
ACE_barrelLength = 415;
};
class rhs_weap_m92: rhs_weap_m70_base {
ACE_barrelTwist = 240;
ACE_barrelLength = 254;
};
class rhs_weap_m76: rhs_weap_m70_base {
ACE_barrelTwist = 250;
ACE_barrelLength = 200;
};
class rhs_weap_m21_base: rhs_weap_m70_base {
ACE_barrelLength = 460;
ACE_barrelTwist = 177.8;
};
class rhs_weap_m21s: rhs_weap_m21_base {
ACE_barrelLength = 375;
};
class rhs_weap_m21a_pr;
class rhs_weap_m21s_pr: rhs_weap_m21a_pr {
ACE_barrelLength = 375;
};
class Rifle_Base_F;
class rhs_weap_savz58_base: Rifle_Base_F {
ACE_barrelTwist = 240;
ACE_barrelLength = 390;
};
class rhs_weap_stgw57_base;
class rhs_weap_stgw57: rhs_weap_stgw57_base {
ACE_barrelTwist = 270;
ACE_barrelLength = 583;
};
class rhs_weap_vhs2_base;
class rhs_weap_vhsd2: rhs_weap_vhs2_base {
ACE_barrelTwist = 177.8;
ACE_barrelLength = 500.0;
};
class rhs_weap_vhsk2: rhs_weap_vhsd2 {
ACE_barrelTwist = 177.8;
ACE_barrelLength = 410.0;
};
class rhs_weap_vhsd2_ct15x: rhs_weap_vhs2_base {
ACE_barrelTwist = 177.8;
ACE_barrelLength = 500.0;
};
class rhs_weap_vhsd2_bg: rhs_weap_vhs2_base {
ACE_barrelTwist = 177.8;
ACE_barrelLength = 500.0;
};
class rhs_weap_fnfal_base;
class rhs_weap_l1a1_base: rhs_weap_fnfal_base {
ACE_barrelTwist = 302.26;
ACE_barrelLength = 554.4;
};
class rhs_weap_mg42_base: Rifle_Base_F {
ACE_Overheating_allowSwapBarrel = 1;
ACE_barrelTwist = 305.0;
ACE_barrelLength = 530.0;
};
class rhs_weap_MP44_base: Rifle_Base_F {
ACE_barrelTwist = 240.0;
ACE_barrelLength = 420.0;
};
class rhs_weap_m3a1_base: Rifle_Base_F {
ACE_barrelTwist = 406.0;
ACE_barrelLength = 203.2;
};
class rhs_weap_M1garand_Base_F: Rifle_Base_F {
ACE_barrelTwist = 254.0;
ACE_barrelLength = 610.0;
};
class rhs_weap_Izh18 : Rifle_Base_F {
ace_overheating_jamTypesAllowed = ["Fire","Dud"];
};
class rhs_weap_m79 : Rifle_Base_F {
ace_overheating_jamTypesAllowed = ["Fire","Dud"];
};
CREATE_CSW_PROXY(rhs_weap_DSHKM);
class Launcher;
class Launcher_Base_F: Launcher {
class WeaponSlotsInfo;
};
class GVAR(dshkm_carry): Launcher_Base_F {
class ACE_CSW {
type = "weapon";
deployTime = 4;
pickupTime = 4;
class assembleTo {
EGVAR(csw,kordTripod) = "rhsgref_ins_DSHKM";
EGVAR(csw,kordTripodLow) = "rhsgref_ins_DSHKM_Mini_TriPod";
};
};
class WeaponSlotsInfo: WeaponSlotsInfo {
// One WeaponSlot with a positive value for iconScale forces game to use icon overlay method.
// Required, because the inventory icon has no accessory variants.
class MuzzleSlot {
iconScale = 0.1;
};
mass = 740;
};
displayName = ECSTRING(csw,dshk_gun);
author = ECSTRING(common,ACETeam);
scope = 2;
model = QPATHTOEF(apl,ACE_CSW_Bag.p3d);
modes[] = {};
picture = "\rhsafrf\addons\rhs_heavyweapons\data\mapico\icomap_DShKM_CA.paa";
};
};