//=============================================================================
// SlotMachine.js
//
// (c)2016 KADOKAWA CORPORATION./YOJI OJIMA
//=============================================================================
/*:
* @plugindesc Slot Machine scene
* @author Takeya Kimura
*
* @param Variable ID
* @desc Variable ID for store the coin.
* @default 11
*
* @param Help Text
* @desc This text is a help message.
* @default カーソルキーの上でベット、カーソルキーの下でスタート
*
* @param Won Text
* @desc This text is a won message. "Win Coin" will be replaced with the number of coins won.
* @default おめでとうございます!Win Coin枚獲得です!
*
* @param Lost Text
* @desc This text is a lost message.
* @default 残念でした。
*
* @param Replay Text
* @desc This text is a replay message.
* @default もう一度やりますか?
*
* @param CoinFull Text
* @desc This text is a coin full message.
* @default コイン枚数が制限に達しました。
*
* @param Bet Text
* @desc This text is a bet command.
* @default ベット
*
* @param Spin Text
* @desc This text is a coin spin command.
* @default スピン
*
* @param Yes Text
* @desc This text is a coin "yes" command.
* @default はい
*
* @param No Text
* @desc This text is a "no" command.
* @default いいえ
*
* @requiredAssets img/slotmachine/bet_line_1
* @requiredAssets img/slotmachine/bet_line_2
* @requiredAssets img/slotmachine/bet_line_3
* @requiredAssets img/slotmachine/bg
* @requiredAssets img/slotmachine/line_base
* @requiredAssets img/slotmachine/reel
* @requiredAssets img/slotmachine/scale_x1
* @requiredAssets img/slotmachine/scale_x10
* @requiredAssets img/slotmachine/scale_x100
* @requiredAssets img/slotmachine/win_cursor
* @requiredAssets audio/me/Victory1
* @requiredAssets audio/se/Switch2
*
* @help
* Plugin Command:
* SlotMachine open # Open the slot machines
* SlotMachine expectation 0.5 # Set the expectation
* SlotMachine scale 0 # Set the scale [0 | 1 | 2](scale1 | scale10 | scale100)
*/
/*:ja
* @plugindesc Slot Machine scene
* @author Takeya Kimura
*
* @param Variable ID
* @desc 所持コインの数を保管する変数ID
* @default 11
*
* @param Help Text
* @desc ヘルプメッセージです。
* @default カーソルキーの上でベット、カーソルキーの下でスタート
*
* @param Won Text
* @desc 勝利時のメッセージ。 "Win Coin"は獲得したコイン数に置換されます。
* @default おめでとうございます!Win Coin枚獲得です!
*
* @param Lost Text
* @desc 負けた時のメッセージ
* @default 残念でした。
*
* @param Replay Text
* @desc リプレイ時の選択メッセージ
* @default もう一度やりますか?
*
* @param Coin Full Text
* @desc コインが最大数に達した時のメッセージ
* @default コイン枚数が制限に達しました。
*
* @param Bet Text
* @desc ベットコマンドのテキスト
* @default ベット
*
* @param Spin Text
* @desc スピンコマンドのテキスト
* @default スピン
*
* @param Yes Text
* @desc はいコマンドのテキスト
* @default はい
*
* @param No Text
* @desc いいえコマンドのテキスト
* @default いいえ
*
* @requiredAssets img/slotmachine/bet_line_1
* @requiredAssets img/slotmachine/bet_line_2
* @requiredAssets img/slotmachine/bet_line_3
* @requiredAssets img/slotmachine/bg
* @requiredAssets img/slotmachine/line_base
* @requiredAssets img/slotmachine/reel
* @requiredAssets img/slotmachine/scale_x1
* @requiredAssets img/slotmachine/scale_x10
* @requiredAssets img/slotmachine/scale_x100
* @requiredAssets img/slotmachine/win_cursor
* @requiredAssets audio/me/Victory1
* @requiredAssets audio/se/Switch2
*
* @help
* Plugin Command:
* SlotMachine open # スロットマシーンを開きます
* SlotMachine expectation 0.5 # 期待値を0〜1の間で設定します。1に近づくほど当たりやすくなりますが、確実に当たるわけではありません。
* SlotMachine scale 0 # 倍率を設定します0は1倍、1は10倍、2は100倍です。
*/
function Window_SlotMachine() {
this.initialize.apply(this, arguments);
};
function Window_ReplayCommand() {
this.initialize.apply(this, arguments);
};
(function () {
var parameters = PluginManager.parameters('SlotMachine');
var variableId = Number(parameters['Variable ID'] || 11);
var helpMessage;
var winMessage;
var lostMessage;
var replayMessage = "";
var coinFullMessage;
var betText;
var spinText;
var yesText;
var noText;
var scale = 1;
var expectation = 0.5;
Scene_Boot = class extends Scene_Boot {
start() {
super.start();
helpMessage = LanguageManager.getMessageData("slot_machine_minigame.message_0").text;
winMessage = LanguageManager.getMessageData("slot_machine_minigame.message_1").text;
lostMessage = LanguageManager.getMessageData("slot_machine_minigame.message_2").text;
replayMessage = "";
coinFullMessage = LanguageManager.getMessageData("slot_machine_minigame.message_4").text;
betText = LanguageManager.getMessageData("slot_machine_minigame.message_5").text;
spinText = LanguageManager.getMessageData("slot_machine_minigame.message_6").text;
yesText = LanguageManager.getMessageData("XX_GENERAL.message_4").text;
noText = LanguageManager.getMessageData("XX_GENERAL.message_5").text;
}
}
//odds
//You can set the odds.
var odds = [];
odds.push([]);
odds[0].push(1); //000
odds[0].push(2); //111
odds[0].push(5); //222
odds[0].push(10); //333
odds[0].push(20); //444
odds[0].push(100); //555
odds.push([]);
odds[1].push(2); //0000
odds[1].push(10); //1111
odds[1].push(20); //2222
odds[1].push(100); //3333
odds[1].push(200); //4444
odds[1].push(1000); //5555
odds.push([]);
odds[2].push(20); //00000
odds[2].push(100); //11111
odds[2].push(200); //22222
odds[2].push(1000); //33333
odds[2].push(2000); //44444
odds[2].push(10000); //55555
//make reel
//You can rearrange the order of the reel.
//The number can not be changed.
var reel = [];
reel.push([0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5]);
reel.push([5, 4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0, 5, 4, 3, 2, 1, 0]);
reel.push([0, 0, 1, 1, 5, 2, 3, 3, 4, 4, 5, 5, 0, 1, 2, 3, 4, 5]);
reel.push([2, 2, 4, 1, 3, 5, 0, 2, 4, 1, 3, 5, 0, 2, 4, 1, 3, 5]);
reel.push([0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5]);
function getCoin() {
return $gameParty._gold;
}
function setCoin(value) {
return $gameParty._gold = value;
}
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function (command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === "SlotMachine") {
switch (args[0]) {
case "open":
SceneManager.push(Scene_SlotMachine);
break;
case "expectation":
expectation = Number(args[1]);
break;
case "scale":
switch (args[1]) {
case "0":
scale = 1;
break;
case "1":
scale = 10;
break;
case "2":
scale = 100;
break;
default :
scale = 1;
break;
}
break;
}
}
};
//-----------------------------------------------------------------------------
// SLTReelSprite
//
// Slot Machine Reel Sprite
function SLTReelSprite() {
this.initialize.apply(this, arguments);
}
SLTReelSprite.prototype = Object.create(Sprite.prototype);
SLTReelSprite.prototype.constructor = SLTReelSprite;
SLTReelSprite.STOP = 0;
SLTReelSprite.SPINNING = 1;
SLTReelSprite.SPIN = 2;
SLTReelSprite.STOPPING = 3;
SLTReelSprite.FRAME_SPINNING = 40;
SLTReelSprite.FRAME_SPIN = 60;
SLTReelSprite.FRAME_STOPPING = 40;
SLTReelSprite.prototype.initialize = function (bitmap) {
Sprite.prototype.initialize.call(this, bitmap);
this._numSpot = 18;
this._spotHeight = 44;
this._winSpot = 0;
this._scrollY = 0;
this._speedHigh = 30;
this._speedLow = 4;
this._status = 0;
this._spinFrame = 0;
this._spinEndFrame = SLTReelSprite.FRAME_SPIN;
};
Object.defineProperty(SLTReelSprite.prototype, 'status', {
get: function () {
return this._status;
},
configurable: true
});
SLTReelSprite.prototype.update = function () {
Sprite.prototype.update.call(this);
switch (this._status) {
case SLTReelSprite.STOP:
break;
case SLTReelSprite.SPINNING:
if (this._spinFrame > SLTReelSprite.FRAME_SPINNING) {
this._status = SLTReelSprite.SPIN;
AudioManager.playSe({ "name": "Slots_Spin", "volume": 90, "pitch": 100, "pan": 0 });
break;
}
this._scrollY = (this._scrollY + this._speedLow) % (this._numSpot * this._spotHeight);
this.setFrame(
0,
this._spotHeight * this._numSpot * 2 - this._scrollY - this._spotHeight * 2,
92,
this._spotHeight * 3
);
this._spinFrame++;
break;
case SLTReelSprite.SPIN:
if (this._spinFrame > this._spinEndFrame + SLTReelSprite.FRAME_SPINNING) {
this._status = SLTReelSprite.STOPPING;
this._scrollY = this._winSpot * this._spotHeight - this._spotHeight * 3;
break;
}
this._scrollY = (this._scrollY + this._speedHigh) % (this._numSpot * this._spotHeight);
this.setFrame(
0,
this._spotHeight * this._numSpot * 2 - this._scrollY - this._spotHeight * 2,
92,
this._spotHeight * 3
);
this._spinFrame++;
break;
case SLTReelSprite.STOPPING:
this._scrollY = (this._scrollY + this._speedLow) % (this._numSpot * this._spotHeight);
if (this._scrollY > this._winSpot * this._spotHeight) {
this._scrollY = this._winSpot * this._spotHeight;
this._status = SLTReelSprite.STOP;
AudioManager.playSe({"name": "Slots_Stop", "volume": 90, "pitch": 100, "pan": 0});
}
this.setFrame(
0,
this._spotHeight * this._numSpot * 2 - this._scrollY - this._spotHeight * 2,
92,
this._spotHeight * 3
);
break;
}
};
SLTReelSprite.prototype.setSpot = function (spot) {
if (0 <= spot && spot < this._numSpot) {
this._scrollY = this._spotHeight * spot;
this.setFrame(
0,
this._spotHeight * this._numSpot * 2 - this._scrollY - this._spotHeight * 2,
92,
this._spotHeight * 3
);
}
};
SLTReelSprite.prototype.setWinSpot = function (spot) {
this._winSpot = spot;
};
SLTReelSprite.prototype.setSpinEndFrame = function (frame) {
this._spinEndFrame = frame;
};
SLTReelSprite.prototype.spin = function () {
if (this._status === SLTReelSprite.STOP) {
this._status = SLTReelSprite.SPINNING;
this._spinFrame = 0;
}
};
//-----------------------------------------------------------------------------
// LotLineSprite
//
// This Sprite is draw lot line for the slot machines.
function LotLineSprite() {
this.initialize.apply(this, arguments);
}
LotLineSprite.prototype = Object.create(Sprite.prototype);
LotLineSprite.prototype.constructor = LotLineSprite;
LotLineSprite.prototype.initialize = function (bitmap) {
Sprite.prototype.initialize.call(this, bitmap);
var b1 = ImageManager.loadBitmap("img/slotmachine/", "bet_line_1");
var b2 = ImageManager.loadBitmap("img/slotmachine/", "bet_line_2");
var b3 = ImageManager.loadBitmap("img/slotmachine/", "bet_line_3");
this._line1Sprite = new Sprite(b1);
this._line2Sprite = new Sprite(b2);
this._line3Sprite = new Sprite(b3);
this._line1Sprite.x = 0;
this._line1Sprite.y = 43;
this._line2Sprite.x = 0;
this._line2Sprite.y = 1;
this._line3Sprite.x = 0;
this._line3Sprite.y = 88;
this.addChild(this._line1Sprite);
this.addChild(this._line2Sprite);
this.addChild(this._line3Sprite);
};
LotLineSprite.prototype.enableLine = function (line) {
if (line === 0) {
this._line1Sprite.visible = true;
}
else if (line === 1) {
this._line2Sprite.visible = true;
}
else if (line === 2) {
this._line3Sprite.visible = true;
}
};
LotLineSprite.prototype.clear = function () {
this._line1Sprite.visible = false;
this._line2Sprite.visible = false;
this._line3Sprite.visible = false;
};
//-----------------------------------------------------------------------------
// InstructionCursorSprite
//
// Cursor indicating the winning
function InstructionCursorSprite() {
this.initialize.apply(this, arguments);
}
InstructionCursorSprite.prototype = Object.create(Sprite.prototype);
InstructionCursorSprite.prototype.constructor = InstructionCursorSprite;
InstructionCursorSprite.prototype.initialize = function (bitmap) {
Sprite.prototype.initialize.call(this, bitmap);
this._counter = 0;
};
InstructionCursorSprite.FRAME_BLINK = 10;
InstructionCursorSprite.FRAME_BLINK_END = 190;
InstructionCursorSprite.prototype.blink = function () {
this._counter = 1;
};
InstructionCursorSprite.prototype.update = function () {
Sprite.prototype.update.call(this);
if (this._counter > 0) {
if (this._counter > InstructionCursorSprite.FRAME_BLINK_END + 1) {
this._counter = 0;
}
else {
var s = this._counter / InstructionCursorSprite.FRAME_BLINK >> 0;
this.visible = s % 2 === 0;
this._counter++;
}
}
};
/**
* @method drawImage
* @param bitmap source bitmap
* @param sx source x
* @param sy source y
* @param sw source width
* @param sh source height
* @param dx destination x
* @param dy destination y
*/
Bitmap.prototype.drawImage = function(bitmap, sx, sy, sw, sh, dx, dy) {
this._context.drawImage(bitmap.canvas, sx, sy, sw, sh, dx, dy, sw, sh);
this._setDirty();
};
//-----------------------------------------------------------------------------
// Scene_SlotMachine
//
// Will play the slot machine.
function Scene_SlotMachine() {
this.initialize.apply(this, arguments);
}
Scene_SlotMachine.prototype = Object.create(Scene_MenuBase.prototype);
Scene_SlotMachine.prototype.constructor = Scene_SlotMachine;
Scene_SlotMachine.COIN_MAX_VALUE = 99999999;
Scene_SlotMachine.ODDS_MAX_VALUE = 100000;
Scene_SlotMachine.prototype.initialize = function () {
Scene_MenuBase.prototype.initialize.call(this);
ImageManager.loadAtlas("MN_Slots");
this._exitFade = 0;
$gameSystem.saveBgm();
var bgm = {
name: "event_sw_gameshow",
volume: 100,
pitch: 100,
pan: 0
};
AudioManager.playBgm(bgm);
this._bet = 0;
this._coin = getCoin();
this._winSpot = null;
this._spinStart = false;
this._rollCount = 0;
this._winCoin = 0;
this._correctCoin = 0;
this._winStep = 0;
this._winMessage = "";
//Winning percentage is calculated by the odds
this._probability = [];
this._probability.push([]);
this._probability[0].push(0.70); //00
this._probability[0].push(0.63); //11
this._probability[0].push(0.54); //22
this._probability[0].push(0.44); //33
this._probability[0].push(0.38); //44
this._probability[0].push(0.31); //55
this._probability.push([]);
this._probability[1].push((1 / this._probability[0][0]) *
expectation * (1 / odds[0][0])); //000
this._probability[1].push((1 / this._probability[0][1]) *
expectation * (1 / odds[0][1])); //111
this._probability[1].push((1 / this._probability[0][2]) *
expectation * (1 / odds[0][2])); //222
this._probability[1].push((1 / this._probability[0][3]) *
expectation * (1 / odds[0][3])); //333
this._probability[1].push((1 / this._probability[0][4]) *
expectation * (1 / odds[0][4])); //444
this._probability[1].push((1 / this._probability[0][5]) *
expectation * (1 / odds[0][5])); //555
this._probability.push([]);
this._probability[2].push((1 / (this._probability[0][0] * this._probability[1][0])) *
expectation * (1 / odds[1][0])); //0000
this._probability[2].push((1 / (this._probability[0][1] * this._probability[1][1])) *
expectation * (1 / odds[1][1])); //1111
this._probability[2].push((1 / (this._probability[0][2] * this._probability[1][2])) *
expectation * (1 / odds[1][2])); //2222
this._probability[2].push((1 / (this._probability[0][3] * this._probability[1][3])) *
expectation * (1 / odds[1][3])); //3333
this._probability[2].push((1 / (this._probability[0][4] * this._probability[1][4])) *
expectation * (1 / odds[1][4])); //4444
this._probability[2].push((1 / (this._probability[0][5] * this._probability[1][5])) *
expectation * (1 / odds[1][5])); //5555
this._probability.push([]);
this._probability[3].push((1 / (this._probability[0][0] * this._probability[1][0] * this._probability[2][0])) *
expectation * (1 / odds[2][0])); //00000
this._probability[3].push((1 / (this._probability[0][1] * this._probability[1][1] * this._probability[2][1])) *
expectation * (1 / odds[2][1])); //11111
this._probability[3].push((1 / (this._probability[0][2] * this._probability[1][2] * this._probability[2][2])) *
expectation * (1 / odds[2][2])); //22222
this._probability[3].push((1 / (this._probability[0][3] * this._probability[1][3] * this._probability[2][3])) *
expectation * (1 / odds[2][3])); //33333
this._probability[3].push((1 / (this._probability[0][4] * this._probability[1][4] * this._probability[2][4])) *
expectation * (1 / odds[2][4])); //44444
this._probability[3].push((1 / (this._probability[0][5] * this._probability[1][5] * this._probability[2][5])) *
expectation * (1 / odds[2][5])); //55555
//Interval Spin
//this._startingTimer = null;
//this._currentStartingReel = 0;
if (this._coin > Scene_SlotMachine.COIN_MAX_VALUE) {
this._coin = Scene_SlotMachine.COIN_MAX_VALUE;
}
};
Scene_SlotMachine.prototype.create = function () {
this.startFadeIn(30, false);
this.createBackground();
this._backgroundSprite.bitmap = ImageManager.loadBitmap("img/slotmachine/", "bg");
this.createReels();
this.createBetLine();
this.createScale();
this.updateActor();
this.createWindowLayer();
this.createHelpWindow();
this.createInstruction();
this.createSlotMachine();
this.createSlotCommand();
this.createReplayCommand();
this.refreshStatus();
if (this._coin < scale) {
this._slotCommandWindow.disableBet();
}
};
Scene_SlotMachine.prototype.start = function() {
this.makeReel();
this._instructionWindow.refresh();
this._slotMachineWindow.refresh();
this._helpWindow.setText(helpMessage);
};
Scene_SlotMachine.prototype.makeReel = function() {
for (var i = 0; i < 5; i++) {
for (var j = 0; j < 18; j++) {
for (var k = 0; k < 3; k++) {
this._reels[i].bitmap.drawImage(
this._reelBitmap,
reel[i][j] * 92,
0,
92,
44,
0,
(44 * 18 * 3) - j * 44 - k * (18 * 44) - 44);
}
}
this._reels[i].setSpot(Math.random() * 18 >> 0);
}
};
Scene_SlotMachine.prototype.isSpinning = function() {
var returnValue = false;
for (var i = 0; i < 5; i++) {
returnValue = returnValue || this._reels[i].status !== SLTReelSprite.STOP;
}
return returnValue;
};
Scene_SlotMachine.prototype.isWinCounting = function() {
return this._winCoin > 0;
};
Scene_SlotMachine.prototype.createHelpWindow = function() {
this._helpWindow = new Window_SlotsIntroduction(0, 0);
this._helpWindow.width = 606;
this.addWindow(this._helpWindow);
this._helpWindow.height = 64;
this._helpWindow.x = 18;
this._helpWindow.y = Graphics.boxHeight - this._helpWindow.height - 10;
};
Scene_SlotMachine.prototype.createInstruction = function () {
this._instructionWindow = new Window_SlotInstruction(0, 0, Graphics.boxWidth, 26 * 6 + 18 * 2);
this._instructionWindow.setOdds(odds);
this.addWindow(this._instructionWindow);
};
Scene_SlotMachine.prototype.createSlotMachine = function () {
this._slotMachineWindow = new Window_SlotMachine(18, this._instructionWindow.height, 606, 130);
this._slotMachineWindow.coin = this._coin;
this._slotMachineWindow.bet = this._bet;
this.addWindow(this._slotMachineWindow);
};
Scene_SlotMachine.prototype.createSlotCommand = function () {
this._slotCommandWindow = new Window_SlotCommand(0, 0);
this._slotCommandWindow.setHandler('bet', this.betCommand.bind(this));
this._slotCommandWindow.setHandler('spin', this.spinCommand.bind(this));
this._slotCommandWindow.setHandler('cancel', this.cancelCommand.bind(this));
this.addWindow(this._slotCommandWindow);
this._slotCommandWindow.x = (Graphics.boxWidth - this._slotCommandWindow.width) / 2;
this._slotCommandWindow.y = this._helpWindow.y - this._slotCommandWindow.height - 4;
};
Scene_SlotMachine.prototype.createReplayCommand = function () {
this._replayCommandWindow = new Window_ReplayCommand(0, 0);
this._replayCommandWindow.setHandler('yes', this.replayCommand.bind(this));
this._replayCommandWindow.setHandler('no', this.cancelCommand.bind(this));
this._replayCommandWindow.setHandler('cancel', this.cancelCommand.bind(this));
this.addWindow(this._replayCommandWindow);
this._replayCommandWindow.x = (Graphics.boxWidth - 16) - this._replayCommandWindow.width;
this._replayCommandWindow.y = this._helpWindow.y - 4 - this._replayCommandWindow.height;
};
Scene_SlotMachine.prototype.createReels = function () {
this._reelBitmap = ImageManager.loadBitmap("img/slotmachine/", "reel");
this._reels = [];
for (var i = 0; i < 5; i++) {
var sprite = new SLTReelSprite(new Bitmap(92, 44 * 18 * 3));
this._reels.push(sprite);
sprite.x = 84 + i * 95;
sprite.y = 172;
sprite.setSpinEndFrame(SLTReelSprite.FRAME_SPIN + i * 44);
sprite.setFrame(0, 0, 92, 44 * 3);
this.addChild(sprite);
}
};
Scene_SlotMachine.prototype.createBetLine = function () {
var bitmap = ImageManager.loadBitmap("img/slotmachine/", "line_base");
this._betLine = new LotLineSprite(bitmap);
this._betLine.x = 34;
this._betLine.y = 180;
this._betLine.clear();
this.addChild(this._betLine);
};
Scene_SlotMachine.prototype.createScale = function () {
var bitmap;
if (scale === 10) {
bitmap = ImageManager.loadBitmap("img/slotmachine/", "scale_x10");
}
else if (scale === 100) {
bitmap = ImageManager.loadBitmap("img/slotmachine/", "scale_x100");
}
else {
bitmap = ImageManager.loadBitmap("img/slotmachine/", "scale_x1");
}
this._scale = new Sprite(bitmap);
this._scale.x = 640-76;
this._scale.y = 172;
this.addChild(this._scale);
};
Scene_SlotMachine.prototype.cancelCommand = function () {
this.startFadeOut(30);
this._bet = 0;
this.refreshStatus();
setCoin(this._coin);
this._exitFade = 30;
};
Scene_SlotMachine.prototype.betCommand = function () {
if (this._bet < 3) {
this._bet++;
this._slotCommandWindow.enableSpin();
}
if (this._bet > 2) {
this._slotCommandWindow.disableBet();
}
if (this._coin - this._bet * scale < scale) {
this._slotCommandWindow.disableBet();
}
this.refreshStatus();
this._slotCommandWindow.activate();
};
Scene_SlotMachine.prototype.spinCommand = function () {
this._coin -= this._bet * scale;
this._slotCommandWindow.deactivate();
this._slotCommandWindow.close();
this._helpWindow.close();
this._winSpot = this.drawLot();
var t = "";
var i;
for (i = 0; i < 5; i++) {
t += reel[i][this._winSpot[i]];
}
this._rollCount++;
this._spinStart = true;
this._reels[0].setWinSpot(this._winSpot[0]);
this._reels[1].setWinSpot(this._winSpot[1]);
this._reels[2].setWinSpot(this._winSpot[2]);
this._reels[3].setWinSpot(this._winSpot[3]);
this._reels[4].setWinSpot(this._winSpot[4]);
for (i = 0; i < 5; i++) {
this._reels[i].spin();
}
};
Scene_SlotMachine.prototype.result = function () {
this._rollCount = 0;
var win, tmp;
win = this.judge(this._winSpot);
tmp = win;
if (this._coin + win > Scene_SlotMachine.COIN_MAX_VALUE) {
win = Scene_SlotMachine.COIN_MAX_VALUE - this._coin;
}
this._winCoin = this._correctCoin = win;
var time = 60 * 10;
if (this._winCoin < time) {
this._winStep = 1;
}
else {
this._winStep = this._winCoin / time >> 0;
}
AudioManager.stopSe();
if (this._winCoin > 0) {
this._winMessage = winMessage;
var reg = /Win Coin/gi;
this._winMessage = this._winMessage.replace(reg, String(tmp));
this._helpWindow.height = this._helpWindow.height + this._slotCommandWindow.height;
this._helpWindow.y = Graphics.boxHeight - this._helpWindow.height - 10;
this._replayCommandWindow.y = this._helpWindow.y - 4 - this._replayCommandWindow.height;
this._helpWindow.setText(this._winMessage);
this._helpWindow.open();
AudioManager.playSe({"name": "Slots_Win", "volume": 90, "pitch": 100, "pan": 0});
}
else {
this._helpWindow.height = this._helpWindow.height + this._slotCommandWindow.height;
this._helpWindow.y = Graphics.boxHeight - this._helpWindow.height - 10;
this._replayCommandWindow.y = this._helpWindow.y - 4 - this._replayCommandWindow.height;
this._helpWindow.setText(lostMessage + '\n' + replayMessage);
this._helpWindow.open();
this._replayCommandWindow.open();
this._replayCommandWindow.activate();
AudioManager.playSe({ "name": "Slots_Lose", "volume": 90, "pitch": 100, "pan": 0 });
}
};
Scene_SlotMachine.prototype.checkLine = function(line, match) {
var value = null;
var count = 0;
for (var i = 0; i < line.length; i++) {
if (line[i] != value) {
value = line[i];
count = 0;
}
count += 1;
if (match <= count) {
return [true, value];
}
}
return false;
}
Scene_SlotMachine.prototype.judge = function (spot) {
var result1 = [];
result1.push(reel[0][(spot[0] + 1) % reel[0].length]);
result1.push(reel[1][(spot[1] + 1) % reel[1].length]);
result1.push(reel[2][(spot[2] + 1) % reel[2].length]);
result1.push(reel[3][(spot[3] + 1) % reel[3].length]);
result1.push(reel[4][(spot[4] + 1) % reel[4].length]);
var result2 = [];
result2.push(reel[0][spot[0]]);
result2.push(reel[1][spot[1]]);
result2.push(reel[2][spot[2]]);
result2.push(reel[3][spot[3]]);
result2.push(reel[4][spot[4]]);
var result3 = [];
result3.push(reel[0][(this._winSpot[0] - 1 + reel[0].length) % reel[0].length]);
result3.push(reel[1][(this._winSpot[1] - 1 + reel[1].length) % reel[1].length]);
result3.push(reel[2][(this._winSpot[2] - 1 + reel[2].length) % reel[2].length]);
result3.push(reel[3][(this._winSpot[3] - 1 + reel[3].length) % reel[3].length]);
result3.push(reel[4][(this._winSpot[4] - 1 + reel[4].length) % reel[4].length]);
console.log(result1);
console.log(result2);
console.log(result3);
var returnValue = 0;
var cursorArray = this._makeCursorArray();
//line1
var i, base;
var win = 0;
base = result1[0];
if (this._bet > 1) {
i = 1;
if (this.checkLine != false) {
if (this.checkLine(result1, 5)[0]) {
console.log("5 in a row of " + this.checkLine(result1, 5)[1]);
base = this.checkLine(result1, 5)[1];
i = 5;
} else if (this.checkLine(result1, 4)[0]) {
console.log("4 in a row of " + this.checkLine(result1, 4)[1]);
base = this.checkLine(result1, 4)[1];
i = 4;
} else if (this.checkLine(result1, 3)[0]) {
console.log("3 in a row of " + this.checkLine(result1, 3)[1]);
base = this.checkLine(result1, 3)[1];
i = 3;
}
}
console.log(i);
i--;
if (i > 1) {
win = scale * odds[i - 2][base];
cursorArray[i - 2][base] = true;
returnValue += win;
}
}
//line2
win = 0;
base = result2[0];
if (this._bet > 0) {
i = 1;
if (this.checkLine != false) {
if (this.checkLine(result2, 5)[0]) {
console.log("5 in a row of " + this.checkLine(result2, 5)[1]);
base = this.checkLine(result2, 5)[1];
i = 5;
} else if (this.checkLine(result2, 4)[0]) {
console.log("4 in a row of " + this.checkLine(result2, 4)[1]);
base = this.checkLine(result2, 4)[1];
i = 4;
} else if (this.checkLine(result2, 3)[0]) {
console.log("3 in a row of " + this.checkLine(result2, 3)[1]);
base = this.checkLine(result2, 3)[1];
i = 3;
}
}
console.log(i);
i--;
if (i > 1) {
win = scale * odds[i - 2][base];
cursorArray[i - 2][base] = true;
returnValue += win;
}
}
//line3
win = 0;
base = result3[0];
if (this._bet > 2) {
i = 1;
if (this.checkLine != false) {
if (this.checkLine(result3, 5)[0]) {
console.log("5 in a row of " + this.checkLine(result3, 5)[1]);
base = this.checkLine(result3, 5)[1];
i = 5;
} else if (this.checkLine(result3, 4)[0]) {
console.log("4 in a row of " + this.checkLine(result3, 4)[1]);
base = this.checkLine(result3, 4)[1];
i = 4;
} else if (this.checkLine(result3, 3)[0]) {
console.log("3 in a row of " + this.checkLine(result3, 3)[1]);
base = this.checkLine(result3, 3)[1];
i = 3;
}
}
console.log(i);
i--;
if (i > 1) {
win = scale * odds[i - 2][base];
cursorArray[i - 2][base] = true;
returnValue += win;
}
}
this._instructionWindow.blinkCursor(cursorArray);
return returnValue;
};
Scene_SlotMachine.prototype.drawLot = function () {
var i, j, l;
var s;
var spot = [];
spot.push(Math.random() * reel[0].length >> 0);
spot.push(Math.random() * reel[1].length >> 0);
spot.push(Math.random() * reel[2].length >> 0);
spot.push(Math.random() * reel[3].length >> 0);
spot.push(Math.random() * reel[4].length >> 0);
//2〜5reel
var l1, l2, l3;
var r;
var target1 = true;
var target2 = true;
var target3 = true;
for (i = 1; i < 5; i++) {
for (j = 0; j < reel[i].length; j++) {
if (this.isWin(spot, i)) {
spot[i] = (spot[i] + 1) % reel[i].length;
}
else {
break;
}
}
l = reel[i - 1].length;
l1 = reel[i - 1][(spot[i - 1] + 1 + l) % l];
l2 = reel[i - 1][(spot[i - 1] + 0 + l) % l];
l3 = reel[i - 1][(spot[i - 1] - 1 + l) % l];
l = reel[i].length;
r = Math.random();
if (r < this._probability[i - 1][l2] && target2) {
s = reel[i].indexOf(l2);
if (s >= 0) {
spot[i] = (s + 0 + l) % l;
target1 = false;
target3 = false;
}
else {
console.error("Illegal lottery. r:", i,"l2:", l2);
}
}
r = Math.random();
if (r < this._probability[i - 1][l1] && target1) {
s = reel[i].indexOf(l1);
if (s >= 0) {
spot[i] = (s - 1 + l) % l;
target2 = false;
target3 = false;
}
else {
console.error("Illegal lottery. r:", i,"l1:", l1);
}
}
r = Math.random();
if (r < this._probability[i - 1][l3] && target3) {
s = reel[i].indexOf(l3);
if (s >= 0) {
spot[i] = (s + 1 + l) % l;
target1 = false;
target2 = false;
}
else {
console.error("Illegal lottery. r:", i,"l3:", l3);
}
}
}
return spot;
};
/**
*
* @param spot
* @param r
* @return {boolean}
*/
Scene_SlotMachine.prototype.isWin = function (spot, r) {
return !!(
reel[r - 1][(spot[r - 1] + 1) % reel[r - 1].length] === reel[r][(spot[r] + 1) % reel[r].length] ||
reel[r - 1][(spot[r - 1] + 0) % reel[r - 1].length] === reel[r][(spot[r] + 0) % reel[r].length] ||
reel[r - 1][(spot[r - 1] - 1) % reel[r - 1].length] === reel[r][(spot[r] - 1) % reel[r].length]
);
};
Scene_SlotMachine.prototype.correct = function () {
this._coin += this._correctCoin;
this._correctCoin = 0;
if (this._coin >= Scene_SlotMachine.COIN_MAX_VALUE) {
this._helpWindow.setText(coinFullMessage);
}
else {
this._helpWindow.setText(this._winMessage);
}
this._winMessage = "";
this._replayCommandWindow.open();
this._replayCommandWindow.activate();
};
Scene_SlotMachine.prototype.replayCommand = function () {
this._slotCommandWindow.enableBet();
this._slotCommandWindow.disableSpin();
if (this._coin < scale) {
this._slotCommandWindow.disableBet();
}
this._slotCommandWindow.select(0);
this._replayCommandWindow.close();
// Reset help window size
this._helpWindow.height = 64;
this._helpWindow.y = Graphics.boxHeight - this._helpWindow.height - 10;
this._replayCommandWindow.y = this._helpWindow.y - 4 - this._replayCommandWindow.height;
this._slotCommandWindow.open();
this._slotCommandWindow.activate();
this._helpWindow.setText(helpMessage);
this._bet = 0;
this.refreshStatus();
};
Scene_SlotMachine.prototype.refreshStatus = function () {
this._slotMachineWindow.bet = this._bet * scale;
this._slotMachineWindow.coin = this._coin - this._bet * scale;
if (this._bet === 0) {
this._betLine.clear();
}
else {
this._betLine.enableLine(this._bet - 1);
}
};
Scene_SlotMachine.prototype.update = function () {
Scene_MenuBase.prototype.update.call(this);
if (this._exitFade > 0) {
this._exitFade--;
this._backgroundSprite.opacity -= 50;
for (var i = 0; i < this._reels.length; i++) {
this._reels[i].opacity -= 50;
}
this._betLine.opacity -= 50;
this._helpWindow.opacity -= 50;
this._helpWindow.contentsOpacity -= 50;
this._replayCommandWindow.opacity -= 50;
this._replayCommandWindow.contentsOpacity -= 50;
this._replayCommandWindow._customCursorRectSprite.opacity -= 50;
this._slotCommandWindow.contentsOpacity -= 50;
this._slotCommandWindow._customCursorRectSprite.opacity -= 50;
this._instructionWindow.contentsOpacity -= 50;
this._instructionWindow._counter = 0;
this._instructionWindow.clearCursor();
this._slotMachineWindow._windowCoinSprite.opacity -= 50;
this._slotMachineWindow._windowBetSprite.opacity -= 50;
this._scale.opacity -= 50;
if (this._exitFade <= 0) {
this.popScene();
$gameSystem.replayBgm();
}
return;
}
var result = 0;
if (this._spinStart && !this.isSpinning()) {
this._spinStart = false;
this.result();
}
else if (this.isWinCounting()) {
if (this._winCoin <= this._winStep) {
this._winCoin = 0;
result = this._coin + this._correctCoin;
this._slotMachineWindow.coin = result;
this.correct();
AudioManager.playSe({ "name": "Slots_Cha-Ching", "volume": 90, "pitch": 100, "pan": 0 });
}
else {
this._winCoin -= this._winStep;
result = this._coin + this._correctCoin - this._winCoin;
this._slotMachineWindow.coin = result;
AudioManager.playSe({ "name": "Slots_GainMoney", "volume": 90, "pitch": 100, "pan": 0 });
}
}
if (Input.isRepeated('up') && this._slotCommandWindow.active) {
if (this._slotCommandWindow.isAllowBet) {
SoundManager.playOk();
this.betCommand();
}
else {
SoundManager.playBuzzer();
}
}
if (Input.isRepeated('down') && this._slotCommandWindow.active) {
if (this._slotCommandWindow.isAllowSpin && !this._spinStart) {
SoundManager.playOk();
this.spinCommand();
}
}
};
Scene_SlotMachine.prototype._makeCursorArray = function () {
var returnValue = [];
for (var i = 0; i < 3; i++) {
returnValue.push([]);
for (var j = 0; j < 6; j++) {
returnValue[i].push(false);
}
}
return returnValue;
};
//-----------------------------------------------------------------------------
// Window_SlotInstruction
//
// This window is instruction card for the slot machines.
function Window_SlotInstruction() {
this.initialize.apply(this, arguments);
}
Window_SlotInstruction.prototype = Object.create(Window_Base.prototype);
Window_SlotInstruction.prototype.constructor = Window_SlotInstruction;
Window_SlotInstruction.prototype.initialize = function (x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._cursol = [[],[],[]];
var b = ImageManager.loadBitmap("img/slotmachine/", "win_cursor");
var cx = 28;
var cy = 22;
var cw = 168;
for (var i = 2; i >= 0; i--) {
for (var j = 5; j >= 0; j--) {
var sprite = new InstructionCursorSprite(b);
this.addChild(sprite);
sprite.x = cx + i * (cw + 24);
sprite.y = cy + j * 20;
this._cursol[2 - i].push(sprite);
}
}
this.clearCursor();
};
Window_SlotInstruction.prototype.lineHeight = function () {
return 20;
};
Window_SlotInstruction.prototype.refresh = function () {
this.setBackgroundType(2);
this.contents.clear();
if (this._odds) {
this.contents.fontSize = 22;
var x = 28;
var y = -2;
var w = 168;
this.drawText(this._odds[2][5], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[2][4], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[2][3], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[2][2], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[2][1], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[2][0], x, y, w, "right");
x += w + 24;
y = -2;
this.drawText(this._odds[1][5], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[1][4], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[1][3], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[1][2], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[1][1], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[1][0], x, y, w, "right");
x += w + 20;
y = -2;
this.drawText(this._odds[0][5], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[0][4], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[0][3], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[0][2], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[0][1], x, y, w, "right");
y += this.lineHeight();
this.drawText(this._odds[0][0], x, y, w, "right");
}
this.contents.fontSize = this.standardFontSize();
};
Window_SlotInstruction.prototype.setOdds = function (odds) {
this._odds = odds;
};
Window_SlotInstruction.prototype.clearCursor = function () {
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 6; j++) {
this._cursol[i][j].visible = false;
this._cursol[i][j]._counter = 0;
}
}
};
Window_SlotInstruction.prototype.blinkCursor = function (array) {
for (var i = 0; i < 3; i++) {
for (var j = 0; j < 6; j++) {
if (array[i][j]) this._cursol[i][j].blink();
}
}
};
//-----------------------------------------------------------------------------
// Window_SlotMachine
//
// This window is the slot machine body.
Window_SlotMachine.prototype = Object.create(Window_Base.prototype);
Window_SlotMachine.prototype.constructor = Window_SlotMachine;
Window_SlotMachine.prototype.initialize = function(x, y, width, height) {
Window_Base.prototype.initialize.call(this, x, y, width, height);
this._lastCoin = 0;
this._lastBet = 0;
this._coin = 0;
this._bet = 0;
};
/**
* The bitmap used for the coin.
*
* @property coinContents
* @type Bitmap
*/
Object.defineProperty(Window_SlotMachine.prototype, 'coinContents', {
get: function() {
return this._windowCoinSprite.bitmap;
},
set: function(value) {
this._windowCoinSprite.bitmap = value;
},
configurable: true
});
/**
* The bitmap used for the bet.
*
* @property betContents
* @type Bitmap
*/
Object.defineProperty(Window_SlotMachine.prototype, 'betContents', {
get: function() {
return this._windowBetSprite.bitmap;
},
set: function(value) {
this._windowBetSprite.bitmap = value;
},
configurable: true
});
/**
* The coin.
*
* @property coin
* @type Number
*/
Object.defineProperty(Window_SlotMachine.prototype, 'coin', {
get: function() {
return this._coin;
},
set: function(value) {
this._coin = value;
},
configurable: true
});
/**
* The bet.
*
* @property bet
* @type Number
*/
Object.defineProperty(Window_SlotMachine.prototype, 'bet', {
get: function() {
return this._bet;
},
set: function(value) {
this._bet = value;
},
configurable: true
});
Window_SlotMachine.prototype.updateBackground = function() {
Window_Base.prototype.updateBackground.call(this);
this.setBackgroundType(2);
};
Window_SlotMachine.prototype.start = function() {
};
Window_SlotMachine.prototype.createContents = function() {
Window_Base.prototype.createContents.call(this);
this.coinContents = new Bitmap(this.contents.measureTextWidth("99999999"), this.lineHeight());
this.betContents = new Bitmap(this.contents.measureTextWidth("999"), this.lineHeight());
};
/**
* @method _createAllParts
* @private
*/
Window_SlotMachine.prototype._createAllParts = function() {
Window_Base.prototype._createAllParts.call(this);
this._windowCoinSprite = new Sprite();
this.addChild(this._windowCoinSprite);
this._windowCoinSprite.move(250, 116);
this._windowBetSprite = new Sprite();
this.addChild(this._windowBetSprite);
this._windowBetSprite.move(440, 116);
};
Window_SlotMachine.prototype.refresh = function() {
this.setBackgroundType(2);
this.refreshCoin();
this.refreshBet();
};
Window_SlotMachine.prototype.update = function () {
Window_Base.prototype.update.call(this);
if (this._lastCoin !== this._coin) {
this.refreshCoin();
this._lastCoin = this._coin;
}
if (this._lastBet !== this._bet) {
this.refreshBet();
this._lastBet = this._bet;
}
};
Window_SlotMachine.prototype.refreshCoin = function() {
this.coinContents.clear();
this.drawCoinText(this._coin, 0, 0, this.contents.measureTextWidth("9999"), "right");
};
Window_SlotMachine.prototype.refreshBet = function() {
this.betContents.clear();
this.drawBetText(this._bet, 0, 0, this.contents.measureTextWidth("999"), "right");
};
Window_SlotMachine.prototype.drawCoinText = function(text, x, y, maxWidth, align) {
this.coinContents.drawText(text, x, y, maxWidth, this.lineHeight(), align);
};
Window_SlotMachine.prototype.drawBetText = function(text, x, y, maxWidth, align) {
this.betContents.drawText(text, x, y, maxWidth, this.lineHeight(), align);
};
//-----------------------------------------------------------------------------
// Window_SlotCommand
//
// This window is command window for the slot machines.
function Window_SlotCommand() {
this.initialize.apply(this, arguments);
}
Window_SlotCommand.prototype = Object.create(Window_HorzCommand.prototype);
Window_SlotCommand.prototype.constructor = Window_SlotCommand;
Window_SlotCommand.prototype.initialize = function (x, y) {
this._betAllow = true;
this._spinAllow = false;
Window_HorzCommand.prototype.initialize.call(this, x, y);
this.opacity = 0;
};
Window_SlotCommand.prototype.isUsingCustomCursorRectSprite = function () { return true; };
Object.defineProperty(Window_SlotCommand.prototype, 'isAllowBet', {
get: function () {
return this._betAllow;
},
configurable: true
});
Object.defineProperty(Window_SlotCommand.prototype, 'isAllowSpin', {
get: function () {
return this._spinAllow;
},
configurable: true
});
Window_SlotCommand.prototype.standardPadding = function() {
return 0;
}
Window_SlotCommand.prototype.spacing = function() {
return 6;
}
Window_SlotCommand.prototype.enableBet = function () {
this._betAllow = true;
this.refresh();
};
Window_SlotCommand.prototype.disableBet = function () {
this._betAllow = false;
this.refresh();
};
Window_SlotCommand.prototype.enableSpin = function () {
this._spinAllow = true;
this.refresh();
};
Window_SlotCommand.prototype.disableSpin = function () {
this._spinAllow = false;
this.refresh();
};
Window_SlotCommand.prototype.makeCommandList = function () {
this.addCommand(betText, 'bet', this._betAllow);
this.addCommand(spinText, 'spin', this._spinAllow);
this.addCommand(LanguageManager.getMessageData("slot_machine_minigame.message_7").text, 'cancel');
};
Window_SlotCommand.prototype.windowWidth = function () {
return 420;
};
Window_SlotCommand.prototype.windowHeight = function () {
return 48;
};
Window_SlotCommand.prototype.itemHeight = function () {
return 48;
};
Window_SlotCommand.prototype.maxCols = function () {
return 3;
};
Window_SlotCommand.prototype.itemTextAlign = function() {
return "left";
}
Window_SlotCommand.prototype.drawItem = function (index) {
var rect = this.itemRectForText(index);
this.drawOptionBack(index, 0)
var align = this.itemTextAlign();
this.resetTextColor();
this.changePaintOpacity(this.isCommandEnabled(index));
this.drawText(this.commandName(index), rect.x + 24, rect.y + 2, rect.width, 'left');
};
Window_SlotCommand.prototype.drawOptionBack = function(index, x) {
var rect = this.itemRectForText(index);
this.changePaintOpacity(true);
var m = 4;
var x = 5 + ((rect.x - 26) < 0 ? 0 : rect.x - 26);
var y = rect.y;
var w = rect.width + 6;
var h = rect.height;
if (w > 0 && h > 0 && this._windowskin) {
var p = 96;
this.contents.blt(this._windowskin, 0, 0, p, p, x, 0, w, h);
for (var y = 0; y < h; y += p) {
for (var x = 0; x < w; x += p) {
this.contents.blt(this._windowskin, 0, p, p, p, x, y, p, p);
}
}
var tone = this._colorTone;
this.contents.adjustTone(tone[0], tone[1], tone[2]);
}
var x = 5 + ((rect.x - 26) < 0 ? 0 : rect.x - 26);
var y = rect.y;
var w = rect.width + 6;
var h = rect.height;
if (w > 0 && h > 0 && this._windowskin) {
var skin = this._windowskin;
var p = 96;
var q = 96;
this.contents.blt(skin, p + m, 0 + 0, p - m * 2, m, m + x, 0, w - m * 2, m); // Upper center
this.contents.blt(skin, p + m, 0 + q - m, p - m * 2, m, m + x, h - m, w - m * 2, m); // lower center
this.contents.blt(skin, p + 0, 0 + m, m, p - m * 2, x, m, m, h - m * 2); // left center
this.contents.blt(skin, p + q - m, 0 + m, m, p - m * 2, x + (w - m), m, m, h - m * 2); // right center
this.contents.blt(skin, p + 0, 0 + 0, m, m, x, 0, m, m); // top left corner
this.contents.blt(skin, p + q - m, 0 + 0, m, m, x + (w - m), 0, m, m); // top right corner
this.contents.blt(skin, p + 0, 0 + q - m, m, m, x, h - m, m, m); // bottom left corner
this.contents.blt(skin, p + q - m, 0 + q - m, m, m, x + (w - m), h - m, m, m); // bottom right corner
}
}
//-----------------------------------------------------------------------------
// Window_ReplayCommand
//
// This window is replay command window for the slot machines.
Window_ReplayCommand.prototype = Object.create(Window_Command.prototype);
Window_ReplayCommand.prototype.constructor = Window_ReplayCommand;
Window_ReplayCommand.prototype.initialize = function (x, y) {
Window_HorzCommand.prototype.initialize.call(this, x, y);
this.openness = 0;
};
Window_ReplayCommand.prototype.isUsingCustomCursorRectSprite = function () { return true; };
Window_ReplayCommand.prototype.makeCommandList = function () {
this.addCommand(yesText, 'yes');
this.addCommand(noText, 'no');
};
Window_ReplayCommand.prototype.windowWidth = function () {
return 96;
};
Window_ReplayCommand.prototype.windowHeight = function () {
return 76;
};
Window_ReplayCommand.prototype.lineHeight = function() {
return 26;
}
Window_ReplayCommand.prototype.standardPadding = function() {
return 10;
}
Window_ReplayCommand.prototype.drawItem = function (index) {
var rect = this.itemRectForText(index);
var align = this.itemTextAlign();
this.resetTextColor();
this.changePaintOpacity(this.isCommandEnabled(index));
this.drawText(this.commandName(index), rect.x + 8, rect.y, rect.width, align);
};
Window_ReplayCommand.prototype.itemTextAlign = function () {
return "left";
}
function Window_SlotsIntroduction() {
this.initialize.apply(this, arguments);
}
Window_SlotsIntroduction.prototype = Object.create(Window_Base.prototype);
Window_SlotsIntroduction.prototype.constructor = Window_SlotsIntroduction;
Window_SlotsIntroduction.prototype.initialize = function (x, y) {
var width = this.windowWidth();
var height = this.windowHeight();
Window_Base.prototype.initialize.call(this, x, y, width, height);
// this.openness = 0;
};
Window_SlotsIntroduction.prototype.contentsHeight = function () {
return (this.height * 3) - this.standardPadding() * 2;
};
Window_SlotsIntroduction.prototype.isUsingCustomCursorRectSprite = function () { return true; };
Window_SlotsIntroduction.prototype.makeCommandList = function () {
this.addCommand(yesText, 'yes');
this.addCommand(noText, 'no');
};
Window_SlotsIntroduction.prototype.windowWidth = function () {
return 606;
};
Window_SlotsIntroduction.prototype.windowHeight = function () {
return 64;
};
Window_SlotsIntroduction.prototype.lineHeight = function() {
return 26;
}
Window_SlotsIntroduction.prototype.standardPadding = function() {
return 10;
}
Window_SlotsIntroduction.prototype.setText = function(text) {
this.contents.clear();
if (text && text.contains("
")) {
var lines = text.split("
");
var y = -2;
for (var i = 0; i < lines.length; i++) {
this.drawTextEx(lines[i].trim(), 8, y, this.contents.width);
y += this.lineHeight();
}
} else {
this.drawTextEx(text, 8, -2, this.contents.width);
}
};
Window_SlotsIntroduction.prototype.itemTextAlign = function () {
return "left";
}
})();