Browse Source

Players grounded properly when losing flight.

pull/18/head
MagicBot 2 years ago
parent
commit
5fe518f8a1
  1. 15
      src/engine/objects/AbstractCharacter.java
  2. 6
      src/engine/objects/PlayerCharacter.java

15
src/engine/objects/AbstractCharacter.java

@ -1600,11 +1600,26 @@ public abstract class AbstractCharacter extends AbstractWorldObject { @@ -1600,11 +1600,26 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
//Call to apply any new effects to player
public synchronized void applyBonuses() {
PlayerCharacter player;
//tell the player to applyBonuses because something has changed
//start running the bonus calculations
try{
runBonuses();
// Check if calculations affected flight.
if (this.getGridObjectType().equals(GameObjectType.PlayerCharacter)) {
player = (PlayerCharacter) this;
// Ground players who cannot fly but are currently flying
if (CanFly(player) == false &&
player.getMovementState().equals(MovementState.FLYING))
PlayerCharacter.GroundPlayer(player);
}
}catch(Exception e){
Logger.error("Error in run bonuses for object UUID " + this.getObjectUUID());
Logger.error(e);

6
src/engine/objects/PlayerCharacter.java

@ -4771,12 +4771,6 @@ public void dismissNecroPets() { @@ -4771,12 +4771,6 @@ public void dismissNecroPets() {
}
}
// Ground players who cannot fly but are currently flying
if (CanFly(this) &&
this.getMovementState().equals(MovementState.FLYING))
GroundPlayer(this);
RealmMap.updateRealm(this);
updateBlessingMessage();

Loading…
Cancel
Save