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

Method dataAdded

code/src/java/pcgen/cdom/facet/HitPointFacet.java:114–145  ·  view source on GitHub ↗

Watches for new PCClassLevel objects to be granted to the Player Character. When called, this then triggers the determination of the Hit Points for that PCClassLevel. Triggered when one of the Facets to which FollowerOptionFacet listens fires a DataFacetChangeEvent to indicate a FollowerOption was

(DataFacetChangeEvent<CharID, CDOMObject> dfce)

Source from the content-addressed store, hash-verified

112 * change
113 */
114 @Override
115 public void dataAdded(DataFacetChangeEvent<CharID, CDOMObject> dfce)
116 {
117 CharID id = dfce.getCharID();
118 CDOMObject cdo = dfce.getCDOMObject();
119 PlayerCharacter pc = trackingFacet.getPC(id);
120 if (!pc.isImporting())
121 {
122 boolean first = true;
123 for (PCClass pcClass : classFacet.getSet(id))
124 {
125 //
126 // Recalculate HPs in case HD have changed.
127 //
128 Processor<HitDie> dieLock = cdo.get(ObjectKey.HITDIE);
129 if (dieLock != null)
130 {
131 for (int level = 1; level <= classFacet.getLevel(id, pcClass); level++)
132 {
133 HitDie baseHD = pcClass.getSafe(ObjectKey.LEVEL_HITDIE);
134 if (!baseHD.equals(getLevelHitDie(id, pcClass, level)))
135 {
136 // If the HD has changed from base reroll
137 rollHP(id, pcClass, level, first);
138 pc.setDirty(true);
139 }
140 }
141 }
142 first = false;
143 }
144 }
145 }
146
147 @Override
148 public void dataRemoved(DataFacetChangeEvent<CharID, CDOMObject> dfce)

Callers

nothing calls this directly

Calls 12

isImportingMethod · 0.95
getMethod · 0.95
equalsMethod · 0.95
getLevelHitDieMethod · 0.95
rollHPMethod · 0.95
setDirtyMethod · 0.95
getSafeMethod · 0.80
getCharIDMethod · 0.65
getCDOMObjectMethod · 0.65
getSetMethod · 0.65
getPCMethod · 0.45
getLevelMethod · 0.45

Tested by

no test coverage detected