diff --git a/src/main/java/com/azuredoom/levelingcore/config/GUIConfig.java b/src/main/java/com/azuredoom/levelingcore/config/GUIConfig.java index 0c0d2d2..3daa358 100644 --- a/src/main/java/com/azuredoom/levelingcore/config/GUIConfig.java +++ b/src/main/java/com/azuredoom/levelingcore/config/GUIConfig.java @@ -247,12 +247,24 @@ public class GUIConfig { (exConfig, extraInfo) -> exConfig.mobDamageMultiplier ) .add() + .append( + new KeyedCodec("MobBaseDamage", Codec.FLOAT), + (exConfig, aFloat, extraInfo) -> exConfig.mobBaseDamage = aFloat, + (exConfig, extraInfo) -> exConfig.mobBaseDamage + ) + .add() .append( new KeyedCodec("MobRangeDamageMultiplier", Codec.FLOAT), (exConfig, aFloat, extraInfo) -> exConfig.mobRangeDamageMultiplier = aFloat, (exConfig, extraInfo) -> exConfig.mobRangeDamageMultiplier ) .add() + .append( + new KeyedCodec("MobBaseRangeDamage", Codec.FLOAT), + (exConfig, aFloat, extraInfo) -> exConfig.mobBaseRangeDamage = aFloat, + (exConfig, extraInfo) -> exConfig.mobBaseRangeDamage + ) + .add() .append( new KeyedCodec("EnableItemLevelRestriction", Codec.BOOLEAN), (exConfig, aBoolean, extraInfo) -> exConfig.enableItemLevelRestriction = aBoolean, @@ -369,8 +381,12 @@ public class GUIConfig { private float mobDamageMultiplier = 0.25F; + private float mobBaseDamage = 0.0F; + private float mobRangeDamageMultiplier = 0.3F; + private float mobBaseRangeDamage = 0.0F; + private boolean enableItemLevelRestriction = false; private boolean enableXPBarUI = true; @@ -616,10 +632,18 @@ public float getMobDamageMultiplier() { return mobDamageMultiplier; } + public float getMobBaseDamage() { + return mobBaseDamage; + } + public float getMobRangeDamageMultiplier() { return mobRangeDamageMultiplier; } + public float getMobBaseRangeDamage() { + return mobBaseRangeDamage; + } + public boolean isEnableItemLevelRestriction() { return enableItemLevelRestriction; } diff --git a/src/main/java/com/azuredoom/levelingcore/systems/damage/PlayerDamageFilter.java b/src/main/java/com/azuredoom/levelingcore/systems/damage/PlayerDamageFilter.java index 742023d..4570d76 100644 --- a/src/main/java/com/azuredoom/levelingcore/systems/damage/PlayerDamageFilter.java +++ b/src/main/java/com/azuredoom/levelingcore/systems/damage/PlayerDamageFilter.java @@ -81,16 +81,18 @@ public void handle( () -> MobLevelingUtil.computeSpawnLevel(npcAttacker) ); var mobLevel = mobLevelData.level; + var baseMelee = config.get().getMobBaseDamage(); var meleeMulti = config.get().getMobDamageMultiplier(); + var baseProjectile = config.get().getMobBaseRangeDamage(); var projectileMulti = config.get().getMobRangeDamageMultiplier(); var con = levelService.getCon(victimPlayerRef.getUuid()); var mult = conDamageMultiplier(con); if (isProjectile) { - damage.setAmount(incoming * mult * projectileMulti * mobLevel); + damage.setAmount(incoming * mult * (baseMelee + projectileMulti * mobLevel)); } else { - damage.setAmount(incoming * mult * meleeMulti * mobLevel); + damage.setAmount(incoming * mult * (baseProjectile + meleeMulti * mobLevel)); } }