armark1ng

Untitled

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