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

Method getRange

code/src/java/pcgen/io/exporttoken/EqToken.java:291–344  ·  view source on GitHub ↗
(final PlayerCharacter pc, Equipment eq)

Source from the content-addressed store, hash-verified

289 }
290
291 public static Integer getRange(final PlayerCharacter pc, Equipment eq)
292 {
293 String rangeVar = pc.getControl(CControl.EQRANGE);
294 if (rangeVar != null)
295 {
296 //Need a special breakout based on PlayerCharacter reset of IntegerKey.RANGE
297 if (eq.isType("Both") && eq.isType("Melee"))
298 {
299 return 0;
300 }
301 return ((Number) eq.getLocalVariable(pc.getCharID(), rangeVar)).intValue();
302 }
303
304 int range = eq.getSafe(IntegerKey.RANGE);
305
306 if (range == 0)
307 {
308 final String aRange = eq.getWeaponInfo("RANGE", true);
309
310 if (!aRange.isEmpty())
311 {
312 range = Integer.parseInt(aRange);
313 }
314 }
315
316 int r = range + (int) eq.bonusTo(pc, "EQMWEAPON", "RANGEADD", true);
317 final int i = (int) eq.bonusTo(pc, "EQMWEAPON", "RANGEMULT", true);
318 double rangeMult = 1.0;
319
320 if (i > 0)
321 {
322 rangeMult += (i - 1);
323 }
324
325 int postAdd = 0;
326
327 if (eq.isThrown())
328 {
329 r += (int) pc.getTotalBonusTo("RANGEADD", "THROWN");
330 postAdd = (int) pc.getTotalBonusTo("POSTRANGEADD", "THROWN");
331 rangeMult += ((int) pc.getTotalBonusTo("RANGEMULT", "THROWN") / 100.0);
332 }
333 else if (eq.isProjectile())
334 {
335 r += (int) pc.getTotalBonusTo("RANGEADD", "PROJECTILE");
336 postAdd = (int) pc.getTotalBonusTo("POSTRANGEADD", "PROJECTILE");
337 rangeMult += ((int) pc.getTotalBonusTo("RANGEMULT", "PROJECTILE") / 100.0);
338 }
339
340 r *= rangeMult;
341 r += postAdd;
342
343 return r;
344 }
345
346 /**
347 * Converts the critical multiplier into a dispalyable string, i.e.

Callers 8

getTokenMethod · 0.95
getTokenMethod · 0.95
getTokenMethod · 0.95
getEquipmentHtmlInfoMethod · 0.95
getRangeTokenMethod · 0.95
getToHitMethod · 0.95
getRangeListMethod · 0.95
getRangeTokenMethod · 0.95

Calls 13

getControlMethod · 0.80
intValueMethod · 0.80
getSafeMethod · 0.80
getWeaponInfoMethod · 0.80
parseIntMethod · 0.80
isThrownMethod · 0.80
isProjectileMethod · 0.80
isTypeMethod · 0.65
getCharIDMethod · 0.65
isEmptyMethod · 0.65
getLocalVariableMethod · 0.45
bonusToMethod · 0.45

Tested by

no test coverage detected