1124 lines
		
	
	
	
		
			37 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			1124 lines
		
	
	
	
		
			37 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
//-----------------------------------------------------------------------------
 | 
						|
// OMORI Minigame - BlackJack
 | 
						|
//-----------------------------------------------------------------------------
 | 
						|
function BlackJackCard(suit, type, index) {
 | 
						|
    this.suit = suit;
 | 
						|
    this.type = type;
 | 
						|
    this.index = index;
 | 
						|
    this.softAce = false;
 | 
						|
}
 | 
						|
 | 
						|
BlackJackCard.prototype.value = function() {
 | 
						|
    if (this.type === "A") return this.softAce ? 1 : 11; // Value can be one or eleven
 | 
						|
    else if (this.type === "J" || this.type === "Q" || this.type === "K") return 10;
 | 
						|
    else return parseInt(this.type);
 | 
						|
}
 | 
						|
 | 
						|
function Scene_BlackJack() {
 | 
						|
    this.initialize.apply(this, arguments);
 | 
						|
}
 | 
						|
Scene_BlackJack.prototype = Object.create(Scene_MenuBase.prototype);
 | 
						|
Scene_BlackJack.prototype.constructor = Scene_MenuBase;
 | 
						|
 | 
						|
Scene_BlackJack.prototype.initialize = function() {
 | 
						|
    Scene_MenuBase.prototype.initialize.call(this);
 | 
						|
 | 
						|
    ImageManager.loadAtlas("MN_BlackJack");
 | 
						|
    $gameSystem.saveBgm();
 | 
						|
    AudioManager.stopAll();
 | 
						|
    this._exitFade = 0;
 | 
						|
    this._titleScreenActive = true;
 | 
						|
    this._logo = null;
 | 
						|
    this._deck = [];
 | 
						|
    // In terms of wins during current play
 | 
						|
    this._playerScore = 0;
 | 
						|
    this._opponentScore = 0;
 | 
						|
 | 
						|
    // In terms of 21, cards
 | 
						|
    this._playerHand = [];
 | 
						|
    this._opponentHand = [];
 | 
						|
 | 
						|
    // Keep track of previous decision
 | 
						|
    this._playerPreviousPlay;
 | 
						|
    this._opponentPreviousPlay;
 | 
						|
    this._previousWinner;
 | 
						|
    this._playerStreak = 0;
 | 
						|
    this._opponentStreak = 0;
 | 
						|
 | 
						|
    // Player earnings
 | 
						|
    this._earnings = 100;
 | 
						|
 | 
						|
    // Bet
 | 
						|
    this._wagerAmount = 0;
 | 
						|
 | 
						|
    // Game Started
 | 
						|
    this._gameInProgress = false;
 | 
						|
    this._courtesyOptions = false;
 | 
						|
    this._resultsOpen = false;
 | 
						|
    this._showingOpponentAction = false;
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.create = function () {
 | 
						|
    Scene_MenuBase.prototype.create.call(this);
 | 
						|
    // Create Title Screen
 | 
						|
    this._titleCommands = new Window_BJTitleCommands();
 | 
						|
    this._titleCommands.setHandler('new', this.startGame.bind(this));
 | 
						|
    this._titleCommands.setHandler('continue', this.continueGame.bind(this));
 | 
						|
    this._titleCommands.setHandler('quit', this.commandExit.bind(this));
 | 
						|
    this._titleCommands.setHandler('cancel', this.commandExit.bind(this));
 | 
						|
    this.addWindow(this._titleCommands);
 | 
						|
    this._titleCommands.visible = false;
 | 
						|
    this._titleCommands.deactivate();
 | 
						|
 | 
						|
    // Create Visuals
 | 
						|
    this._dataWindow = new Window_BlackJackData(0, 0);
 | 
						|
    this._dataWindow.visible = false;
 | 
						|
    this.addWindow(this._dataWindow);
 | 
						|
 | 
						|
    this._titleWindow = new Window_MinigameTitle();
 | 
						|
    this.addWindow(this._titleWindow);
 | 
						|
    this._titleWindow.visible = false;
 | 
						|
 | 
						|
    this._wagerWindow = new Window_Wager(0,0);
 | 
						|
    this._wagerWindow.setHandler('5', this.commandWager5.bind(this));
 | 
						|
    this._wagerWindow.setHandler('25', this.commandWager25.bind(this));
 | 
						|
    this._wagerWindow.setHandler('100', this.commandWager100.bind(this));
 | 
						|
    this._wagerWindow.setHandler('quit', this.commandQuit.bind(this));
 | 
						|
    this.addWindow(this._wagerWindow);
 | 
						|
    this._wagerWindow.deactivate();
 | 
						|
    this._wagerWindow.visible = false;
 | 
						|
 | 
						|
    this._commandWindow = new Window_BlackJackCommands(0, 0);
 | 
						|
    this._commandWindow.setHandler('stand', this.commandStand.bind(this));
 | 
						|
    this._commandWindow.setHandler('hit', this.commandHit.bind(this));
 | 
						|
    this.addWindow(this._commandWindow);
 | 
						|
 | 
						|
    this._commandWindow.deactivate();
 | 
						|
    this._commandWindow.visible = false;
 | 
						|
    this.startFadeIn(this.fadeSpeed(), false);
 | 
						|
}
 | 
						|
 | 
						|
alias_Scene_BlackJack_createBackground = Scene_BlackJack.prototype.createBackground;
 | 
						|
Scene_BlackJack.prototype.createBackground = function () {
 | 
						|
    alias_Scene_BlackJack_createBackground.call(this);
 | 
						|
    this.mainImage = new Sprite();
 | 
						|
    this.mainImage.bitmap = ImageManager.loadPicture("blackjack_bg");
 | 
						|
    this.addChildAt(this.mainImage, 1);
 | 
						|
    this._titleScreenActive = true;
 | 
						|
};
 | 
						|
 | 
						|
Scene_BlackJack.prototype.startGame = function () {
 | 
						|
    this.startFadeOut(25);
 | 
						|
    this._atLeastOneGameStarted = false;
 | 
						|
    this._titleScreenActive = false;
 | 
						|
    this.removeChild(this._logo);
 | 
						|
    this._logo = null;
 | 
						|
    this._musicDelay = 30; // Delay playing the music
 | 
						|
    this._earnings = 100;
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandQuit = function () {
 | 
						|
    if (this._gameInProgress) {
 | 
						|
        this._commandWindow.activate(); return;
 | 
						|
    }
 | 
						|
    this.payOut();
 | 
						|
    // Reset
 | 
						|
    this.hardReset();
 | 
						|
 | 
						|
    this._dataWindow.contents.clear();
 | 
						|
    this._commandWindow.deactivate();
 | 
						|
    this._commandWindow.visible = false;
 | 
						|
 | 
						|
    this._gameResults = true;
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.gameOver = function() {
 | 
						|
    AudioManager.stopAll();
 | 
						|
    this.hardReset();
 | 
						|
    this._commandWindow.deactivate();
 | 
						|
    this._commandWindow.visible = false;
 | 
						|
 | 
						|
    this._wagerWindow.visible = false;
 | 
						|
    this._wagerWindow.deactivate();
 | 
						|
 | 
						|
    this._dataWindow.visible = false;
 | 
						|
 | 
						|
    this._titleWindow.refresh(LanguageManager.getMessageData("blackjack_minigame.message_0").text);
 | 
						|
    this._titleWindow.visible = true;
 | 
						|
 | 
						|
    this._gameResults = true;
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.continueGame = function () {
 | 
						|
    this.startGame();
 | 
						|
    this._earnings = $gameVariables.value(827);
 | 
						|
    this.updateData();
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.toTitle = function () {
 | 
						|
    AudioManager.stopAll();
 | 
						|
    this._titleScreenActive = true;
 | 
						|
    this.mainImage.bitmap = ImageManager.loadPicture("blackjack_bg");
 | 
						|
    this._wagerWindow.visible = false;
 | 
						|
    this._wagerWindow.deactivate();
 | 
						|
 | 
						|
    this._titleWindow.visible = false;
 | 
						|
 | 
						|
    this._titleScreenActive = true;
 | 
						|
    if ($gameVariables.value(827) > 0) {
 | 
						|
        this._titleCommands.select(1);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandExit = function () {
 | 
						|
    this._exitFade = 30;
 | 
						|
    this.startFadeOut(30);
 | 
						|
};
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandWager5 = function () {
 | 
						|
    this.setWagerAmount(5);
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandWager25 = function () {
 | 
						|
    this.setWagerAmount(25);
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandWager100 = function () {
 | 
						|
    this.setWagerAmount(100);
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandWager500 = function () {
 | 
						|
    this.setWagerAmount(500);
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.setWagerAmount = function(amount) {
 | 
						|
    if (!(this._earnings >= amount)) {
 | 
						|
        this._titleWindow.refresh(LanguageManager.getMessageData("blackjack_minigame.message_1").text + amount);
 | 
						|
        this._timer = 90;
 | 
						|
        this._wagerWindow.activate();
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    this._wagerAmount = amount;
 | 
						|
    this._titleWindow.visible = false;
 | 
						|
    this._wagerWindow.deactivate();
 | 
						|
    this._wagerWindow.visible = false;
 | 
						|
    this.updateData();
 | 
						|
    this._dataWindow.visible = true;
 | 
						|
    this._commandWindow.activate();
 | 
						|
    this._commandWindow.visible = true;
 | 
						|
    this._commandWindow.select(0);
 | 
						|
    this.commandDeal();
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandDeal = function() {
 | 
						|
    this._dataWindow.visible = true;
 | 
						|
    this._titleWindow.visible = false;
 | 
						|
    this._deck = [];
 | 
						|
    this.softReset();
 | 
						|
 | 
						|
    // Create the cards in the deck
 | 
						|
    var suits = ["Diamond", "Spade", "Heart", "Club"];
 | 
						|
    var types = ["K", "Q", "J", 10, 9, 8, 7, 6, 5, 4, 3, 2, "A"];
 | 
						|
    var index = 0;
 | 
						|
    suits.forEach(suit => {
 | 
						|
        types.forEach(type => {
 | 
						|
            var card = new BlackJackCard(suit, type, index);
 | 
						|
            this._deck.push(card);
 | 
						|
            index ++;
 | 
						|
        })
 | 
						|
    });
 | 
						|
 | 
						|
    // Randomize Deck
 | 
						|
    var curElement = this._deck.length;
 | 
						|
    var temp;
 | 
						|
    var randomizedLoc;
 | 
						|
 | 
						|
    while (0 !== curElement) {
 | 
						|
        randomizedLoc = Math.floor(Math.random() * curElement);
 | 
						|
        curElement -= 1;
 | 
						|
        temp = this._deck[curElement];
 | 
						|
        this._deck[curElement] = this._deck[randomizedLoc];
 | 
						|
        this._deck[randomizedLoc] = temp;
 | 
						|
    }
 | 
						|
 | 
						|
    // Deal first 2 cards to player
 | 
						|
    this._playerHand.unshift(this._deck[0]);
 | 
						|
    this._deck.splice(0, 1);
 | 
						|
    this._playerHand.unshift(this._deck[0]);
 | 
						|
    this._deck.splice(0, 1);
 | 
						|
 | 
						|
    // Deal first 2 cards to oppnonent
 | 
						|
    this._opponentHand.unshift(this._deck[0]);
 | 
						|
    this._deck.splice(0, 1);
 | 
						|
    this._opponentHand.unshift(this._deck[0]);
 | 
						|
    this._deck.splice(0, 1);
 | 
						|
 | 
						|
    this._gameInProgress = true;
 | 
						|
    this._courtesyOptions = false;
 | 
						|
    this._atLeastOneGameStarted = true;
 | 
						|
    this._commandWindow.select(0);
 | 
						|
    this.checkWinConditions();
 | 
						|
    this.updateData();
 | 
						|
    this.switchPhase('player');
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandHit = function() {
 | 
						|
    var se = {
 | 
						|
        name: "mini_bj_cardplace",
 | 
						|
        volume: 100,
 | 
						|
        pitch: 100,
 | 
						|
        pan: 0
 | 
						|
    };
 | 
						|
    AudioManager.playSe(se);
 | 
						|
    this._playerHand.unshift(this._deck[0]);
 | 
						|
    this._deck.splice(0, 1);
 | 
						|
    this._playerPreviousPlay = 'hit';
 | 
						|
    this.checkWinConditions();
 | 
						|
    this.updateData();
 | 
						|
    if (this._gameInProgress) {
 | 
						|
        this.switchPhase('opponent');
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.opponentHit = function() {
 | 
						|
    this.showActionImage('BJ-HIT');
 | 
						|
    var se = {
 | 
						|
        name: "mini_bj_cardplace",
 | 
						|
        volume: 100,
 | 
						|
        pitch: 100,
 | 
						|
        pan: 0
 | 
						|
    };
 | 
						|
    AudioManager.playSe(se);
 | 
						|
    this._opponentHand.unshift(this._deck[0]);
 | 
						|
    this._deck.splice(0, 1);
 | 
						|
    this._opponentPreviousPlay = 'hit';
 | 
						|
    this.checkWinConditions();
 | 
						|
    this.updateData();
 | 
						|
    if (this._gameInProgress) {
 | 
						|
        this.switchPhase('player');
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.commandStand = function() {
 | 
						|
    this._playerPreviousPlay = 'stand';
 | 
						|
    this.checkWinConditions();
 | 
						|
    this.updateData();
 | 
						|
    if (this._gameInProgress) {
 | 
						|
        this.switchPhase('opponent');
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.opponentStand = function() {
 | 
						|
    this.showActionImage('BJ-STAY');
 | 
						|
    this._opponentPreviousPlay = 'stand';
 | 
						|
    this.checkWinConditions();
 | 
						|
    this.updateData();
 | 
						|
    if (this._gameInProgress) {
 | 
						|
        this.switchPhase('player');
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.softReset = function() {
 | 
						|
    this._deck = [];
 | 
						|
    this._playerHand = [];
 | 
						|
    this._opponentHand = [];
 | 
						|
 | 
						|
    this._playerPreviousPlay = null;
 | 
						|
    this._opponentPreviousPlay = null;
 | 
						|
 | 
						|
    this._gameInProgress = false;
 | 
						|
    this._courtesyOptions = false;
 | 
						|
    this._resultsOpen = false;
 | 
						|
    this._showingOpponentAction = false;
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.hardReset = function() {
 | 
						|
    this._deck = [];
 | 
						|
    // In terms of wins during current play
 | 
						|
    this._playerScore = 0;
 | 
						|
    this._opponentScore = 0;
 | 
						|
 | 
						|
    // In terms of 21, cards
 | 
						|
    this._playerHand = [];
 | 
						|
    this._opponentHand = [];
 | 
						|
 | 
						|
    // Keep track of previous decision
 | 
						|
    this._playerPreviousPlay;
 | 
						|
    this._opponentPreviousPlay;
 | 
						|
    this._previousWinner;
 | 
						|
    this._playerStreak = 0;
 | 
						|
    this._opponentStreak = 0;
 | 
						|
 | 
						|
    // Player earnings
 | 
						|
    this._earnings = $gameVariables.value(827) || 0;
 | 
						|
 | 
						|
    // Bet
 | 
						|
    this._wagerAmount = 0;
 | 
						|
 | 
						|
    // Game Started
 | 
						|
    this._gameInProgress = false;
 | 
						|
    this._courtesyOptions = false;
 | 
						|
    this._resultsOpen = false;
 | 
						|
    this._showingOpponentAction = false;
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.switchPhase = function(turnOwner) {
 | 
						|
    if (turnOwner === "opponent") {
 | 
						|
        // Play turn animation/image for opponent
 | 
						|
        // Opponent AI (Hit or Stand)
 | 
						|
        if (this.getCurrentHandValue('player') >= 21) {
 | 
						|
            this._commandWindow.activate();
 | 
						|
            return;
 | 
						|
        } else if (this.getCurrentHandValue('opponent') < 17) {
 | 
						|
            this.opponentHit();
 | 
						|
            this._commandWindow.activate();
 | 
						|
        } else {
 | 
						|
            this.opponentStand();
 | 
						|
            this._commandWindow.activate();
 | 
						|
        }
 | 
						|
 | 
						|
    } else {
 | 
						|
        // Play turn animation/image for player
 | 
						|
        // Hand control to player
 | 
						|
        this._commandWindow.activate();
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.getCurrentHandValue = function(turnOwner) {
 | 
						|
    var value = 0;
 | 
						|
    if (turnOwner === 'player') {
 | 
						|
        this._playerHand.forEach(card => {
 | 
						|
            value += card.value();
 | 
						|
        });
 | 
						|
        // Account for any aces that might be bringing up the value unnecessarily
 | 
						|
        while (value > 21) {
 | 
						|
            for (var i = 0; i < this._playerHand.length; i++) {
 | 
						|
                if (this._playerHand[i].type === 'A' && value > 21) {
 | 
						|
                    this._playerHand[i].softAce = true;
 | 
						|
                    value -= 10;
 | 
						|
                }
 | 
						|
                if (value <= 21) break;
 | 
						|
            }
 | 
						|
            break
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        this._opponentHand.forEach(card => {
 | 
						|
            value += card.value();
 | 
						|
        });
 | 
						|
        // Account for any aces that might be bringing up the value unnecessarily
 | 
						|
        while (value > 21) {
 | 
						|
            for (var i = 0; i < this._opponentHand.length; i++) {
 | 
						|
                if (this._opponentHand[i].type === 'A', value > 21) {
 | 
						|
                    this._opponentHand[i].softAce = true;
 | 
						|
                    value -= 10;
 | 
						|
                }
 | 
						|
                if (value <= 21) break;
 | 
						|
            }
 | 
						|
            break
 | 
						|
        }
 | 
						|
    }
 | 
						|
    value = 0;
 | 
						|
    // Try again
 | 
						|
    if (turnOwner === 'player') {
 | 
						|
        console.log("Player: ")
 | 
						|
        this._playerHand.forEach(card => {
 | 
						|
            value += card.value();
 | 
						|
        });
 | 
						|
    } else {
 | 
						|
        console.log("Opponent: ")
 | 
						|
        this._opponentHand.forEach(card => {
 | 
						|
            value += card.value();
 | 
						|
        });
 | 
						|
    }
 | 
						|
    console.log(value);
 | 
						|
    return value;
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.courtesyOptions = function() {
 | 
						|
    // YOU'VE ALREADY LOST!
 | 
						|
    this._courtesyOptions = true;
 | 
						|
    this.switchPhase('player');
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.endGame = function(winner) {
 | 
						|
    this._gameInProgress = false;
 | 
						|
    if (winner === 'player' && this._previousWinner != 'opponent'){
 | 
						|
        this._playerStreak += 1;
 | 
						|
        this._opponentStreak = 0;
 | 
						|
    } else if (winner === 'opponent' && this._previousWinner != 'player') {
 | 
						|
        this._playerStreak = 0;
 | 
						|
        this._opponentStreak += 1;
 | 
						|
    } else {
 | 
						|
        this._opponentStreak = 0; this._playerStreak = 0;
 | 
						|
    }
 | 
						|
    if (winner === 'player') {
 | 
						|
        this._playerScore += 1;
 | 
						|
        this._earnings += this._wagerAmount * this._playerStreak;
 | 
						|
        // console.log(this._wagerAmount + ' * ' + this._playerStreak);
 | 
						|
    } else if (winner === 'opponent') {
 | 
						|
        this._opponentScore += 1;
 | 
						|
        this._earnings -= this._wagerAmount * this._opponentStreak;
 | 
						|
        // console.log(this._wagerAmount + ' * ' + this._opponentStreak);
 | 
						|
    }
 | 
						|
    this.updateData();
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.updateData = function() {
 | 
						|
    this._dataWindow._playerHand = this._playerHand;
 | 
						|
    this._dataWindow._opponentHand = this._opponentHand;
 | 
						|
    this._dataWindow._playerScore = this._playerScore;
 | 
						|
    this._dataWindow._opponentScore = this._opponentScore;
 | 
						|
    this._dataWindow._currentEarnings = this._earnings;
 | 
						|
    this._dataWindow._currentPlayerBonus = this._playerStreak + 1;
 | 
						|
    this._dataWindow.refresh();
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.showResultImage = function(filename) {
 | 
						|
    if (this._winner === "player"){
 | 
						|
        var se = {
 | 
						|
            name: "mini_bj_win",
 | 
						|
            volume: 100,
 | 
						|
            pitch: 100,
 | 
						|
            pan: 0
 | 
						|
        };
 | 
						|
        AudioManager.playSe(se);
 | 
						|
    } else if (this._winner === "opponent") {
 | 
						|
        var se = {
 | 
						|
            name: "mini_bj_lose",
 | 
						|
            volume: 100,
 | 
						|
            pitch: 100,
 | 
						|
            pan: 0
 | 
						|
        };
 | 
						|
        AudioManager.playSe(se);
 | 
						|
    }
 | 
						|
 | 
						|
    this._commandWindow.deactivate();
 | 
						|
    this._dataWindow._showOpponentHand = true;
 | 
						|
    this.updateData();
 | 
						|
    this._result = new Sprite();
 | 
						|
    this._result.bitmap = ImageManager.loadPicture(filename);
 | 
						|
    this.addChild(this._result);
 | 
						|
    this._resultsOpen = true;
 | 
						|
    this._timer = 120;
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.showActionImage = function (filename) {
 | 
						|
    this._timer = 90;
 | 
						|
    this._commandWindow.deactivate();
 | 
						|
    this.updateData();
 | 
						|
    this._action = new Sprite();
 | 
						|
    this._action.bitmap = ImageManager.loadPicture(filename);
 | 
						|
    this.addChild(this._action);
 | 
						|
    this._showingOpponentAction = true;
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.checkWinConditions = function() {
 | 
						|
    var _playerValue = this.getCurrentHandValue('player');
 | 
						|
    var _opponentValue = this.getCurrentHandValue('opponent');
 | 
						|
 | 
						|
    if (this._courtesyOptions) {
 | 
						|
        this._courtesyOptions = false;
 | 
						|
        this.setupResults("BJ-LOSE", "opponent");
 | 
						|
        this._resultsDelay = 180;
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    // Check For 21
 | 
						|
    if (_playerValue === 21 && _opponentValue === 21) {
 | 
						|
        this.setupResults("BJ-TIE");
 | 
						|
        this._resultsDelay = 120;
 | 
						|
        // Check if natural (actually check the cards to see if it is an Ace + Face)
 | 
						|
        return;
 | 
						|
    } else if (_playerValue === 21) {
 | 
						|
        this.setupResults("BJ-NATURAL", "player");
 | 
						|
        this._resultsDelay = 120;
 | 
						|
        return;
 | 
						|
    } else if (_opponentValue === 21) {
 | 
						|
        this.updateData();
 | 
						|
        this.courtesyOptions();
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    // Check for BUST (Over 21)
 | 
						|
    if (_playerValue > 21) {
 | 
						|
        this.setupResults("BJ-BUST", "opponent");
 | 
						|
        this._resultsDelay = 120;
 | 
						|
        return;
 | 
						|
    } else if (_opponentValue > 21){
 | 
						|
        this.setupResults("BJ-WIN", "player");
 | 
						|
        this._resultsDelay = 120;
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    // Check for game over
 | 
						|
    if (this._playerPreviousPlay === 'stand' && this._opponentPreviousPlay === 'stand') {
 | 
						|
        if (_playerValue === _opponentValue) {
 | 
						|
            this.setupResults("BJ-TIE");
 | 
						|
            this._resultsDelay = 120;
 | 
						|
            return;
 | 
						|
        } else if (_playerValue > _opponentValue) {
 | 
						|
            this.setupResults("BJ-WIN", "player");
 | 
						|
            this._resultsDelay = 120;
 | 
						|
            return;
 | 
						|
        } else if (_opponentValue > _playerValue) {
 | 
						|
            this.setupResults("BJ-LOSE", "opponent");
 | 
						|
            this._resultsDelay = 120;
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 | 
						|
        return;
 | 
						|
    }
 | 
						|
    this.updateData();
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.setupResults = function(matchOutcome, winner) {
 | 
						|
    this._matchOutcome = matchOutcome;
 | 
						|
    this._winner = winner
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.update = function() {
 | 
						|
    Scene_Base.prototype.update.call(this);
 | 
						|
    if (this._exitFade > 0) {
 | 
						|
        this._exitFade--;
 | 
						|
        this._logo.opacity -= 12;
 | 
						|
        if (this._exitFade <= 0) {
 | 
						|
            this.removeChild(this._logo);
 | 
						|
            this.removeChild(this.mainImage);
 | 
						|
            this.removeChild(this._titleCommands);
 | 
						|
            this.popScene();
 | 
						|
            $gameSystem.replayBgm();
 | 
						|
        }
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    if (this._resultsDelay > 0) {
 | 
						|
        this._commandWindow.deactivate();
 | 
						|
        this._resultsDelay--;
 | 
						|
        if (this._resultsDelay <= 0) {
 | 
						|
            this.showResultImage(this._matchOutcome);
 | 
						|
            this.endGame(this._winner);
 | 
						|
            this._winner = null;
 | 
						|
            this._matchOutcome = null;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    if (this._musicDelay > 0) {
 | 
						|
        this._musicDelay -= 1;
 | 
						|
        if (this._musicDelay <= 0) {
 | 
						|
            var bgm = {
 | 
						|
                name: "minigame_blackjack",
 | 
						|
                volume: 100,
 | 
						|
                pitch: 100,
 | 
						|
                pan: 0
 | 
						|
            };
 | 
						|
            AudioManager.playBgm(bgm);
 | 
						|
            this.mainImage.bitmap = ImageManager.loadPicture("blackjack_layout");
 | 
						|
            this._titleCommands.deactivate();
 | 
						|
            this._titleCommands.visible = false;
 | 
						|
            this._wagerWindow.activate();
 | 
						|
            this._wagerWindow.visible = true;
 | 
						|
            this._wagerWindow.select(0);
 | 
						|
            this._titleWindow.visible = true;
 | 
						|
            this._titleWindow.refresh(LanguageManager.getMessageData("blackjack_minigame.message_2").text + this._earnings + LanguageManager.getMessageData("blackjack_minigame.message_3").text);
 | 
						|
 | 
						|
            this.startFadeIn(100);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    if (this._gameResults) {
 | 
						|
        if (Input.isTriggered('ok')) {
 | 
						|
            this.toTitle();
 | 
						|
            this._gameResults = false;
 | 
						|
        }
 | 
						|
    }
 | 
						|
    if (this._titleScreenActive) {
 | 
						|
        if (!this._logo) {
 | 
						|
            this._logo = new Sprite();
 | 
						|
            this._logo.bitmap = ImageManager.loadPicture("blackjack_logo");
 | 
						|
            this._logo.x = (Graphics.boxWidth - 418) / 2;
 | 
						|
            this._logo.y = Graphics.boxHeight;
 | 
						|
            this.addChild(this._logo);
 | 
						|
 | 
						|
            this._frame = new Sprite();
 | 
						|
            this._frame.bitmap = ImageManager.loadPicture("blackjack_frame");
 | 
						|
            this.addChild(this._frame);
 | 
						|
 | 
						|
        } else if (this._logo && this._logo.y > 128) {
 | 
						|
            this._logo.y -= 2;
 | 
						|
            if (Input.isTriggered('ok') || Input.isTriggered('cancel')) {
 | 
						|
                this._logo.y = 128;
 | 
						|
                this._titleCommands.activate();
 | 
						|
            }
 | 
						|
        } else {
 | 
						|
            if (this._titleCommands.visible === false) {
 | 
						|
                this.removeChild(this._frame);
 | 
						|
                this._frame = null;
 | 
						|
                this._titleCommands.refresh();
 | 
						|
                this._titleCommands.visible = true;
 | 
						|
                this._titleCommands.activate();
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    if (this._timer > 0 && this._wagerWindow.visible) {
 | 
						|
        this._timer --;
 | 
						|
        if (this._timer <= 0) {
 | 
						|
            this._titleWindow.refresh(LanguageManager.getMessageData("blackjack_minigame.message_2").text + this._earnings + LanguageManager.getMessageData("blackjack_minigame.message_3").text);
 | 
						|
        }
 | 
						|
    }
 | 
						|
    if (this._showingOpponentAction){
 | 
						|
        if (this._commandWindow.active) this._commandWindow.deactivate();
 | 
						|
        if (this._timer > 0)  {
 | 
						|
            this._timer --;
 | 
						|
        }
 | 
						|
        if (this._action) {
 | 
						|
            if (Input.isTriggered('ok') || this._timer < 1) {
 | 
						|
                if (this._action) this.removeChild(this._action);
 | 
						|
                this._commandWindow.refresh();
 | 
						|
                this._commandWindow.activate();
 | 
						|
                this._commandWindow.visible = true;
 | 
						|
 | 
						|
                this.updateData();
 | 
						|
                this._showingOpponentAction = false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
    if (this._resultsOpen) {
 | 
						|
        if (this._commandWindow.active) { this._commandWindow.deactivate(); }
 | 
						|
 | 
						|
        if (this._timer > 0) {
 | 
						|
            this._timer--;
 | 
						|
        } else {
 | 
						|
            if (Input.isTriggered('ok')) {
 | 
						|
                this.removeChild(this._result);
 | 
						|
                this._commandWindow.refresh();
 | 
						|
                this._commandWindow.deactivate();
 | 
						|
                this._commandWindow.select(2);
 | 
						|
                this._commandWindow.visible = false;
 | 
						|
                this._dataWindow._showOpponentHand = false;
 | 
						|
                if (this._earnings <= 0) {
 | 
						|
                    this.gameOver();
 | 
						|
                } else {
 | 
						|
                    this._titleWindow.refresh(LanguageManager.getMessageData("blackjack_minigame.message_2").text + this._earnings + LanguageManager.getMessageData("blackjack_minigame.message_3").text);
 | 
						|
                    this._titleWindow.visible = true;
 | 
						|
                    this._dataWindow.visible = false;
 | 
						|
                    this.softReset();
 | 
						|
                    this._wagerWindow.activate();
 | 
						|
                    this._wagerWindow.visible = true;
 | 
						|
                }
 | 
						|
                this.updateData();
 | 
						|
                this._resultsOpen = false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
Scene_BlackJack.prototype.payOut = function() {
 | 
						|
    this._titleWindow.visible = true;
 | 
						|
    if (this._atLeastOneGameStarted) this._titleWindow.refresh(LanguageManager.getMessageData("blackjack_minigame.message_2").text + this._earnings + "!");
 | 
						|
    else this._titleWindow.refresh(LanguageManager.getMessageData("blackjack_minigame.message_8").text + this._earnings + "!");
 | 
						|
    $gameVariables.setValue(827, this._earnings);
 | 
						|
}
 | 
						|
 | 
						|
//=============================================================================
 | 
						|
//
 | 
						|
//=============================================================================
 | 
						|
function Window_Wager() {
 | 
						|
    this.initialize.apply(this, arguments);
 | 
						|
}
 | 
						|
 | 
						|
Window_Wager.prototype = Object.create(Window_HorzCommand.prototype);
 | 
						|
Window_Wager.prototype.constructor = Window_Wager;
 | 
						|
 | 
						|
Window_Wager.prototype.initialize = function () {
 | 
						|
    var x = (Graphics.boxWidth - this.windowWidth()) / 2;
 | 
						|
    var y = Graphics.boxHeight - 86;
 | 
						|
    Window_HorzCommand.prototype.initialize.call(this, x, y);
 | 
						|
    this.opacity = 0;
 | 
						|
    this.refresh();
 | 
						|
};
 | 
						|
 | 
						|
Window_Wager.prototype.standardPadding = function () {
 | 
						|
    return 0;
 | 
						|
};
 | 
						|
 | 
						|
Window_Wager.prototype.spacing = function () {
 | 
						|
    return 12;
 | 
						|
};
 | 
						|
 | 
						|
Window_Wager.prototype.windowWidth = function () {
 | 
						|
    return Graphics.boxWidth - 108;
 | 
						|
};
 | 
						|
 | 
						|
Window_Wager.prototype.windowHeight = function () {
 | 
						|
    return this.fittingHeight(1);
 | 
						|
};
 | 
						|
 | 
						|
Window_Wager.prototype.itemTextAlign = function () {
 | 
						|
    return 'center';
 | 
						|
};
 | 
						|
 | 
						|
Window_Wager.prototype.select = function (index) {
 | 
						|
    this._index = index;
 | 
						|
    this._stayCount = 0;
 | 
						|
    this.ensureCursorVisible();
 | 
						|
    this.updateCursor();
 | 
						|
    this.callUpdateHelp();
 | 
						|
    this.refresh();
 | 
						|
};
 | 
						|
 | 
						|
Window_Wager.prototype.drawItem = function (index) {
 | 
						|
    this.contents.fontBold = false;
 | 
						|
    this.contents.fontItalic = false;
 | 
						|
    this.contents.fontSize = 20;
 | 
						|
    this.contents.outlineColor = 'rgba(0, 0, 0, 0.5)';
 | 
						|
    this.contents.outlineWidth = 0;
 | 
						|
    this.changeTextColor(this.textColor(6));
 | 
						|
    this.contents.fontFace = 'Helvetica';
 | 
						|
 | 
						|
    var rect = this.itemRectForText(index);
 | 
						|
    if (this.currentSymbol() === this.commandSymbol(index)) {
 | 
						|
        var bitmap = ImageManager.loadPicture('BJ-Button-Selected');
 | 
						|
        if (this.isCommandEnabled(index)) this.changeTextColor(this.textColor(0));
 | 
						|
        else this.changeTextColor(this.textColor(7));
 | 
						|
    } else {
 | 
						|
        var bitmap = ImageManager.loadPicture('BJ-Button');
 | 
						|
    }
 | 
						|
 | 
						|
    this.contents.blt(bitmap, 0, 0, 124, 36, rect.x - 22, rect.y);
 | 
						|
 | 
						|
    var align = this.itemTextAlign();
 | 
						|
    this.drawText(this.commandName(index), rect.x - 18, rect.y, rect.width, align);
 | 
						|
}
 | 
						|
 | 
						|
Window_Wager.prototype.makeCommandList = function () {
 | 
						|
    const bets = LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").bets
 | 
						|
    this.addCommand(bets[0], '5')
 | 
						|
    this.addCommand(bets[1], '25');
 | 
						|
    this.addCommand(bets[2], '100');
 | 
						|
    this.addCommand(bets[3], 'quit');
 | 
						|
}
 | 
						|
 | 
						|
//=============================================================================
 | 
						|
//
 | 
						|
//=============================================================================
 | 
						|
function Window_BlackJackCommands() {
 | 
						|
    this.initialize.apply(this, arguments);
 | 
						|
}
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype = Object.create(Window_HorzCommand.prototype);
 | 
						|
Window_BlackJackCommands.prototype.constructor = Window_BlackJackCommands;
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.initialize = function () {
 | 
						|
    var x = (Graphics.boxWidth - this.windowWidth()) / 2;
 | 
						|
    var y = Graphics.boxHeight - 86;
 | 
						|
    Window_HorzCommand.prototype.initialize.call(this, x, y);
 | 
						|
    this._gameInProgress = false;
 | 
						|
    this.opacity = 0;
 | 
						|
    this.refresh();
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.standardPadding = function () {
 | 
						|
    return 0;
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.spacing = function () {
 | 
						|
    return 12;
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.maxCols = function () {
 | 
						|
    return 2;
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.windowWidth = function () {
 | 
						|
    return 302;
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.windowHeight = function () {
 | 
						|
    return this.fittingHeight(1);
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.itemTextAlign = function () {
 | 
						|
    return 'center';
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.select = function (index) {
 | 
						|
    this._index = index;
 | 
						|
    this._stayCount = 0;
 | 
						|
    this.ensureCursorVisible();
 | 
						|
    this.updateCursor();
 | 
						|
    this.callUpdateHelp();
 | 
						|
    this.refresh();
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.drawItem = function(index) {
 | 
						|
    this.contents.fontBold = false;
 | 
						|
    this.contents.fontItalic = false;
 | 
						|
    this.contents.fontSize = 20;
 | 
						|
    this.contents.outlineColor = 'rgba(0, 0, 0, 0.5)';
 | 
						|
    this.contents.outlineWidth = 0;
 | 
						|
    this.changeTextColor(this.textColor(6));
 | 
						|
    this.contents.fontFace = 'Helvetica';
 | 
						|
 | 
						|
    var rect = this.itemRectForText(index);
 | 
						|
    if (this.currentSymbol() === this.commandSymbol(index)) {
 | 
						|
        var bitmap = ImageManager.loadPicture('BJ-ButtonLong-Selected');
 | 
						|
        if (this.isCommandEnabled(index)) this.changeTextColor(this.textColor(0));
 | 
						|
        else this.changeTextColor(this.textColor(7));
 | 
						|
    } else {
 | 
						|
        var bitmap = ImageManager.loadPicture('BJ-ButtonLong');
 | 
						|
    }
 | 
						|
    if (!this.isCommandEnabled(index)) this.changeTextColor('#939393');
 | 
						|
 | 
						|
    this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, rect.x - 22, rect.y);
 | 
						|
 | 
						|
    var align = this.itemTextAlign();
 | 
						|
    this.drawText(this.commandName(index), rect.x - 18, rect.y, rect.width, align);
 | 
						|
}
 | 
						|
 | 
						|
Window_BlackJackCommands.prototype.makeCommandList = function () {
 | 
						|
    const comm = LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").jack_commands
 | 
						|
    this.addCommand(comm[0].toUpperCase(), 'stand');
 | 
						|
    this.addCommand(comm[1].toUpperCase(), 'hit');
 | 
						|
}
 | 
						|
 | 
						|
//=============================================================================
 | 
						|
//
 | 
						|
//=============================================================================
 | 
						|
function Window_BlackJackData() {
 | 
						|
    this.initialize.apply(this, arguments);
 | 
						|
}
 | 
						|
 | 
						|
Window_BlackJackData.prototype = Object.create(Window_Base.prototype);
 | 
						|
Window_BlackJackData.prototype.constructor = Window_BlackJackData;
 | 
						|
 | 
						|
Window_BlackJackData.prototype.initialize = function () {
 | 
						|
    Window_Base.prototype.initialize.call(this, 0, 0, this.windowWidth(), this.windowHeight());
 | 
						|
    this.opacity = 0;
 | 
						|
    this._playerHand;
 | 
						|
    this._opponentHand;
 | 
						|
    this._playerScore = 0;
 | 
						|
    this._opponentScore = 0;
 | 
						|
    this._currentEarnings = 0
 | 
						|
    this._currentPlayerBonus = 1;
 | 
						|
    this._showOpponentHand = false;
 | 
						|
    this.refresh();
 | 
						|
}
 | 
						|
 | 
						|
Window_BlackJackData.prototype.windowWidth = function () {
 | 
						|
    return Graphics.boxWidth;
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackData.prototype.windowHeight = function () {
 | 
						|
    return Graphics.boxHeight;
 | 
						|
};
 | 
						|
 | 
						|
Window_BlackJackData.prototype.refresh = function() {
 | 
						|
    this.contents.clear();
 | 
						|
    this.contents.fontBold = false;
 | 
						|
    this.contents.fontItalic = false;
 | 
						|
    this.contents.fontSize = 20;
 | 
						|
    this.contents.outlineColor = 'rgba(0, 0, 0, 0.5)';
 | 
						|
    this.contents.outlineWidth = 0;
 | 
						|
    this.changeTextColor(this.textColor(6));
 | 
						|
    this.contents.fontFace = 'Times New Roman';
 | 
						|
    let dealerStreak = SceneManager._scene._opponentStreak > 0 ? LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").streak_string.format(SceneManager._scene._opponentStreak) : "";
 | 
						|
    let playerStreak = SceneManager._scene._playerStreak > 0 ? LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").streak_string.format(SceneManager._scene._playerStreak) : "";
 | 
						|
    this.drawText(LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").dealer_streak.format(dealerStreak), 48, 32, this.windowWidth());
 | 
						|
    this.drawText(LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").player_streak.format(playerStreak), 48, 196, this.windowWidth());
 | 
						|
    
 | 
						|
    this.drawText(LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").score.format(this._opponentScore, this._playerScore), 0, 22, this.windowWidth() - 76, 'right');
 | 
						|
    this.drawText(LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").bet.format(SceneManager._scene._wagerAmount, this._currentPlayerBonus, this._currentEarnings), 0, 40, this.windowWidth() - 76, 'right');
 | 
						|
 | 
						|
    var spacing = 96;
 | 
						|
    if (this._playerHand != null) {
 | 
						|
        for (var i = 0; i < this._playerHand.length; i++) {
 | 
						|
            if (this._playerHand.length > 5) var spacing = 96 - ((this._playerHand.length - 5) * 14);
 | 
						|
            this.getCardImage(this._playerHand[i].index, 64 + (spacing * i), 232);
 | 
						|
            // this.drawText(this._playerHand[i].value(), 64 + (spacing * i), 340, 90, 'center');
 | 
						|
        }
 | 
						|
        // this.drawText(SceneManager._scene.getCurrentHandValue('player'), 32, 232 + 48);
 | 
						|
    }
 | 
						|
 | 
						|
    if (this._opponentHand != null) {
 | 
						|
        if (this._opponentHand.length > 5) var spacing = 96 - ((this._opponentHand.length - 5) * 14);
 | 
						|
        for (var i = 0; i < this._opponentHand.length; i++) {
 | 
						|
            if (i === 0 && !this._showOpponentHand) {
 | 
						|
                var bitmap = ImageManager.loadPicture('CardBack');
 | 
						|
                this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, 64 + (spacing * i), 68);
 | 
						|
            } else {
 | 
						|
                this.getCardImage(this._opponentHand[i].index, 64 + (spacing * i), 68);
 | 
						|
                // this.drawText(this._opponentHand[i].value(), 64 + (spacing * i), 176, 90, 'center');
 | 
						|
            }
 | 
						|
        }
 | 
						|
        // this.drawText(SceneManager._scene.getCurrentHandValue('opponent'), 32, 68 + 48);
 | 
						|
    }
 | 
						|
    this.resetTextColor();
 | 
						|
}
 | 
						|
 | 
						|
Window_BlackJackData.prototype.getCardImage = function(index, x, y) {
 | 
						|
    var bitmap = ImageManager.loadPicture('Cards');
 | 
						|
    var pw = bitmap.width / 13;
 | 
						|
    var ph = bitmap.height / 4;
 | 
						|
    var n = index;
 | 
						|
    var sx = n % 13 * pw;
 | 
						|
    var sy = (Math.floor(n / 13)) * ph;
 | 
						|
    this.contents.blt(bitmap, sx, sy, pw, ph, x, y);
 | 
						|
}
 | 
						|
 | 
						|
//=============================================================================
 | 
						|
//
 | 
						|
//=============================================================================
 | 
						|
function Window_MinigameTitle() {
 | 
						|
    this.initialize.apply(this, arguments);
 | 
						|
}
 | 
						|
 | 
						|
Window_MinigameTitle.prototype = Object.create(Window_Base.prototype);
 | 
						|
Window_MinigameTitle.prototype.constructor = Window_MinigameTitle;
 | 
						|
 | 
						|
Window_MinigameTitle.prototype.initialize = function () {
 | 
						|
    var x = (Graphics.boxWidth - this.windowWidth()) / 2;
 | 
						|
    var y = (Graphics.boxHeight - this.windowHeight()) / 3;
 | 
						|
    Window_Base.prototype.initialize.call(this, x, y, this.windowWidth(), this.windowHeight());
 | 
						|
    this.opacity = 0;
 | 
						|
};
 | 
						|
 | 
						|
Window_MinigameTitle.prototype.refresh = function(text) {
 | 
						|
    this.contents.clear();
 | 
						|
    this.contents.fontBold = false;
 | 
						|
    this.contents.fontItalic = false;
 | 
						|
    this.contents.fontSize = 20;
 | 
						|
    this.contents.outlineColor = 'rgba(0, 0, 0, 0.5)';
 | 
						|
    this.contents.outlineWidth = 0;
 | 
						|
    this.changeTextColor(this.textColor(6));
 | 
						|
    this.contents.fontFace = 'Times New Roman';
 | 
						|
    if (text && text.contains("<br>")) {
 | 
						|
        var lines = text.split("<br>");
 | 
						|
        var y = 0;
 | 
						|
        for (var i = 0; i < lines.length; i++) {
 | 
						|
            this.drawText(lines[i].trim(), -18, y, this.windowWidth(), 'center');
 | 
						|
            y += 18;
 | 
						|
        }
 | 
						|
    } else {
 | 
						|
        this.drawText(text, -18, 18, this.windowWidth(), 'center');
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
Window_MinigameTitle.prototype.windowWidth = function () {
 | 
						|
    return (Graphics.boxWidth / 2) + 64;
 | 
						|
};
 | 
						|
 | 
						|
Window_MinigameTitle.prototype.windowHeight = function () {
 | 
						|
    return this.fittingHeight(3);
 | 
						|
};
 | 
						|
 | 
						|
//=============================================================================
 | 
						|
//
 | 
						|
//=============================================================================
 | 
						|
function Window_BJTitleCommands() {
 | 
						|
    this.initialize.apply(this, arguments);
 | 
						|
}
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype = Object.create(Window_HorzCommand.prototype);
 | 
						|
Window_BJTitleCommands.prototype.constructor = Window_BJTitleCommands;
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.initialize = function () {
 | 
						|
    var x = (Graphics.boxWidth - this.windowWidth()) / 2;
 | 
						|
    var y = Graphics.boxHeight - 86;
 | 
						|
    Window_HorzCommand.prototype.initialize.call(this, x, y);
 | 
						|
    this.opacity = 0;
 | 
						|
    this.refresh();
 | 
						|
    if ($gameVariables.value(827) > 0) {
 | 
						|
        this.select(1);
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.standardPadding = function () {
 | 
						|
    return 0;
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.spacing = function () {
 | 
						|
    return 12;
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.maxCols = function () {
 | 
						|
    return 3;
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.windowWidth = function () {
 | 
						|
    return 459;
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.windowHeight = function () {
 | 
						|
    return this.fittingHeight(1);
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.itemTextAlign = function () {
 | 
						|
    return 'center';
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.select = function (index) {
 | 
						|
    this._index = index;
 | 
						|
    this._stayCount = 0;
 | 
						|
    this.ensureCursorVisible();
 | 
						|
    this.updateCursor();
 | 
						|
    this.callUpdateHelp();
 | 
						|
    this.refresh();
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.cursorRight = function (wrap) {
 | 
						|
    var index = this.index();
 | 
						|
    var maxItems = this.maxItems();
 | 
						|
    var maxCols = this.maxCols();
 | 
						|
    if (maxCols >= 2 && (index < maxItems - 1 || (wrap && this.isHorizontal()))) {
 | 
						|
        if (this._list[index + 1] && this.isCommandEnabled(index + 1)) this.select((index + 1) % maxItems);
 | 
						|
        else if (!this._list[index + 1]) {
 | 
						|
            this.select(0);
 | 
						|
        } else this.select(2);
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.cursorLeft = function (wrap) {
 | 
						|
    var index = this.index();
 | 
						|
    var maxItems = this.maxItems();
 | 
						|
    var maxCols = this.maxCols();
 | 
						|
    if (maxCols >= 2 && (index > 0 || (wrap && this.isHorizontal()))) {
 | 
						|
        if (this._list[index - 1] && this.isCommandEnabled(index - 1)) this.select((index - 1 + maxItems) % maxItems);
 | 
						|
        else if (!this._list[index - 1] && this.isCommandEnabled(maxItems - 1)) {
 | 
						|
            this.select(maxItems - 1);
 | 
						|
        } else this.select(0);
 | 
						|
    }
 | 
						|
};
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.drawItem = function (index) {
 | 
						|
    this.contents.fontBold = false;
 | 
						|
    this.contents.fontItalic = false;
 | 
						|
    this.contents.fontSize = 20;
 | 
						|
    this.contents.outlineColor = 'rgba(0, 0, 0, 0.5)';
 | 
						|
    this.contents.outlineWidth = 0;
 | 
						|
    this.changeTextColor(this.textColor(6));
 | 
						|
    this.contents.fontFace = 'Helvetica';
 | 
						|
 | 
						|
    var rect = this.itemRectForText(index);
 | 
						|
    if (this.currentSymbol() === this.commandSymbol(index)) {
 | 
						|
        var bitmap = ImageManager.loadPicture('BJ-ButtonLong-Selected');
 | 
						|
        if (this.isCommandEnabled(index)) this.changeTextColor(this.textColor(0));
 | 
						|
        else this.changeTextColor(this.textColor(7));
 | 
						|
    } else {
 | 
						|
        var bitmap = ImageManager.loadPicture('BJ-ButtonLong');
 | 
						|
    }
 | 
						|
    if (!this.isCommandEnabled(index)) this.changeTextColor('#939393');
 | 
						|
 | 
						|
    this.contents.blt(bitmap, 0, 0, bitmap.width, bitmap.height, rect.x - 22, rect.y);
 | 
						|
 | 
						|
    var align = this.itemTextAlign();
 | 
						|
    this.drawText(this.commandName(index), rect.x - 18, rect.y, rect.width, align);
 | 
						|
}
 | 
						|
 | 
						|
Window_BJTitleCommands.prototype.makeCommandList = function () {
 | 
						|
    const commands = LanguageManager.getMessageData("XX_BLUE.Yin_Blackjack").maincommands
 | 
						|
    this.addCommand(commands[0].toUpperCase(), 'new');
 | 
						|
    this.addCommand(commands[1].toUpperCase(), 'continue', $gameVariables.value(827) >= 5);
 | 
						|
    this.addCommand(commands[2].toUpperCase(), 'quit');
 | 
						|
}
 |