attack speed

This commit is contained in:
2025-01-20 17:52:08 -06:00
parent 961e2915b4
commit 7964de1045
2 changed files with 20 additions and 13 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
public class PlayerBonuses { public class PlayerBonuses {
//First bonus set //First bonus set
private ConcurrentHashMap<AbstractEffectModifier, Float> bonusFloats = new ConcurrentHashMap<>(); ConcurrentHashMap<AbstractEffectModifier, Float> bonusFloats = new ConcurrentHashMap<>();
private ConcurrentHashMap<AbstractEffectModifier, DamageShield> bonusDamageShields = new ConcurrentHashMap<>(); private ConcurrentHashMap<AbstractEffectModifier, DamageShield> bonusDamageShields = new ConcurrentHashMap<>();
private ConcurrentHashMap<AbstractEffectModifier, String> bonusStrings = new ConcurrentHashMap<>(); private ConcurrentHashMap<AbstractEffectModifier, String> bonusStrings = new ConcurrentHashMap<>();
private ConcurrentHashMap<ModType, HashSet<SourceType>> bonusLists = new ConcurrentHashMap<>(); private ConcurrentHashMap<ModType, HashSet<SourceType>> bonusLists = new ConcurrentHashMap<>();
+19 -12
View File
@@ -3970,28 +3970,35 @@ public class PlayerCharacter extends AbstractCharacter {
else else
speed = 20f; //unarmed attack speed speed = 20f; //unarmed attack speed
//if (weapon != null) { if(this.effects != null) {
//speed *= (1 + this.bonuses.getFloatPercentAll(ModType.WeaponSpeed, SourceType.None)); for (Effect eff : this.effects.values()) {
for(Effect eff : this.effects.values()){ for (AbstractEffectModifier mod : eff.getEffectModifiers()) {
for(AbstractEffectModifier mod : eff.getEffectModifiers()){ if (mod.modType.equals(ModType.WeaponSpeed)) {
if(mod.modType.equals(ModType.WeaponSpeed)){ float modValue = 1 + mod.getPercentMod() * 0.01f;
float modValue = 1 + mod.getPercentMod() * 0.01f;
speed *= modValue; speed *= modValue;
} }
} }
} }
//}
//speed *= (1 + this.bonuses.getFloatPercentAll(ModType.AttackDelay, SourceType.None));
for(Effect eff : this.effects.values()){ for (Effect eff : this.effects.values()) {
for(AbstractEffectModifier mod : eff.getEffectModifiers()){ for (AbstractEffectModifier mod : eff.getEffectModifiers()) {
if(mod.modType.equals(ModType.AttackDelay)){ if (mod.modType.equals(ModType.AttackDelay)) {
float modValue = 1 + mod.getPercentMod() * 0.01f; float modValue = 1 + mod.getPercentMod() * 0.01f;
speed *= modValue;
}
}
}
}
if(this.bonuses!= null){
for (AbstractEffectModifier mod : this.bonuses.bonusFloats.keySet()) {
if (mod.modType.equals(ModType.AttackDelay) || mod.modType.equals(ModType.WeaponSpeed)) {
float modValue = 1 + mod.getPercentMod() * 0.01f;
speed *= modValue; speed *= modValue;
} }
} }
} }
if (speed < 10) if (speed < 10)
speed = 10; speed = 10;