Guest User

Untitled

a guest
Jun 23rd, 2014
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.83 KB | None | 0 0
  1. package org.soulsplit.server.game.minigames.impl.fightpits;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import org.soulsplit.server.constants.ItemIdentifiers;
  6. import org.soulsplit.server.constants.NpcIdentifiers;
  7. import org.soulsplit.server.game.Item;
  8. import org.soulsplit.server.game.minigames.MinigameBoundry;
  9. import org.soulsplit.server.game.minigames.MinigamePlayer;
  10. import org.soulsplit.server.game.minigames.MinigamePlayerActions;
  11. import org.soulsplit.server.game.minigames.MinigamePlayerExecutable;
  12. import org.soulsplit.server.game.minigames.impl.LobbyMinigame;
  13. import org.soulsplit.server.model.players.Player;
  14. import org.soulsplit.server.model.players.content.ContentControl;
  15. import org.soulsplit.server.util.Misc;
  16. import org.soulsplit.server.world.Position;
  17. import org.soulsplit.server.world.entity.RSObject;
  18. import org.soulsplit.server.world.entity.mobile.Mobile;
  19.  
  20. public class FightPits extends LobbyMinigame {
  21. public static final int MINIGAME_START_TIMER = 200;
  22. private static final Position ENTER_WAITING_ROOM = Position.create(2399, 5175);
  23. private static final Position EXIT_WAITING_ROOM = Position.create(2399, 5177);
  24. private static final Position EXIT_GAME_TO_WAITING = Position.create(2399, 5169);
  25. private static final Position MINIGAME_START = Position.create(2392, 5139);
  26.  
  27. private int internalAttackTimer;
  28. private String champion;
  29. private final ArrayList<MinigameBoundry> MINIGAME_BOUNDRYS = new ArrayList<MinigameBoundry>();
  30. private final ArrayList<Disabilities> DISABILITIES = new ArrayList<Disabilities>();
  31.  
  32. public FightPits() {
  33. super(MINIGAME_START_TIMER, MinigameRisk.SAFE);
  34. MINIGAME_BOUNDRYS.add(new MinigameBoundry(Position.create(2375, 5129), Position.create(2418, 5168)));
  35. MINIGAME_BOUNDRYS.add(new MinigameBoundry( Position.create(2394, 5169), Position.create(2404, 5175)));
  36. DISABILITIES.add(Disabilities.TELEPORT);
  37. DISABILITIES.add(Disabilities.TRADE);
  38. champion = "none";
  39. internalAttackTimer = 30;
  40. }
  41.  
  42. @Override
  43. public ArrayList<MinigameBoundry> getMinigameBoundrys() {
  44. return MINIGAME_BOUNDRYS;
  45. }
  46.  
  47.  
  48. @Override
  49. public ArrayList<Disabilities> getDisabilities() {
  50. return DISABILITIES;
  51. }
  52.  
  53. @Override
  54. public int getMinimumPlayerSize() {
  55. return 2;
  56. }
  57.  
  58. @Override
  59. public void changedState(MinigamePlayer minigamePlayer, PlayerState newState) {
  60. //Not used here?
  61. }
  62.  
  63. @Override
  64. public void removePlayer(Player player) {
  65. super.removePlayer(player);
  66. }
  67.  
  68. @Override
  69. public void startGame() {
  70. //Nothing
  71. }
  72.  
  73. @Override
  74. public void invokeAction(MinigamePlayer player, PlayerActions action, MinigameState minigameState, PlayerState playerState) {
  75. switch(action) {
  76. case ENTER_GAME:
  77. if(ContentControl.FIGHT_PITS.isDisabled()) {
  78. player.getPlayer().sendMessage("This action is currently disabled temporarily");
  79. return;
  80. }
  81. player.getPlayer().getPA().movePlayer(MINIGAME_START);
  82. player.setState(PlayerState.IN_GAME);
  83. break;
  84. case ENTER_LOBBY:
  85. player.getPlayer().getPA().movePlayer(ENTER_WAITING_ROOM);
  86. player.setState(PlayerState.IN_WAITING_ROOM);
  87. break;
  88. case PLAYER_DEATH:
  89. player.getPlayer().getPA().movePlayer(EXIT_GAME_TO_WAITING);
  90. player.setState(PlayerState.IN_WAITING_ROOM);
  91. break;
  92. case REMOVE_PLAYER:
  93. player.getPlayer().setPosition(EXIT_WAITING_ROOM);
  94. player.getPlayer().getPA().movePlayer(EXIT_WAITING_ROOM);
  95. break;
  96. case PLAYER_KILLED:
  97. player.getPlayer().sendMessage("You gain a fight pits point for killing a player.");
  98. player.getPlayer().fightPitsPoints += 1;
  99. break;
  100. }
  101. super.invokeAction(player, action, minigameState, playerState);
  102. }
  103.  
  104. @Override
  105. public void addPlayer(Player player) {
  106. super.addPlayer(player);
  107. }
  108.  
  109. @Override
  110. public void updateInterface(MinigameState state) {
  111. for(MinigamePlayer player : getPlayerList()) {
  112. if(state == MinigameState.GAME_STARTED) {
  113. if(player.getState() == PlayerState.IN_GAME) {
  114. player.getPlayer().getActionSender().sendFrame126("Foes Remaining: "+(getPlayerList().size()-1), 2805);
  115. }
  116. if(player.getState() == PlayerState.IN_WAITING_ROOM) {
  117. player.getPlayer().getActionSender().sendFrame126("Game has been started.", 2805);
  118. }
  119. }
  120.  
  121. if(state == MinigameState.WAITING_STATE) {
  122. if(player.getState() == PlayerState.IN_WAITING_ROOM) {
  123. player.getPlayer().getActionSender().sendFrame126("Next game begins in "+getMinigameTimer(), 2805);
  124. }
  125. }
  126. player.getPlayer().getActionSender().sendFrame126("Champion: JalYt-Ket-" + champion, 2806);
  127. player.getPlayer().getPA().walkableInterface(2804);
  128. }
  129. }
  130.  
  131. @Override
  132. public boolean endGame() {
  133. int count = MinigamePlayerActions.getCount(this, PlayerState.IN_GAME);
  134. if(count <= 1) {
  135. MinigamePlayer winner = null;
  136. for(MinigamePlayer mp : getPlayerList()) {
  137. if(mp.getState() == PlayerState.IN_GAME) {
  138. winner = mp;
  139. break;
  140. }
  141. }
  142. if(winner == null) return true;
  143. winner.getPlayer().getInventory().add(ItemIdentifiers.TOKKUL, Misc.random(1200, 4000));
  144. winner.getPlayer().fightPitsPoints += 3;
  145. winner.getPlayer().sendMessage("You get 3 fight pits points for winning.");
  146. champion = winner.getPlayer().getName();
  147. return true;
  148. }
  149. return false;
  150. }
  151.  
  152.  
  153. @Override
  154. public void process() {
  155. if(getMinigameState() == MinigameState.GAME_STARTED) {
  156. if(internalAttackTimer > 0) {
  157. internalAttackTimer--;
  158. } else if(internalAttackTimer == 0) {
  159. internalAttackTimer = -1;
  160. MinigamePlayerActions.invokePlayerFilteredAction(getPlayerList(), new MinigamePlayerExecutable() {
  161. @Override
  162. public void run(MinigamePlayer player) {
  163. player.getPlayer().lastClickedNpc = NpcIdentifiers.TZHAAR_MEJ;
  164. player.getPlayer().getDialogue().sendNpcChat("Fight!!!");
  165. player.getPlayer().nextChat = 0;
  166. }
  167. }, PlayerState.IN_GAME);
  168. }
  169. }
  170. super.process();
  171. }
  172.  
  173. @Override
  174. public void resetMinigame() {
  175. internalAttackTimer = 30;
  176. }
  177.  
  178. @Override
  179. public MinigameRisk getMinigameRisk() {
  180. return MinigameRisk.SAFE;
  181. }
  182.  
  183. @Override
  184. public RightClickOptions getRightClickOption() {
  185. return RightClickOptions.ATTACK;
  186. }
  187.  
  188. @Override
  189. public boolean getAttackingRequirements(Player player, final Mobile attackable) {
  190. if(!attackable.isPlayer()) {
  191. return false;
  192. }
  193.  
  194. if(this.internalAttackTimer >= 0) {
  195. player.sendMessage("Please wait for the signal to attack.");
  196. return false;
  197. }
  198.  
  199. return super.getAttackingRequirements(player, attackable);
  200. }
  201.  
  202. @Override
  203. public boolean clickObject(Player player, RSObject o, int clickType) {
  204. return false;
  205. }
  206.  
  207. @Override
  208. public boolean itemOnObject(Player player, RSObject o, Item item) {
  209. return false;
  210. }
  211.  
  212. @Override
  213. public Position getForceOutPosition() {
  214. return EXIT_WAITING_ROOM;
  215. }
  216.  
  217. @Override
  218. public void killEntity(Mobile mobile) {
  219. // TODO Auto-generated method stub
  220.  
  221. }
  222. }
Advertisement
Add Comment
Please, Sign In to add comment