Advertisement
Guest User

Untitled

a guest
Mar 26th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.23 KB | None | 0 0
  1. package org.apollo.game.event.handler.impl;
  2.  
  3. import org.apollo.game.action.DistancedAction;
  4. import org.apollo.game.event.handler.EventHandler;
  5. import org.apollo.game.event.handler.EventHandlerContext;
  6. import org.apollo.game.event.impl.ObjectActionEvent;
  7. import org.apollo.game.model.Player;
  8. import org.apollo.game.model.def.GameObjectDefinition;
  9. import org.apollo.game.model.map.Position;
  10.  
  11. public class LadderObjectActionEventHandler extends EventHandler<ObjectActionEvent> {
  12.  
  13.     private class LadderClimbingAction extends DistancedAction<Player> {
  14.  
  15.         private final Player player;
  16.  
  17.         private final GameObjectDefinition definition;
  18.  
  19.         private final int option;
  20.  
  21.         private LadderClimbingAction(Player player, Position ladderPosition, GameObjectDefinition definition, int option) {
  22.             super(0, true, player, ladderPosition, 1);
  23.             this.player = player;
  24.             this.definition = definition;
  25.             this.option = option;
  26.         }
  27.  
  28.         @Override
  29.         public void executeAction() {
  30.             String actionName = definition.getActionNames()[option - 1];
  31.             Position playerPosition = player.getPosition();
  32.             if (actionName.contains("down") || actionName.contains("Down")) {
  33.                 if (playerPosition.getHeight() == 0) {
  34.                     climb(new Position(playerPosition.getX(), playerPosition.getY() + 6400, playerPosition.getHeight()));
  35.                 } else {
  36.                     climb(new Position(playerPosition.getX(), playerPosition.getY(), playerPosition.getHeight() - 1));
  37.                 }
  38.             } else if (actionName.contains("up") || actionName.contains("Up")) {
  39.                 if (playerPosition.getY() > 6400) {
  40.                     climb(new Position(playerPosition.getX(), playerPosition.getY() - 6400, playerPosition.getHeight()));
  41.                 } else {
  42.                     climb(new Position(playerPosition.getX(), playerPosition.getY(), playerPosition.getHeight() + 1));
  43.                 }
  44.             }          
  45.         }
  46.  
  47.         private void climb(Position position) {
  48.             player.turnTo(position);
  49.             player.teleport(position);
  50.         }
  51.  
  52.     }
  53.  
  54.     @Override
  55.     public void handle(EventHandlerContext ctx, Player player, ObjectActionEvent event) {
  56.         GameObjectDefinition definition = GameObjectDefinition.forId(event.getId());
  57.         if (definition.getName().contains("Ladder")) {
  58.             player.startAction(new LadderClimbingAction(player, event.getPosition(), definition, event.getOption()));
  59.         }
  60.     }
  61.  
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement