armark1ng

Untitled

Sep 4th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. package com.rs.game.player.controlers.bossInstance;
  2.  
  3. import com.rs.game.WorldTile;
  4. import com.rs.game.map.bossInstance.BossInstance;
  5. import com.rs.game.map.bossInstance.BossInstanceHandler;
  6. import com.rs.game.map.bossInstance.BossInstanceHandler.Boss;
  7. import com.rs.game.npc.others.GraveStone;
  8. import com.rs.game.player.MusicsManager;
  9. import com.rs.game.player.controlers.Controler;
  10. import com.rs.game.player.controlers.events.DeathEvent;
  11. import com.rs.game.tasks.WorldTask;
  12. import com.rs.game.tasks.WorldTasksManager;
  13. import com.rs.utils.Utils;
  14.  
  15. public class BossInstanceController extends Controler {
  16.  
  17. private BossInstance instance;
  18.  
  19. @Override
  20. public void start() {
  21. instance = (BossInstance) getArguments()[0]; // cant save this as not
  22. // serializable would
  23. // null :L
  24. getArguments()[0] = instance.getBoss(); // gotta save reference for
  25. // which instance im at
  26. }
  27.  
  28. @Override
  29. public void process() {
  30. if (instance != null && Utils.currentWorldCycle() % 120 == 0)
  31. instance.playMusic(player);
  32. }
  33.  
  34. @Override
  35. public boolean login() {
  36. // shouldnt happen but better be safe
  37. if (getArguments() == null || getArguments().length == 0)
  38. return true;
  39. Boss boss = (Boss) getArguments()[0];
  40. instance = BossInstanceHandler.joinInstance(player, boss, "", true);
  41. return instance == null; // if failed. remove
  42. }
  43.  
  44. public BossInstance getInstance() {
  45. return instance;
  46. }
  47.  
  48. @Override
  49. public boolean sendDeath() {
  50. player.lock(8);
  51. player.stopAll();
  52. WorldTasksManager.schedule(new WorldTask() {
  53. int loop;
  54.  
  55. @Override
  56. public void run() {
  57. if (loop == 0) {
  58. player.setNextAnimation(player.getDeathAnimation());
  59. } else if (loop == 1) {
  60. player.getPackets().sendGameMessage("Oh dear, you have died.");
  61. } else if (loop == 3) {
  62. instance.leaveInstance(player, BossInstance.DIED);
  63. removeControler();
  64. if (instance.getSettings().isPractiseMode()) {
  65. player.reset();
  66. player.setNextWorldTile(instance.getBoss().getOutsideTile());
  67. } else {
  68.  
  69. WorldTile graveStoneLoc = instance.getBoss().getGraveStoneTile();
  70. if (graveStoneLoc == null)
  71. graveStoneLoc = instance.isPublic() ? new WorldTile(player)
  72. : instance.getBoss().getOutsideTile();
  73. else
  74. player.getControlerManager().startControler("DeathEvent", graveStoneLoc, player.hasSkull());
  75. }
  76. } else if (loop == 4) {
  77. // player.getMusicsManager().playMusicEffect(MusicsManager.DEATH_MUSIC_EFFECT);
  78. stop();
  79. }
  80. loop++;
  81. }
  82. }, 0, 1);
  83. return false;
  84. }
  85.  
  86. @Override
  87. public boolean logout() {
  88. instance.leaveInstance(player, BossInstance.LOGGED_OUT);
  89. if (!instance.isPublic())
  90. removeControler();
  91. return false; // false. it will remove script normaly if needed
  92. }
  93.  
  94. // controller stopped for some reason or in purpose
  95. @Override
  96. public void forceClose() {
  97. if (instance != null)
  98. instance.leaveInstance(player, BossInstance.EXITED);
  99. }
  100.  
  101. @Override
  102. public void magicTeleported(int type) {
  103. instance.leaveInstance(player, BossInstance.TELEPORTED);
  104. removeControler();
  105. }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment