Use rune MINDAMAGE/MAXDAMAGE for regular mob damage
The client (ArcMobile, 0x46D200) takes mob damage straight from the rune MINDAMAGE/MAXDAMAGE with no stat scaling; natural attack damage is only scaled for non-mobile characters. Read rune_min_damage/rune_max_damage from the rune template, falling back to the mobbase row when the rune has none. 2689 of 2770 mobbase rows already match the rune. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
b21ccdbb4c
commit
12c08c940a
1 file changed
+16
-4
@@ -656,10 +656,22 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
||||
AssignDamageAtrForPlayers(abstractCharacter, equipped.get(EquipSlotType.LHELD), false, equipped.get(EquipSlotType.LHELD));
|
||||
if (abstractCharacter.getObjectType().equals(GameObjectType.Mob)) {
|
||||
Mob mob = (Mob) abstractCharacter;
|
||||
abstractCharacter.minDamageHandOne = (int) mob.mobBase.getDamageMin();
|
||||
abstractCharacter.minDamageHandTwo = (int) mob.mobBase.getDamageMin();
|
||||
abstractCharacter.maxDamageHandOne = (int) mob.mobBase.getDamageMax();
|
||||
abstractCharacter.maxDamageHandTwo = (int) mob.mobBase.getDamageMax();
|
||||
ItemTemplate rune = ItemTemplate.templates.get(mob.loadID);
|
||||
float minDamage = mob.mobBase.getDamageMin();
|
||||
float maxDamage = mob.mobBase.getDamageMax();
|
||||
|
||||
// [AI] The client (ArcMobile, 0x46D200) takes mob damage straight from the rune MINDAMAGE/MAXDAMAGE,
|
||||
// with no stat scaling. Use the rune when it has damage, otherwise keep the mobbase value.
|
||||
|
||||
if (rune != null && rune.rune_max_damage > 0) {
|
||||
minDamage = rune.rune_min_damage;
|
||||
maxDamage = rune.rune_max_damage;
|
||||
}
|
||||
|
||||
abstractCharacter.minDamageHandOne = (int) minDamage;
|
||||
abstractCharacter.minDamageHandTwo = (int) minDamage;
|
||||
abstractCharacter.maxDamageHandOne = (int) maxDamage;
|
||||
abstractCharacter.maxDamageHandTwo = (int) maxDamage;
|
||||
abstractCharacter.atrHandOne = mob.mobBase.getAttackRating();
|
||||
abstractCharacter.atrHandTwo = mob.mobBase.getAttackRating();
|
||||
abstractCharacter.defenseRating = mob.mobBase.getDefenseRating();
|
||||
|
||||
Reference in new issue
Block a user