Use rune ATTACK for regular mob ATR
The client (0x466570) gives mobiles their ATR straight from the rune ATTACK. Read rune_attack from the rune template, falling back to the mobbase atr when the rune has none. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
12c08c940a
commit
330db50985
1 file changed
+8
-2
@@ -659,6 +659,7 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
||||
ItemTemplate rune = ItemTemplate.templates.get(mob.loadID);
|
||||
float minDamage = mob.mobBase.getDamageMin();
|
||||
float maxDamage = mob.mobBase.getDamageMax();
|
||||
int attackRating = mob.mobBase.getAttackRating();
|
||||
|
||||
// [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.
|
||||
@@ -668,12 +669,17 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
|
||||
maxDamage = rune.rune_max_damage;
|
||||
}
|
||||
|
||||
// [AI] Likewise ATR comes straight from the rune ATTACK for mobiles (0x466570).
|
||||
|
||||
if (rune != null && rune.rune_attack > 0)
|
||||
attackRating = rune.rune_attack;
|
||||
|
||||
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.atrHandOne = attackRating;
|
||||
abstractCharacter.atrHandTwo = attackRating;
|
||||
abstractCharacter.defenseRating = mob.mobBase.getDefenseRating();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user