Advertisement
Guest User

Untitled

a guest
Jul 28th, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.96 KB | None | 0 0
  1. package com.rs2.model.content.minigames;
  2.  
  3. import com.rs2.model.players.Player;
  4. import com.rs2.model.players.item.Item;
  5. import com.rs2.model.tick.CycleEvent;
  6. import com.rs2.model.tick.CycleEventContainer;
  7. import com.rs2.model.tick.CycleEventHandler;
  8. import com.rs2.util.Misc;
  9.  
  10. public class RuneDraw {
  11.    
  12.     private Player player;
  13.     private int bet;
  14.     private int emptySlotPlayer;
  15.     private int playerScore;
  16.     private int emptySlotOpponent;
  17.     private int opponentScore;
  18.     private boolean gameOver;
  19.     private boolean held;
  20.    
  21.     public RuneDraw(Player player) {
  22.     this.player = player;
  23.     this.gameOver = false;
  24.     this.held = false;
  25.     this.playerScore = 0;
  26.     this.opponentScore = 0;
  27.     this.emptySlotOpponent = 12250;
  28.     this.emptySlotPlayer = 12240;  
  29.     }
  30.    
  31.     public static final int RUNE_DRAW_INTERFACE = 12231;
  32.    
  33.     public static final int YOUR_SCORE = 12260;
  34.     public static final int YOUR_TEXT = 12261;
  35.     public static final int OPPONENTS_SCORE = 12262;
  36.     public static final int OPPONENTS_TEXT = 12263;
  37.     public static final int OPPONENTS_SCORE_TEXT = 12237;
  38.     public static final int RUNE_DRAW = 12262;
  39.     public static final int HOLD_TEXT = 12239;
  40.     public static final int DRAW_TEXT = 12238;
  41.    
  42.     public static final int DRAW_BUTTON = 47206;
  43.     public static final int HOLD_BUTTON = 47207;
  44.    
  45.     public static final int[] RUNES = {556, 558, 555, 557, 554, 559, 563, 562, 561, 560};
  46.    
  47.     public int getPlayerScore() {
  48.     return this.playerScore;
  49.     }
  50.     public void setPlayerScore(int set) {
  51.     this.playerScore = set;
  52.     }
  53.    
  54.     public int getOpponentScore() {
  55.     return this.opponentScore;
  56.     }
  57.     public void setOpponentScore(int set) {
  58.     this.opponentScore = set;
  59.     }
  60.    
  61.     public int getEmptySlotPlayer() {
  62.     return this.emptySlotPlayer;
  63.     }
  64.     public void setEmptySlotPlayer(int set) {
  65.     this.emptySlotPlayer = set;
  66.     }
  67.    
  68.     public int getEmptySlotOpponent() {
  69.     return this.emptySlotOpponent;
  70.     }
  71.     public void setEmptySlotOpponent(int set) {
  72.     this.emptySlotOpponent = set;
  73.     }
  74.     public int getBet() {
  75.     return this.bet;
  76.     }
  77.     public void setBet(int set) {
  78.     this.bet = set;
  79.     }
  80.    
  81.     public boolean held() {
  82.     return this.held;
  83.     }
  84.     public void setHeld(boolean bool) {
  85.     this.held = bool;
  86.     }
  87.    
  88.     public boolean gameOver() {
  89.     return this.gameOver;
  90.     }
  91.     public void setGameOver(boolean bool) {
  92.     this.gameOver = bool;
  93.     }
  94.    
  95.     public void hold() {
  96.     player.getRuneDraw().setHeld(true);
  97.     player.getActionSender().sendString("", YOUR_TEXT);
  98.     player.getActionSender().sendString("Thinking...", OPPONENTS_TEXT);
  99.     player.setStopPacket(true);
  100.     CycleEventHandler.getInstance().addEvent(player, new CycleEvent() {
  101.         @Override
  102.         public void execute(CycleEventContainer b) {
  103.         int index = Misc.randomMinusOne(RUNES.length);
  104.         sendRune(RUNES[index], player.getRuneDraw().getEmptySlotOpponent());
  105.         player.getRuneDraw().setOpponentScore(player.getRuneDraw().getOpponentScore() + ((index + 1) < 10 ? index + 1 : 0));
  106.         refresh();
  107.         player.getRuneDraw().setEmptySlotOpponent(player.getRuneDraw().getEmptySlotOpponent() + 1);
  108.         if ((player.getRuneDraw().getOpponentScore() > 21 && player.getRuneDraw().getPlayerScore() < 21) || index == 9) {
  109.             winGame();
  110.             b.stop();
  111.             return;
  112.         }
  113.         if (player.getRuneDraw().getOpponentScore() == 21) {
  114.             loseGame();
  115.             b.stop();
  116.             return;
  117.         }
  118.         player.getActionSender().sendString("Your turn...", YOUR_TEXT);
  119.         player.getActionSender().sendString("", HOLD_TEXT);
  120.         b.stop();
  121.         }
  122.  
  123.         @Override
  124.         public void stop() {
  125.         player.setStopPacket(false);
  126.         }
  127.     }, 6);
  128.     }
  129.     public void draw() {
  130.     int index = Misc.randomMinusOne(RUNES.length);
  131.     sendRune(RUNES[index], player.getRuneDraw().getEmptySlotPlayer());
  132.     player.getRuneDraw().setPlayerScore(player.getRuneDraw().getPlayerScore() + ((index + 1) < 10 ? index + 1 : 0));
  133.     refresh();
  134.     player.getRuneDraw().setEmptySlotPlayer(player.getRuneDraw().getEmptySlotPlayer() + 1);
  135.     if((player.getRuneDraw().getPlayerScore() > 21 && player.getRuneDraw().getOpponentScore() < 21) || index == 9) {
  136.         loseGame();
  137.         return;
  138.     }
  139.     if(player.getRuneDraw().getPlayerScore() == 21) {
  140.         winGame();
  141.         return;
  142.     }
  143.     player.getActionSender().sendString("Thinking...", OPPONENTS_TEXT);
  144.     player.setStopPacket(true);
  145.     CycleEventHandler.getInstance().addEvent(player, new CycleEvent() {
  146.         @Override
  147.         public void execute(CycleEventContainer b) {
  148.         int index = Misc.randomMinusOne(RUNES.length);
  149.         sendRune(RUNES[index], player.getRuneDraw().getEmptySlotOpponent());
  150.         player.getRuneDraw().setOpponentScore(player.getRuneDraw().getOpponentScore() + ((index + 1) < 10 ? index + 1 : 0));
  151.         refresh();
  152.         player.getRuneDraw().setEmptySlotOpponent(player.getRuneDraw().getEmptySlotOpponent() + 1);
  153.         if ((player.getRuneDraw().getOpponentScore() > 21 && player.getRuneDraw().getPlayerScore() < 21) || index == 9) {
  154.             winGame();
  155.             b.stop();
  156.             return;
  157.         }
  158.         if (player.getRuneDraw().getOpponentScore() == 21) {
  159.             loseGame();
  160.             b.stop();
  161.             return;
  162.         }
  163.         player.getActionSender().sendString("Your turn...", YOUR_TEXT);
  164.         b.stop();
  165.         }
  166.  
  167.         @Override
  168.         public void stop() {
  169.         player.setStopPacket(false);
  170.         }
  171.     }, 6);
  172.     }
  173.    
  174.     public void sendRune(int item, int index) {
  175.     player.getActionSender().sendItemOnInterface(index, 75, item);
  176.     }
  177.    
  178.     public void refresh() {
  179.     player.getActionSender().sendString("Rune-Draw", RUNE_DRAW);
  180.     player.getActionSender().sendString("@whi@" + player.getRuneDraw().getPlayerScore(), YOUR_SCORE);
  181.     player.getActionSender().sendString("@whi@" + player.getRuneDraw().getOpponentScore(), OPPONENTS_SCORE);
  182.     player.getActionSender().sendString("Opponent's Score", OPPONENTS_SCORE_TEXT);
  183.     player.getActionSender().sendString("", YOUR_TEXT);
  184.     player.getActionSender().sendString("", OPPONENTS_TEXT);
  185.     if(!player.getRuneDraw().held()) {
  186.         player.getActionSender().sendString("Hold", HOLD_TEXT);
  187.     }
  188.     player.getActionSender().sendString("Draw", DRAW_TEXT);
  189.     }
  190.    
  191.     public void reset() {
  192.     player.getRuneDraw().setPlayerScore(0);
  193.     player.getRuneDraw().setOpponentScore(0);
  194.     player.getRuneDraw().setEmptySlotPlayer(12240);
  195.     player.getRuneDraw().setEmptySlotOpponent(12250);
  196.     player.getRuneDraw().setHeld(false);
  197.     for(int i = 12239; i < 12260; i++) {
  198.         sendRune(-1, i);
  199.     }
  200.     }
  201.    
  202.     public void openGame(int amount) {
  203.     bet = amount;
  204.     if(bet != 0) {
  205.         player.getInventory().removeItem(new Item(995, bet));
  206.     }
  207.     gameOver = false;
  208.     reset();
  209.     refresh();
  210.     player.getActionSender().sendInterface(12231);
  211.     }
  212.    
  213.     public void openGame() {
  214.     gameOver = false;
  215.     reset();
  216.     refresh();
  217.     player.getActionSender().sendInterface(12231);
  218.     }
  219.    
  220.     public boolean handleButtons(final Player sender, int buttonId) {
  221.     if(sender != player) {
  222.         return false;
  223.     }
  224.     if(player.getRuneDraw().gameOver()) {
  225.         return false;
  226.     }
  227.     else {
  228.         switch (buttonId) {
  229.         case DRAW_BUTTON:
  230.             draw();
  231.             return true;
  232.         case HOLD_BUTTON:
  233.             if(!held) {
  234.             hold();
  235.             return true;
  236.             }
  237.             else {
  238.             return false;
  239.             }
  240.         }
  241.         return false;
  242.     }
  243.     }
  244.    
  245.     public void winGame() {
  246.     player.getActionSender().sendString("You win!", YOUR_TEXT);
  247.     if(bet != 0) {
  248.         player.getInventory().addItem(new Item(995, (bet * 2)));
  249.     }
  250.     if (!player.getRuneDrawWins()[0]) {
  251.         player.setRuneDrawWins(0, true);
  252.     } else if (player.getRuneDrawWins()[0] && !player.getRuneDrawWins()[1]) {
  253.         player.setRuneDrawWins(1, true);
  254.     } else if (player.getRuneDrawWins()[0] && player.getRuneDrawWins()[1] && !player.getRuneDrawWins()[2]) {
  255.         player.setRuneDrawWins(2, true);
  256.     }
  257.     gameOver = true;
  258.     }
  259.    
  260.     public void loseGame() {
  261.     player.getActionSender().sendString("You lose.", YOUR_TEXT);
  262.     player.setRuneDrawWins(0, false);
  263.     player.setRuneDrawWins(1, false);
  264.     player.setRuneDrawWins(2, false);
  265.     gameOver = true;
  266.     }
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement