armark1ng

Untitled

Jun 25th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.28 KB | None | 0 0
  1. package com.rs.game.player.controlers.bossInstance;
  2.  
  3. import com.rs.cache.loaders.AnimationDefinitions;
  4. import com.rs.game.Animation;
  5. import com.rs.game.EffectsManager.EffectType;
  6. import com.rs.game.Entity;
  7. import com.rs.game.Hit;
  8. import com.rs.game.Hit.HitLook;
  9. import com.rs.game.World;
  10. import com.rs.game.WorldObject;
  11. import com.rs.game.WorldTile;
  12. import com.rs.game.item.FloorItem;
  13. import com.rs.game.item.Item;
  14. import com.rs.game.map.bossInstance.BossInstance;
  15. import com.rs.game.map.bossInstance.BossInstanceHandler;
  16. import com.rs.game.map.bossInstance.BossInstanceHandler.Boss;
  17. import com.rs.game.map.bossInstance.impl.VoragoInstance;
  18. import com.rs.game.npc.NPC;
  19. import com.rs.game.npc.others.GraveStone;
  20. import com.rs.game.npc.vorago.StoneClone;
  21. import com.rs.game.npc.vorago.Vitalis;
  22. import com.rs.game.npc.vorago.Vorago;
  23. import com.rs.game.npc.vorago.VoragoFace;
  24. import com.rs.game.player.Inventory;
  25. import com.rs.game.player.MusicsManager;
  26. import com.rs.game.player.controlers.events.DeathEvent;
  27. import com.rs.game.tasks.WorldTask;
  28. import com.rs.game.tasks.WorldTasksManager;
  29. import com.rs.net.decoders.WorldPacketsDecoder;
  30. import com.rs.utils.Utils;
  31.  
  32. public class VoragoInstanceController extends BossInstanceController {
  33.  
  34. /*
  35. * Vorago location for jump 3097 6119 0 Vorago gap object 84826
  36. */
  37.  
  38. private boolean isJumping;
  39.  
  40. @Override
  41. public boolean processObjectClick1(final WorldObject object) {
  42. if (getVoragoInstance().getVorago() == null && getVoragoInstance().playerIsOnBattle(player))
  43. return false;
  44. if (object.getId() == 84828) {// squeeze
  45. if (getVoragoInstance().getVorago().getPhaseProgress() == 1) {
  46. player.getPackets().sendGameMessage("There is no need to do that anymore.");
  47. return false;
  48. }
  49. if (getVoragoInstance().arttributes[0]) {
  50. player.getPackets().sendGameMessage("There is already someone jumping.");
  51. return false;
  52. }
  53. player.lock();
  54. getVoragoInstance().arttributes[0] = player.getX() > object.getX() ? true : false;
  55. getVoragoInstance().getVorago().getTemporaryAttributtes().put("VoragoType", 0);
  56. getVoragoInstance().getVorago().transform();
  57. isJumping = true;
  58. player.setNextAnimation(new Animation(-1));// TODO
  59. WorldTasksManager.schedule(new WorldTask() {
  60. @Override
  61. public void run() {
  62. player.unlock();
  63. WorldTile location = new WorldTile(
  64. player.getX() > object.getX() ? (object.getX() - 1) : (object.getX() + 1), object.getY(),
  65. 0);
  66. player.setNextAnimation(new Animation(-1));
  67. player.setNextWorldTile(location);
  68. }
  69. }, 2);
  70. return false;
  71. } else if (object.getId() == 84827) {// climb up/down
  72. player.lock();
  73. player.setNextFaceRectanglePrecise(new WorldTile(object.getX() - 2, object.getY(), 0), 1, 1);
  74. player.setNextAnimation(new Animation(player.getX() == object.getX() ? 15456 : 15457));
  75. WorldTasksManager.schedule(new WorldTask() {
  76. @Override
  77. public void run() {
  78. player.unlock();
  79. WorldTile location = new WorldTile(
  80. player.getX() == object.getX() ? (object.getX() - 1) : (object.getX()), object.getY(), 0);
  81. player.setNextAnimation(new Animation(-1));
  82. player.setNextWorldTile(location);
  83. }
  84. }, 2);
  85. return false;
  86. } else if (object.getId() == 84825) {// jump gap
  87. if (player.getY() <= object.getY()) {
  88. player.getPackets().sendGameMessage("You can't reach that!");
  89. return false;
  90. }
  91. if (player.getInventory().getFreeSlots() == 0) {
  92. player.getPackets().sendGameMessage(
  93. "You need to have atleast 1 free inventory space in order to recieve the maul piece.");
  94. return false;
  95. }
  96. Vorago vorago = getVoragoInstance().getVorago();
  97. if (vorago.getX() != (object.getX() - 2) || vorago.getY() != (object.getY() - 4)) {
  98. player.getPackets().sendGameMessage("Looks like vorago is not in the right spot.");
  99. return false;
  100. }
  101. if (vorago.getDirection() != Utils.getAngle(0, -1) && vorago.getDirection() != Utils.getAngle(1, -1)
  102. && vorago.getDirection() != Utils.getAngle(-1, -1)) {
  103. player.getPackets().sendGameMessage("Vorago must be facing south in order to jump on his back.");
  104. return false;
  105. }
  106. player.lock();
  107. player.setNextAnimation(new Animation(20311));
  108. vorago.setNextAnimation(new Animation(20376));
  109. player.faceEntity(vorago);
  110. vorago.setCantInteract(true);
  111. WorldTasksManager.schedule(new WorldTask() {
  112. @Override
  113. public void run() {
  114. player.unlock();
  115. WorldTile location = getVoragoInstance().getTile(new WorldTile(3104, 6121, 0));
  116. player.setNextAnimation(new Animation(-1));
  117. vorago.setCantInteract(false);
  118. vorago.setPhaseProgress(1);
  119. player.setNextWorldTile(location);
  120. player.getInventory().addItem(28600, 1);
  121. }
  122. }, (AnimationDefinitions.getAnimationDefinitions(20311).getEmoteClientCycles() / 30) + 1);
  123. return false;
  124. } else if (object.getId() == 84909) {// rope
  125. player.lock();
  126. player.setNextAnimation(new Animation(828));
  127. WorldTasksManager.schedule(new WorldTask() {
  128. @Override
  129. public void run() {
  130. getInstance().leaveInstance(player, BossInstance.EXITED);
  131. removeControler();
  132. }
  133. }, 0);
  134. return false;
  135. } else if (object.getId() == 84826) {// several jump gaps
  136. player.lock();
  137. player.setNextAnimation(new Animation(15461));
  138. WorldTasksManager.schedule(new WorldTask() {
  139. @Override
  140. public void run() {
  141. player.unlock();
  142. int rot = object.getRotation();
  143. WorldTile location = new WorldTile(
  144. rot == 0 ? player.getX()
  145. : (player.getX() < object.getX() ? (object.getX() + 3) : (object.getX() - 1)),
  146. rot == 0 ? (player.getY() < object.getY() ? (object.getY() + 3) : (object.getY() - 1))
  147. : player.getY(),
  148. 0);
  149. player.setNextAnimation(new Animation(-1));
  150. player.setNextWorldTile(location);
  151. }
  152. }, (AnimationDefinitions.getAnimationDefinitions(15461).getEmoteClientCycles() / 30) + 1);
  153. return false;
  154. } else if (object.getId() == 84959) {
  155. getVoragoInstance().getVorago().fireGravityField(player);
  156. return false;
  157. } else if (object.getId() == 95044 || object.getId() == 95043 || object.getId() == 95042) {// Bombs
  158. getVoragoInstance().getVorago().handleBombClick(player, object);
  159. return false;
  160. }
  161. return true;
  162. }
  163.  
  164. @Override
  165. public boolean processObjectClick5(WorldObject object) {
  166. if (object.getId() == 84962) {
  167. int index = getVoragoInstance().getVorago()
  168. .getCeilingIndex(new WorldTile(object.getX(), object.getY(), object.getPlane()));
  169. if (getVoragoInstance().getVorago().getCeilingColapses()[index] == null)
  170. return false;
  171. getVoragoInstance().getVorago().getCeilingColapses()[index] = null;
  172. player.faceObject(object);
  173. player.lock();
  174. WorldTasksManager.schedule(new WorldTask() {
  175. @Override
  176. public void run() {
  177. player.unlock();
  178. World.removeObject(object);
  179. if (!player.getEffectsManager().hasActiveEffect(EffectType.BARRICADE))
  180. player.applyHit(new Hit(getVoragoInstance().getVorago(), 4000, HitLook.REGULAR_DAMAGE));
  181. }
  182. }, 1);
  183. return false;
  184. }
  185. return true;
  186. }
  187.  
  188. @Override
  189. public boolean keepCombating(Entity target) {
  190. if (target.getTemporaryAttributtes().get("CantBeAttackedOnPhaseStart") != null
  191. || (target.getTemporaryAttributtes().get("CantBeAttacked") != null))
  192. return false;
  193. return true;
  194. }
  195.  
  196. @Override
  197. public boolean canAttack(Entity target) {
  198. if (target.getTemporaryAttributtes().get("CantBeAttackedOnPhaseStart") != null)
  199. return false;
  200. if (target.getTemporaryAttributtes().get("BringHimDownClick") != null
  201. && target.getTemporaryAttributtes().get("BringHimDownClick") == Boolean.TRUE) {
  202. if (player.getTemporaryAttributtes().get("BRINGHIM") != null) {
  203. getVoragoInstance().getVorago()
  204. .setBringHimPoints(getVoragoInstance().getVorago().getBringHimPoints() + 1);
  205. player.getPackets().sendCSVarInteger(2770, getVoragoInstance().getVorago().getBringHimPoints());
  206. player.setNextAnimation(getVoragoInstance().getVorago().getBringHimDownAnimation());
  207. return false;
  208. }
  209. player.stopAll();
  210. player.faceEntity(target);
  211. player.getTemporaryAttributtes().put("BRINGHIM", Boolean.TRUE);
  212. player.setNextAnimation(getVoragoInstance().getVorago().getBringHimDownAnimation());
  213. player.getPackets().sendCSVarInteger(2770, getVoragoInstance().getVorago().getBringHimPoints());
  214. return false;
  215. } else if (target.getTemporaryAttributtes().get("CantBeAttacked") != null) {
  216. String reason = (String) target.getTemporaryAttributtes().get("CantBeAttacked");
  217. if (reason != "")
  218. player.getPackets().sendGameMessage(reason);
  219. return false;
  220. } else if (target instanceof StoneClone) {
  221. if (((StoneClone) target).getTarget() != player && !hasKilledClone()) {
  222. player.getPackets()
  223. .sendGameMessage("Only those who have recently killed their stone clone can battle one.");
  224. return false;
  225. }
  226. }
  227. return true;
  228. }
  229.  
  230. @Override
  231. public boolean checkWalkStep(int lastX, int lastY, int nextX, int nextY) {
  232. for (int i = 95042; i <= 95044; i++) {
  233. if (World.containsObjectWithId(new WorldTile(nextX, nextY, player.getPlane()), i))
  234. return false;
  235. }
  236. if (player.getTemporaryAttributtes().get("PHASE_5_START") != null
  237. && nextX >= getVoragoInstance().getVoragoSpawnLocation(5).getX())
  238. return false;
  239. for (NPC npc : World.getNPCs()) {
  240. if (npc instanceof Vorago) {
  241. Vorago vorago = (Vorago) npc;
  242. if (Utils.colides(nextX, nextY, player.getSize(), npc.getX(), npc.getY(), npc.getSize())) {
  243. if (vorago.getPhase() == 5 || vorago.getTemporaryAttributtes().get("TheEnd") != null
  244. || ((vorago.getPhase() == 3 || vorago.getPhase() == 4)
  245. && vorago.getTemporaryAttributtes().get("CantBeAttacked") != null
  246. && vorago.getTemporaryAttributtes().get("waterfall") == null))
  247. return false;
  248. }
  249. if (!vorago.canMove(player, nextX, nextY))
  250. return false;
  251. }
  252. if (Utils.colides(nextX, nextY, player.getSize(), npc.getX(), npc.getY(), npc.getSize()))
  253. if (npc instanceof Vitalis || npc instanceof VoragoFace)
  254. return false;
  255. }
  256. return true;
  257. }
  258.  
  259. public boolean hasKilledClone() {
  260. return player.getTemporaryAttributtes().get("RecentlyKilledClone") != null;
  261. }
  262.  
  263. @Override
  264. public void processIngoingHit(Hit hit) {
  265. if (hit.getLook() == HitLook.MAGIC_DAMAGE && hit.getSource() != null && (hit.getSource() instanceof Vorago)) {
  266. int blues = player.getTemporaryAttributtes().get("BlueBombs") == null ? 0
  267. : (int) player.getTemporaryAttributtes().get("BlueBombs");
  268. player.getTemporaryAttributtes().put("BlueBombs", blues + 1);
  269. }
  270. if (hit.getSource() instanceof Vorago) {
  271. Vorago vorago = (Vorago) hit.getSource();
  272. if (vorago.getPhase() == 5 && vorago.getHitpoints() == 0) {
  273. hit.setDamage(0);
  274. }
  275. }
  276. super.processIngoingHit(hit);
  277. }
  278.  
  279. @Override
  280. public void processIncommingHit(Hit hit, Entity target) {
  281. if (target instanceof Vorago) {
  282. int hitDamage = hit.getDamage();
  283. int totalDamage = player.getTemporaryAttributtes().get("TotalDamage") == null ? 0
  284. : (int) player.getTemporaryAttributtes().get("TotalDamage");
  285. player.getTemporaryAttributtes().put("TotalDamage", totalDamage + hitDamage);
  286. }
  287. }
  288.  
  289. @Override
  290. public void processNPCDeath(NPC npc) {
  291. if (npc instanceof StoneClone) {
  292. if (((StoneClone) npc).getTarget() == player) {
  293. getVoragoInstance().getVorago().sendCloneDeath(player);
  294. player.getHintIconsManager().removeAll();
  295. player.getHintIconsManager().removeUnsavedHintIcon();
  296. player.getTemporaryAttributtes().put("RecentlyKilledClone", Boolean.TRUE);
  297. }
  298. }
  299. }
  300.  
  301. @Override
  302. public boolean processNPCClick1(NPC npc) {
  303. if (npc.getId() == 17162 || npc.getId() == 17161) {
  304. if (getVoragoInstance().getVoragoFace().isTransforming())
  305. return false;
  306. if (npc.getId() == 17162) {
  307. if (getVoragoInstance().getVoragoFace().isBattleInGoing()) {
  308. player.getDialogueManager().startDialogue("SimpleMessage", "Looks like vorago is not here.");
  309. return false;
  310. }
  311. getVoragoInstance().getVoragoFace().startTransformation(player);
  312. } else
  313. player.getDialogueManager().startDialogue("VoragoFaceD", npc.getId(), 0, getVoragoInstance());
  314. return false;
  315. }
  316. return true;
  317. }
  318.  
  319. private int process;
  320.  
  321. @Override
  322. public void process() {
  323. Vorago vorago = getVoragoInstance().getVorago();
  324. if (vorago == null)
  325. return;
  326. if (process == 4) {
  327. if (vorago.getTemporaryAttributtes().get("BringHimDownClick") != null
  328. && vorago.getTemporaryAttributtes().get("BringHimDownClick") == Boolean.TRUE) {
  329. player.applyHit(new Hit(vorago, 150, HitLook.REGULAR_DAMAGE));
  330. } else if (vorago.isUnderMist(player) && vorago.getHitpoints() != 0) {
  331. player.applyHit(new Hit(vorago, Utils.random(300, 600), HitLook.REGULAR_DAMAGE));
  332. int perc = player.getCombatDefinitions().getSpecialAttackPercentage();
  333. if (perc != 0)
  334. player.getCombatDefinitions().desecreaseSpecialAttack(perc < 10 ? (10 - perc) : 10);
  335. player.setRunEnergy(player.getRunEnergy() - 20);
  336. } else if (player.getTemporaryAttributtes().get("Suffocating") != null && vorago.getHitpoints() != 0) {
  337. int damage = (int) player.getTemporaryAttributtes().get("Suffocating");
  338. player.applyHit(new Hit(vorago, damage, HitLook.REGULAR_DAMAGE));
  339. player.getTemporaryAttributtes().put("Suffocating", damage + 100);
  340. } else if (vorago.getPhase() == 5) {
  341. if (hasWeaponPieces())
  342. player.applyHit(new Hit(vorago, 100, HitLook.REGULAR_DAMAGE));
  343. }
  344. process = 0;
  345. }
  346. process++;
  347. }
  348.  
  349. public boolean hasWeaponPieces() {
  350. return player.getInventory().containsOneItem(28600, 28602, 28604);
  351. }
  352.  
  353. @Override
  354. public void moved() {
  355. if (player.getTemporaryAttributtes().get("BRINGHIM") != null) {
  356. player.getTemporaryAttributtes().remove("BRINGHIM");
  357. player.setNextAnimation(new Animation(-1));
  358. }
  359. }
  360.  
  361. @Override
  362. public boolean processNPCClick2(NPC npc) {
  363. if (npc.getId() == 17161) {
  364. player.getDialogueManager().startDialogue("VoragoFaceD", npc.getId(), 1, getVoragoInstance());
  365. return false;
  366. }
  367. return true;
  368. }
  369.  
  370. @Override
  371. public boolean logout() {
  372. if (getVoragoInstance().playerIsOnBattle(player)) {
  373. if (getVoragoInstance().getVorago() != null) {
  374. if (player.getInventory().containsItem(28600, 1)) {
  375. getVoragoInstance().getVorago().weaponPieces[0] = World.addWeaponPiece(new Item(28600),
  376. new WorldTile(player));
  377. }
  378. if (player.getInventory().containsItem(28602, 1)) {
  379. getVoragoInstance().getVorago().weaponPieces[1] = World.addWeaponPiece(new Item(28602),
  380. new WorldTile(player));
  381. }
  382. if (player.getInventory().containsItem(28604, 1)) {
  383. getVoragoInstance().getVorago().weaponPieces[2] = World.addWeaponPiece(new Item(28604),
  384. new WorldTile(player));
  385. }
  386. if (player.getInventory().containsItem(28606, 1)) {
  387. World.addWeaponPiece(new Item(28606), new WorldTile(player));
  388. }
  389. }
  390. resetAttributesOnLeaveBattle();
  391. getVoragoInstance().removePlayerFromBattle(player, BossInstance.LOGGED_OUT);
  392. } else
  393. getVoragoInstance().removePlayer(player, BossInstance.LOGGED_OUT);
  394. return false;
  395. }
  396.  
  397. @Override
  398. public boolean login() {
  399. removeControler();
  400. BossInstanceHandler.joinInstance(player, Boss.Vorago, "", true);
  401. return false;
  402. }
  403.  
  404. public VoragoInstance getVoragoInstance() {
  405. return (VoragoInstance) getInstance();
  406. }
  407.  
  408. @Override
  409. public boolean sendDeath() {
  410. if (getVoragoInstance().getVorago() != null) {
  411. if (player.getInventory().containsItem(28600, 1)) {
  412. getVoragoInstance().getVorago().weaponPieces[0] = World.addWeaponPiece(new Item(28600),
  413. new WorldTile(player));
  414. }
  415. if (player.getInventory().containsItem(28602, 1)) {
  416. getVoragoInstance().getVorago().weaponPieces[1] = World.addWeaponPiece(new Item(28602),
  417. new WorldTile(player));
  418. }
  419. if (player.getInventory().containsItem(28604, 1)) {
  420. getVoragoInstance().getVorago().weaponPieces[2] = World.addWeaponPiece(new Item(28604),
  421. new WorldTile(player));
  422. }
  423. if (player.getInventory().containsItem(28606, 1)) {
  424. World.addWeaponPiece(new Item(28606), new WorldTile(player));
  425. }
  426. }
  427. if (getVoragoInstance().playerIsOnBattle(player)) {
  428. resetAttributesOnLeaveBattle();
  429. getVoragoInstance().removePlayerFromBattle(player, BossInstance.DIED);
  430. } else
  431. getVoragoInstance().removePlayer(player, BossInstance.DIED);
  432. player.lock(8);
  433. player.stopAll();
  434. WorldTasksManager.schedule(new WorldTask() {
  435. int loop;
  436.  
  437. @Override
  438. public void run() {
  439. if (loop == 0) {
  440. player.setNextAnimation(player.getTemporaryAttributtes().get("InstantDeath") != null
  441. ? new Animation(20388) : player.getDeathAnimation());
  442. } else if (loop == 1) {
  443. player.getPackets().sendGameMessage("Oh dear, you have died.");
  444. } else if (loop == 3) {
  445. getInstance().leaveInstance(player, BossInstance.DIED);
  446. removeControler();
  447. if (getInstance().getSettings().isPractiseMode()) {
  448. player.reset();
  449. player.setNextWorldTile(getInstance().getBoss().getOutsideTile());
  450. } else {
  451.  
  452. WorldTile graveStoneLoc = getInstance().getBoss().getGraveStoneTile();
  453. if (graveStoneLoc == null)
  454. graveStoneLoc = getInstance().isPublic() ? new WorldTile(player)
  455. : getInstance().getBoss().getOutsideTile();
  456. player.getControlerManager().startControler("DeathEvent", graveStoneLoc, player.hasSkull());
  457. }
  458. } else if (loop == 4) {
  459. stop();
  460. }
  461. loop++;
  462. }
  463. }, 0, 1);
  464. return false;
  465. }
  466.  
  467. @Override
  468. public boolean processMagicTeleport(WorldTile toTile) {
  469. if (!getVoragoInstance().isPublic() || (getVoragoInstance().playerIsOnBattle(player))) {
  470. player.getDialogueManager().startDialogue("SimpleMessage", "You can't leave just like that!");
  471. return false;
  472. }
  473. getVoragoInstance().removePlayer(player, BossInstance.TELEPORTED);
  474. return true;
  475. }
  476.  
  477. @Override
  478. public boolean processItemTeleport(WorldTile toTile) {
  479. if (!getVoragoInstance().isPublic() || (getVoragoInstance().playerIsOnBattle(player))) {
  480. player.getDialogueManager().startDialogue("SimpleMessage", "You can't leave just like that!");
  481. return false;
  482. }
  483. getVoragoInstance().removePlayer(player, BossInstance.TELEPORTED);
  484. return true;
  485. }
  486.  
  487. @Override
  488. public boolean processObjectTeleport(WorldTile toTile) {
  489. if (!getVoragoInstance().isPublic() || (getVoragoInstance().playerIsOnBattle(player))) {
  490. player.getDialogueManager().startDialogue("SimpleMessage", "You can't leave just like that!");
  491. return false;
  492. }
  493. getVoragoInstance().removePlayer(player, BossInstance.TELEPORTED);
  494. return true;
  495. }
  496.  
  497. public void resetAttributesOnLeaveBattle() {
  498. if (isJumping) {
  499. isJumping = false;
  500. getVoragoInstance().arttributes[0] = false;
  501. }
  502. player.getTemporaryAttributtes().clear();
  503. removeItems();
  504. }
  505.  
  506. @Override
  507. public boolean processButtonClick(int interfaceId, int componentId, int slotId, int slotId2, int packetId) {
  508. if (interfaceId == Inventory.INVENTORY_INTERFACE) {
  509. if (slotId2 == 28600 || slotId2 == 28602 || slotId2 == 28604) {
  510. if (packetId != WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
  511. return true;
  512. if (player.getInventory().containsItem(28600, 1) && player.getInventory().containsItem(28602, 1)
  513. && player.getInventory().containsItem(28604, 1)) {
  514. player.getInventory().deleteItem(28600, 1);
  515. player.getInventory().deleteItem(28602, 1);
  516. player.getInventory().deleteItem(28604, 1);
  517. player.getInventory().addItem(28606, 1);
  518. player.getPackets()
  519. .sendGameMessage("You combine the weapon pieces together to make the maul of omens.");
  520. return false;
  521. }
  522. player.getPackets().sendGameMessage("You don't have all the weapon pieces required.");
  523. return false;
  524. } else if (slotId2 == 28606) {
  525. if (packetId != WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
  526. return true;
  527. Vorago vorago = getVoragoInstance().getVorago();
  528. WorldTile voragoSpawnLocation = getVoragoInstance().getVoragoSpawnLocation(5);
  529. if (vorago == null || vorago.getPhase() != 5)
  530. return false;
  531. if (!Utils.isOnRange(vorago, player, 1)) {
  532. VoragoInstance.sendMessage(player, 1, "You need to be closer to use this on Vorago.");
  533. return false;
  534. }
  535. if (vorago.getX() != (voragoSpawnLocation.getX() + 8)) {
  536. VoragoInstance.sendMessage(player, 1, "Vorago is still not close enough to the edge.");
  537. return false;
  538. }
  539. vorago.sendRealDeath(player);
  540. }
  541. }
  542. return true;
  543. }
  544.  
  545. @Override
  546. public boolean canTakeItem(FloorItem item) {
  547. switch (item.getId()) {
  548. case 28600:
  549. getVoragoInstance().getVorago().weaponPieces[0] = null;
  550. break;
  551. case 28602:
  552. getVoragoInstance().getVorago().weaponPieces[1] = null;
  553. break;
  554. case 28604:
  555. getVoragoInstance().getVorago().weaponPieces[2] = null;
  556. break;
  557. }
  558. return true;
  559. }
  560.  
  561. @Override
  562. public boolean canDropItem(Item item) {
  563. switch (item.getId()) {
  564. case 28600:
  565. player.stopAll(false);
  566. player.lock(1);
  567. player.getInventory().deleteItem(item);
  568. getVoragoInstance().getVorago().weaponPieces[0] = World.addWeaponPiece(item, new WorldTile(player));
  569. return false;
  570. case 28602:
  571. player.stopAll(false);
  572. player.lock(1);
  573. player.getInventory().deleteItem(item);
  574. getVoragoInstance().getVorago().weaponPieces[1] = World.addWeaponPiece(item, new WorldTile(player));
  575. return false;
  576. case 28604:
  577. player.stopAll(false);
  578. player.lock(1);
  579. player.getInventory().deleteItem(item);
  580. getVoragoInstance().getVorago().weaponPieces[2] = World.addWeaponPiece(item, new WorldTile(player));
  581. return false;
  582. case 28606:
  583. player.stopAll(false);
  584. player.lock(1);
  585. player.getInventory().deleteItem(item);
  586. World.addWeaponPiece(item, new WorldTile(player));
  587. return false;
  588. }
  589. return true;
  590. }
  591.  
  592. public void removeItems() {
  593. for (int i = 0; i < 8; i += 2) {
  594. player.getInventory().deleteItem(new Item(28600 + i));
  595. }
  596. }
  597.  
  598. }
Advertisement
Add Comment
Please, Sign In to add comment