@Override public boolean checkWalkStep(int lastX, int lastY, int nextX, int nextY) { if (npc != null && nextY < base.getY() + 28) { if (npc.getPhase() > 1) { for (int[] step : PLATFORM_STEPS[0]) { if (base.getX() + (step[0] - 64) == nextX && base.getY() + (step[1] - 64) == nextY) { return true; } } if (npc.getPhase() > 2) { for (int[] step : PLATFORM_STEPS[1]) { if (base.getX() + (step[0] - 64) == nextX && base.getY() + (step[1] - 64) == nextY) { return true; } } if (npc.getPhase() > 3) { for (int[] step : PLATFORM_STEPS[2]) { if (base.getX() + (step[0] - 64) == nextX && base.getY() + (step[1] - 64) == nextY) { return true; } } } } } return false; } return true; }
@Override public void process() { if (npc == null) return; if (player.getY() < base.getY() + 28) { if (npc.hasFinished()) { return; } if (platformStand++ == 3) { player .getPackets() .sendGameMessage("You are damaged for standing too long on the raw magical platforms."); player.applyHit(new Hit(npc, 200, HitLook.REGULAR_DAMAGE)); platformStand = 0; } } else { platformStand = 0; } }
@Override public boolean processObjectClick1(WorldObject object) { if (npc == null) { return true; } if (object.getId() == 70790) { if (npc.getPhase() < 5) { return true; } player.lock(); FadingScreen.fade( player, new Runnable() { @Override public void run() { player .getPackets() .sendGameMessage( "You descend the stairs that appeared when you defeated the Queen Black Dragon."); player.getPackets().sendGlobalConfig(184, -1); npc.finish(); RegionBuilder.copyAllPlanesMap(160, 760, regionBase[0], regionBase[1], 8, 8); player.setForceNextMapLoadRefresh(true); player.loadMapRegions(); player .getPackets() .sendDestroyObject(new WorldObject(70849, 10, 0, base.transform(24, 21, -1))); player .getPackets() .sendDestroyObject(new WorldObject(70837, 10, 0, base.transform(22, 24, -1))); player .getPackets() .sendDestroyObject(new WorldObject(70840, 10, 0, base.transform(34, 24, -1))); World.removeObject(new WorldObject(70775, 10, 0, base.transform(31, 29, -1)), true); player .getPackets() .sendDestroyObject(new WorldObject(70822, 10, 0, base.transform(21, 35, -1))); player .getPackets() .sendDestroyObject(new WorldObject(70818, 10, 0, base.transform(39, 35, -1))); player.setNextWorldTile(base.transform(31, 36, -1)); boolean resizable = player.getInterfaceManager().hasRezizableScreen(); player.getPackets().closeInterface(resizable ? 746 : 548, resizable ? 1 : 0); player.unlock(); } }); return false; } if (object.getId() == 70813) { Magic.sendObjectTeleportSpell(player, true, Settings.RESPAWN_PLAYER_LOCATION); return false; } if (object.getId() == 70814) { player.getPackets().sendGameMessage("The gate is locked."); return false; } if (object.getId() == 70815) { player.getDialogueManager().startDialogue("RewardChest", npc); return false; } if (object.getId() == 70817) { npc.openRewardChest(false); return false; } if (object.getId() == npc.getActiveArtifact().getId()) { player.getMusicsManager().playMusic(1118); // QUEEN BLACK DRAGON npc.setSpawningWorms(false); npc.setNextAttack(20); npc.setActiveArtifact(new WorldObject(object.getId() + 1, 10, 0, object)); npc.setHitpoints(npc.getMaxHitpoints()); npc.setCantInteract(false); npc.setPhase(npc.getPhase() + 1); World.spawnObject(npc.getActiveArtifact(), false); switch (object.getId()) { case 70777: player.getPackets().sendGlobalConfig(1924, 2); player .getPackets() .sendSpawnedObject(new WorldObject(70843, 10, 0, base.transform(24, 21, -1))); break; case 70780: player.getPackets().sendGlobalConfig(1924, 4); player .getPackets() .sendSpawnedObject(new WorldObject(70845, 10, 0, base.transform(24, 21, -1))); break; case 70783: player.getPackets().sendGlobalConfig(1924, 6); player .getPackets() .sendSpawnedObject(new WorldObject(70847, 10, 0, base.transform(24, 21, -1))); break; case 70786: player.getPackets().sendGlobalConfig(1924, 8); player .getPackets() .sendSpawnedObject(new WorldObject(70849, 10, 0, base.transform(24, 21, -1))); break; } return false; } return true; }