Refactors monster helper methods into a separate class.
This commit is contained in:
@@ -14,6 +14,8 @@ import com.majinnaibu.monstercards.data.enums.ChallengeRating;
|
|||||||
import com.majinnaibu.monstercards.data.enums.ProficiencyType;
|
import com.majinnaibu.monstercards.data.enums.ProficiencyType;
|
||||||
import com.majinnaibu.monstercards.helpers.StringHelper;
|
import com.majinnaibu.monstercards.helpers.StringHelper;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -266,28 +268,6 @@ public class Monster {
|
|||||||
regionalActions = new ArrayList<>();
|
regionalActions = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getAbilityModifierForScore(int score) {
|
|
||||||
return (int) Math.floor((score - 10) / 2.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static int getHitDieForSize(String size) {
|
|
||||||
if ("tiny".equals(size)) {
|
|
||||||
return 4;
|
|
||||||
} else if ("small".equals(size)) {
|
|
||||||
return 6;
|
|
||||||
} else if ("medium".equals(size)) {
|
|
||||||
return 8;
|
|
||||||
} else if ("large".equals(size)) {
|
|
||||||
return 10;
|
|
||||||
} else if ("huge".equals(size)) {
|
|
||||||
return 12;
|
|
||||||
} else if ("gargantuan".equals(size)) {
|
|
||||||
return 20;
|
|
||||||
} else {
|
|
||||||
return 8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getMeta() {
|
public String getMeta() {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
boolean isFirstOutput = true;
|
boolean isFirstOutput = true;
|
||||||
@@ -324,7 +304,7 @@ public class Monster {
|
|||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAbilityScore(AbilityScore abilityScore) {
|
public int getAbilityScore(@NotNull AbilityScore abilityScore) {
|
||||||
switch (abilityScore) {
|
switch (abilityScore) {
|
||||||
case STRENGTH:
|
case STRENGTH:
|
||||||
return strengthScore;
|
return strengthScore;
|
||||||
@@ -343,7 +323,7 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getAbilityModifier(AbilityScore abilityScore) {
|
public int getAbilityModifier(@NotNull AbilityScore abilityScore) {
|
||||||
switch (abilityScore) {
|
switch (abilityScore) {
|
||||||
case STRENGTH:
|
case STRENGTH:
|
||||||
return getStrengthModifier();
|
return getStrengthModifier();
|
||||||
@@ -362,7 +342,7 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AdvantageType getSavingThrowAdvantageType(AbilityScore abilityScore) {
|
public AdvantageType getSavingThrowAdvantageType(@NotNull AbilityScore abilityScore) {
|
||||||
switch (abilityScore) {
|
switch (abilityScore) {
|
||||||
case STRENGTH:
|
case STRENGTH:
|
||||||
return strengthSavingThrowAdvantage;
|
return strengthSavingThrowAdvantage;
|
||||||
@@ -381,7 +361,7 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProficiencyType getSavingThrowProficiencyType(AbilityScore abilityScore) {
|
public ProficiencyType getSavingThrowProficiencyType(@NotNull AbilityScore abilityScore) {
|
||||||
switch (abilityScore) {
|
switch (abilityScore) {
|
||||||
case STRENGTH:
|
case STRENGTH:
|
||||||
return strengthSavingThrowProficiency;
|
return strengthSavingThrowProficiency;
|
||||||
@@ -401,27 +381,27 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getStrengthModifier() {
|
public int getStrengthModifier() {
|
||||||
return getAbilityModifierForScore(strengthScore);
|
return Helpers.getAbilityModifierForScore(strengthScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getDexterityModifier() {
|
public int getDexterityModifier() {
|
||||||
return getAbilityModifierForScore(dexterityScore);
|
return Helpers.getAbilityModifierForScore(dexterityScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getConstitutionModifier() {
|
public int getConstitutionModifier() {
|
||||||
return getAbilityModifierForScore(constitutionScore);
|
return Helpers.getAbilityModifierForScore(constitutionScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getIntelligenceModifier() {
|
public int getIntelligenceModifier() {
|
||||||
return getAbilityModifierForScore(intelligenceScore);
|
return Helpers.getAbilityModifierForScore(intelligenceScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getWisdomModifier() {
|
public int getWisdomModifier() {
|
||||||
return getAbilityModifierForScore(wisdomScore);
|
return Helpers.getAbilityModifierForScore(wisdomScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getCharismaModifier() {
|
public int getCharismaModifier() {
|
||||||
return getAbilityModifierForScore(charismaScore);
|
return Helpers.getAbilityModifierForScore(charismaScore);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getArmorClass() {
|
public String getArmorClass() {
|
||||||
@@ -485,7 +465,7 @@ public class Monster {
|
|||||||
if (hasCustomHP) {
|
if (hasCustomHP) {
|
||||||
return customHPDescription;
|
return customHPDescription;
|
||||||
} else {
|
} else {
|
||||||
int dieSize = getHitDieForSize(size);
|
int dieSize = Helpers.getHitDieForSize(size);
|
||||||
int conMod = getConstitutionModifier();
|
int conMod = getConstitutionModifier();
|
||||||
// For PC style calculations use this
|
// For PC style calculations use this
|
||||||
//int hpTotal = (int) Math.max(1, Math.ceil(dieSize + conMod + (hitDice - 1) * ((dieSize + 1) / 2.0 + conMod)));
|
//int hpTotal = (int) Math.max(1, Math.ceil(dieSize + conMod + (hitDice - 1) * ((dieSize + 1) / 2.0 + conMod)));
|
||||||
@@ -566,7 +546,7 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getProficiencyBonus(ProficiencyType proficiencyType) {
|
public int getProficiencyBonus(@NotNull ProficiencyType proficiencyType) {
|
||||||
switch (proficiencyType) {
|
switch (proficiencyType) {
|
||||||
case PROFICIENT:
|
case PROFICIENT:
|
||||||
return getProficiencyBonus();
|
return getProficiencyBonus();
|
||||||
@@ -710,7 +690,7 @@ public class Monster {
|
|||||||
return abilityDescriptions;
|
return abilityDescriptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPlaceholderReplacedText(String rawText) {
|
public String getPlaceholderReplacedText(@NotNull String rawText) {
|
||||||
return rawText
|
return rawText
|
||||||
.replaceAll("\\[STR SAVE]", String.format("%+d", getSpellSaveDC(AbilityScore.STRENGTH)))
|
.replaceAll("\\[STR SAVE]", String.format("%+d", getSpellSaveDC(AbilityScore.STRENGTH)))
|
||||||
.replaceAll("\\[STR ATK]", String.format("%+d", getAttackBonus(AbilityScore.STRENGTH)))
|
.replaceAll("\\[STR ATK]", String.format("%+d", getAttackBonus(AbilityScore.STRENGTH)))
|
||||||
@@ -773,4 +753,28 @@ public class Monster {
|
|||||||
}
|
}
|
||||||
return actionDescriptions;
|
return actionDescriptions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class Helpers {
|
||||||
|
public static int getAbilityModifierForScore(int score) {
|
||||||
|
return (int) Math.floor((score - 10) / 2.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getHitDieForSize(String size) {
|
||||||
|
if ("tiny".equals(size)) {
|
||||||
|
return 4;
|
||||||
|
} else if ("small".equals(size)) {
|
||||||
|
return 6;
|
||||||
|
} else if ("medium".equals(size)) {
|
||||||
|
return 8;
|
||||||
|
} else if ("large".equals(size)) {
|
||||||
|
return 10;
|
||||||
|
} else if ("huge".equals(size)) {
|
||||||
|
return 12;
|
||||||
|
} else if ("gargantuan".equals(size)) {
|
||||||
|
return 20;
|
||||||
|
} else {
|
||||||
|
return 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user