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

Method adjustDamage

code/src/java/pcgen/core/Globals.java:427–493  ·  view source on GitHub ↗

Adjust damage @param aDamage @return adjusted damage

(String aDamage, int sizeDiff)

Source from the content-addressed store, hash-verified

425 * @return adjusted damage
426 */
427 public static String adjustDamage(String aDamage, int sizeDiff)
428 {
429 if (aDamage.isEmpty())
430 {
431 return aDamage;
432 }
433 final AbstractReferenceContext ref = getContext().getReferenceContext();
434 BaseDice bd = ref.silentlyGetConstructedCDOMObject(BaseDice.class, aDamage);
435 int multiplier = 0;
436 if (bd == null)
437 {
438 //Need to test for higher dice
439 final RollInfo aRollInfo = new RollInfo(aDamage);
440 final String baseDice = "1d" + Integer.toString(aRollInfo.sides);
441 bd = ref.silentlyGetConstructedCDOMObject(BaseDice.class, baseDice);
442 if (bd != null)
443 {
444 multiplier = aRollInfo.times;
445 }
446 }
447 else
448 {
449 multiplier = 1;
450 }
451 RollInfo bi;
452 if (bd == null)
453 {
454 bi = new RollInfo(aDamage);
455 }
456 else
457 {
458 List<RollInfo> steps;
459 if (sizeDiff > 0)
460 {
461 steps = bd.getUpSteps();
462 }
463 else if (sizeDiff < 0)
464 {
465 steps = bd.getDownSteps();
466 }
467 else
468 {
469 // Not a warning?
470 return aDamage;
471 }
472 final int difference = Math.abs(sizeDiff);
473
474 final int index;
475 if (steps.size() > difference)
476 {
477 index = difference - 1;
478 }
479 else
480 {
481 index = steps.size() - 1;
482 }
483 bi = steps.get(index);
484 }

Callers 9

testAdjustDamageMethod · 0.95
getDamageTokenMethod · 0.95
getDamageTokenMethod · 0.95
getDamageTokenMethod · 0.95
getUDamForRaceMethod · 0.95
getUDamForEffLevelMethod · 0.95
adjustDamageMethod · 0.95
getMonkUnarmedMethod · 0.95
getEqDamageMethod · 0.95

Calls 10

getContextMethod · 0.95
getUpStepsMethod · 0.95
getDownStepsMethod · 0.95
toStringMethod · 0.95
isEmptyMethod · 0.65
getReferenceContextMethod · 0.65
toStringMethod · 0.65
sizeMethod · 0.65
getMethod · 0.65

Tested by 1

testAdjustDamageMethod · 0.76