Read the item power grant from the cache template
The BUCKET/POTION/SCROLL use path takes the first item_power_grant entry in file order from getItemPowerGrant() instead of the first key of the legacy HashMap. Offline parity (p15e.py, 7586 rows): 0 differences in the grant lists. The legacy HashMap order picks a different power on 664 templates, all RUNE folder runes with item_type RUNE, which take the RUNE case and never reach this path. Every ITEM-folder grant (scrolls, potions, bucket, rod, gift rings) has exactly one entry and no DEED has one, so the power and value used are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
81d4ab7b99
commit
a37de9fc31
1 file changed
+3
-4
@@ -251,10 +251,9 @@ public class ObjectActionMsgHandler extends AbstractClientMsgHandler {
|
||||
}
|
||||
|
||||
if (waterbucketBypass == false) {
|
||||
String powerString = item.template.item_power_grant.keySet().iterator().next();
|
||||
PowersBase powerAction = PowersManager.powersBaseByIDString.get(powerString);
|
||||
int powerValue = item.template.item_power_grant.get(powerString);
|
||||
PowersManager.applyPower(player, target, Vector3fImmutable.ZERO, powerAction.getToken(), powerValue, true);
|
||||
engine.parsers.objects.PowerGrant powerGrant = item.template.cacheTemplate.getItemPowerGrant().get(0);
|
||||
PowersBase powerAction = PowersManager.powersBaseByIDString.get(powerGrant.power_type);
|
||||
PowersManager.applyPower(player, target, Vector3fImmutable.ZERO, powerAction.getToken(), powerGrant.power_value, true);
|
||||
}
|
||||
itemMan.consume(item);
|
||||
} else //just remove the item at this point
|
||||
|
||||
Reference in new issue
Block a user