diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwords.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwords.java index 9eee2b938..83ce4cc43 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwords.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwords.java @@ -1,8 +1,65 @@ package com.gmail.nossr50.config.hocon.skills.swords; +import com.gmail.nossr50.config.ConfigConstants; +import com.gmail.nossr50.datatypes.skills.properties.MaxBonusLevel; +import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @ConfigSerializable public class ConfigSwords { + @Setting(value = ConfigConstants.SUB_SKILL_NODE) + private ConfigSwordsSubSkills subSkills = new ConfigSwordsSubSkills(); + + public ConfigSwordsSubSkills getSubSkills() { + return subSkills; + } + + public ConfigSwordsCounterAttack getCounterAttack() { + return subSkills.getCounterAttack(); + } + + public ConfigSwordsRupture getRupture() { + return subSkills.getRupture(); + } + + public ConfigSwordsSerratedStrikes getSerratedStrikes() { + return subSkills.getSerratedStrikes(); + } + + public double getCounterAttackMaxChance() { + return subSkills.getCounterAttackMaxChance(); + } + + public MaxBonusLevel getCounterAttackMaxBonusLevel() { + return subSkills.getCounterAttackMaxBonusLevel(); + } + + public double getCounterAttackDamageModifier() { + return subSkills.getCounterAttackDamageModifier(); + } + + public double getSerratedStrikesDamageModifier() { + return subSkills.getSerratedStrikesDamageModifier(); + } + + public double getRuptureMaxChance() { + return subSkills.getRuptureMaxChance(); + } + + public MaxBonusLevel getRuptureMaxBonusLevel() { + return subSkills.getRuptureMaxBonusLevel(); + } + + public double getRuptureDamagePlayer() { + return subSkills.getRuptureDamagePlayer(); + } + + public double getRuptureDamageMobs() { + return subSkills.getRuptureDamageMobs(); + } + + public int getRuptureBaseTicks() { + return subSkills.getRuptureBaseTicks(); + } } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsCounterAttack.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsCounterAttack.java new file mode 100644 index 000000000..b24dfa37e --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsCounterAttack.java @@ -0,0 +1,35 @@ +package com.gmail.nossr50.config.hocon.skills.swords; + +import com.gmail.nossr50.config.ConfigConstants; +import com.gmail.nossr50.datatypes.skills.properties.AbstractMaxBonusLevel; +import com.gmail.nossr50.datatypes.skills.properties.MaxBonusLevel; +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; + +@ConfigSerializable +public class ConfigSwordsCounterAttack { + + private static final double DAMAGE_MODIFIER_DEFAULT = 2.0; + + @Setting(value = ConfigConstants.MAX_CHANCE_FIELD_NAME, comment = ConfigConstants.MAX_CHANCE_FIELD_DESCRIPTION) + private double maxChance = 30.0; + + @Setting(value = ConfigConstants.MAX_BONUS_LEVEL_FIELD_NAME, comment = ConfigConstants.MAX_BONUS_LEVEL_DESCRIPTION) + private MaxBonusLevel maxBonusLevel = new AbstractMaxBonusLevel(100); + + @Setting(value = "Damage-Modifier", comment = "The damage returned from Counter-Attack will be equal to the damage dealt divided by this number." + + "\nDefault value: "+DAMAGE_MODIFIER_DEFAULT) + private double damageModifier = DAMAGE_MODIFIER_DEFAULT; + + public double getCounterAttackMaxChance() { + return maxChance; + } + + public MaxBonusLevel getCounterAttackMaxBonusLevel() { + return maxBonusLevel; + } + + public double getCounterAttackDamageModifier() { + return damageModifier; + } +} diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsRupture.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsRupture.java new file mode 100644 index 000000000..1892d30f2 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsRupture.java @@ -0,0 +1,53 @@ +package com.gmail.nossr50.config.hocon.skills.swords; + +import com.gmail.nossr50.config.ConfigConstants; +import com.gmail.nossr50.datatypes.skills.properties.AbstractMaxBonusLevel; +import com.gmail.nossr50.datatypes.skills.properties.MaxBonusLevel; +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; + +@ConfigSerializable +public class ConfigSwordsRupture { + + private static final double MAX_CHANCE_DEFAULT = 33.0; + private static final double DAMAGE_PVP_DEFAULT = 2.0; + private static final double DAMAGE_PVE_DEFAULT = 3.0; + private static final int BASE_TICKS_DEFAULT = 2; + + @Setting(value = ConfigConstants.MAX_CHANCE_FIELD_NAME, comment = ConfigConstants.MAX_CHANCE_FIELD_DESCRIPTION) + private double maxChance = MAX_CHANCE_DEFAULT; + + @Setting(value = ConfigConstants.MAX_BONUS_LEVEL_FIELD_NAME) + private MaxBonusLevel maxBonusLevel = new AbstractMaxBonusLevel(100); + + @Setting(value = "Damage-Per-Tick-PVP") + private double damagePlayer = DAMAGE_PVP_DEFAULT; + + @Setting(value = "Damage-Per-Tick-PVE") + private double damageMobs = DAMAGE_PVE_DEFAULT; + + @Setting(value = "Bleed-Ticks", comment = "When Rupture has a tick it applies its damage, the effect wears out after enough ticks have happened." + + "\nThis is the base amount of ticks that will happen with the lowest skill level, increase this number to have rupture apply for longer across the board." + + "\nKeep in mind Rupture also increases in tick length as a player levels the skill.") + private int baseTicks = BASE_TICKS_DEFAULT; + + public double getRuptureMaxChance() { + return maxChance; + } + + public MaxBonusLevel getRuptureMaxBonusLevel() { + return maxBonusLevel; + } + + public double getRuptureDamagePlayer() { + return damagePlayer; + } + + public double getRuptureDamageMobs() { + return damageMobs; + } + + public int getRuptureBaseTicks() { + return baseTicks; + } +} diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsSerratedStrikes.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsSerratedStrikes.java new file mode 100644 index 000000000..740c86233 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsSerratedStrikes.java @@ -0,0 +1,15 @@ +package com.gmail.nossr50.config.hocon.skills.swords; + +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; + +@ConfigSerializable +public class ConfigSwordsSerratedStrikes { + + @Setting(value = "Damage-Modifier", comment = "The amount of damage dealt by this ability when hitting opponents in an AOE is divided by this number.") + private double damageModifier = 4.0; + + public double getSerratedStrikesDamageModifier() { + return damageModifier; + } +} diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsSubSkills.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsSubSkills.java new file mode 100644 index 000000000..dfa5deea4 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/swords/ConfigSwordsSubSkills.java @@ -0,0 +1,66 @@ +package com.gmail.nossr50.config.hocon.skills.swords; + +import com.gmail.nossr50.datatypes.skills.properties.MaxBonusLevel; +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; + +@ConfigSerializable +public class ConfigSwordsSubSkills { + + @Setting(value = "Counter-Attack") + private ConfigSwordsCounterAttack counterAttack = new ConfigSwordsCounterAttack(); + + @Setting(value = "Rupture") + private ConfigSwordsRupture rupture = new ConfigSwordsRupture(); + + @Setting(value = "Serrated-Strikes") + private ConfigSwordsSerratedStrikes serratedStrikes = new ConfigSwordsSerratedStrikes(); + + public ConfigSwordsCounterAttack getCounterAttack() { + return counterAttack; + } + + public ConfigSwordsRupture getRupture() { + return rupture; + } + + public ConfigSwordsSerratedStrikes getSerratedStrikes() { + return serratedStrikes; + } + + public double getCounterAttackMaxChance() { + return counterAttack.getCounterAttackMaxChance(); + } + + public MaxBonusLevel getCounterAttackMaxBonusLevel() { + return counterAttack.getCounterAttackMaxBonusLevel(); + } + + public double getCounterAttackDamageModifier() { + return counterAttack.getCounterAttackDamageModifier(); + } + + public double getSerratedStrikesDamageModifier() { + return serratedStrikes.getSerratedStrikesDamageModifier(); + } + + public double getRuptureMaxChance() { + return rupture.getRuptureMaxChance(); + } + + public MaxBonusLevel getRuptureMaxBonusLevel() { + return rupture.getRuptureMaxBonusLevel(); + } + + public double getRuptureDamagePlayer() { + return rupture.getRuptureDamagePlayer(); + } + + public double getRuptureDamageMobs() { + return rupture.getRuptureDamageMobs(); + } + + public int getRuptureBaseTicks() { + return rupture.getRuptureBaseTicks(); + } +}