Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.apollo.game.event.handler.impl;
- import org.apollo.game.action.DistancedAction;
- import org.apollo.game.event.handler.EventHandler;
- import org.apollo.game.event.handler.EventHandlerContext;
- import org.apollo.game.event.impl.ObjectActionEvent;
- import org.apollo.game.model.Player;
- import org.apollo.game.model.def.GameObjectDefinition;
- import org.apollo.game.model.map.Position;
- public class LadderObjectActionEventHandler extends EventHandler<ObjectActionEvent> {
- private class LadderClimbingAction extends DistancedAction<Player> {
- private final Player player;
- private final GameObjectDefinition definition;
- private final int option;
- private LadderClimbingAction(Player player, Position ladderPosition, GameObjectDefinition definition, int option) {
- super(0, true, player, ladderPosition, 1);
- this.player = player;
- this.definition = definition;
- this.option = option;
- }
- @Override
- public void executeAction() {
- String actionName = definition.getActionNames()[option - 1];
- Position playerPosition = player.getPosition();
- if (actionName.contains("down") || actionName.contains("Down")) {
- if (playerPosition.getHeight() == 0) {
- climb(new Position(playerPosition.getX(), playerPosition.getY() + 6400, playerPosition.getHeight()));
- } else {
- climb(new Position(playerPosition.getX(), playerPosition.getY(), playerPosition.getHeight() - 1));
- }
- } else if (actionName.contains("up") || actionName.contains("Up")) {
- if (playerPosition.getY() > 6400) {
- climb(new Position(playerPosition.getX(), playerPosition.getY() - 6400, playerPosition.getHeight()));
- } else {
- climb(new Position(playerPosition.getX(), playerPosition.getY(), playerPosition.getHeight() + 1));
- }
- }
- }
- private void climb(Position position) {
- player.turnTo(position);
- player.teleport(position);
- }
- }
- @Override
- public void handle(EventHandlerContext ctx, Player player, ObjectActionEvent event) {
- GameObjectDefinition definition = GameObjectDefinition.forId(event.getId());
- if (definition.getName().contains("Ladder")) {
- player.startAction(new LadderClimbingAction(player, event.getPosition(), definition, event.getOption()));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement