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;
            };
        };
    };
};