armark1ng

Untitled

Sep 4th, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.18 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] && !isJumping) {
  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",
  53. player.getX() > object.getX() ? 0 : 1);
  54. getVoragoInstance().getVorago().transform();
  55. getVoragoInstance().getVorago().setForceFollowClose(player.getX() > object.getX() ? true : false);
  56. isJumping = player.getX() > object.getX() ? false : true;
  57. player.setNextAnimation(new Animation(-1));// TODO
  58. WorldTasksManager.schedule(new WorldTask() {
  59. @Override
  60. public void run() {
  61. player.unlock();
  62. WorldTile location = new WorldTile(
  63. player.getX() > object.getX() ? (object.getX() - 1) : (object.getX() + 1), object.getY(),
  64. 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(
  79. player.getX() == object.getX() ? (object.getX() - 1) : (object.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() != Utils.getAngle(0, -1) && vorago.getDirection() != Utils.getAngle(1, -1)
  101. && vorago.getDirection() != Utils.getAngle(-1, -1)) {
  102. player.getPackets().sendGameMessage("Vorago must be facing south in order to jump on his back.");
  103. return false;
  104. }
  105. player.lock();
  106. player.setNextAnimation(new Animation(20311));
  107. vorago.setNextAnimation(new Animation(20376));
  108. player.faceEntity(vorago);
  109. vorago.setCantInteract(true);
  110. WorldTasksManager.schedule(new WorldTask() {
  111. @Override
  112. public void run() {
  113. player.unlock();
  114. WorldTile location = getVoragoInstance().getTile(new WorldTile(3104, 6121, 0));
  115. player.setNextAnimation(new Animation(-1));
  116. vorago.setCantInteract(false);
  117. vorago.setForceFollowClose(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() + 10);
  205. player.setNextAnimation(getVoragoInstance().getVorago().getBringHimDownAnimation());
  206. return false;
  207. }
  208. player.stopAll();
  209. player.faceEntity(target);
  210. player.getTemporaryAttributtes().put("BRINGHIM", Boolean.TRUE);
  211. player.setNextAnimation(getVoragoInstance().getVorago().getBringHimDownAnimation());
  212. return false;
  213. } else if (target.getTemporaryAttributtes().get("CantBeAttacked") != null) {
  214. String reason = (String) target.getTemporaryAttributtes().get("CantBeAttacked");
  215. if (reason != "")
  216. player.getPackets().sendGameMessage(reason);
  217. return false;
  218. } else if (target instanceof StoneClone) {
  219. if (((StoneClone) target).getTarget() != player && !hasKilledClone()) {
  220. player.getPackets()
  221. .sendGameMessage("Only those who have recently killed their stone clone can battle one.");
  222. return false;
  223. }
  224. }
  225. return true;
  226. }
  227.  
  228. @Override
  229. public boolean checkWalkStep(int lastX, int lastY, int nextX, int nextY) {
  230. for (int i = 95042; i <= 95044; i++) {
  231. if (World.containsObjectWithId(new WorldTile(nextX, nextY, player.getPlane()), i))
  232. return false;
  233. }
  234. if (player.getTemporaryAttributtes().get("PHASE_5_START") != null
  235. && nextX >= getVoragoInstance().getVoragoSpawnLocation(5).getX())
  236. return false;
  237. for (NPC npc : World.getNPCs()) {
  238. if (npc instanceof Vorago) {
  239. Vorago vorago = (Vorago) npc;
  240. if (Utils.colides(nextX, nextY, player.getSize(), npc.getX(), npc.getY(), npc.getSize())) {
  241. if (vorago.getPhase() == 5 || vorago.getTemporaryAttributtes().get("TheEnd") != null
  242. || ((vorago.getPhase() == 3 || vorago.getPhase() == 4)
  243. && vorago.getTemporaryAttributtes().get("CantBeAttacked") != null
  244. && vorago.getTemporaryAttributtes().get("waterfall") == null))
  245. return false;
  246. }
  247. if (!vorago.canMove(player, nextX, nextY))
  248. return false;
  249. }
  250. if (Utils.colides(nextX, nextY, player.getSize(), npc.getX(), npc.getY(), npc.getSize()))
  251. if (npc instanceof Vitalis || npc instanceof VoragoFace)
  252. return false;
  253. }
  254. return true;
  255. }
  256.  
  257. public boolean hasKilledClone() {
  258. return player.getTemporaryAttributtes().get("RecentlyKilledClone") != null;
  259. }
  260.  
  261. @Override
  262. public void processIngoingHit(Hit hit) {
  263. if (hit.getLook() == HitLook.MAGIC_DAMAGE && hit.getSource() != null && (hit.getSource() instanceof Vorago)) {
  264. int blues = player.getTemporaryAttributtes().get("BlueBombs") == null ? 0
  265. : (int) player.getTemporaryAttributtes().get("BlueBombs");
  266. player.getTemporaryAttributtes().put("BlueBombs", blues + 1);
  267. }
  268. if (hit.getSource() instanceof Vorago) {
  269. Vorago vorago = (Vorago) hit.getSource();
  270. if (vorago.getPhase() == 5 && vorago.getHitpoints() == 0) {
  271. hit.setDamage(0);
  272. }
  273. }
  274. super.processIngoingHit(hit);
  275. }
  276.  
  277. @Override
  278. public void processIncommingHit(Hit hit, Entity target) {
  279. if (target instanceof Vorago) {
  280. int hitDamage = hit.getDamage();
  281. int totalDamage = player.getTemporaryAttributtes().get("TotalDamage") == null ? 0
  282. : (int) player.getTemporaryAttributtes().get("TotalDamage");
  283. player.getTemporaryAttributtes().put("TotalDamage", totalDamage + hitDamage);
  284. }
  285. }
  286.  
  287. @Override
  288. public void processNPCDeath(NPC npc) {
  289. if (npc instanceof StoneClone) {
  290. if (((StoneClone) npc).getTarget() == player) {
  291. getVoragoInstance().getVorago().sendCloneDeath(player);
  292. player.getHintIconsManager().removeAll();
  293. player.getHintIconsManager().removeUnsavedHintIcon();
  294. player.getTemporaryAttributtes().put("RecentlyKilledClone", Boolean.TRUE);
  295. }
  296. }
  297. }
  298.  
  299. @Override
  300. public boolean processNPCClick1(NPC npc) {
  301. if (npc.getId() == 17162 || npc.getId() == 17161) {
  302. if (getVoragoInstance().getVoragoFace().isTransforming())
  303. return false;
  304. if (npc.getId() == 17162) {
  305. if (getVoragoInstance().getVoragoFace().isBattleInGoing()) {
  306. player.getDialogueManager().startDialogue("SimpleMessage", "Looks like vorago is not here.");
  307. return false;
  308. }
  309. getVoragoInstance().getVoragoFace().startTransformation(player);
  310. } else
  311. player.getDialogueManager().startDialogue("VoragoFaceD", npc.getId(), 0, getVoragoInstance());
  312. return false;
  313. }
  314. return true;
  315. }
  316.  
  317. private int process;
  318.  
  319. @Override
  320. public void process() {
  321. Vorago vorago = getVoragoInstance().getVorago();
  322. if (vorago == null)
  323. return;
  324. if (process == 4) {
  325. if (vorago.getTemporaryAttributtes().get("BringHimDownClick") != null
  326. && vorago.getTemporaryAttributtes().get("BringHimDownClick") == Boolean.TRUE) {
  327. player.applyHit(new Hit(vorago, 150, HitLook.REGULAR_DAMAGE));
  328. } else if (vorago.isUnderMist(player) && vorago.getHitpoints() != 0) {
  329. player.applyHit(new Hit(vorago, Utils.random(300, 600), HitLook.REGULAR_DAMAGE));
  330. int perc = player.getCombatDefinitions().getSpecialAttackPercentage();
  331. if (perc != 0)
  332. player.getCombatDefinitions().desecreaseSpecialAttack(perc < 10 ? (10 - perc) : 10);
  333. player.setRunEnergy(player.getRunEnergy() - 20);
  334. } else if (player.getTemporaryAttributtes().get("Suffocating") != null && vorago.getHitpoints() != 0) {
  335. int damage = (int) player.getTemporaryAttributtes().get("Suffocating");
  336. player.applyHit(new Hit(vorago, damage, HitLook.REGULAR_DAMAGE));
  337. player.getTemporaryAttributtes().put("Suffocating", damage + 100);
  338. } else if (vorago.getPhase() == 5) {
  339. if (hasWeaponPieces())
  340. player.applyHit(new Hit(vorago, 100, HitLook.REGULAR_DAMAGE));
  341. }
  342. process = 0;
  343. }
  344. process++;
  345. }
  346.  
  347. public boolean hasWeaponPieces() {
  348. return player.getInventory().containsOneItem(28600, 28602, 28604);
  349. }
  350.  
  351. @Override
  352. public void moved() {
  353. if (player.getTemporaryAttributtes().get("BRINGHIM") != null) {
  354. player.getTemporaryAttributtes().remove("BRINGHIM");
  355. player.setNextAnimation(new Animation(-1));
  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. if (getVoragoInstance().getVorago() != null) {
  372. if (player.getInventory().containsItem(28600, 1)) {
  373. getVoragoInstance().getVorago().weaponPieces[0] = World.addWeaponPiece(new Item(28600),
  374. new WorldTile(player));
  375. }
  376. if (player.getInventory().containsItem(28602, 1)) {
  377. getVoragoInstance().getVorago().weaponPieces[1] = World.addWeaponPiece(new Item(28602),
  378. new WorldTile(player));
  379. }
  380. if (player.getInventory().containsItem(28604, 1)) {
  381. getVoragoInstance().getVorago().weaponPieces[2] = World.addWeaponPiece(new Item(28604),
  382. new WorldTile(player));
  383. }
  384. if (player.getInventory().containsItem(28606, 1)) {
  385. World.addWeaponPiece(new Item(28606), new WorldTile(player));
  386. }
  387. }
  388. resetAttributesOnLeaveBattle();
  389. getVoragoInstance().removePlayerFromBattle(player, BossInstance.LOGGED_OUT);
  390. } else
  391. getVoragoInstance().removePlayer(player, BossInstance.LOGGED_OUT);
  392. return false;
  393. }
  394.  
  395. @Override
  396. public boolean login() {
  397. removeControler();
  398. BossInstanceHandler.joinInstance(player, Boss.Vorago, "", true);
  399. return false;
  400. }
  401.  
  402. public VoragoInstance getVoragoInstance() {
  403. return (VoragoInstance) getInstance();
  404. }
  405.  
  406. @Override
  407. public boolean sendDeath() {
  408. if (getVoragoInstance().getVorago() != null) {
  409. if (player.getInventory().containsItem(28600, 1)) {
  410. getVoragoInstance().getVorago().weaponPieces[0] = World.addWeaponPiece(new Item(28600),
  411. new WorldTile(player));
  412. }
  413. if (player.getInventory().containsItem(28602, 1)) {
  414. getVoragoInstance().getVorago().weaponPieces[1] = World.addWeaponPiece(new Item(28602),
  415. new WorldTile(player));
  416. }
  417. if (player.getInventory().containsItem(28604, 1)) {
  418. getVoragoInstance().getVorago().weaponPieces[2] = World.addWeaponPiece(new Item(28604),
  419. new WorldTile(player));
  420. }
  421. if (player.getInventory().containsItem(28606, 1)) {
  422. World.addWeaponPiece(new Item(28606), new WorldTile(player));
  423. }
  424. }
  425. if (getVoragoInstance().playerIsOnBattle(player)) {
  426. resetAttributesOnLeaveBattle();
  427. getVoragoInstance().removePlayerFromBattle(player, BossInstance.DIED);
  428. } else
  429. getVoragoInstance().removePlayer(player, BossInstance.DIED);
  430. player.lock(8);
  431. player.stopAll();
  432. WorldTasksManager.schedule(new WorldTask() {
  433. int loop;
  434.  
  435. @Override
  436. public void run() {
  437. if (loop == 0) {
  438. player.setNextAnimation(player.getTemporaryAttributtes().get("InstantDeath") != null
  439. ? new Animation(20388) : player.getDeathAnimation());
  440. } else if (loop == 1) {
  441. player.getPackets().sendGameMessage("Oh dear, you have died.");
  442. } else if (loop == 3) {
  443. getInstance().leaveInstance(player, BossInstance.DIED);
  444. removeControler();
  445. if (getInstance().getSettings().isPractiseMode()) {
  446. player.reset();
  447. player.setNextWorldTile(getInstance().getBoss().getOutsideTile());
  448. } else {
  449.  
  450. WorldTile graveStoneLoc = getInstance().getBoss().getGraveStoneTile();
  451. if (graveStoneLoc == null)
  452. graveStoneLoc = getInstance().isPublic() ? new WorldTile(player)
  453. : getInstance().getBoss().getOutsideTile();
  454. player.getControlerManager().startControler("DeathEvent", graveStoneLoc, player.hasSkull());
  455. }
  456. } else if (loop == 4) {
  457. stop();
  458. }
  459. loop++;
  460. }
  461. }, 0, 1);
  462. return false;
  463. }
  464.  
  465. @Override
  466. public boolean processMagicTeleport(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 processItemTeleport(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. @Override
  486. public boolean processObjectTeleport(WorldTile toTile) {
  487. if (!getVoragoInstance().isPublic() || (getVoragoInstance().playerIsOnBattle(player))) {
  488. player.getDialogueManager().startDialogue("SimpleMessage", "You can't leave just like that!");
  489. return false;
  490. }
  491. getVoragoInstance().removePlayer(player, BossInstance.TELEPORTED);
  492. return true;
  493. }
  494.  
  495. public void resetAttributesOnLeaveBattle() {
  496. if (isJumping) {
  497. isJumping = false;
  498. getVoragoInstance().arttributes[0] = false;
  499. }
  500. player.getTemporaryAttributtes().clear();
  501. removeItems();
  502. }
  503.  
  504. @Override
  505. public boolean processButtonClick(int interfaceId, int componentId, int slotId, int slotId2, int packetId) {
  506. if (interfaceId == Inventory.INVENTORY_INTERFACE) {
  507. if (slotId2 == 28600 || slotId2 == 28602 || slotId2 == 28604) {
  508. if (packetId != WorldPacketsDecoder.ACTION_BUTTON1_PACKET)
  509. return true;
  510. if (player.getInventory().containsItem(28600, 1) && player.getInventory().containsItem(28602, 1)
  511. && player.getInventory().containsItem(28604, 1)) {
  512. player.getInventory().deleteItem(28600, 1);
  513. player.getInventory().deleteItem(28602, 1);
  514. player.getInventory().deleteItem(28604, 1);
  515. player.getInventory().addItem(28606, 1);
  516. player.getPackets()
  517. .sendGameMessage("You combine the weapon pieces together to make the maul of omens.");
  518. return false;
  519. }
  520. player.getPackets().sendGameMessage("You don't have all the weapon pieces required.");
  521. return false;
  522. } else if (slotId2 == 28606) {
  523. if (packetId != WorldPacketsDecoder.ACTION_BUTTON3_PACKET)
  524. return true;
  525. Vorago vorago = getVoragoInstance().getVorago();
  526. WorldTile voragoSpawnLocation = getVoragoInstance().getVoragoSpawnLocation(5);
  527. if (vorago == null || vorago.getPhase() != 5)
  528. return false;
  529. if (!Utils.isOnRange(vorago, player, 1)) {
  530. VoragoInstance.sendMessage(player, 1, "You need to be closer to use this on Vorago.");
  531. return false;
  532. }
  533. if (vorago.getX() != (voragoSpawnLocation.getX() + 8)) {
  534. VoragoInstance.sendMessage(player, 1, "Vorago is still not close enough to the edge.");
  535. return false;
  536. }
  537. vorago.sendRealDeath(player);
  538. }
  539. }
  540. return true;
  541. }
  542.  
  543. @Override
  544. public boolean canTakeItem(FloorItem item) {
  545. switch (item.getId()) {
  546. case 28600:
  547. getVoragoInstance().getVorago().weaponPieces[0] = null;
  548. break;
  549. case 28602:
  550. getVoragoInstance().getVorago().weaponPieces[1] = null;
  551. break;
  552. case 28604:
  553. getVoragoInstance().getVorago().weaponPieces[2] = null;
  554. break;
  555. }
  556. return true;
  557. }
  558.  
  559. @Override
  560. public boolean canDropItem(Item item) {
  561. switch (item.getId()) {
  562. case 28600:
  563. player.stopAll(false);
  564. player.lock(1);
  565. player.getInventory().deleteItem(item);
  566. getVoragoInstance().getVorago().weaponPieces[0] = World.addWeaponPiece(item, new WorldTile(player));
  567. return false;
  568. case 28602:
  569. player.stopAll(false);
  570. player.lock(1);
  571. player.getInventory().deleteItem(item);
  572. getVoragoInstance().getVorago().weaponPieces[1] = World.addWeaponPiece(item, new WorldTile(player));
  573. return false;
  574. case 28604:
  575. player.stopAll(false);
  576. player.lock(1);
  577. player.getInventory().deleteItem(item);
  578. getVoragoInstance().getVorago().weaponPieces[2] = World.addWeaponPiece(item, new WorldTile(player));
  579. return false;
  580. case 28606:
  581. player.stopAll(false);
  582. player.lock(1);
  583. player.getInventory().deleteItem(item);
  584. World.addWeaponPiece(item, new WorldTile(player));
  585. return false;
  586. }
  587. return true;
  588. }
  589.  
  590. public void removeItems() {
  591. for (int i = 0; i < 8; i += 2) {
  592. player.getInventory().deleteItem(new Item(28600 + i));
  593. }
  594. }
  595.  
  596. }
Advertisement
Add Comment
Please, Sign In to add comment