diff --git a/src/engine/ai/utilities/CombatUtilities.java b/src/engine/ai/utilities/CombatUtilities.java index abc35db2..3fb076a1 100644 --- a/src/engine/ai/utilities/CombatUtilities.java +++ b/src/engine/ai/utilities/CombatUtilities.java @@ -363,11 +363,10 @@ public class CombatUtilities { float damage; float min = 40; float max = 60; - AbstractWorldObject target = agent.getCombatTarget(); float dmgMultiplier = 1 + agent.getBonuses().getFloatPercentAll(ModType.MeleeDamageModifier, SourceType.None); double minDmg = getMinDmg(min, agent, null); double maxDmg = getMaxDmg(max, agent, null); - dmgMultiplier += agent.getLevel() / 10; + dmgMultiplier += agent.getLevel() * 0.1f; range = (float) (maxDmg - minDmg); damage = min + ((ThreadLocalRandom.current().nextFloat() * range) + (ThreadLocalRandom.current().nextFloat() * range)) / 2; return (int) (damage * dmgMultiplier); diff --git a/src/engine/objects/Mob.java b/src/engine/objects/Mob.java index d8344e6b..5fc298ad 100644 --- a/src/engine/objects/Mob.java +++ b/src/engine/objects/Mob.java @@ -591,6 +591,9 @@ public class Mob extends AbstractIntelligenceAgent { createLock.writeLock().unlock(); } parent.zoneMobSet.add(mob); + mob.level = level; + mob.healthMax = mob.getMobBase().getHealthMax() * (mob.level * 0.5f); + mob.health.set(mob.healthMax); return mob; } @@ -1952,12 +1955,14 @@ public class Mob extends AbstractIntelligenceAgent { this.equip = new HashMap<>(0); } // Combine mobbase and mob aggro arrays into one bitvector - if (this.getMobBase().notEnemy.size() > 0) - this.notEnemy.addAll(this.getMobBase().notEnemy); - - if (this.getMobBase().enemy.size() > 0) - this.enemy.addAll(this.getMobBase().enemy); + //skip for pets + if(this.isPet() == false && this.isSummonedPet() == false && this.isNecroPet() == false) { + if (this.getMobBase().notEnemy.size() > 0) + this.notEnemy.addAll(this.getMobBase().notEnemy); + if (this.getMobBase().enemy.size() > 0) + this.enemy.addAll(this.getMobBase().enemy); + } try { NPCManager.applyRuneSetEffects(this); recalculateStats();