Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rs2.model.content.minigames;
- import com.rs2.model.players.Player;
- import com.rs2.model.players.item.Item;
- import com.rs2.model.tick.CycleEvent;
- import com.rs2.model.tick.CycleEventContainer;
- import com.rs2.model.tick.CycleEventHandler;
- import com.rs2.util.Misc;
- public class RuneDraw {
- private Player player;
- private int bet;
- private int emptySlotPlayer;
- private int playerScore;
- private int emptySlotOpponent;
- private int opponentScore;
- private boolean gameOver;
- private boolean held;
- public RuneDraw(Player player) {
- this.player = player;
- this.gameOver = false;
- this.held = false;
- this.playerScore = 0;
- this.opponentScore = 0;
- this.emptySlotOpponent = 12250;
- this.emptySlotPlayer = 12240;
- }
- public static final int RUNE_DRAW_INTERFACE = 12231;
- public static final int YOUR_SCORE = 12260;
- public static final int YOUR_TEXT = 12261;
- public static final int OPPONENTS_SCORE = 12262;
- public static final int OPPONENTS_TEXT = 12263;
- public static final int OPPONENTS_SCORE_TEXT = 12237;
- public static final int RUNE_DRAW = 12262;
- public static final int HOLD_TEXT = 12239;
- public static final int DRAW_TEXT = 12238;
- public static final int DRAW_BUTTON = 47206;
- public static final int HOLD_BUTTON = 47207;
- public static final int[] RUNES = {556, 558, 555, 557, 554, 559, 563, 562, 561, 560};
- public int getPlayerScore() {
- return this.playerScore;
- }
- public void setPlayerScore(int set) {
- this.playerScore = set;
- }
- public int getOpponentScore() {
- return this.opponentScore;
- }
- public void setOpponentScore(int set) {
- this.opponentScore = set;
- }
- public int getEmptySlotPlayer() {
- return this.emptySlotPlayer;
- }
- public void setEmptySlotPlayer(int set) {
- this.emptySlotPlayer = set;
- }
- public int getEmptySlotOpponent() {
- return this.emptySlotOpponent;
- }
- public void setEmptySlotOpponent(int set) {
- this.emptySlotOpponent = set;
- }
- public int getBet() {
- return this.bet;
- }
- public void setBet(int set) {
- this.bet = set;
- }
- public boolean held() {
- return this.held;
- }
- public void setHeld(boolean bool) {
- this.held = bool;
- }
- public boolean gameOver() {
- return this.gameOver;
- }
- public void setGameOver(boolean bool) {
- this.gameOver = bool;
- }
- public void hold() {
- player.getRuneDraw().setHeld(true);
- player.getActionSender().sendString("", YOUR_TEXT);
- player.getActionSender().sendString("Thinking...", OPPONENTS_TEXT);
- player.setStopPacket(true);
- CycleEventHandler.getInstance().addEvent(player, new CycleEvent() {
- @Override
- public void execute(CycleEventContainer b) {
- int index = Misc.randomMinusOne(RUNES.length);
- sendRune(RUNES[index], player.getRuneDraw().getEmptySlotOpponent());
- player.getRuneDraw().setOpponentScore(player.getRuneDraw().getOpponentScore() + ((index + 1) < 10 ? index + 1 : 0));
- refresh();
- player.getRuneDraw().setEmptySlotOpponent(player.getRuneDraw().getEmptySlotOpponent() + 1);
- if ((player.getRuneDraw().getOpponentScore() > 21 && player.getRuneDraw().getPlayerScore() < 21) || index == 9) {
- winGame();
- b.stop();
- return;
- }
- if (player.getRuneDraw().getOpponentScore() == 21) {
- loseGame();
- b.stop();
- return;
- }
- player.getActionSender().sendString("Your turn...", YOUR_TEXT);
- player.getActionSender().sendString("", HOLD_TEXT);
- b.stop();
- }
- @Override
- public void stop() {
- player.setStopPacket(false);
- }
- }, 6);
- }
- public void draw() {
- int index = Misc.randomMinusOne(RUNES.length);
- sendRune(RUNES[index], player.getRuneDraw().getEmptySlotPlayer());
- player.getRuneDraw().setPlayerScore(player.getRuneDraw().getPlayerScore() + ((index + 1) < 10 ? index + 1 : 0));
- refresh();
- player.getRuneDraw().setEmptySlotPlayer(player.getRuneDraw().getEmptySlotPlayer() + 1);
- if((player.getRuneDraw().getPlayerScore() > 21 && player.getRuneDraw().getOpponentScore() < 21) || index == 9) {
- loseGame();
- return;
- }
- if(player.getRuneDraw().getPlayerScore() == 21) {
- winGame();
- return;
- }
- player.getActionSender().sendString("Thinking...", OPPONENTS_TEXT);
- player.setStopPacket(true);
- CycleEventHandler.getInstance().addEvent(player, new CycleEvent() {
- @Override
- public void execute(CycleEventContainer b) {
- int index = Misc.randomMinusOne(RUNES.length);
- sendRune(RUNES[index], player.getRuneDraw().getEmptySlotOpponent());
- player.getRuneDraw().setOpponentScore(player.getRuneDraw().getOpponentScore() + ((index + 1) < 10 ? index + 1 : 0));
- refresh();
- player.getRuneDraw().setEmptySlotOpponent(player.getRuneDraw().getEmptySlotOpponent() + 1);
- if ((player.getRuneDraw().getOpponentScore() > 21 && player.getRuneDraw().getPlayerScore() < 21) || index == 9) {
- winGame();
- b.stop();
- return;
- }
- if (player.getRuneDraw().getOpponentScore() == 21) {
- loseGame();
- b.stop();
- return;
- }
- player.getActionSender().sendString("Your turn...", YOUR_TEXT);
- b.stop();
- }
- @Override
- public void stop() {
- player.setStopPacket(false);
- }
- }, 6);
- }
- public void sendRune(int item, int index) {
- player.getActionSender().sendItemOnInterface(index, 75, item);
- }
- public void refresh() {
- player.getActionSender().sendString("Rune-Draw", RUNE_DRAW);
- player.getActionSender().sendString("@whi@" + player.getRuneDraw().getPlayerScore(), YOUR_SCORE);
- player.getActionSender().sendString("@whi@" + player.getRuneDraw().getOpponentScore(), OPPONENTS_SCORE);
- player.getActionSender().sendString("Opponent's Score", OPPONENTS_SCORE_TEXT);
- player.getActionSender().sendString("", YOUR_TEXT);
- player.getActionSender().sendString("", OPPONENTS_TEXT);
- if(!player.getRuneDraw().held()) {
- player.getActionSender().sendString("Hold", HOLD_TEXT);
- }
- player.getActionSender().sendString("Draw", DRAW_TEXT);
- }
- public void reset() {
- player.getRuneDraw().setPlayerScore(0);
- player.getRuneDraw().setOpponentScore(0);
- player.getRuneDraw().setEmptySlotPlayer(12240);
- player.getRuneDraw().setEmptySlotOpponent(12250);
- player.getRuneDraw().setHeld(false);
- for(int i = 12239; i < 12260; i++) {
- sendRune(-1, i);
- }
- }
- public void openGame(int amount) {
- bet = amount;
- if(bet != 0) {
- player.getInventory().removeItem(new Item(995, bet));
- }
- gameOver = false;
- reset();
- refresh();
- player.getActionSender().sendInterface(12231);
- }
- public void openGame() {
- gameOver = false;
- reset();
- refresh();
- player.getActionSender().sendInterface(12231);
- }
- public boolean handleButtons(final Player sender, int buttonId) {
- if(sender != player) {
- return false;
- }
- if(player.getRuneDraw().gameOver()) {
- return false;
- }
- else {
- switch (buttonId) {
- case DRAW_BUTTON:
- draw();
- return true;
- case HOLD_BUTTON:
- if(!held) {
- hold();
- return true;
- }
- else {
- return false;
- }
- }
- return false;
- }
- }
- public void winGame() {
- player.getActionSender().sendString("You win!", YOUR_TEXT);
- if(bet != 0) {
- player.getInventory().addItem(new Item(995, (bet * 2)));
- }
- if (!player.getRuneDrawWins()[0]) {
- player.setRuneDrawWins(0, true);
- } else if (player.getRuneDrawWins()[0] && !player.getRuneDrawWins()[1]) {
- player.setRuneDrawWins(1, true);
- } else if (player.getRuneDrawWins()[0] && player.getRuneDrawWins()[1] && !player.getRuneDrawWins()[2]) {
- player.setRuneDrawWins(2, true);
- }
- gameOver = true;
- }
- public void loseGame() {
- player.getActionSender().sendString("You lose.", YOUR_TEXT);
- player.setRuneDrawWins(0, false);
- player.setRuneDrawWins(1, false);
- player.setRuneDrawWins(2, false);
- gameOver = true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement