MCPcopy Create free account
hub / github.com/PCGen/pcgen / getSpellRange

Method getSpellRange

code/src/java/pcgen/core/PlayerCharacter.java:3479–3528  ·  view source on GitHub ↗

Parses a spells range (short, medium or long) into an Integer based on the spell and spell casters level @param aSpell The spell being output. @param si The info about conditions applied to the spell @return spell range

(final CharacterSpell aSpell, final SpellInfo si)

Source from the content-addressed store, hash-verified

3477 * @return spell range
3478 */
3479 public String getSpellRange(final CharacterSpell aSpell, final SpellInfo si)
3480 {
3481 String aRange = aSpell.getSpell().getListAsString(ListKey.RANGE);
3482 String aSpellClass = aSpell.getVariableSource(this);
3483 int rangeInFeet;
3484 String aString = SettingsHandler.getGameAsProperty().get().getSpellRangeFormula(aRange.toUpperCase());
3485
3486 if (aRange.equalsIgnoreCase("CLOSE") && (aString == null))
3487 {
3488 aString = "((CASTERLEVEL/2).TRUNC*5)+25"; //$NON-NLS-1$
3489 } else if (aRange.equalsIgnoreCase("MEDIUM") && (aString == null))
3490 {
3491 aString = "(CASTERLEVEL*10)+100"; //$NON-NLS-1$
3492 } else if (aRange.equalsIgnoreCase("LONG") && (aString == null))
3493 {
3494 aString = "(CASTERLEVEL*40)+400"; //$NON-NLS-1$
3495 }
3496
3497 if (aString != null)
3498 {
3499 List<Ability> metaFeats = null;
3500 if (si != null)
3501 {
3502 metaFeats = si.getFeatList();
3503 }
3504 rangeInFeet = getVariableValue(aSpell, aString, aSpellClass).intValue();
3505 if ((metaFeats != null) && !metaFeats.isEmpty())
3506 {
3507 for (Ability feat : metaFeats)
3508 {
3509 rangeInFeet += (int) BonusCalc.charBonusTo(feat, "SPELL", "RANGE", this);
3510
3511 final int iMult = (int) BonusCalc.charBonusTo(feat, "SPELL", "RANGEMULT", this);
3512
3513 if (iMult > 0)
3514 {
3515 rangeInFeet *= iMult;
3516 }
3517 }
3518 }
3519
3520 aRange += (" (" + Globals.getGameModeUnitSet().displayDistanceInUnitSet(rangeInFeet)
3521 + Globals.getGameModeUnitSet().getDistanceUnit() + ')');
3522 } else
3523 {
3524 aRange = parseSpellString(aSpell, aRange);
3525 }
3526
3527 return aRange;
3528 }
3529
3530 /**
3531 * Computes the Caster Level for a Class

Callers 3

getTokenMethod · 0.80
getRangeMethod · 0.80
getHTMLInfoMethod · 0.80

Calls 15

getGameAsPropertyMethod · 0.95
getVariableValueMethod · 0.95
charBonusToMethod · 0.95
getGameModeUnitSetMethod · 0.95
parseSpellStringMethod · 0.95
getListAsStringMethod · 0.80
getSpellRangeFormulaMethod · 0.80
equalsIgnoreCaseMethod · 0.80
getFeatListMethod · 0.80
intValueMethod · 0.80
getDistanceUnitMethod · 0.80

Tested by

no test coverage detected