# File Specification: https://gist.github.com/Shadows-of-Fire/88ac714a758636c57a52e32ace5474c1

# 

general {
    # If the Attributes GUI is available.
    # Client-authoritative.
    # Default: true
    B:"Enable Attributes GUI"=true

    # If description tooltips will be added to potion items.
    # Client-authoritative.
    # Default: true
    B:"Enable Potion Tooltips"=true

    # A list of attributes that will be hidden from the Attributes GUI. Client-authoritative.
    # This is useful for attributes that are not meant to be visible to players, such as those used by Apothic Attributes itself.
    # This config supports the following input formats:
    #     - ResourceLocation strings, such as minecraft:generic.max_health, used to block specific attributes.
    #     - Namespaced wildcards, such as apothic_attributes:*, used to block all attributes in a namespace.
    #     - Negation entries, such as !apothic_attributes:elytra_flight, which will un-block a specific attribute that would otherwise be blocked by a wildcard.
    # Note:
    #     The list is processed in order. Place negation entries at the end of the list to ensure they take precedence.
    # 
    # Default: [neoforge:nametag_distance], [neoforge:creative_flight], [apothic_attributes:elytra_flight], [apothic_attributes:ghost_health]
    S:"Hidden Attributes" <
        neoforge:nametag_distance
        neoforge:creative_flight
        apothic_attributes:elytra_flight
        apothic_attributes:ghost_health
     >
}


effects {
    # The value (per-level) of the Experience Gained attribute modifier provided by Ancient Knowledge.
    # Synced.
    # Default: 4.0; Range: [1.0 ~ 1024.0]
    S:"Ancient Knowledge Multiplier"=4.0
}


combat_rules {
    # The protection damage reduction formula.
    # Computed after Prot Pierce and Prot Shred are applied.
    # Arguments:
    #     'protPoints' - The number of protection points the user has after reductions.
    # Output:
    #     The percentage of damage taken after protection has been applied, from 0 (no damage taken) to 1 (full damage taken).
    # Reference:
    #     See https://github.com/ezylang/EvalEx#usage-examples for how to write expressions.
    # 
    # Default: 1 - min(0.025 * protPoints, 0.85)
    S:"Protection Formula"=1 - min(0.025 * protPoints, 0.85)

    # The a-value formula, which computes an intermediate used in the armor formula.
    # Arguments:
    #     'damage' - The damage of the incoming attack.
    # Output:
    #     The a-value, which will be supplied as an argument to the armor formula.
    # Reference:
    #     See https://github.com/ezylang/EvalEx#usage-examples for how to write expressions.
    # 
    # Default: if(damage < 20, 10, 10 + (damage - 20) / 2)
    S:"A-Value Formula"=if(damage < 20, 10, 10 + (damage - 20) / 2)

    # The armor damage reduction formula.
    # Computed after Armor Pierce and Armor Shred are applied.
    # Arguments:
    #     'a' - The a-value computed by the a-value formula.
    #     'damage' - The damage of the incoming attack.
    #     'armor' - The armor value of the user after reductions.
    #     'toughness' - The armor toughness value of the user.
    # Output:
    #     The percentage of damage taken after armor has been applied, from 0 (no damage taken) to 1 (full damage taken).
    # Reference:
    #     See https://github.com/ezylang/EvalEx#usage-examples for how to write expressions.
    # Note:
    #     The vanilla formula is: 1 - min(max(armor - damage / (2 + toughness / 4), armor / 5), 20) / 25
    # 
    # Default: a / (a + armor)
    S:"Armor Formula"=a / (a + armor)

    # The armor toughness formula.
    # This is used to determine how armor toughness impacts enemy Armor Pierce / Armor Shred.
    # Arguments:
    #     'damage' - The damage of the incoming attack.
    #     'armor' - The armor value of the user after reductions.
    #     'toughness' - The armor toughness value of the user.
    # Output:
    #     The percentage by which enemy armor pierce/shred will be reduced, from 0 (no change) to 1 (preventing it completely).
    # Reference:
    #     See https://github.com/ezylang/EvalEx#usage-examples for how to write expressions.
    # 
    # Default: min(toughness * 0.02, 0.6)
    S:"Armor Toughness Formula"=min(toughness * 0.02, 0.6)

    # The factor by which negative armor values will increase incoming damage.
    # Each point of negative armor will increase incoming damage by this factor.
    # A value of 0.015 means that 1 point of negative armor will increase incoming damage by 1.5%.
    # Note:
    #     Negative armor is typically only encountered when the attacker has more armor pen than the defender has armor.
    # 
    # Default: 0.015; Range: [0.0 ~ 1.0]
    S:"Negative Armor Factor"=0.015
}


client {
    # The anchor point for this element.
    # Default: top_right
    S:"GUI Button Offset Anchor Point"=top_right

    # The X offset for this element.
    # Default: -3; Range: [-1000 ~ 1000]
    I:"GUI Button Offset X Offset"=-3

    # The Y Offset for this element.
    # Default: 3; Range: [-1000 ~ 1000]
    I:"GUI Button Offset Y Offset"=3
}


