# Configuration file

general {
    # If true, max health will be capped at 6 hearts and absorption at 2 hearts per limb. If false, the health cap will be much higher (64 hearts normal and 16 absorption)
    B:capMaxHealth=true

    # Enabled additional debug logs - May slow down the game and will increase log file size
    # Only enable for special purposes
    B:debug=false

    # Set to true to enable the debuff sounds. Requieres enableDebuffs to be true
    B:enableSoundSystem=true

    # If true, many damage distributions will be more realistic, but this will also cause them to be harder
    # If enabled, e.g. drowing will only damage your body instead of your body and head last
    B:hardMode=false

    # If true, max health is scaled to your hearts, and the config entries get multiplier to match the max health
    B:scaleMaxHealth=false

    # Only effects the fallback random distribution.
    # If enabled, the default random damage distribution will be changed to leave critical limbs at 1hp if possible.
    # When there is too much damage, the damage will still kill the player. Other distributions that defined are not affected by this.
    B:useFriendlyRandomDistribution=false

    # Specifies how the vanilla health is calculated. Affects the vanilla visual health bar, as well as the value other mods get to see when they query the player health.
    # AVERAGE_ALL simply takes all limbs and calculates the average of it.
    # AVERAGE_CRITICAL takes all critical limbs and calculates the average of it
    # MIN_CRITICAl takes the smallest health value of all critical limb
    # Does not have any effect if all critical limbs have been disabled.
    # Valid values:
    # AVERAGE_ALL
    # AVERAGE_CRITICAL
    # MIN_CRITICAL
    # CRITICAL_50_PERCENT_OTHER_50_PERCENT
    S:vanillaHealthCalculation=AVERAGE_ALL

    # If true, all usages of setHealth from other mods will be captured. Should not cause any problems, but allow mods like scaling health bandages to apply
    B:watchSetHealth=true

    ##########################################################################################################
    # damagesystem
    #--------------------------------------------------------------------------------------------------------#
    # Settings regarding the max health of the body's parts. 2 = 1 heart
    ##########################################################################################################

    damagesystem {
        B:causeDeathBody=true
        B:causeDeathHead=true

        # Min: 2
        # Max: 12
        I:maxHealthBody=6

        # Min: 2
        # Max: 12
        I:maxHealthHead=4

        # Min: 2
        # Max: 12
        I:maxHealthLeftArm=4

        # Min: 2
        # Max: 12
        I:maxHealthLeftFoot=4

        # Min: 2
        # Max: 12
        I:maxHealthLeftLeg=4

        # Min: 2
        # Max: 12
        I:maxHealthRightArm=4

        # Min: 2
        # Max: 12
        I:maxHealthRightFoot=4

        # Min: 2
        # Max: 12
        I:maxHealthRightLeg=4
    }

    ##########################################################################################################
    # overlay
    #--------------------------------------------------------------------------------------------------------#
    # Settings regarding the health overlay when ingame
    ##########################################################################################################

    overlay {
        # Determines the transparency of the overlay. 200 = Maximum transparency, 0 = Fully opaque
        # Min: 0
        # Max: 200
        I:alpha=50

        # Determines how first aid should display armor on item tooltips.
        # REPLACE replaces the vanilla description with the one fitting first aid
        # APPEND will add the first aid values at the bottom
        # NONE will show the old vanilla values. Be advised this is purly visual, interally, the first aid value will always be used
        # Valid values:
        # REPLACE
        # APPEND
        # NONE
        S:armorTooltipMode=REPLACE

        # Disables the funny easter eggs on certain events
        B:enableEasterEggs=true

        # Specifies the type of the overlay HUD.
        # Valid values:
        # OFF
        # NUMBERS
        # HEARTS
        # PLAYER_MODEL
        # PLAYER_MODEL_4_COLORS
        # PLAYER_MODEL_OLD_COLORS
        # PLAYER_MODEL_OLD_4_COLORS
        S:overlayMode=PLAYER_MODEL

        # The relative point of the overlay
        # Valid values:
        # TOP_LEFT
        # TOP_RIGHT
        # BOTTOM_RIGHT
        # BOTTOM_LEFT
        S:pos=TOP_LEFT

        # The mode how to show the mc vanilla health bar.
        # NORMAL shows the vanilla health value that calculated the way vanillaHealthCalculation is specified (server config)
        # HIGHLIGHT_CRITICAL_PATH show the vanilla health value and highlights the health value of the most damaged critical limb (by default head or body) using the hardcore-styled hearts for them and the normal hearts for the rest of the health. Only works if vanillaHealthCalculation is set to AVERAGE_ALL
        # HIDE just doesn't display the vanilla health bar at all.
        # Valid values:
        # NORMAL
        # HIGHLIGHT_CRITICAL_PATH
        # HIDE
        S:vanillaHealthBarMode=HIDE

        # The offset on the x axis
        I:xOffset=0

        # The offset on the y axis
        I:yOffset=1

        ##########################################################################################################
        # displaymode
        #--------------------------------------------------------------------------------------------------------#
        # Specifies when and how the HUD should be displayed
        ##########################################################################################################

        displaymode {
            # If set to true, the overlay will flash for a short moment if the health changed. Only affects PLAYER_MODEL overlay
            B:flash=true

            # Specifies how many ticks (20 ticks = 1 second) the overlay should be visible after health changed (healing/damaging)
            # If set to -1, the HUD is always visible
            # Min: -1
            # Max: 600
            I:visibleDurationTicks=-1
        }

    }

    ##########################################################################################################
    # internalhealing
    #--------------------------------------------------------------------------------------------------------#
    # Settings regarding the internal healing system
    ##########################################################################################################

    internalhealing {

        ##########################################################################################################
        # bandage
        #--------------------------------------------------------------------------------------------------------#
        # Settings for the bandage item
        ##########################################################################################################

        bandage {
            # The time it takes in the GUI to apply the item in milliseconds
            # Min: 0
            # Max: 16000
            I:applyTime=2500

            # The time it takes for a single heal to trigger. Total time this item is active = this * totalHeals
            # Min: 1
            # Max: 32767
            I:secondsPerHeal=18

            # The total heals this item does when applied. 1 heal = half a heart
            # Min: 1
            # Max: 127
            I:totalHeals=4
        }

        ##########################################################################################################
        # plaster
        #--------------------------------------------------------------------------------------------------------#
        # Settings for the plaster item
        ##########################################################################################################

        plaster {
            # The time it takes in the GUI to apply the item in milliseconds
            # Min: 0
            # Max: 16000
            I:applyTime=3000

            # The time it takes for a single heal to trigger. Total time this item is active = this * totalHeals
            # Min: 1
            # Max: 32767
            I:secondsPerHeal=22

            # The total heals this item does when applied. 1 heal = half a heart
            # Min: 1
            # Max: 127
            I:totalHeals=2
        }

    }

    ##########################################################################################################
    # externalhealing
    #--------------------------------------------------------------------------------------------------------#
    # Settings regarding external healing system(like vanilla potions or natural regeneration
    ##########################################################################################################

    externalhealing {
        # Allow vanilla's natural regeneration. Requires "allowOtherHealingItems" to be true
        # **WARNING** This sets the gamerule "naturalRegeneration" for all of your worlds internally, so it persists even if you remove the mod
        B:allowNaturalRegeneration=false

        # If false, healing potions and other healing items will have no effect
        B:allowOtherHealingItems=true

        # The value vanilla's natural regeneration will be multiplied with. Has no effect if "allowNaturalRegeneration" is disabled
        # Min: 0.0
        # Max: 20.0
        D:naturalRegenMultiplier=0.5

        # The value external regen will be multiplied with. Has no effect if "allowOtherHealingItems" is disabled
        # Min: 0.0
        # Max: 20.0
        D:otherRegenMultiplier=0.75

        # Specifies how the vanilla resistance potion effect should reduce damage.
        # By default, one level of resistance reduces 20% of damage. Changing this value to e.g. 10 will reduce the reduction to 10% damage reduction per level
        # Min: 1
        # Max: 40
        I:resistanceReductionPercentPerLevel=20

        # Specifies how much percent of the max health should be restored when sleeping
        # Min: 0.0
        # Max: 1.0
        D:sleepHealPercentage=0.07
    }

    ##########################################################################################################
    # debuffs
    #--------------------------------------------------------------------------------------------------------#
    # Enable/Disable specify debuffs on specific body parts
    ##########################################################################################################

    debuffs {

        head {
            B:blindness=true
            B:nausea=true

            ##########################################################################################################
            # blindnessconditions
            #--------------------------------------------------------------------------------------------------------#
            # Holds the information how the debuff should be applied at different damage taken. Only use this if you know what you are doing.
            ##########################################################################################################

            blindnessconditions {
                # How much damage the user must have taken for the debuff to apply at the mapped length. Must be sorted so the **highest** value comes first. 2 = 1 heart
                # Min: 0.0
                # Max: 10.0
                D:damageTaken <
                    2.0
                    1.0
                 >

                # How long the debuff should stay. If the first condition from the damageTaken config is met, the first value in this list will be taken
                # Min: 0
                # Max: 32767
                I:debuffLength <
                    160
                    80
                 >
            }

            ##########################################################################################################
            # nauseaconditions
            #--------------------------------------------------------------------------------------------------------#
            # Holds the information how the debuff should be applied at different damage taken. Only use this if you know what you are doing.
            ##########################################################################################################

            nauseaconditions {
                # How much damage the user must have taken for the debuff to apply at the mapped length. Must be sorted so the **highest** value comes first. 2 = 1 heart
                # Min: 0.0
                # Max: 10.0
                D:damageTaken <
                    3.0
                    2.0
                 >

                # How long the debuff should stay. If the first condition from the damageTaken config is met, the first value in this list will be taken
                # Min: 0
                # Max: 32767
                I:debuffLength <
                    320
                    240
                 >
            }

        }

        body {
            B:nausea=true
            B:weakness=true

            ##########################################################################################################
            # nauseaconditions
            #--------------------------------------------------------------------------------------------------------#
            # Holds the information how the debuff should be applied at different damage taken. Only use this if you know what you are doing.
            ##########################################################################################################

            nauseaconditions {
                # How much damage the user must have taken for the debuff to apply at the mapped length. Must be sorted so the **highest** value comes first. 2 = 1 heart
                # Min: 0.0
                # Max: 10.0
                D:damageTaken <
                    4.0
                    2.0
                 >

                # How long the debuff should stay. If the first condition from the damageTaken config is met, the first value in this list will be taken
                # Min: 0
                # Max: 32767
                I:debuffLength <
                    320
                    160
                 >
            }

            ##########################################################################################################
            # weaknessconditions
            #--------------------------------------------------------------------------------------------------------#
            # Holds the information how the debuff should be applied at different health left. Only use this if you know what you are doing.
            ##########################################################################################################

            weaknessconditions {
                # How strong the potion effect should stay. If the first condition from the healthPercentageLeft config is met, the first value in this list will be taken
                # Min: 0
                # Max: 127
                I:debuffStrength <
                    2
                    1
                 >

                # How much health the user must have left for the debuff to apply at the mapped length. Must be sorted so the **lowest** value comes first
                # Min: 0.0
                # Max: 1.0
                D:healthPercentageLeft <
                    0.25
                    0.5
                 >
            }

        }

        arms {
            B:mining_fatigue=true

            ##########################################################################################################
            # miningfatigueconditions
            #--------------------------------------------------------------------------------------------------------#
            # Holds the information how the debuff should be applied at different health left. Only use this if you know what you are doing.
            ##########################################################################################################

            miningfatigueconditions {
                # How strong the potion effect should stay. If the first condition from the healthPercentageLeft config is met, the first value in this list will be taken
                # Min: 0
                # Max: 127
                I:debuffStrength <
                    3
                    2
                    1
                 >

                # How much health the user must have left for the debuff to apply at the mapped length. Must be sorted so the **lowest** value comes first
                # Min: 0.0
                # Max: 1.0
                D:healthPercentageLeft <
                    0.25
                    0.5
                    0.75
                 >
            }

        }

        legsandfeet {
            B:slowness=true

            ##########################################################################################################
            # slownessconditions
            #--------------------------------------------------------------------------------------------------------#
            # Holds the information how the debuff should be applied at different health left. Only use this if you know what you are doing.
            ##########################################################################################################

            slownessconditions {
                # How strong the potion effect should stay. If the first condition from the healthPercentageLeft config is met, the first value in this list will be taken
                # Min: 0
                # Max: 127
                I:debuffStrength <
                    3
                    2
                    1
                 >

                # How much health the user must have left for the debuff to apply at the mapped length. Must be sorted so the **lowest** value comes first
                # Min: 0.0
                # Max: 1.0
                D:healthPercentageLeft <
                    0.3499999940395355
                    0.6000000238418579
                    0.800000011920929
                 >
            }

        }

    }

    ##########################################################################################################
    # locationalarmor
    #--------------------------------------------------------------------------------------------------------#
    # Specify how the locational armor is calculated
    ##########################################################################################################

    locationalarmor {

        armor {
            # Min: 1.0
            # Max: 16.0
            D:chestArmorMultiplier=2.5

            # Min: 0.0
            # Max: 4.0
            D:chestArmorOffset=0.0

            # Min: 1.0
            # Max: 16.0
            D:feetArmorMultiplier=6.0

            # Min: 0.0
            # Max: 4.0
            D:feetArmorOffset=0.0

            # Min: 1.0
            # Max: 16.0
            D:headArmorMultiplier=6.0

            # Min: 0.0
            # Max: 4.0
            D:headArmorOffset=1.0

            # Min: 1.0
            # Max: 16.0
            D:legsArmorMultiplier=3.0

            # Min: 0.0
            # Max: 4.0
            D:legsArmorOffset=0.0
        }

        toughness {
            # Min: 1.0
            # Max: 16.0
            D:chestToughnessMultiplier=3.0

            # Min: 0.0
            # Max: 4.0
            D:chestToughnessOffset=0.0

            # Min: 1.0
            # Max: 16.0
            D:feetToughnessMultiplier=3.5

            # Min: 0.0
            # Max: 4.0
            D:feetToughnessOffset=0.0

            # Min: 1.0
            # Max: 16.0
            D:headToughnessMultiplier=4.0

            # Min: 0.0
            # Max: 4.0
            D:headToughnessOffset=0.0

            # Min: 1.0
            # Max: 16.0
            D:legsToughnessMultiplier=3.0

            # Min: 0.0
            # Max: 4.0
            D:legsToughnessOffset=0.0
        }

    }

    ##########################################################################################################
    # enchantmenthandling
    #--------------------------------------------------------------------------------------------------------#
    # Specify how enchantments are applied
    ##########################################################################################################

    enchantmenthandling {
        # If set to LOCAL_ENCHANTMENTS, only the enchantments for the armor for the body part that is currently being damaged is taken into account. The strength of the armor is multiplied by 4, so it matches the vanilla default
        # If set to GLOBAL_ENCHANTMENTS, the enchantments of all armor pieces are taken into account for all body parts that have any kind of armor.
        # Valid values:
        # GLOBAL_ENCHANTMENTS
        # LOCAL_ENCHANTMENTS
        S:armorEnchantmentMode=LOCAL_ENCHANTMENTS

        # Specifies the default modifier. This is only used if armorEnchantmentMode is LOCAL_ENCHANTMENTS, as this is used scale up the values to somewhat match what vanilla balances around (as vanilla balances around global enchantments)
        # Min: 1
        # Max: 4
        I:enchantmentMultiplier=4

        ##########################################################################################################
        # overrideentries
        #--------------------------------------------------------------------------------------------------------#
        # Specifies the overrides for the the modifier. This is only used if armorEnchantmentMode is LOCAL_ENCHANTMENTS. This can be used to set another multiplier for special enchantments
        ##########################################################################################################

        overrideentries {
            # Min: 1
            # Max: 4
            I:multiplierOverride <
                1
             >

            # The resource location of the enchantment. Must be fully specified and cannot use wildcard. Example: minecraft:feather_falling
            S:resourceLocation <
                minecraft:feather_falling
             >
        }

    }

}


