ACE3/addons/medical/CfgVehicles.hpp
Thomas Kooi dce0b61d57 Added damage threshold module
Removed debug prints
2015-01-22 23:29:18 +01:00

1040 lines
31 KiB
C++

class CfgVehicles
{
class Logic;
class Module_F: Logic {
class ArgumentsBaseUnits {
};
};
class ACE_moduleCombatMedicalSystem: Module_F {
scope = 2;
displayName = "Combat Medical System [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(initalizeModuleCMS));
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
author = "Glowbal";
class Arguments {
class advancedLevel {
displayName = "Advanced Level";
description = "How advanced can the medical system be?";
typeName = "NUMBER";
class values {
class basic {
name = "Basic. Only bleeding and pain.";
value = 0;
default = 1;
};
class normal {
name = "Normal. Bleeding, Pain, Blood pressure and heart rate";
value = 1;
};
class full {
name = "Full. Everything enabled.";
value = 2;
};
};
};
class openingOfWounds {
displayName = "Advanced Wounds";
description = "When set to true, bandaged wounds could on occasion re-open, resulting in new open wounds that need to be bandaged.";
typeName = "BOOL";
defaultValue = 1;
};
class mediACEtting {
displayName = "Advanced Medic roles";
description = "Medics only are able to view the detailed information";
typeName = "BOOL";
defaultValue = 1;
};
class difficultySetting {
displayName = "Survival Difficulty";
description = "Select the aggressiveness of the medical simulation";
typeName = "NUMBER";
class values {
class recruit {
name = "Recruit";
value = 0.5;
};
class regular {
name = "Regular";
value = 1;
default = 1;
};
class veteran {
name = "Veteran";
value = 1.2;
};
class expert {
name = "Expert";
value = 1.5;
};
};
};
class enableFor {
displayName = "Enabled for";
description = "Select what units CMS will be enabled for";
typeName = "NUMBER";
class values {
class playableUnits {
name = "Players only";
value = 0;
default = 1;
};
class playableUnitsAndAI {
name = "Players and AI";
value = 1;
};
};
};
class enableAirway {
displayName = "Enable Airway";
description = "Should CMS Airway system be enabled?";
typeName = "NUMBER";
class values {
class enable {
name = "Yes";
value = 1;
};
class disable {
name = "No";
value = 0;
default = 1;
};
};
};
class vehCrashes {
displayName = "Vehicle Crashes";
description = "Enable injuries on vehicle crashes";
typeName = "BOOL";
defaultValue = 1;
};
class aidKitUponUsage {
displayName = "Disposable Aid kit";
description = "Is a personal aid kit disposable?";
typeName = "BOOL";
defaultValue = false;
};
class aidKitMedicsOnly {
displayName = "Medics only";
description = "Are aid kits restricted to medics only?";
typeName = "BOOL";
defaultValue = false;
};
class aidKitRestrictions {
displayName = "Aid kit";
description = "When can an Aid kit be used?";
typeName = "NUMBER";
class values {
class medFacility {
name = "Medical Facility";
value = 0;
default = 1;
};
class medFAcilityNoBleeding {
name = "Medical Facility & No bleeding";
value = 1;
};
class Everywhere {
name = "Everywhere";
value = 2;
};
class EverywhereNoBleeding {
name = "Everywhere & No Bleeding";
value = 3;
};
};
};
class bandageTime {
displayName = "Bandage Time";
description = "Time it takes for a bandage action to be completed";
typeName = "NUMBER";
defaultValue = 5;
};
class stitchingAllow {
displayName = "Can Stitch";
description = "What units can use stitching?";
typeName = "NUMBER";
defaultValue = 0;
class values {
class medicsOnly {
name = "Medics Only";
value = 0;
default = 1;
};
class everyone {
name = "Everyone";
value = 1;
};
class noOne {
name = "No units";
value = -1;
};
};
};
};
class ModuleDescription {
description = "Provides a more realistic medical system for both players and AI."; // Short description, will be formatted as structured text
sync[] = {};
};
};
class ACE_moduleDamageSettings: Module_F {
scope = 2;
displayName = "Damage Settings [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(moduleDamageSettings));
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
author = "Glowbal";
class Arguments {
class damageThresholdAI {
displayName = "Damage Threshold AI";
description = "How much damage does it take for an AI to be killed?";
typeName = "NUMBER";
defaultValue = 1;
};
class damageThresholdPlayers {
displayName = "Damage Threshold Players";
description = "How much damage does it take for a player to be killed?";
typeName = "NUMBER";
defaultValue = 1;
};
};
class ModuleDescription {
description = "Custom damage threshold module";
sync[] = {};
};
};
class ACE_moduleAssignMedicRoles: Module_F {
scope = 2;
displayName = "Set Medic Class [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(moduleAssignMedicRoles));
functionPriority = 10;
isGlobal = 2;
isTriggerActivated = 0;
isDisposable = 0;
author = "Glowbal";
class Arguments {
class EnableList {
displayName = "List";
description = "List of unit names that will be classified as medic, separated by commas.";
defaultValue = "";
};
class class {
displayName = "Is Medic";
description = "Medics allow for more advanced treatment in case of Advanced Medic roles enabled";
typeName = "BOOL";
defaultValue = true;
};
};
class ModuleDescription {
description = "Assigns the ACE medic class to a unit"; // Short description, will be formatted as structured text
sync[] = {};
};
};
class ACE_moduleAssignMedicalVehicle: Module_F {
scope = 2;
displayName = "set Medical Vehicle [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(moduleAssignMedicalVehicle));
functionPriority = 10;
isGlobal = 2;
isTriggerActivated = 0;
isDisposable = 0;
author = "Glowbal";
class Arguments {
class EnableList {
displayName = "List";
description = "List of object names that will be classified as medical vehicle, separated by commas.";
defaultValue = "";
};
class enabled {
displayName = "Is Medical Vehicle";
description = "Whatever or not the objects in the list will be a medical vehicle.";
typeName = "BOOL";
defaultValue = true;
};
};
class ModuleDescription {
description = "Assigns the ACE medical vehicle class to a vehicle.";
sync[] = {};
};
};
class ACE_moduleAssignMedicalFacility: Module_F {
scope = 2;
displayName = "Set Medical Facility [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(moduleAssignMedicalFacility));
functionPriority = 10;
isGlobal = 2;
isTriggerActivated = 0;
isDisposable = 0;
author = "Glowbal";
class Arguments {
class class {
displayName = "Is Medical Facility";
description = "Registers an object as a medical facility for CMS";
typeName = "BOOL";
};
};
class ModuleDescription {
description = "Defines an object as a medical facility for CMS. This allows for more advanced treatments. Can be used on buildings and vehicles. ";
sync[] = {};
};
};
class ACE_moduleAssignMedicalEquipment: Module_F {
scope = 2;
displayName = "Assign Medical Equipment [ACE]";
icon = QUOTE(PATHTOF(data\ACE_medical_module.paa));
category = "ACE_medical";
function = QUOTE(FUNC(moduleAssignMedicalEquipment));
functionPriority = 1;
isGlobal = 1;
isTriggerActivated = 0;
author = "Glowbal";
class Arguments {
class equipment {
displayName = "Assign Equipment";
description = "Assign Medical equipment to all players";
typeName = "NUMBER";
defaultValue = 0;
class values {
class AllPlayers {
name = "All Players";
value = 0;
default = 1;
};
class MedicsOnly {
name = "Medics only";
value = 1;
};
};
};
};
class ModuleDescription {
description = "Assigns medical equipment to units";
sync[] = {};
};
};
class MapBoard_altis_F;
class ACE_bodyBag: MapBoard_altis_F {
scope = 1;
side = -1;
model = QUOTE(PATHTOF(equipment\bodybag.p3d));
icon = "";
displayName = $STR_ACE_MAG_BODYBAG_DISPLAY;
};
class Item_Base_F;
class ACE_bandage_basicItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BANDAGE_BASIC_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_bandage_basic
{
name = "ACE_bandage_basic";
count = 1;
};
};
};
class ACE_packing_bandageItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PACKING_BANDAGE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_packing_bandage
{
name = "ACE_packing_bandage";
count = 1;
};
};
};
class ACE_bandageElasticItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BANDAGE_ELASTIC_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_bandageElastic
{
name = "ACE_bandageElastic";
count = 1;
};
};
};
class ACE_tourniquetItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_TOURNIQUET_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_tourniquet
{
name = "ACE_tourniquet";
count = 1;
};
};
};
class ACE_splintItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SPLINT_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_splint
{
name = "ACE_splint";
count = 1;
};
};
};
class ACE_morphineItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_MORPHINE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_morphine
{
name = "ACE_morphine";
count = 1;
};
};
};
class ACE_atropineItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_ATROPINE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_atropine
{
name = "ACE_atropine";
count = 1;
};
};
};
class ACE_epinephrineItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_EPINEPHRINE_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_epinephrine
{
name = "ACE_epinephrine";
count = 1;
};
};
};
class ACE_plasma_ivItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PLASMA_IV;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_plasma_iv
{
name = "ACE_plasma_iv";
count = 1;
};
};
};
class ACE_plasma_iv_500Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PLASMA_IV_500;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_plasma_iv_500
{
name = "ACE_plasma_iv_500";
count = 1;
};
};
};
class ACE_plasma_iv_250Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_PLASMA_IV_250;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_plasma_iv_250
{
name = "ACE_plasma_iv_250";
count = 1;
};
};
};
class ACE_blood_ivItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BLOOD_IV;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_blood_iv
{
name = "ACE_blood_iv";
count = 1;
};
};
};
class ACE_blood_iv_500Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BLOOD_IV_500;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_blood_iv_500
{
name = "ACE_blood_iv_500";
count = 1;
};
};
};
class ACE_blood_iv_250Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BLOOD_IV_250;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_blood_iv_250
{
name = "ACE_blood_iv_250";
count = 1;
};
};
};
class ACE_saline_ivItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SALINE_IV;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_saline_iv
{
name = "ACE_saline_iv";
count = 1;
};
};
};
class ACE_saline_iv_500Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SALINE_IV_500;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_saline_iv_500
{
name = "ACE_saline_iv_500";
count = 1;
};
};
};
class ACE_saline_iv_250Item: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_SALINE_IV_250;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_saline_iv_250
{
name = "ACE_saline_iv_250";
count = 1;
};
};
};
class ACE_quikclotItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_QUIKCLOT_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_quikclot
{
name = "ACE_quikclot";
count = 1;
};
};
};
class ACE_nasopharyngeal_tubeItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_NPA_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_nasopharyngeal_tube
{
name = "ACE_nasopharyngeal_tube";
count = 1;
};
};
};
class ACE_opaItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_OPA_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_opa
{
name = "ACE_opa";
count = 1;
};
};
};
class ACE_liquidSkinItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_LIQUID_SKIN_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_liquidSkin
{
name = "ACE_liquidSkin";
count = 1;
};
};
};
class ACE_chestsealItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_CHEST_SEAL_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_chestseal
{
name = "ACE_chestseal";
count = 1;
};
};
};
class ACE_personal_aid_kitItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_AID_KIT_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_personal_aid_kit
{
name = "ACE_personal_aid_kit";
count = 1;
};
};
};
class ACE_bodyBagItem: Item_Base_F {
scope = 2;
scopeCurator = 2;
displayName = $STR_ACE_MAG_BODYBAG_DISPLAY;
author = "Glowbal";
vehicleClass = "Items";
class TransportItems
{
class ACE_itemBodyBag
{
name = "ACE_itemBodyBag";
count = 1;
};
};
};
class NATO_Box_Base;
class ACE_medical_supply_crate_cms : NATO_Box_Base {
scope = 2;
accuracy = 1000;
displayName = "Medical Supply Crate [ACE]";
model = "\A3\weapons_F\AmmoBoxes\AmmoBox_F";
author = "Glowbal";
class TransportItems {
class ACE_bandage_basic {
name = "ACE_bandage_basic";
count = 25;
};
class ACE_packing_bandage {
name = "ACE_packing_bandage";
count = 25;
};
class ACE_tourniquet {
name = "ACE_tourniquet";
count = 25;
};
class ACE_splint {
name = "ACE_splint";
count = 25;
};
class ACE_plasma_iv {
name = "ACE_plasma_iv";
count = 25;
};
class ACE_plasma_iv_500 {
name = "ACE_plasma_iv_500";
count = 25;
};
class ACE_plasma_iv_250 {
name = "ACE_plasma_iv_250";
count = 25;
};
class ACE_blood_iv {
name = "ACE_blood_iv";
count = 25;
};
class ACE_blood_iv_500 {
name = "ACE_blood_iv_500";
count = 25;
};
class ACE_blood_iv_250 {
name = "ACE_blood_iv_250";
count = 25;
};
class ACE_saline_iv {
name = "ACE_saline_iv";
count = 25;
};
class ACE_saline_iv_500 {
name = "ACE_saline_iv_500";
count = 25;
};
class ACE_saline_iv_250 {
name = "ACE_saline_iv_250";
count = 25;
};
class ACE_morphine {
name = "ACE_morphine";
count = 25;
};
class ACE_epinephrine {
name = "ACE_epinephrine";
count = 25;
};
class ACE_atropine {
name = "ACE_atropine";
count = 25;
};
class ACE_quikclot {
name = "ACE_quikclot";
count = 25;
};
class ACE_nasopharyngeal_tube {
name = "ACE_nasopharyngeal_tube";
count = 25;
};
class ACE_bandageElastic {
name = "ACE_bandageElastic";
count = 25;
};
class ACE_liquidSkin {
name = "ACE_liquidSkin";
count = 25;
};
class ACE_chestseal {
name = "ACE_chestseal";
count = 25;
};
class ACE_personal_aid_kit {
name = "ACE_personal_aid_kit";
count = 25;
};
class ACE_surgical_kit {
name = "ACE_surgical_kit";
count = 25;
};
class ACE_itemBodyBag {
name = "ACE_itemBodyBag";
count = 5;
};
};
};
#define ARM_LEG_ARMOR_DEFAULT 2
#define ARM_LEG_ARMOR_BETTER 3
#define ARM_LEG_ARMOR_CSAT 4
class Man;
class CAManBase: Man {
class HitPoints {
class HitHead;
class HitBody;
// "DEACTIVE" DEFAULT HITPOINTS
class HitHands {
armor = 999; //armor = 2;
explosionShielding = 0; //explosionShielding = 1;
material = -1;
minimalHit = 0;
name = "";
passThrough = 1;
radius = 0; //radius = 0.06;
visual = "injury_hands";
};
class HitLegs {
armor = 999; //armor = 2;
explosionShielding = 0; //explosionShielding = 1;
material = -1;
minimalHit = 0;
name = "";
passThrough = 1;
radius = 0; //radius = 0.08;
visual = "injury_legs";
};
class HitLeftArm {
armor = ARM_LEG_ARMOR_DEFAULT; //2;
explosionShielding = 1;
material = -1;
minimalHit = 0;
name = "hand_l";
passThrough = 1;
radius = 0.06;
visual = "injury_hands";
};
class HitRightArm: HitLeftArm {
name = "hand_r";
};
class HitLeftLeg {
armor = ARM_LEG_ARMOR_DEFAULT; //2;
explosionShielding = 1;
material = -1;
minimalHit = 0;
name = "leg_l";
passThrough = 1;
radius = 0.08;
visual = "injury_legs";
};
class HitRightLeg: HitLeftLeg {
name = "leg_r";
};
};
};
class SoldierWB: CAManBase {};
class SoldierEB: CAManBase {};
class SoldierGB: CAManBase {};
class B_Soldier_base_F: SoldierWB {};
class B_Soldier_04_f: B_Soldier_base_F {
class HitPoints: HitPoints {
class HitHead: HitHead {};
class HitBody: HitBody {};
class HitHands: HitHands {};
class HitLegs: HitLegs {};
class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightArm: HitRightArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitLeftLeg: HitLeftLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
};
};
class B_Soldier_05_f: B_Soldier_base_F {
class HitPoints: HitPoints {
class HitHead: HitHead {};
class HitBody: HitBody {};
class HitHands: HitHands {};
class HitLegs: HitLegs {};
class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightArm: HitRightArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitLeftLeg: HitLeftLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
};
};
class I_Soldier_base_F: SoldierGB {};
class I_Soldier_03_F: I_Soldier_base_F {
class HitPoints: HitPoints {
class HitHead: HitHead {};
class HitBody: HitBody {};
class HitHands: HitHands {};
class HitLegs: HitLegs {};
class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightArm: HitRightArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitLeftLeg: HitLeftLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
};
};
class I_Soldier_04_F: I_Soldier_base_F {
class HitPoints: HitPoints {
class HitHead: HitHead {};
class HitBody: HitBody {};
class HitHands: HitHands {};
class HitLegs: HitLegs {};
class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightArm: HitRightArm {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitLeftLeg: HitLeftLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_BETTER;
};
};
};
class O_Soldier_base_F: SoldierEB {
class HitPoints: HitPoints {
class HitHead: HitHead {};
class HitBody: HitBody {};
class HitHands: HitHands {};
class HitLegs: HitLegs {};
class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
class HitRightArm: HitRightArm {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
class HitLeftLeg: HitLeftLeg {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
};
};
class O_Soldier_02_F: O_Soldier_base_F {
class HitPoints: HitPoints {
class HitHead: HitHead {};
class HitBody: HitBody {};
class HitHands: HitHands {};
class HitLegs: HitLegs {};
class HitLeftArm: HitLeftArm {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
class HitRightArm: HitRightArm {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
class HitLeftLeg: HitLeftLeg {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
class HitRightLeg: HitRightLeg {
armor = ARM_LEG_ARMOR_CSAT;
passThrough = 0.85;
};
};
};
};