diff --git a/src/engine/objects/AbstractCharacter.java b/src/engine/objects/AbstractCharacter.java index 2a481423..f01002a7 100644 --- a/src/engine/objects/AbstractCharacter.java +++ b/src/engine/objects/AbstractCharacter.java @@ -500,12 +500,8 @@ public abstract class AbstractCharacter extends AbstractWorldObject { if (bonus != null && !bonus.getBool(ModType.NoMod, SourceType.Fly) && bonus.getBool(ModType.Fly, SourceType.None) && flyer.isAlive()) canFly = true; - for(Effect eff : flyer.effects.values()){ - for(AbstractEffectModifier mod : eff.getEffectModifiers()){ - if(mod.modType.equals(ModType.Speed)){ - canFly = false; - } - } + if(bonus != null && bonus.getFloat(ModType.Speed,SourceType.None) > 0){ + return false; } return canFly; diff --git a/src/engine/objects/PlayerCharacter.java b/src/engine/objects/PlayerCharacter.java index dd994fe1..2156d229 100644 --- a/src/engine/objects/PlayerCharacter.java +++ b/src/engine/objects/PlayerCharacter.java @@ -4827,6 +4827,12 @@ public class PlayerCharacter extends AbstractCharacter { PowersManager.applyPower(this, this, Vector3fImmutable.ZERO, 1672601862, 40, false); } + if(this.isFlying()){ + if(this.getBonuses() != null && this.getBonuses().getFloat(ModType.Speed,SourceType.None) > 0){ + GroundPlayer(this); + } + } + } catch (Exception e) { Logger.error(e); } finally {