armark1ng

Untitled

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