OMORI_Android/www.eng/js/plugins/SlotMachine.js
2024-01-15 18:44:53 +03:00

1680 lines
No EOL
58 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//=============================================================================
// 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("<br>")) {
var lines = text.split("<br>");
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";
}
})();