attack speed calculation handled correctly

This commit is contained in:
2024-05-31 19:02:59 -05:00
parent 4feb95131c
commit 74bd7ddb8b
2 changed files with 21 additions and 2 deletions
+20 -1
View File
@@ -31,6 +31,7 @@ import engine.net.client.msg.ApplyRuneMsg;
import engine.net.client.msg.UpdateStateMsg;
import engine.powers.EffectsBase;
import engine.powers.PowersBase;
import engine.powers.effectmodifiers.AbstractEffectModifier;
import engine.server.MBServerStatics;
import org.pmw.tinylog.Logger;
@@ -804,7 +805,25 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
if (weapon != null)
speed *= (1 + abstractCharacter.bonuses.getFloatPercentAll(ModType.WeaponSpeed, SourceType.None));
speed *= (1 + abstractCharacter.bonuses.getFloatPercentAll(ModType.AttackDelay, SourceType.None));
PlayerBonuses bonuses = abstractCharacter.bonuses;
if(bonuses != null){
ModType modType = ModType.AttackDelay;
for (AbstractEffectModifier mod : bonuses.bonusFloats.keySet()) {
if (mod.getPercentMod() == 0)
continue;
if (!mod.modType.equals(modType))
continue;
if (bonuses.bonusFloats.get(mod) == null)
continue;
speed *= (1 + bonuses.bonusFloats.get(mod));
}
}
//speed *= (1 + abstractCharacter.bonuses.getFloatPercentAll(ModType.AttackDelay, SourceType.None));
if (speed < 10)
speed = 10;