Browse Source

Merge pull request #193 from 501st-Aux-Mod-Team/septemberpatch

Septemberpatch
Erliens 2 years ago
parent
commit
16e7419e9e
36 changed files with 343 additions and 20 deletions
  1. 4 4
      addons - Copy/RD501_Droids/config.cpp
  2. BIN
      addons - Copy/RD501_Helmets/_textures/ARC/Rayne.paa
  3. BIN
      addons - Copy/RD501_Helmets/_textures/Airborne/Omen.paa
  4. BIN
      addons - Copy/RD501_Helmets/_textures/Airborne/Purge.paa
  5. BIN
      addons - Copy/RD501_Helmets/_textures/Airborne/Ritter.paa
  6. BIN
      addons - Copy/RD501_Helmets/_textures/Infantry/Asher.paa
  7. BIN
      addons - Copy/RD501_Helmets/_textures/Infantry/Hosed.paa
  8. BIN
      addons - Copy/RD501_Helmets/_textures/Infantry/Jub.paa
  9. BIN
      addons - Copy/RD501_Helmets/_textures/Infantry/Juggernaut.paa
  10. BIN
      addons - Copy/RD501_Helmets/_textures/Infantry/Rupert.paa
  11. 1 0
      addons - Copy/RD501_Helmets/airborne/config.cpp
  12. 2 0
      addons - Copy/RD501_Helmets/infantry/config.cpp
  13. 6 1
      addons - Copy/RD501_Main/XEH_postinit.sqf
  14. 6 0
      addons - Copy/RD501_Main/XEH_preInit.sqf
  15. 6 0
      addons - Copy/RD501_Main/functions/AutoCrate/autocrate.sqf
  16. 65 0
      addons - Copy/RD501_Main/functions/emp_vehicle/README.md
  17. 35 0
      addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_disableVehicle.sqf
  18. 36 0
      addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_enableVehicle.sqf
  19. 5 0
      addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_hitHandler.sqf
  20. 40 0
      addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_hitVehicle.sqf
  21. 2 1
      addons - Copy/RD501_Main/functions/fired_deployable/fnc_fired_deployable_firedHandler.sqf
  22. 1 0
      addons - Copy/RD501_Vehicle_Weapons/_ammo/config.cpp
  23. 8 0
      addons - Copy/RD501_Vehicle_Weapons/_mags/config.cpp
  24. 1 1
      addons - Copy/RD501_Vehicle_Weapons/aircraft/generic/aircraft_laser_gun.hpp
  25. 10 0
      addons - Copy/RD501_Vehicle_Weapons/misc/missiles/config.cpp
  26. 15 0
      addons - Copy/RD501_Vehicles/air/ARC_170X/arc170_common.hpp
  27. 4 0
      addons - Copy/RD501_Vehicles/air/ARC_170X/arc170_inheritance.hpp
  28. 7 0
      addons - Copy/RD501_Vehicles/air/NuClass/config.cpp
  29. 15 0
      addons - Copy/RD501_Vehicles/air/Vulture/config.cpp
  30. 2 2
      addons - Copy/RD501_Vehicles/common/universal_mfd.hpp
  31. 31 1
      addons - Copy/RD501_Vehicles/land/saber/config.cpp
  32. 1 1
      addons - Copy/RD501_Weapons/DC_Family/DC_15gl/config.cpp
  33. 2 1
      addons - Copy/RD501_Weapons/Launchers/RPS4/config.cpp
  34. 19 0
      addons - Copy/RD501_Weapons/_ammo/config.cpp
  35. 17 7
      addons - Copy/RD501_Weapons/_mag/config.cpp
  36. 2 1
      addons - Copy/RD501_Weapons/config.cpp

+ 4 - 4
addons - Copy/RD501_Droids/config.cpp

@@ -309,7 +309,7 @@ class CfgGroups
 						position[]={.5,-.5,0};
 						rank="CORPORAL";
 						side=0;
-						vehicle=macro_new_unit_class(opfor,B2_droid_Standard);
+						vehicle=macro_new_unit_class(opfor,B2_droid_Super);
 					};
 					class Unit2
 					{
@@ -667,7 +667,7 @@ class CfgGroups
 						position[]={-.5,-.5,0};
 						rank="CORPORAL";
 						side=0;
-						vehicle=macro_new_unit_class(opfor,B2_droid_Standard);
+						vehicle=macro_new_unit_class(opfor,B2_droid_Super);
 					};
 					class Unit3
 					{
@@ -726,7 +726,7 @@ class CfgGroups
 						position[]={1,-1,0};
 						rank="CORPORAL";
 						side=0;
-						vehicle=macro_new_unit_class(opfor,B2_droid_Standard);
+						vehicle=macro_new_unit_class(opfor,B2_droid_Super);
 					};
 					class Unit4
 					{
@@ -1502,7 +1502,7 @@ class CfgGroups
 						position[]={1,-1,0};
 						rank="PRIVATE";
 						side=0;
-						vehicle=macro_new_unit_class(opfor,B2_droid_Standard);
+						vehicle=macro_new_unit_class(opfor,B2_droid_Super);
 					};
 				};
 				class macro_new_composition(opfor,light_assault_team)

BIN
addons - Copy/RD501_Helmets/_textures/ARC/Rayne.paa


BIN
addons - Copy/RD501_Helmets/_textures/Airborne/Omen.paa


BIN
addons - Copy/RD501_Helmets/_textures/Airborne/Purge.paa


BIN
addons - Copy/RD501_Helmets/_textures/Airborne/Ritter.paa


BIN
addons - Copy/RD501_Helmets/_textures/Infantry/Asher.paa


BIN
addons - Copy/RD501_Helmets/_textures/Infantry/Hosed.paa


BIN
addons - Copy/RD501_Helmets/_textures/Infantry/Jub.paa


BIN
addons - Copy/RD501_Helmets/_textures/Infantry/Juggernaut.paa


BIN
addons - Copy/RD501_Helmets/_textures/Infantry/Rupert.paa


+ 1 - 0
addons - Copy/RD501_Helmets/airborne/config.cpp

@@ -43,4 +43,5 @@ class CfgWeapons
 	NEW_501_AB_HELM_JLTS(501st_Waze_helmet,Waze,Waze.paa)
 	NEW_501_AB_HELM_JLTS(501st_Spilberge_helmet,Spilberge,Spilberge.paa)
 	NEW_501_AB_HELM_JLTS(501st_Akira_helmet,Akira,Akira.paa)
+	NEW_501_AB_HELM_JLTS(501st_Purge_helmet,Purge,Purge.paa)
 };

+ 2 - 0
addons - Copy/RD501_Helmets/infantry/config.cpp

@@ -180,6 +180,8 @@ class CfgWeapons
 	NEW_501_Inf_Helm_JLTS(Iron,Iron,Iron.paa)
 	NEW_501_Inf_Helm_JLTS(Brotha,Brotha,Brotha.paa)
 	NEW_501_Inf_Helm_JLTS(September,September,September.paa)
+	NEW_501_Inf_Helm_JLTS(Asher,Asher,Asher.paa)
+	NEW_501_Inf_Helm_JLTS(Rupert,Rupert,Rupert.paa)
 	NEW_501_ARC_Helm_JLTS(Rayne,Rayne,Rayne.paa)
 	NEW_501_ARC_Helm_JLTS(Archaic,Archaic,Archaic.paa)
 	NEW_501_ARC_Helm_JLTS(Duke,Duke,Duke.paa)

+ 6 - 1
addons - Copy/RD501_Main/XEH_postinit.sqf

@@ -153,4 +153,9 @@ if(hasInterface) then {
 
 ["rd501_shield_normalHealth", {
 	_this call rd501_fnc_shield_onNormalHealth;
-}] call CBA_fnc_addEventHandler;
+}] call CBA_fnc_addEventHandler;
+
+// Vehicle EMP
+["All", "HitPart", {
+	_this call rd501_fnc_emp_hitHandler;
+}] call CBA_fnc_addClassEventHandler;

+ 6 - 0
addons - Copy/RD501_Main/XEH_preInit.sqf

@@ -176,4 +176,10 @@ macro_prep_xeh(shield\fnc_shield_onLowHealth.sqf,shield_onLowHealth)
 macro_prep_xeh(shield\fnc_shield_onNormalHealth.sqf,shield_onNormalHealth)
 macro_prep_xeh(shield\fnc_shield_regenPerFrameHandler.sqf,shield_regenPerFrameHandler)
 
+// Vehicle EMP
+macro_prep_xeh(emp_vehicle\fnc_emp_hitVehicle.sqf,emp_hitVehicle)
+macro_prep_xeh(emp_vehicle\fnc_emp_hitHandler.sqf,emp_hitHandler)
+macro_prep_xeh(emp_vehicle\fnc_emp_enableVehicle.sqf,emp_enableVehicle)
+macro_prep_xeh(emp_vehicle\fnc_emp_disableVehicle.sqf,emp_disableVehicle)
+
 diag_log "RD501 PREP Complete";

+ 6 - 0
addons - Copy/RD501_Main/functions/AutoCrate/autocrate.sqf

@@ -1,6 +1,12 @@
 params ["_this"]; 
  
 ["rd501_resuppy_box_small_medical", _this, true] call ace_cargo_fnc_loadItem; 
+["rd501_resuppy_box_small_medical", _this, true] call ace_cargo_fnc_loadItem; 
+["rd501_resuppy_box_small_medical", _this, true] call ace_cargo_fnc_loadItem; 
+["rd501_resuppy_box_small_medical", _this, true] call ace_cargo_fnc_loadItem; 
+["rd501_resuppy_box_small_ammo", _this, true] call ace_cargo_fnc_loadItem;  
+["rd501_resuppy_box_small_ammo", _this, true] call ace_cargo_fnc_loadItem;  
+["rd501_resuppy_box_small_ammo", _this, true] call ace_cargo_fnc_loadItem;  
 ["rd501_resuppy_box_small_ammo", _this, true] call ace_cargo_fnc_loadItem;  
 ["rd501_stat_reweb", _this, true] call ace_cargo_fnc_loadItem;
 ["rd501_stat_Striker", _this, true] call ace_cargo_fnc_loadItem;

+ 65 - 0
addons - Copy/RD501_Main/functions/emp_vehicle/README.md

@@ -0,0 +1,65 @@
+# Vehicle EMP
+
+## EMP Duration
+
+The calculated duration is given by:
+
+```sqf
+ _effectiveDuration = _empDuration * (1 + ((-_empResistancePercent)/100));
+```
+
+or
+
+```c
+Effective Duration = Ammo Duration * (1 + (-Resistance/100))
+```
+
+Therefore:
+
+- A resistance of < 0 will produce an INCREASE in duration.
+- A resistance of > 0 will produce a DECREASE in duration.
+- A resistance of 0 will produce the same duration defined on the ammo.
+- A resistance of 100 will produce a 0 duration (no effect).
+- A duration of 0 will always result in no effect.
+
+> An effective duration of 0 is assumed for calculated durations < 1 for performance.
+
+## Configuration Properties
+
+### EMP Enabled
+
+Specify if the given ammo has an emp effect on vehicles.
+
+Where to define: `CfgAmmo -> Ammo`.
+
+`rd501_emp_vehicle_enabled=1`
+
+Default: `0`
+
+### EMP Max Duration
+
+You can specify how long a given set of ammo can disable a vehicle for (at maximum). Resistance will reduce this.
+
+Where to define: `CfgAmmo -> Ammo`.
+
+`rd501_emp_vehicle_duration=number`
+
+> `number` is the number of seconds this ammo will disable a vehicle for.
+
+> Note that this is only factored in, if a vehicle has a resistance of 100%, then the emp will not do anything. 50% resistance will halve the duration etc.
+
+Default: `10`
+
+### EMP Resistance
+
+You can specify a vehicles resistance (as a %) to the effects of EMP.
+
+Where to define: `CfgVehicles -> Vehicle`.
+
+`rd501_emp_vehicle_resistance_percent=number`
+
+> `number` is the whole number percentage (max 100, min unbound) which will be applied as a reduction to the given ammo's EMP duration.
+
+> `rd501_emp_vehicle_resistance_percent=100` is effectively disabling the effects on emp on the vehicle. (Immunity)
+
+Default: `0`

+ 35 - 0
addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_disableVehicle.sqf

@@ -0,0 +1,35 @@
+params["_vehicle"];
+
+if!(local _vehicle) exitWith { };
+diag_log format["[RD501][Vehicle EMP] Disabling Vehicle '%1'", _vehicle];
+
+_vehicle allowCrewInImmobile true;
+_vehicle lock 2;
+
+{
+	_x setBehaviour "CARELESS";
+	_x setCombatMode "BLUE";
+	_x disableAI "TARGET";
+	_x disableAI "AUTOTARGET";
+	_x disableAI "MOVE";
+	_x disableAI "FSM";
+} forEach crew _vehicle;
+
+(getAllHitPointsDamage _vehicle) params [["_allHitPoints", []]];
+
+{
+	private _isEngineLower = (_x find "engine") != -1;
+	private _isEngineUpper = (_x find "Engine") != -1;
+	if(_isEngineLower || _isEngineUpper) then {
+		_vehicle setHitPointDamage [_x, 1, true];
+		diag_log format["[RD501][Vehicle EMP] Damaging %1", _x];
+	};
+
+	private _isTurretLower = (_x find "turret") != -1;
+	private _isTurretUpper = (_x find "Turret") != -1;
+	if(_isEngineLower || _isEngineUpper) then {
+		_vehicle setHitPointDamage [_x, 1, true];
+		diag_log format["[RD501][Vehicle EMP] Damaging %1", _x];
+	};
+} forEach _allHitPoints;
+

+ 36 - 0
addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_enableVehicle.sqf

@@ -0,0 +1,36 @@
+params["_vehicle"];
+
+if!(local _vehicle) exitWith { };
+diag_log format["[RD501][Vehicle EMP] Enabling Vehicle '%1'", _vehicle];
+
+_vehicle allowCrewInImmobile false;
+_vehicle lock 0;
+
+{
+	_x setBehaviour "AWARE";
+	_x setCombatMode "YELLOW";
+	_x enableAI "TARGET";
+	_x enableAI "AUTOTARGET";
+	_x enableAI "MOVE";
+	_x enableAI "FSM";
+} forEach crew _vehicle;
+
+(getAllHitPointsDamage _vehicle) params [["_allHitPoints", []]];
+
+{
+	private _isEngineLower = (_x find "engine") != -1;
+	private _isEngineUpper = (_x find "Engine") != -1;
+	if(_isEngineLower || _isEngineUpper) then {
+		_vehicle setHitPointDamage [_x, 0];
+		diag_log format["[RD501][Vehicle EMP] Repairing %1", _x];
+	};
+
+	private _isTurretLower = (_x find "turret") != -1;
+	private _isTurretUpper = (_x find "Turret") != -1;
+	if(_isEngineLower || _isEngineUpper) then {
+		_vehicle setHitPointDamage [_x, 0];
+		diag_log format["[RD501][Vehicle EMP] Repairing %1", _x];
+	};
+} forEach _allHitPoints;
+
+_vehicle engineOn true;

+ 5 - 0
addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_hitHandler.sqf

@@ -0,0 +1,5 @@
+(_this select 0) params ["_target", "_shooter", "_projectile", "_position", "_velocity", "_selection", "_ammo", "_vector", "_radius", "_surfaceType", "_isDirect"];
+
+if(_target isEqualTo objNull) exitWith { systemChat "Target is null idk why, hi random citizen <3"; }; 
+private _ammoClass = _ammo select 4;
+[_ammoClass, _target] call rd501_fnc_emp_hitVehicle;

+ 40 - 0
addons - Copy/RD501_Main/functions/emp_vehicle/fnc_emp_hitVehicle.sqf

@@ -0,0 +1,40 @@
+params["_ammo", "_vehicle"];
+
+private _config = configFile >> "CfgAmmo" >> _ammo;
+
+private _empEnabled = 0;
+if(isNumber (_config >> "rd501_emp_vehicle_enabled")) then {
+	_empEnabled = getNumber (_config >> "rd501_emp_vehicle_enabled");
+};
+
+if(_empEnabled != 1) exitWith { };
+
+private _empDuration = 10;
+if(isNumber (_config >> "rd501_emp_vehicle_duration")) then {
+	_empDuration = getNumber (_config >> "rd501_emp_vehicle_duration");
+};
+
+_config = configFile >> "CfgVehicles" >> (typeOf _vehicle);
+private _empResistancePercent = 0;
+if(isNumber (_config >> "rd501_emp_vehicle_resistance_percent")) then {
+	_empResistancePercent = getNumber (_config >> "rd501_emp_vehicle_resistance_percent");
+	_empResistancePercent = _empResistancePercent max 100;
+};
+
+private _effectiveDuration = _empDuration * (1 + ((-_empResistancePercent)/100));
+diag_log format["[RD501][Vehicle EMP] Effective Duration = %1 seconds", _effectiveDuration];
+
+if(_effectiveDuration <= 1) exitWith { diag_log "[RD501][Vehicle EMP] Effective EMP Duration too low, not worth setting. Skipped." };
+
+diag_log format["[RD501][Vehicle EMP] Enabling %1", _vehicle];
+[_vehicle] call rd501_fnc_emp_disableVehicle;
+[
+	{
+		params["_vehicle"];
+		if(alive _vehicle) then {
+			[_vehicle] call rd501_fnc_emp_enableVehicle;
+		};
+	},
+	[_vehicle],
+	_effectiveDuration
+] call CBA_fnc_waitAndExecute;

+ 2 - 1
addons - Copy/RD501_Main/functions/fired_deployable/fnc_fired_deployable_firedHandler.sqf

@@ -44,4 +44,5 @@ if (_deployable == 1) then {
 			] call CBA_fnc_waitAndExecute;
 		}
 	] call CBA_fnc_waitUntilAndExecute;
-};
+};
+

+ 1 - 0
addons - Copy/RD501_Vehicle_Weapons/_ammo/config.cpp

@@ -530,6 +530,7 @@ class CfgAmmo
 		caliber = 1;
 		explosive = 0.6;
 		model="RD501_Vehicle_Weapons\_ammo\data\laser_small_green.p3d"
+		tracerScale=2;
 	};
 	class macro_new_ammo(generic_aircraft_laser_gun_praetorian) : macro_new_ammo(generic_aircraft_laser_gun_red)
 	{

+ 8 - 0
addons - Copy/RD501_Vehicle_Weapons/_mags/config.cpp

@@ -286,6 +286,14 @@ class CfgMagazines
 		displayNameShort = "Zephyr A2A";
 		tracersEvery=1;
 	};
+	class macro_new_mag(a2a,2) : 4Rnd_AAA_missiles //RD501_4Rnd_A2AM_Mag
+	{
+		ammo = macro_new_ammo(a2a)
+		count = 2;
+		displayName = "Evil Zephyr A2A";
+		displayNameShort = "Evil Zephyr A2A";
+		tracersEvery=1;
+	};
 
 	class macro_new_mag(agm,6) : PylonRack_12Rnd_PG_missiles//6Rnd_Missile_AGM_02_F
 	{

+ 1 - 1
addons - Copy/RD501_Vehicle_Weapons/aircraft/generic/aircraft_laser_gun.hpp

@@ -6,7 +6,7 @@
 		//magazines[] = {"10000Rnd_RD501_RED_AircraftGun_Mag"};
 		modes[] = {"LowROF"};
 		canLock=0;
-		ballisticsComputer=4;
+		ballisticsComputer=1;
 		weaponLockSystem = 0;//changed
 		
 		magazines[] = {macro_new_mag(generic_aircraft_gun,1000)};

+ 10 - 0
addons - Copy/RD501_Vehicle_Weapons/misc/missiles/config.cpp

@@ -44,6 +44,16 @@ class CfgWeapons
 		lockedTargetSound[] = {"TIE\LockedOn_2.ogg",0.7,1};
 		lockingTargetSound[] = {"TIE\Locking_Beep1.ogg",1,1};
 	};
+	class macro_new_weapon(wynd,a2a_vulture) : missiles_ASRAAM
+	{
+		displayName = "Zephyr (AA)";
+		displayNameShort = "Zephyr";
+		magazines[] = {macro_new_mag(a2a,2)};
+		soundFly[] = {"\xt\SWrocketloop.ogg",3,1,800};
+		lockedTargetSound[] = {"TIE\LockedOn_2.ogg",0.7,1};
+		lockingTargetSound[] = {"TIE\Locking_Beep1.ogg",1,1};
+		magazineReloadTime=15;
+	};
 	class macro_new_weapon(wynd,agm) : missiles_DAGR
 	{
 		displayName = "Torrent (AGM)";

+ 15 - 0
addons - Copy/RD501_Vehicles/air/ARC_170X/arc170_common.hpp

@@ -35,6 +35,21 @@ class Turrets: Turrets
 	class LaserPilot:LaserPilot{};
 	class Reargun:Reargun{};
 };
+class ACE_SelfActions
+		{
+			class ACE_Passengers
+			{
+				condition = "alive _target";
+				displayName = "Passengers";
+				insertChildren = "_this call ace_interaction_fnc_addPassengersActions";
+				statement = "";
+			};
+			#include "../../common/universal_hud_color_changer.hpp"
+		};
+class ViewPilot: ViewPilot
+{
+	initAngleX = 0;
+};
 class Components: Components
 {
 	class TransportPylonsComponent

+ 4 - 0
addons - Copy/RD501_Vehicles/air/ARC_170X/arc170_inheritance.hpp

@@ -15,6 +15,7 @@
 	};
 	class Plane_Fighter_03_base_F: Plane_Base_F
 	{
+		class ViewPilot;
 		class Turrets
 		{
 			class MainTurret;
@@ -22,6 +23,7 @@
 	};
 	class Plane_Fighter_03_dynamicLoadout_base_F: Plane_Fighter_03_base_F
 	{
+		class ViewPilot: ViewPilot{};
 		class Turrets: Turrets
 		{
 			class MainTurret: MainTurret
@@ -39,6 +41,7 @@
 	};
 class 3as_arc_170_base:Plane_Fighter_03_dynamicLoadout_base_F
 {
+	class ViewPilot: ViewPilot{};
 	class Turrets: Turrets
 	{
 		class LaserPilot:NewTurret{};
@@ -58,6 +61,7 @@ class NewTurret;
 class 3as_arc_170_blue: 3as_arc_170_base
 {
 	class Components;
+	class ViewPilot: ViewPilot{};
 	class Turrets: Turrets
 	{
 		class LaserPilot:LaserPilot{};

+ 7 - 0
addons - Copy/RD501_Vehicles/air/NuClass/config.cpp

@@ -29,10 +29,12 @@ class CfgVehicles
 	class 3as_nuclass_base;
 	class 3as_nuclass_f: 3as_nuclass_base
 	{
+		class ViewPilot;
 		class UserActions;
 	};
 	class 3AS_Nuclass : 3as_nuclass_f
 	{
+		class ViewPilot: ViewPilot{};
 		class UserActions: UserActions
 		{
 			class rampOpen;
@@ -136,6 +138,11 @@ class CfgVehicles
 				insertChildren = "_this call ace_interaction_fnc_addPassengersActions";
 				statement = "";
 			};
+			#include "../../common/universal_hud_color_changer.hpp"
+		};
+		class ViewPilot: ViewPilot
+		{	
+			initAngleX = 0;
 		};
 		class TransportWeapons
 		{

+ 15 - 0
addons - Copy/RD501_Vehicles/air/Vulture/config.cpp

@@ -103,6 +103,21 @@ class CfgVehicles
 		editorSubcategory = macro_editor_cat_air(CIS)
 		vehicleClass = macro_editor_vehicle_type_air(CIS)
 		radarTargetSize = 0.7;
+		weapons[]={
+			macro_new_weapon(generic,aircraft_laser),
+			macro_new_weapon(wynd,a2a_vulture)
+		};
+		magazines[]={
+			macro_new_mag(generic_aircraft_gun,1000),
+			macro_new_mag(generic_aircraft_gun,1000),
+			macro_new_mag(a2a,2),
+			macro_new_mag(a2a,2)
+		};
+		class Components: Components
+		{
+			class TransportPylonsComponent
+			{};
+		};
 		class HitPoints: HitPoints
 		{
 			class HitHull: HitHull

+ 2 - 2
addons - Copy/RD501_Vehicles/common/universal_mfd.hpp

@@ -17,7 +17,8 @@ class MFD//color[]={"user0","user1","user2"}; alpha = "user3"
 		{
 			type = "vector";
 			pos0[] = {0.5,0.5};
-			pos10[] = {1.225,1.1};
+			pos10[] = {0.5,0.5};
+			//pos10[] = {1.225,1.1};
 		};
 		topLeft = "HUD LH";
 		topRight = "HUD PH";
@@ -27,7 +28,6 @@ class MFD//color[]={"user0","user1","user2"}; alpha = "user3"
 		borderTop = 0;
 		borderBottom = 0;
 		color[]={"user0","user1","user2"};//color[] = {0.082, 0.408, 0.039, 1};
-		//yikes
 		class Bones
 		{
 			class ThrustVectoringRotation

+ 31 - 1
addons - Copy/RD501_Vehicles/land/saber/config.cpp

@@ -339,6 +339,7 @@ class LandVehicle;
 			{
 				weapons[]=
 				{
+					macro_new_weapon(saber_cannon,reconautocannon),
 					macro_new_weapon(saber_cannon,recon),
 					macro_new_weapon(saber_mg,50cal),
 					"SmokeLauncher",
@@ -357,6 +358,8 @@ class LandVehicle;
 					macro_new_mag(saber_mg,300),
 					macro_new_mag(saber_mg,300),
 					macro_new_mag(saber_mg,300),
+					macro_new_mag(saber_recon_missile_he,4),
+					"4Rnd_120mm_LG_cannon_missiles",
 					"SmokeLauncherMag",
 					"12Rnd_PG_missiles"
 				};
@@ -374,6 +377,7 @@ class CfgWeapons
 	{
 		class HE;
 	};
+	class ACE_cannon_120mm_GT12;
 	class 3AS_Sabre_Cannons;
 	class macro_new_weapon(saber_main,cannon): 3AS_Sabre_Cannons
 	{
@@ -398,7 +402,7 @@ class CfgWeapons
 			macro_new_mag(saber_super_3as,25)
 		};
 	};
-	class macro_new_weapon(saber_cannon,recon):3as_saber_autocannon_30mm
+	class macro_new_weapon(saber_cannon,reconautocannon):3as_saber_autocannon_30mm
 	{
 		class HE: HE
 		{
@@ -409,6 +413,16 @@ class CfgWeapons
 			magazineReloadTime=3;
 		};
 	};
+	class macro_new_weapon(saber_cannon,recon):ACE_cannon_120mm_GT12
+	{
+		displayName = "Magic Missile Launcher";
+		magazineReloadTime=6;
+		magazines[]=
+		{
+			macro_new_mag(saber_recon_missile_he,4),
+			"4Rnd_120mm_LG_cannon_missiles"
+		};
+	};
 };
 
 class CfgMagazines
@@ -417,6 +431,7 @@ class CfgMagazines
 	class 3AS_10Rnd_Sabre_mag;
 	class 3as_saber_80Rnd_autocannon_30mm_mag;
 	class 3as_25rnd_Sabre_Super_Mag;
+	class 4Rnd_120mm_LG_cannon_missiles;
 	class macro_new_mag(saber_mg,300):3AS_300Rnd_SabreMG_Mag
 	{
 		displayName="300 Rnd Heavy MG Ammo";
@@ -438,6 +453,12 @@ class CfgMagazines
 	{
 		ammo=macro_new_ammo(saber_super_3as)
 	};
+	class macro_new_mag(saber_recon_missile_he,4) :4Rnd_120mm_LG_cannon_missiles
+	{
+		displayName="ATGM HE";
+		displayNameShort="HE";
+		ammo=macro_new_ammo(saber_recon_missile_he)
+	};
 };
 class CfgAmmo
 {
@@ -445,6 +466,7 @@ class CfgAmmo
 	class 3AS_Sabre_HE;
 	class 3as_saber_autocannon_ammo;
 	class 3AS_Sabre_AT;
+	class M_120mm_cannon_ATGM_LG;
 	class macro_new_ammo(saber_mg):3AS_EC60_BluePlasma
 	{
 		hit=30;
@@ -488,4 +510,12 @@ class macro_new_ammo(saber_auto): 3as_saber_autocannon_ammo
 		tracerStartTime=0;
 		tracerEndTime=10;
 	};
+	class macro_new_ammo(saber_recon_missile_he):M_120mm_cannon_ATGM_LG
+	{
+		hit=100;
+		inirectHit=150;
+		indirectHitRange=30;
+		submunitionAmmo = "";
+		submunitionDirectionType = "";
+	};
 };

+ 1 - 1
addons - Copy/RD501_Weapons/DC_Family/DC_15gl/config.cpp

@@ -41,7 +41,7 @@ class CfgWeapons
 		canShootInWater=1;
 		magazines[]=
 		{
-			macro_new_mag(10mw,30)
+			macro_new_mag(20mw,20)
 		};
 		modes[] = {"Single", "Burst"};
 		muzzles[]=

+ 2 - 1
addons - Copy/RD501_Weapons/Launchers/RPS4/config.cpp

@@ -44,7 +44,8 @@ class CfgWeapons
 		{
 			macro_new_mag(rps4heat,1),
 			macro_new_mag(rps4he,1),
-			macro_new_mag(rps4burst,1)
+			macro_new_mag(rps4burst,1),
+			macro_new_mag(rps4emp,1)
 		};
 	};
 };

+ 19 - 0
addons - Copy/RD501_Weapons/_ammo/config.cpp

@@ -328,6 +328,15 @@ class CfgAmmo
 			power=0;
 		};
     };
+	class macro_new_ammo(UGL_Supersmoke) :G_40mm_Smoke
+	{
+		hit = 2;
+		indirectHit = 1;
+		indirectHitRange = 1;
+		timeToLive =30;
+		model="\3AS\3AS_Equipment\model\3AS_thermaldet.p3d";
+		effectsSmoke="RD501_ThickSmokeShellWhiteEffect";
+	};
 	class macro_new_ammo(Devastator_dioxis) :G_40mm_Smoke
 	{
 		hit = 2;
@@ -594,6 +603,16 @@ class CfgAmmo
 		hit=150;
 		submunitionAmmo="ammo_Penetrator_Titan_AT";
 	};
+	class macro_new_ammo(rps4emp):R_PG32V_F
+	{
+		hit=1;
+		submunitionAmmo="";
+		submunitionDirectionType="";
+		CraterEffects="";
+		explosionEffects="JLTS_fx_exp_EMP";
+		rd501_emp_vehicle_enabled=1;
+		rd501_emp_vehicle_duration=15;
+	};
 	class macro_new_ammo(rps4burst):R_PG32V_F
 	{
 		triggerTime  = 1;

+ 17 - 7
addons - Copy/RD501_Weapons/_mag/config.cpp

@@ -101,8 +101,9 @@ class CfgMagazines
 	};
 	class macro_new_mag(20mw,20) : 3AS_45Rnd_EC50_Mag
 	{
-		displayName="20 Round 20MW Cell";
-		count = 20;
+		displayName="25 Round 20MW Cell";
+		count = 25;
+		picture="\RD501_Weapons\_mag\data\rd501_icon_mag_dc15a_up.paa";
 		ammo=macro_new_ammo(20mw)
 		initSpeed=700;
 		descriptionShort="Medium power magazine";
@@ -360,6 +361,14 @@ class CfgMagazines
 		ammo = "F_40mm_White";
 		descriptionShort = "6Rd White Flare RGL6 Grenade";
 	};
+	class macro_new_mag(UGL_Supersmoke,6):1Rnd_Smoke_Grenade_shell
+	{
+		displayName = "6 Rd VapeNation Magazine";
+		displayNameShort = "6 Rnd VapeNation Magazine";
+		count=6;
+		ammo = macro_new_ammo(UGL_Supersmoke)
+		descriptionShort = "6Rd VapeNation Magazine";
+	};
 	class macro_new_mag(Devastator_stun,1):1Rnd_HE_Grenade_shell
 	{
 		displayName = "1 Rd Devastator Stun Magazine";
@@ -512,7 +521,7 @@ class CfgMagazines
 		displayName="RPS4 Smoke Cluster Rocket";
 		descriptionShort="Burst Rocket";
 		count=1;
-		scope=1;
+		scope=2;
 		ammo = macro_new_ammo(rps4burst);
 	};
 	class macro_new_mag(rps4emp,1): RPG32_F
@@ -520,7 +529,7 @@ class CfgMagazines
 		author="RD501";
 		displayName="RPS4 EMP Rocket";
 		descriptionShort="EMP Rocket";
-		ammo=macro_new_ammo(rps4heat)
+		ammo=macro_new_ammo(rps4emp)
 	};
 	////////////////////////////////////////////////////
 	/////////////Shotgun  Magazines/////////////////////
@@ -579,15 +588,16 @@ class CfgMagazines
 		ammo = macro_new_ammo(shotgun_HE)
 		descriptionShort = "12 Rnd UP";
 	};
-	class macro_new_mag(shotgun_slug,15):2Rnd_12Gauge_Pellets
+	class macro_new_mag(shotgun_slug,15):macro_new_mag(30mw,10)
 	{
 		scope=2;
+		initSpeed=600;
 		displayName = "15 Rnd Slug Magazine";
 		displayNameShort = "15 Rnd Slug Mag";
 		count=15;
-		initSpeed=600;
 		ammo = macro_new_ammo(30mw)
-		descriptionShort = "15 Rnd Slug";
+		descriptionShort = "15 Rnd Slug";	
+		picture = "\a3\Weapons_F_Enoch\MagazineProxies\data\UI\icon_2rnd_12gauge_slugs_CA.paa";
 	};
 	////////////////////////////////////////////////////
 	/////////////Flare    Magazines/////////////////////

+ 2 - 1
addons - Copy/RD501_Weapons/config.cpp

@@ -68,7 +68,8 @@ class CfgMagazineWells
 			"3Rnd_SmokeBlue_Grenade_shell",
 			"3Rnd_SmokeOrange_Grenade_shell",
 			"ACE_HuntIR_M203",
-			"1Rnd_Leaflets_Civ_F"
+			"1Rnd_Leaflets_Civ_F",
+			macro_new_mag(UGL_Supersmoke,6)