Interface IFormMastery


  • public interface IFormMastery
    This interface is heavily based on how DBC calculates its form masteries. Please check any race's form_mastery.cfg config to get a better understanding on how this interface functions

    Example: Strength attribute is 100,000,

    A flat level of 1.5x causes this to be 150,000 out of the gate even at form level 0.

    A PerLevel of 0.01x causes the attribute to increase 1.01x per form level. At level 1, strength is 101,000. At level 100, strength is 200,000. A -0.01x causes strength to be 50,000 at level 50. Negative values are useful for stuff like Ki Drain.

    A MaxLevel caps the effective multiplier of all the above. A max level of 1.5x makes sure that the flat level and perlevel multis will not go above 1.5x, even at max form level. A max level of 0.1x (min in this case, thus the minormax) and a negative perlevel value of -0.01x makes sure that Ki Drain at player's max form level will only be 10x lower than at level 0, and not any lower.

    • Method Detail

      • getHealthRequirement

        float getHealthRequirement()
        Returns:
        percentage of max body player needs to be under to access form
      • setHealthRequirement

        void setHealthRequirement​(float healthRequirementInPercent)
      • getMulti

        float getMulti​(String type,
                       String type1)
        Parameters:
        type - Legal: "attribute","kidrain","heat","pain","healthrequirement,"damageNegation","dodge","tailcutchance"
        type1 - 3 Legal: "flat", "perlevel", "minormax"
        Returns:
        value of specified type
      • setMulti

        void setMulti​(String type,
                      String type1,
                      float value)
        Parameters:
        type - Legal: "attribute","kidrain","heat","pain","healthrequirement,"damageNegation","dodge","tailcutchance"
        type1 - 3 Legal: "flat", "perlevel", "minormax"
        value - amount to change type1 of type by
      • getGain

        float getGain​(String eventType,
                      String type)
        Parameters:
        eventType - 4 Legal: "update", "attack", "damaged", "fireki"
        type - 4 Legal: "gain", "flat", "permind", "max"
        Returns:
        the value of specified type within eventType
      • setGain

        void setGain​(String eventType,
                     String type,
                     float value)
        Parameters:
        eventType - 4 Legal: "update", "attack", "damaged", "fireki"
        type - 4 Legal: "gain", "flat", "permind", "max"
        value - amount to change type by within eventType
      • getMaxLevel

        float getMaxLevel()
        Returns:
        the max level this form can reach
      • setMaxLevel

        void setMaxLevel​(float value)
      • getInstantTransformationUnlockLevel

        float getInstantTransformationUnlockLevel()
        Returns:
        form level at which instant transformation unlocks
      • setInstantTransformationUnlockLevel

        void setInstantTransformationUnlockLevel​(float value)
      • hasInstantTransformationUnlockLevel

        boolean hasInstantTransformationUnlockLevel()
      • getPainTime

        int getPainTime()
      • setPainTime

        void setPainTime​(int painTime)
        Parameters:
        painTime - Time player will be in pain for after reaching 100% form heat in minutes at form level 0.

        If player descends when they are at 25% of their full heat bar, they will receive the same % of pain as their heatbar. Descending at 25% heat while having a painTime of 100 minutes will cause 25 minutes of pain

        This time decreases with pain mastery. Setting this to 10 and minormax of pain to 0.0 completely disables pain at max form level

      • hasPainTime

        boolean hasPainTime()
      • getMaxHeat

        int getMaxHeat()
      • setMaxHeat

        void setMaxHeat​(int maxHeat)
        Parameters:
        maxHeat - Seconds it takes to reach 100% heat. Setting this to 120 means player will reach full form heat in 120 seconds. Player gains 1 heat per second at form level 0 by default. When player reaches maxHeat value of heat, they receive Pain status effect for painTime minutes and they can't transform back to the same form as long as they are in pain.

        The time the player takes to reach this maxHeat value increases with heat mastery. Setting this to 100 and minormax of pain to 0.1 means player gains 0.1 heat per second at max form level. Setting minormax to 0 completely disables heat at max form level

      • hasHeat

        boolean hasHeat()
        Returns:
        True if maxHeat is greater than 1
      • getDamageNegation

        float getDamageNegation()
      • setDamageNegation

        void setDamageNegation​(float damageNegation)
        Parameters:
        damageNegation - Percentage value of damage to negate at form level 0. Setting this to 10 means that 10% of all incoming damage is negated, which is the equivalent to receiving 90% of incoming damage. Setting this to 100% means all incoming damage is negated, taking 0 damage.

        This damage increases with damageNegation mastery. Setting this to 50% and max to 1.5 means player receives 1.5x the 50%, an effective 75% damage negation at max form level

      • hasDamageNegation

        boolean hasDamageNegation()
        Returns:
        True if damageNegation is bigger than 0
      • getDodgeChance

        float getDodgeChance()
      • setDodgeChance

        void setDodgeChance​(float dodgeChance)
        Parameters:
        dodgeChance - From 0-100, the chance to dodge any incoming attack at form level 0

        This chances increases with dodge mastery. Setting this to 50% and max to 1.5 means player has a 75% chance to dodge any attack at max form level

      • hasDodge

        boolean hasDodge()
        Returns:
        True if dodgeChance is bigger than 0
      • getKiDrain

        float getKiDrain()
      • setKiDrain

        void setKiDrain​(float kiDrain)
        Parameters:
        kiDrain - percentage of Ki to drain every KiDrainTimer ticks at form level 0

        This drain decreases with kiDrain mastery. Setting this to 10% and min to 0.1x means player has a 1% of their ki drained per tick at max form level

      • hasKiDrain

        boolean hasKiDrain()
        Returns:
        True if kiDrain is greater than 0
      • getKiDrainTimer

        int getKiDrainTimer()
      • setKiDrainTimer

        void setKiDrainTimer​(int timeInTicks)
        Parameters:
        timeInTicks - time to reduce ki by KiDrain value in ticks
      • save

        IFormMastery save()
        Saves CustomForm with the New Form Mastery Modifications
        Returns:
        IFormMastery self object
      • isAbsorptionBoostEnabled

        boolean isAbsorptionBoostEnabled()
      • isPowerPointBoostEnabled

        boolean isPowerPointBoostEnabled()
      • setPowerPointCost

        void setPowerPointCost​(int cost)
      • setPowerPointGrowth

        void setPowerPointGrowth​(int growth)
      • getPowerPointCost

        int getPowerPointCost()
      • getPowerPointGrowth

        int getPowerPointGrowth()
      • setPowerPointMultiNormal

        void setPowerPointMultiNormal​(float multi)
      • setPowerPointMultiBasedOnPoints

        void setPowerPointMultiBasedOnPoints​(float multi)
      • getPowerPointMultiNormal

        float getPowerPointMultiNormal()
      • getPowerPointMultiBasedOnPoints

        float getPowerPointMultiBasedOnPoints()
      • setAbsorptionMulti

        void setAbsorptionMulti​(float multi)
      • getAbsorptionMulti

        float getAbsorptionMulti()
      • setDestroyerOn

        void setDestroyerOn​(boolean isOn)
      • isDestroyerOn

        boolean isDestroyerOn()
      • setDestroyerEnergyDamage

        void setDestroyerEnergyDamage​(float energyDamage)
      • getDestroyerEnergyDamage

        float getDestroyerEnergyDamage()