//============================================================================= // Salted Fish Plugins - Scene Menu // SF_SceneMenu.js //============================================================================= var Imported = Imported || {}; Imported.SF_SceneMenu = true; var SF_Plugins = SF_Plugins || {}; //============================================================================= /*: * @plugindesc Scene Menu * @author SaltedFish * * @help * * This plugin does not provide plugin commands. */ //============================================================================= (function () { var SF_SceneMenu = {}; SF_Plugins.SF_SceneMenu = SF_SceneMenu; SF_SceneMenu.version = 1.0; SF_SceneMenu.dialogContents = ['文本文本文本文本文本']; //============================================================================= // Sprite Dialog //============================================================================= function Sprite_Dialog() { this.initialize.apply(this, arguments); } Sprite_Dialog.prototype = Object.create(Sprite.prototype); Sprite_Dialog.prototype.constructor = Sprite_Dialog; Sprite_Dialog.prototype.initialize = function () { Sprite.prototype.initialize.call(this); this._backgroundSprite = new Sprite(ImageManager.loadSceneMenu('dialog_background')); this._textSprite = new Sprite(); this._textSprite.bitmap = new Bitmap(300, 180); this._textSprite.move(10, 10); this._textSprite.bitmap.fontSize = 24; this._textSprite.bitmap.textColor = '#ffffff'; this.addChild(this._backgroundSprite); this.addChild(this._textSprite); this._tmpWindow = new Window_Base(0, 0, this._textSprite.width, this._textSprite.height); this._tmpWindow.rotation = 0; this._tmpWindow.contents = this._textSprite.bitmap; this._tmpWindow.opacity = 0; this._needFadeIn = false; this._needMoveIn = false; } Sprite_Dialog.prototype.setText = function (text) { this._tmpWindow.contents.clear(); this._tmpWindow.drawTextEx(text, 0, 0); this._textSprite.bitmap.blt(this._tmpWindow.contents, 0, 0, this._textSprite.width, this._textSprite.height, 0, 0); } Sprite_Dialog.prototype.update = function () { Sprite.prototype.update.call(this); } //============================================================================= // Scene Menu //============================================================================= Scene_Menu.prototype.initialize = function () { Scene_Base.prototype.initialize.call(this); this.button_name = {// button name: [x, y] 'title': [897, 278], 'actor': [438, 175], 'formation': [645, 94], 'save': [868, 94], "quest": [756, 278], 'options': [746, 33], 'achivement': [645, 278], 'help': [814, 33], 'cancel': [678, 463], 'database': [438, 348], }; } Scene_Menu.prototype.create = function () { Scene_Base.prototype.create.call(this); this.createWindowLayer(); this.createBackSprite(); this.createRotateContainer(); this.createDialog(); this.createCommandButton(); } Scene_Menu.prototype.createRotateContainer = function () { this._rotateContainer = new Sprite(); this.addChild(this._rotateContainer); } Scene_Menu.prototype.createBackSprite = function () { this._backSprite = new Sprite(ImageManager.loadSceneMenu('background')); this.addChild(this._backSprite); } Scene_Menu.prototype.createDialog = function () { this._dialogSprite = new Sprite_Dialog(); this._rotateContainer.addChild(this._dialogSprite); this._dialogSprite.move(37, 167); this._dialogSprite.setText( SF_SceneMenu.dialogContents[ Math.floor(Math.random() * SF_SceneMenu.dialogContents.length) ] ); } Scene_Menu.prototype.createCommandButton = function () { for (var key in this.button_name) { var button = new Sprite_SFButton(); this._rotateContainer.addChild(button); button.move(this.button_name[key][0], this.button_name[key][1]); button.setHotBitmap(ImageManager.loadSceneMenu(key + '_hot')); button.setColdBitmap(ImageManager.loadSceneMenu(key + '_cold')); button.setClickHandler(this['on_' + key + "_button"].bind(this)); button.deactivate(); button.refresh(); this['_' + key + '_buttonSprite'] = button; } } Scene_Menu.prototype.start = function () { Scene_MenuBase.prototype.start.call(this); for (var key in this.button_name) { this['_' + key + '_buttonSprite'].activate(); } this._backSprite.move(Graphics.boxWidth - this._backSprite.bitmap.width, (Graphics.boxHeight - this._backSprite.bitmap.height) / 2); this.pivot.x = Graphics.boxWidth / 2; this.pivot.y = Graphics.boxHeight / 2; this.x = Graphics.boxWidth / 2; this.y = Graphics.boxHeight / 2; this.rotation = -0.03; } Scene_Menu.prototype.update = function () { Scene_MenuBase.prototype.update.call(this); } Scene_Menu.prototype.on_title_button = function () { this.fadeOutAll(); SceneManager.goto(Scene_Title); } Scene_Menu.prototype.on_actor_button = function () { SceneManager.push(Scene_Actor); } Scene_Menu.prototype.on_formation_button = function () { SceneManager.push(Scene_Formation); } Scene_Menu.prototype.on_save_button = function () { SceneManager.push(Scene_Save); } Scene_Menu.prototype.on_quest_button = function () { SceneManager.push(Scene_Quest); } Scene_Menu.prototype.on_options_button = function () { SceneManager.push(Scene_Options); } Scene_Menu.prototype.on_achivement_button = function () { SceneManager.push(Scene_Achievement); } Scene_Menu.prototype.on_help_button = function () { SceneManager.push(Scene_Help); } Scene_Menu.prototype.on_cancel_button = function () { this.popScene(); } Scene_Menu.prototype.on_database_button = function () { SceneManager.push(Scene_Database); } })();