فهرست منبع

b2 armor stuff

Florian Steinschorn 4 سال پیش
والد
کامیت
67a24d7cb3

+ 1 - 6
addons - Copy/RD501_Units/opfor/B2/B2_Reskins.hpp

@@ -8,9 +8,7 @@ class macro_new_uniform_skin_class(opfor,B2_Armor): SWOP_B2_superdroid
     };
 	JLTS_isDroid = 1; 
     JLTS_hasEMPProtection = 0; 
-    JLTS_deathSounds = "DeathDroid"; 
-    // armor = 18;
-	// armorStructural = 32;
+    JLTS_deathSounds = "DeathDroid";
 };
 
 class macro_new_uniform_skin_class(opfor,B2_Aqua): SWOP_B2_superdroid
@@ -35,7 +33,4 @@ class macro_new_uniform_skin_class(opfor,B2_Test): SWOP_B2_superdroid
         macro_unit_skin_textures\CIS\B2\rocket\ReskinB2_waist.paa,
         macro_unit_skin_textures\CIS\B2\rocket\ReskinB2_legs.paa
     };
-
-    armor = 22;
-	armorStructural = 32;
 };

+ 0 - 154
addons - Copy/RD501_Units/opfor/B2/armor.hpp

@@ -1,154 +0,0 @@
-class HitPoints: HitPoints
-{
-    class HitFace
-    {
-        armor = 10;
-        material = -1;
-        name = "face_hub";
-        passThrough = 0.1;
-        radius = 0.08;
-        explosionShielding = 0.1;
-        minimalHit = 0.01;
-    };
-    class HitNeck: HitFace
-    {
-        armor = 15;
-        material = -1;
-        name = "neck";
-        passThrough = 0.1;
-        radius = 0.1;
-        explosionShielding = 0.1;
-        minimalHit = 0.01;
-    };
-    class HitHead: HitNeck
-    {
-        armor = 10;
-        material = -1;
-        name = "head";
-        passThrough = 0.1;
-        radius = 0.2;
-        explosionShielding = 0.1;
-        minimalHit = 0.01;
-        depends = "HitFace max HitNeck";
-    };
-    class HitPelvis
-    {
-        armor = 15;
-        material = -1;
-        name = "pelvis";
-        passThrough = 0.1;
-        radius = 0.2;
-        explosionShielding = 0.25;
-        visual = "injury_body";
-        minimalHit = 0.01;
-    };
-    class HitAbdomen: HitPelvis
-    {
-        armor = 15;
-        material = -1;
-        name = "spine1";
-        passThrough = 0.1;
-        radius = 0.15;
-        explosionShielding = 0.25;
-        visual = "injury_body";
-        minimalHit = 0.01;
-    };
-    class HitDiaphragm: HitAbdomen
-    {
-        armor = 20;
-        material = -1;
-        name = "spine2";
-        passThrough = 0.1;
-        radius = 0.15;
-        explosionShielding = 2;
-        visual = "injury_body";
-        minimalHit = 0.01;
-    };
-    class HitChest: HitDiaphragm
-    {
-        armor = 25;
-        material = -1;
-        name = "spine3";
-        passThrough = 0.1;
-        radius = 0.15;
-        explosionShielding = 2;
-        visual = "injury_body";
-        minimalHit = 0.01;
-    };
-    class HitBody: HitChest
-    {
-        armor = 700;
-        material = -1;
-        name = "body";
-        passThrough = 0.1;
-        radius = 0.16;
-        explosionShielding = 2;
-        visual = "injury_body";
-        minimalHit = 0.01;
-        depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
-    };
-    class HitArms
-    {
-        armor = 25;
-        material = -1;
-        name = "arms";
-        passThrough = 0.5;
-        radius = 0.1;
-        explosionShielding = 0.25;
-        visual = "injury_hands";
-        minimalHit = 0.01;
-    };
-    class HitHands: HitArms
-    {
-        armor = 20;
-        material = -1;
-        name = "hands";
-        passThrough = 0.5;
-        radius = 0.1;
-        explosionShielding = 0.25;
-        visual = "injury_hands";
-        minimalHit = 0.01;
-        depends = "HitArms";
-    };
-    class HitLegs
-    {
-        armor = 20;
-        material = -1;
-        name = "legs";
-        passThrough = 0.5;
-        radius = 0.12;
-        explosionShielding = 0.25;
-        visual = "injury_legs";
-        minimalHit = 0.01;
-    };
-    class HitLeftArm
-    {
-        armor = 5;
-        material = -1;
-        name = "hand_l";
-        passThrough = 0.1;
-        radius = 0.1;
-        explosionShielding = 0.25;
-        visual = "injury_hands";
-        minimalHit = 0.01;
-    };
-    class HitRightArm: HitLeftArm
-    {
-        name = "hand_r";
-    };
-    class HitLeftLeg
-    {
-        armor = 5;
-        material = -1;
-        name = "leg_l";
-        passThrough = 0.1;
-        radius = 0.1;
-        explosionShielding = 0.25;
-        visual = "injury_hands";
-        minimalHit = 0.01;
-    };
-    class HitRightLeg: HitLeftLeg
-    {
-        name = "leg_r";
-    };
-};

+ 120 - 0
addons - Copy/RD501_Units/opfor/B2/armor_uniform.hpp

@@ -0,0 +1,120 @@
+armor = 10;							// total armor of uniform
+armorStructural = 1.0;				// damage to total is divided by this
+explosionShielding	= 1.0;			// explosion damage to total is multiplied by this
+minTotalDamageThreshold	= 0.001;	// minimal registered damage
+impactDamageMultiplier	= 0.5;		// fall damage multiplier
+class HitPoints
+{
+	class HitFace
+	{
+		armor = 15;					// multiplier to total armor
+		material = -1;
+		name = "face_hub";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitNeck: HitFace
+	{
+		armor = 15;
+		material = -1;
+		name = "neck";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitHead: HitNeck
+	{
+		armor = 1000;
+		material = -1;
+		name = "head";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitPelvis
+	{
+		armor = 15;
+		material = -1;
+		name = "pelvis";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitAbdomen: HitPelvis
+	{
+		armor = 15;
+		material = -1;
+		name = "spine1";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitDiaphragm: HitAbdomen
+	{
+		armor = 15;
+		material = -1;
+		name = "spine2";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitChest: HitDiaphragm
+	{
+		armor = 15;
+		material = -1;
+		name = "spine3";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitBody: HitChest
+	{
+		armor = 1000;
+		material = -1;
+		name = "body";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitArms
+	{
+		armor = 5;
+		material = -1;
+		name = "arms";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitHands: HitArms
+	{
+		armor = 5;
+		material = -1;
+		name = "hands";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitLegs
+	{
+		armor = 5
+		material = -1;
+		name = "legs";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitLeftArm
+	{
+		armor = 5;
+		material = -1;
+		name = "hand_l";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitRightArm: HitLeftArm
+	{
+		name = "hand_r";
+	};
+	class HitLeftLeg
+	{
+		armor = 5;
+		material = -1;
+		name = "leg_l";
+		passThrough = 0.0;
+		explosionShielding = 0.1;
+	};
+	class HitRightLeg: HitLeftLeg
+	{
+		name = "leg_r";
+	};
+};

+ 159 - 0
addons - Copy/RD501_Units/opfor/B2/armor_unit.hpp

@@ -0,0 +1,159 @@
+armor = 1;							// unit health
+armorStructural = 1.0;				// damage to total divided by this
+explosionShielding	= 1.0;			// explosion damage to total multiplied by this
+minTotalDamageThreshold	= 0.001;	// minimal registered damage
+impactDamageMultiplier	= 1.0;		// fall damage multiplier
+class HitPoints
+{
+	class HitFace
+	{
+		armor = 1;					// multiplier to unit health
+		material = -1;
+		name = "face_hub";
+		passThrough = 1.0;
+		radius = 0.08;
+		explosionShielding = 0.1;
+		minimalHit = 0.01;
+	};
+	class HitNeck: HitFace
+	{
+		armor = 1;
+		material = -1;
+		name = "neck";
+		passThrough = 1.0;
+		radius = 0.1;
+		explosionShielding = 0.1;
+		minimalHit = 0.01;
+	};
+	class HitHead: HitNeck
+	{
+		armor = 1000;			// unused
+		material = -1;
+		name = "head";
+		passThrough = 1.0;
+		radius = 0.2;
+		explosionShielding = 0.5;
+		minimalHit = 0.01;
+		depends = "HitFace max HitNeck";
+	}
+	class HitPelvis
+	{
+		armor = 1;
+		material = -1;
+		name = "pelvis";
+		passThrough = 1.0;
+		radius = 0.2;
+		explosionShielding = 0.25;
+		visual = "injury_body";
+		minimalHit = 0.01;
+	};
+	class HitAbdomen: HitPelvis
+	{
+		armor = 1;
+		material = -1;
+		name = "spine1";
+		passThrough = 1.0;
+		radius = 0.15;
+		explosionShielding = 0.25;
+		visual = "injury_body";
+		minimalHit = 0.01;
+	};
+	class HitDiaphragm: HitAbdomen
+	{
+		armor = 1;
+		material = -1;
+		name = "spine2";
+		passThrough = 1.0;
+		radius = 0.15;
+		explosionShielding = 2;
+		visual = "injury_body";
+		minimalHit = 0.01;
+	};
+	class HitChest: HitDiaphragm
+	{
+		armor = 1;
+		material = -1;
+		name = "spine3";
+		passThrough = 1.0;
+		radius = 0.15;
+		explosionShielding = 2;
+		visual = "injury_body";
+		minimalHit = 0.01;
+	};
+	class HitBody: HitChest
+	{
+		armor = 1000;			// unused
+		material = -1;
+		name = "body";
+		passThrough = 1.0;
+		radius = 0.16;
+		explosionShielding = 6;
+		visual = "injury_body";
+		minimalHit = 0.01;
+		depends = "HitPelvis max HitAbdomen max HitDiaphragm max HitChest";
+	};
+	class HitArms
+	{
+		armor = 1;
+		material = -1;
+		name = "arms";
+		passThrough = 1.0;
+		radius = 0.1;
+		explosionShielding = 0.25;
+		visual = "injury_hands";
+		minimalHit = 0.01;
+	};
+	class HitHands: HitArms
+	{
+		armor = 1;
+		material = -1;
+		name = "hands";
+		passThrough = 1.0;
+		radius = 0.1;
+		explosionShielding = 0.25;
+		visual = "injury_hands";
+		minimalHit = 0.01;
+		depends = "HitArms";
+	};
+	class HitLegs
+	{
+		armor = 1;
+		material = -1;
+		name = "legs";
+		passThrough = 1.0;
+		radius = 0.12;
+		explosionShielding = 0.25;
+		visual = "injury_legs";
+		minimalHit = 0.01;
+	};
+	class HitLeftArm
+	{
+		armor = 1;
+		material = -1;
+		name = "hand_l";
+		passThrough = 1.0;
+		radius = 0.1;
+		explosionShielding = 0.25;
+		visual = "injury_hands";
+		minimalHit = 0.01;
+	};
+	class HitRightArm: HitLeftArm
+	{
+		name = "hand_r";
+	};
+	class HitLeftLeg
+	{
+		armor = 1;
+		material = -1;
+		name = "leg_l";
+		passThrough = 1.0;
+		radius = 0.1;
+		explosionShielding = 0.25;
+		visual = "injury_hands";
+		minimalHit = 0.01;
+	};
+	class HitRightLeg: HitLeftLeg
+	{
+		name = "leg_r";
+	};
+};

+ 21 - 33
addons - Copy/RD501_Units/opfor/B2/config.cpp

@@ -45,6 +45,10 @@ class CfgPatches
 
 class cfgWeapons
 {
+	/**
+	 * UNIFORMS
+	 * the item the unit wears in the uniform slot
+	 */
 	class ItemCore;
 	class Uniform_Base: ItemCore
 	{
@@ -53,7 +57,6 @@ class cfgWeapons
 	class VestItem;
 	class UniformItem;
 	class SWOP_B2_superdroid_F_Spec;
-	//For reference @1,this is wat we see in arsenal.
 	class macro_new_uniform_class(opfor,B2_Armor): Uniform_Base
 	{
 		author = "SWOP";
@@ -68,18 +71,14 @@ class cfgWeapons
 		class ItemInfo: UniformItem
 		{
 			uniformModel = "-";
-			uniformClass = macro_new_uniform_skin_class(opfor,B2_Armor); //ties to @2
-			armor = 100;
-			armorStructural = 20;//30;//20;
-			explosionShielding = 0.001;
-			impactDamageMultiplier = 0.001;
+			uniformClass = macro_new_uniform_skin_class(opfor,B2_Armor);
 			modelSides[] = {6};
 			containerClass = "Supply100";
 			mass = 400;
+			#include "armor_uniform.hpp"
 		};
 	};
 
-
 	class macro_new_uniform_class(opfor,B2_Armor_Test): Uniform_Base
 	{
 		author = "SWOP";
@@ -105,7 +104,6 @@ class cfgWeapons
 		};
 	};
 
-
 	class macro_new_uniform_class(opfor,B2_Aqua):SWOP_B2_superdroid_F_Spec
 	{
 		scope=2;
@@ -138,22 +136,27 @@ class DefaultEventhandlers;
 class CfgVehicles
 {
 	class O_Soldier_base_F;
-	class SWOP_CIS_Base:O_Soldier_base_F
+	class SWOP_CIS_Base: O_Soldier_base_F
 	{
 		class HitPoints;
-	}
-	class SWOP_B2_superdroid:SWOP_CIS_Base
-	{
-		#include "armor.hpp"
-	}
+	};
 
-	//THIS IS THE ACUTAL UNIFORM THEY WEAR. @2
+	/**
+	 * UNIFORM SKINS
+	 * units that only act as skins for the uniform
+	 */
+	class SWOP_B2_superdroid: SWOP_CIS_Base
+	{
+		#include "armor_uniform.hpp"
+	};
 	#include "B2_Reskins.hpp"
 
+	/**
+	 * UNITS
+	 * the actual unit running around under the uniform
+	 */
 	class SWOP_CIS_superdroid_B2: SWOP_CIS_Base
 	{
-		//scope=0;
-		displayname = "Standard B2 (Blaster)";
 		class EventHandlers : DefaultEventhandlers {};
 	};
 	class macro_new_unit_class(opfor,B2_droid_Standard): SWOP_CIS_superdroid_B2
@@ -165,45 +168,31 @@ class CfgVehicles
 		uniformClass = macro_new_uniform_class(opfor,B2_Armor);
 		displayname = "B2 (Blaster)";
 		class EventHandlers : DefaultEventhandlers {};
-		#include "armor.hpp"
+		#include "armor_unit.hpp"
 	};
 	class  macro_new_unit_class(opfor,B2_droid_Rocket): macro_new_unit_class(opfor,B2_droid_Standard)
 	{
-		
 		displayname = "B2 (Rocket)";
 		author= "RD501";
 		magazines[] = {"SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag"};
 		respawnMagazines[] = {"SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag"};
-
-		//ties to @1
 		uniformClass = macro_new_uniform_class(opfor,B2_Armor);
-
 	};
 	class macro_new_unit_class(opfor,B2_super_droid_Rocket) : macro_new_unit_class(opfor,B2_droid_Rocket)
 	{
 		scope=2;
 		displayname = "Super B2 (Rocket)";
-	
-	
-		
 	};
 
 	class  macro_new_unit_class(opfor,B2_droid_Test): macro_new_unit_class(opfor,B2_droid_Standard)
 	{
-		
 		displayname = "B2 (TEST)";
 		author= "RD501";
 		magazines[] = {"SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag"};
 		respawnMagazines[] = {"SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag", "SWOP_B2rocket_Mag"};
-
-		//ties to @1
 		uniformClass = macro_new_uniform_class(opfor,B2_Armor_Test);
-		
-
 	};
 
-	
-
 	class  macro_new_unit_class(opfor,B2_aqua): macro_new_unit_class(opfor,B2_droid_Standard)
 	{
 		displayname = "B2 (Water Enforcement Technician)";
@@ -221,6 +210,5 @@ class CfgVehicles
 		magazines[] = {"SWOP_b2gun_Mag","SWOP_b2gun_Mag","SWOP_b2gun_Mag","SWOP_b2gun_Mag"};
 		weapons[] = {macro_new_weapon(b2,aqua_gun),"Throw","Put"};
 		linkedItems[] = {macro_new_weapon(equipment,Water_Filtration),"ItemMap","ItemCompass","ItemWatch","ItemRadio","NVGoggles"};
-		
 	};
 };