1262 lines
48 KiB
JavaScript
1262 lines
48 KiB
JavaScript
//=============================================================================
|
|
// TDS Omori Title Screen
|
|
// Version: 1.0
|
|
//=============================================================================
|
|
// Add to Imported List
|
|
var Imported = Imported || {} ; Imported.TDS_OmoriTitleScreen = true;
|
|
// Initialize Alias Object
|
|
var _TDS_ = _TDS_ || {} ; _TDS_.OmoriTitleScreen = _TDS_.OmoriTitleScreen || {};
|
|
//=============================================================================
|
|
/*:
|
|
* @plugindesc
|
|
* Title screen for Omori
|
|
*
|
|
* @author TDS
|
|
*
|
|
*/
|
|
//=============================================================================
|
|
|
|
|
|
|
|
_TDS_.OmoriTitleScreen.Scene_Boot_start = Scene_Boot.prototype.start;
|
|
Scene_Boot.prototype.start = function() {
|
|
Scene_Base.prototype.start.call(this);
|
|
SoundManager.preloadImportantSounds();
|
|
if (DataManager.isBattleTest()) {
|
|
DataManager.setupBattleTest();
|
|
SceneManager.goto(Scene_Battle);
|
|
} else if (DataManager.isEventTest()) {
|
|
DataManager.setupEventTest();
|
|
SceneManager.goto(Scene_Map);
|
|
} else {
|
|
this.checkPlayerLocation();
|
|
DataManager.setupNewGame();
|
|
SceneManager.goto(Scene_OmoriTitleScreen);
|
|
Window_TitleCommand.initCommandPosition();
|
|
}
|
|
this.updateDocumentTitle();
|
|
};
|
|
|
|
|
|
//=============================================================================
|
|
// ** Scene_OmoriTitleScreen
|
|
//-----------------------------------------------------------------------------
|
|
// The scene class of the title screen.
|
|
//=============================================================================
|
|
function Scene_OmoriTitleScreen() { this.initialize.apply(this, arguments); }
|
|
Scene_OmoriTitleScreen.prototype = Object.create(Scene_BaseEX.prototype);
|
|
Scene_OmoriTitleScreen.prototype.constructor = Scene_OmoriTitleScreen;
|
|
//=============================================================================
|
|
// * Initialize Object
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.initialize = function() {
|
|
// Set Image reservation Id
|
|
this._imageReservationId = 'title';
|
|
// Super Call
|
|
Scene_BaseEX.prototype.initialize.call(this);
|
|
// Get Atlas Bitmap
|
|
this._atlasBitmap = ImageManager.loadAtlas('Omori_TitleScreen');
|
|
// World Type 0: Normal, 1: Dark space, 2: Red Space
|
|
let tryFile = DataManager.readFromFile("File");
|
|
let tryTitleData = DataManager.readFromFile("TITLEDATA");
|
|
if(!!tryTitleData) {this._worldType = parseInt(tryTitleData);}
|
|
else if(!!tryFile) {this._worldType = parseInt(tryFile);}
|
|
if(typeof this._worldType === "undefined") {this._worldType = 0;}
|
|
if(![0,444,445,446,447,448,449].contains(this._worldType)) {this._worldType = 0;}
|
|
// Set Command Active Flag
|
|
this._commandActive = false;
|
|
// Options Active Flag
|
|
this._optionsActive = false;
|
|
// Set Command Index Flag
|
|
this._commandIndex = 0;
|
|
// Instant Intro Flag
|
|
this._instantIntro = false;
|
|
// Determine if can continue
|
|
this._canContinue = false;
|
|
// Check if Save files exist
|
|
for (var i = 1; i < 7; i++) {
|
|
if (StorageManager.exists(i)) { this._canContinue = true; break; }
|
|
};
|
|
this._instantIntro = true;
|
|
};
|
|
|
|
|
|
//=============================================================================
|
|
// * Prepare Scene
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.prepare = function(index, instant = true) {
|
|
// Set Command Index
|
|
this._commandIndex = index;
|
|
// Set Instant Intro Flag
|
|
this._instantIntro = instant;
|
|
};
|
|
//=============================================================================
|
|
// * Initialize Atlas Lists
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.initAtlastLists = function() {
|
|
// Super Call
|
|
Scene_BaseEX.prototype.initAtlastLists.call(this);
|
|
// Add Required Atlas
|
|
this.addRequiredAtlas('Omori_TitleScreen')
|
|
// Reserve Images
|
|
ImageManager.reserveParallax('Black', 0, this._imageReservationId);
|
|
ImageManager.reserveParallax('polaroidBG_BS_sky', 0, this._imageReservationId);
|
|
ImageManager.reservePicture('Blackspace_polaroidBG_FA_day', 0, this._imageReservationId);
|
|
// Load Input Icons
|
|
ImageManager.loadInputIcons();
|
|
};
|
|
//=============================================================================
|
|
// * Create
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.create = function() {
|
|
// Super Call
|
|
Scene_BaseEX.prototype.create.call(this);
|
|
|
|
// ONSControls
|
|
if (ONSControls._controlsCanvas === undefined) {
|
|
ONSControls.initialize();
|
|
}
|
|
|
|
this.createFilters();
|
|
// Create Background
|
|
this.createBackground();
|
|
// Create Omori Sprite
|
|
this.createOmoriSprite();
|
|
// Create Title Sprites
|
|
this.createTitleSprites();
|
|
// Create Title Commands
|
|
this.createTitleCommands();
|
|
// Create Command Hints
|
|
this.createCommandHints();
|
|
// Create Version Text
|
|
this.createVersionText();
|
|
// Create Options Windows
|
|
this.createOptionWindowsContainer();
|
|
this.createHelpWindow();
|
|
this.createGeneralOptionsWindow();
|
|
this.createAudioOptionsWindow();
|
|
this.createControllerOptionsWindow();
|
|
this.createONSControlsOptionsWindow(); // ONSControls Settings
|
|
this.createSystemOptionsWindow();
|
|
this.createExitPromptWindow();
|
|
this.createOptionCategoriesWindow();
|
|
|
|
// Update world bitmaps
|
|
this.updateWorldBitmaps();
|
|
this.playBgm();
|
|
this.playBgs();
|
|
// this._backgroundSprite.filters = [this._glitchFilter]
|
|
};
|
|
|
|
Scene_OmoriTitleScreen.prototype.playBgm = function () {
|
|
var name ="user_title";
|
|
/*switch (this._worldType) {
|
|
case 1:
|
|
name = "user_title";
|
|
break;
|
|
case 2:
|
|
name = "user_title";
|
|
break;
|
|
case 3:
|
|
name = "user_title";
|
|
//name = "bs_56_12_2";
|
|
break;
|
|
default:
|
|
name = "user_title";
|
|
break;
|
|
}*/
|
|
if(this._worldType === 449 || this._worldType === 447) {name = "duet_mari"}
|
|
else if(this._worldType === 448) {name = "AMB_forest"}
|
|
else if(this._worldType === 446) {name ="user_title";}
|
|
else if(this._worldType === 445) {// Red Space
|
|
name = "bs_listening";
|
|
}
|
|
else if(this._worldType === 444) {
|
|
name = "bs_listening";
|
|
}
|
|
else {name ="user_title";}
|
|
AudioManager.playBgm({name: name, volume: 100, pitch: 100});
|
|
};
|
|
|
|
Scene_OmoriTitleScreen.prototype.playBgs = function() {
|
|
var name;
|
|
var volume;
|
|
if(this._worldType === 445) {// Red Space
|
|
name = "amb_kettle";
|
|
volume = 90;
|
|
}
|
|
else if(this._worldType === 447 || this._worldType === 449) {
|
|
name = "AMB_forest";
|
|
volume = 50;
|
|
}
|
|
if(!name) {return;}
|
|
AudioManager.playBgs({name: name, volume: volume, pitch: 100});
|
|
}
|
|
|
|
//=========================================================
|
|
// 12/27 COMMAND HINTS
|
|
|
|
Scene_OmoriTitleScreen.prototype.createCommandHints = function() {
|
|
this._commandHints = new Sprite(new Bitmap(Math.ceil(Graphics.boxWidth / 2.8), Math.ceil(Graphics.boxHeight / 8)))
|
|
this.addChild(this._commandHints);
|
|
this._commandHints.position.set(Graphics.boxWidth - this._commandHints.width,0);
|
|
//this.refreshCommandHints();
|
|
//this._commandHints.bitmap
|
|
}
|
|
|
|
Scene_OmoriTitleScreen.prototype.refreshCommandHints = function() {
|
|
this._commandHints.bitmap.clear();
|
|
let confirm = LanguageManager.languageData().text.System.plugins.optionsMenu.buttonHints["confirm"]
|
|
let cancel = LanguageManager.languageData().text.System.plugins.optionsMenu.buttonHints["cancel"]
|
|
let iconSize = 24;
|
|
let paddingY = 4;
|
|
let paddingX = 37;
|
|
this._commandHints.bitmap.drawInputIcon("ok", 80, paddingX);
|
|
this._commandHints.bitmap.drawText(confirm, iconSize + 91, paddingY, this._commandHints.bitmap.width, 85, "left");
|
|
this._commandHints.bitmap.drawInputIcon("escape", iconSize + -52 + this._commandHints.bitmap.measureTextWidth(confirm), paddingY);
|
|
this._commandHints.bitmap.drawText(cancel, iconSize*2 + -41 + this._commandHints.bitmap.measureTextWidth(confirm), paddingY, this._commandHints.bitmap.width, 16, "left");
|
|
}
|
|
|
|
const _old_omo_menu_options_controls = Window_OmoMenuOptionsControls.prototype.createKeyPromptWindow
|
|
Window_OmoMenuOptionsControls.prototype.createKeyPromptWindow = function() {
|
|
_old_omo_menu_options_controls.call(this);
|
|
if(SceneManager._scene instanceof Scene_OmoriTitleScreen) {
|
|
const _old_key_prompt_window_close = this._keyPromptWindow.close;
|
|
this._keyPromptWindow.close = function() {
|
|
_old_key_prompt_window_close.call(this);
|
|
SceneManager._scene.refreshCommandHints();
|
|
}
|
|
}
|
|
}
|
|
|
|
Scene_OmoriTitleScreen.prototype.createVersionText = function() {
|
|
this._gameVersion = new Sprite(new Bitmap(Math.ceil(Graphics.boxWidth / 8), 32))
|
|
this.addChild(this._gameVersion);
|
|
let padding = 4;
|
|
this._gameVersion.position.set(0,0);
|
|
this._gameVersion.bitmap.fontSize = 24;
|
|
this._gameVersion.bitmap.drawText("V1.0.8", padding ,padding , this._gameVersion.bitmap.width, 16, "left");
|
|
}
|
|
|
|
//=============================================================================
|
|
// * Create Background
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createBackground = function() {
|
|
// Create Background Sprite
|
|
this._backgroundSprite = new TilingSprite();
|
|
this._backgroundSprite.move(0, 0, Graphics.width, Graphics.height);
|
|
this.addChild(this._backgroundSprite);
|
|
if(this._worldType === 448 || this._worldType === 447 || this._worldType === 449) {this._backgroundSprite.bitmap = ImageManager.loadParallax('!polaroidBG_FA_day');}
|
|
else if(this._worldType === 446) {
|
|
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
|
bitmap.fillAll('rgba(255, 255, 255, 1)');
|
|
this._backgroundSprite.bitmap = bitmap;
|
|
}
|
|
else if(this._worldType === 445) {// Red Space
|
|
this._backgroundSprite.bitmap = ImageManager.loadParallax('!parallax_black_space');
|
|
}
|
|
else if(this._worldType === 444) {
|
|
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
|
bitmap.fillAll('rgba(0, 0, 0, 1)');
|
|
this._backgroundSprite.bitmap = bitmap;
|
|
}
|
|
else if(this._worldType === 0) {
|
|
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
|
bitmap.fillAll('rgba(255, 255, 255, 1)');
|
|
this._backgroundSprite.bitmap = bitmap;
|
|
}
|
|
|
|
|
|
/*if (this._worldType === 0 || this._worldType === 446) { // White Space
|
|
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
|
bitmap.fillAll('rgba(255, 255, 255, 1)');
|
|
this._backgroundSprite.bitmap = bitmap;
|
|
} else if (this._worldType === 444) { // Black Space
|
|
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
|
bitmap.fillAll('rgba(0, 0, 0, 1)');
|
|
this._backgroundSprite.bitmap = bitmap;
|
|
} else if (this._worldType === 445) { // Red Space
|
|
// Set Background Bitmap
|
|
this._backgroundSprite.bitmap = ImageManager.loadParallax('!parallax_black_space');
|
|
} else if (this._worldType === 447 || this._worldType == 448) { // Endings
|
|
// Set Background Bitmap
|
|
this._backgroundSprite.bitmap = ImageManager.loadParallax('!polaroidBG_FA_day');
|
|
};*/
|
|
};
|
|
//=============================================================================
|
|
// * Create Filters
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createFilters = function() {
|
|
// Create GLitch Filter
|
|
this._glitchFilter = new PIXI.filters.GlitchFilter();
|
|
this._glitchFilter.fillMode = 2;
|
|
this._glitchFilter.slices = 0;
|
|
this._glitchFilter.seed = 0
|
|
// Initialize Glitch Settings
|
|
this._glitchSettings = {timer: 0, timing: 240, maxTiming: 240, times: 5, world: 2, active: false}
|
|
};
|
|
//=============================================================================
|
|
// * Create Background
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createOmoriSprite = function() {
|
|
// Create Omori Sprite
|
|
if (this._worldType != 448) {
|
|
if (this._worldType === 0 || this._worldType === 446) {
|
|
this._omoriSprite = new Sprite(ImageManager.loadPicture('OMO_WS'));
|
|
} else if (this._worldType === 444) {
|
|
this._omoriSprite = new Sprite(ImageManager.loadPicture('OMO_BS'));
|
|
} else if (this._worldType === 445 || this._worldType === 447 || this._worldType === 449) {
|
|
this._omoriSprite = new Sprite(ImageManager.loadPicture('OMO_RS'));
|
|
}
|
|
this._omoriSprite.anchor.set(0.5, 1)
|
|
this._omoriSprite.x = Graphics.width / 2;
|
|
this._omoriSprite.y = Graphics.height;
|
|
this._omoriSprite.opacity = 0;
|
|
this._omoriSprite.setFrame(0, 0, 0, 0);
|
|
this._omoriSprite.filters = [this._glitchFilter];
|
|
|
|
this._omoriSprite.visible = this._worldType !== 4;
|
|
this._omoriSprite.filterArea = new PIXI.Rectangle(0, 0, Graphics.width, Graphics.height + Math.floor(Graphics.height / 6));
|
|
this.addChild(this._omoriSprite);
|
|
}
|
|
};
|
|
//=============================================================================
|
|
// * Create Title Sprites
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createTitleSprites = function() {
|
|
// Create Title Text Container Sprite
|
|
this._titleTextContainerSprite = new Sprite()
|
|
this._titleTextContainerSprite.x = 167;
|
|
this._titleTextContainerSprite.y = 130;
|
|
this._titleTextContainerSprite.opacity = 0
|
|
this.addChild(this._titleTextContainerSprite);
|
|
|
|
// Create Lightbulb Sprite
|
|
if (this._worldType === 0 || this._worldType === 446 || this._worldType === 447 || this._worldType === 448 || this._worldType === 449) {
|
|
this._lightBulbSprite = new Sprite(ImageManager.loadPicture('OMO_BULB_WS'));
|
|
} else if (this._worldType === 444 || this._worldType === 445) {
|
|
this._lightBulbSprite = new Sprite(ImageManager.loadPicture('OMO_BULB_BS'));
|
|
}
|
|
this._lightBulbSprite.x = 120;
|
|
this._lightBulbSprite.y = -2;
|
|
//this._lightBulbSprite.y = 18;
|
|
// this._lightBulbSprite.setFrame(0, 0, 68, 150)
|
|
this._titleTextContainerSprite.addChild(this._lightBulbSprite);
|
|
|
|
// Create Lightbulb Sprite
|
|
if (this._worldType === 0 || this._worldType === 446 || this._worldType === 447 || this._worldType === 448 || this._worldType === 449) {
|
|
this._lightBulbLinesSprite = new Sprite(ImageManager.loadPicture('OMO_BULB_WS_LINES'));
|
|
} else if (this._worldType === 444 || this._worldType === 445) {
|
|
this._lightBulbLinesSprite = new Sprite(ImageManager.loadPicture('OMO_BULB_BS_LINES'));
|
|
}
|
|
this._lightBulbLinesSprite.x = 120;
|
|
this._lightBulbLinesSprite.y = 0;
|
|
this._lightBulbLinesSprite.opacity = 0;
|
|
this._lightBulbLinesSprite.setFrame(0, 0, 68, 150)
|
|
this._titleTextContainerSprite.addChild(this._lightBulbLinesSprite);
|
|
|
|
// Get String Bitmap
|
|
if (this._worldType === 0 || this._worldType === 446 || this._worldType === 447 || this._worldType === 448 || this._worldType === 449) {
|
|
var string = ImageManager.loadPicture('OMO_STRING_WS');
|
|
} else if (this._worldType === 444 || this._worldType === 445) {
|
|
var string = ImageManager.loadPicture('OMO_STRING_BS');
|
|
}
|
|
// Create Cable Bitmap
|
|
var bitmap = new Bitmap(68, 300);
|
|
bitmap.blt(string, 0, 0, string.width, string.height, 0, 0, string.width, 300)
|
|
|
|
// Create Lightbulb cable sprite
|
|
this._lightbulbCableSprite = new Sprite(bitmap)
|
|
this._lightbulbCableSprite.x = this._lightBulbSprite.x;
|
|
this._lightbulbCableSprite.y = -282//-bitmap.height;
|
|
this._titleTextContainerSprite.addChild(this._lightbulbCableSprite);
|
|
|
|
// Create Title Text Sprite
|
|
if (this._worldType === 0 || this._worldType === 446 || this._worldType === 447 || this._worldType === 448 || this._worldType === 449) {
|
|
this._titleTextSprite = new Sprite(ImageManager.loadPicture('OMO_TITLE_WS'));
|
|
} else if (this._worldType === 444 || this._worldType === 445) {
|
|
this._titleTextSprite = new Sprite(ImageManager.loadPicture('OMO_TITLE_BS'));
|
|
}
|
|
this._titleTextSprite.opacity = 0;
|
|
this._titleTextContainerSprite.addChild(this._titleTextSprite)
|
|
};
|
|
//=============================================================================
|
|
// * Create Title Commands
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createTitleCommands = function() {
|
|
// Initialize Title Comands
|
|
this._titleCommands = [];
|
|
// Text Array
|
|
var textList = ['NOVO JOGO', 'CONTINUAR', 'OPÇÕES', 'PORTADO POR']
|
|
// Get Center X Position
|
|
var centerX = 43;
|
|
// Go Through Text Array
|
|
var previous_width = 0;
|
|
for (var i = 0; i < textList.length; i++) {
|
|
// Get Text
|
|
var text = textList[i];
|
|
// Create Window
|
|
var win = new Window_OmoTitleScreenBox(text);
|
|
// Set Wnidow Position
|
|
win.x = centerX + previous_width;
|
|
previous_width += win.width + 30;
|
|
win.y = Graphics.height //(Graphics.height - win.height) - 22
|
|
// Select Window
|
|
if (i === this._commandIndex) { win.select(0)}
|
|
// Add window to title Commands
|
|
this._titleCommands[i] = win;
|
|
this.addChild(win)
|
|
};
|
|
// Set Continue text
|
|
this._titleCommands[1].setText(textList[1], this._canContinue);
|
|
|
|
};
|
|
//=============================================================================
|
|
// * Create Options Windows Container
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createOptionWindowsContainer = function() {
|
|
// Create Help Window Container
|
|
this._optionsWindowsContainer = new Sprite();
|
|
this._optionsWindowsContainer.x = 10;
|
|
this._optionsWindowsContainer.y = -406;
|
|
this._optionsWindowsContainer.opacity = 255;
|
|
this.addChild(this._optionsWindowsContainer);
|
|
};
|
|
//=============================================================================
|
|
// * Create Help Window
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createHelpWindow = function() {
|
|
// Create Help Window
|
|
this._helpWindow = new Window_OmoMenuOptionsHelp();
|
|
this._helpWindow.x = 0;
|
|
this._helpWindow.y = Graphics.height - this._helpWindow.height - 10;
|
|
this._optionsWindowsContainer.addChild(this._helpWindow);
|
|
};
|
|
//=============================================================================
|
|
// * Create Option Categories Window
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createOptionCategoriesWindow = function() {
|
|
// Create Options Categories Window
|
|
this._optionCategoriesWindow = new Window_OmoMenuOptionsCategory();
|
|
this._optionCategoriesWindow.deactivate();
|
|
|
|
this._optionCategoriesWindow.setHandler('ok', this.onCategoryOk.bind(this));
|
|
this._optionCategoriesWindow.setHandler('cancel', this.onCategoryCancel.bind(this));
|
|
this._optionsWindowsContainer.addChild(this._optionCategoriesWindow);
|
|
|
|
// Get Option Windows
|
|
var optionWindows = this.optionWindows();
|
|
// Set Option Categories Window Option Windows
|
|
this._optionCategoriesWindow._optionWindows = optionWindows;
|
|
// Set Help Window for Option Windows
|
|
for (var i = 0; i < optionWindows.length; i++) {
|
|
optionWindows[i].y = this._optionCategoriesWindow.y + this._optionCategoriesWindow.height;
|
|
optionWindows[i]._helpWindow = this._helpWindow;
|
|
};
|
|
// Set Help Window Position
|
|
this._helpWindow.y = optionWindows[0].y + optionWindows[0].height;
|
|
// Call Update Help
|
|
this._optionCategoriesWindow.callUpdateHelp();
|
|
};
|
|
//=============================================================================
|
|
// * Create General Options Window
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createGeneralOptionsWindow = function() {
|
|
// Create General Options Window
|
|
this._generalOptionsWindow = new Window_OmoMenuOptionsGeneral();
|
|
this._generalOptionsWindow.setHandler('cancel', this.onOptionWindowCancel.bind(this));
|
|
this._generalOptionsWindow.deactivate()
|
|
// Set Help Window Position
|
|
this._helpWindow.y = this._generalOptionsWindow.y + this._generalOptionsWindow.height;
|
|
|
|
// this._generalOptionsWindow.visible = false;
|
|
this._optionsWindowsContainer.addChild(this._generalOptionsWindow);
|
|
};
|
|
//=============================================================================
|
|
// * Create Audio Options Window
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createAudioOptionsWindow = function() {
|
|
// Create Audio Options Window
|
|
this._audioOptionsWindow = new Window_OmoMenuOptionsAudio();
|
|
this._audioOptionsWindow.setHandler('cancel', this.onOptionWindowCancel.bind(this));
|
|
this._audioOptionsWindow.visible = false;
|
|
this._optionsWindowsContainer.addChild(this._audioOptionsWindow);
|
|
};
|
|
//=============================================================================
|
|
// * Create Controller Options Window
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createControllerOptionsWindow = function() {
|
|
// Create Control Options Window
|
|
this._controlOptionsWindow = new Window_OmoMenuOptionsControls();
|
|
this._controlOptionsWindow.setHandler('cancel', this.onOptionWindowCancel.bind(this));
|
|
this._controlOptionsWindow.visible = false;
|
|
this._optionsWindowsContainer.addChild(this._controlOptionsWindow);
|
|
};
|
|
//=============================================================================
|
|
// * Create System Options Window
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.createSystemOptionsWindow = function() {
|
|
// Create System Option Window
|
|
this._systemOptionsWindow = new Window_OmoMenuOptionsSystem();
|
|
this._systemOptionsWindow.setHandler('restoreConfig', () => {
|
|
ConfigManager.restoreDefaultConfig();
|
|
this._controlOptionsWindow.makeOptionsList()
|
|
this._generalOptionsWindow.makeOptionsList();
|
|
this._audioOptionsWindow.makeOptionsList();
|
|
|
|
this._controlOptionsWindow.refresh()
|
|
this._controlOptionsWindow.select(0);
|
|
this._generalOptionsWindow.refresh();
|
|
this._generalOptionsWindow.select(0);
|
|
this._audioOptionsWindow.refresh();
|
|
this._systemOptionsWindow.refresh();
|
|
this._systemOptionsWindow.activate();
|
|
Input.clear();
|
|
});
|
|
this._systemOptionsWindow.setHandler('cancel', this.onOptionWindowCancel.bind(this));
|
|
this._systemOptionsWindow.setHandler('exit', this.startExitPrompt.bind(this));
|
|
this._optionsWindowsContainer.addChild(this._systemOptionsWindow);
|
|
};
|
|
|
|
Scene_OmoriTitleScreen.prototype.createExitPromptWindow = function() {
|
|
// Create Exit Prompt Window
|
|
this._exitPromptWindow = new Window_OmoMenuOptionsExitPromptWindow();
|
|
this._exitPromptWindow.x = (Graphics.width - this._exitPromptWindow.width) / 2;
|
|
this._exitPromptWindow.y = (Graphics.height - this._exitPromptWindow.height) / 2
|
|
this._exitPromptWindow.setHandler('yes', this.onExitPromptYes.bind(this));
|
|
this._exitPromptWindow.setHandler('cancel', this.onExitPromptCancel.bind(this));
|
|
this.addChild(this._exitPromptWindow);
|
|
};
|
|
|
|
Scene_OmoriTitleScreen.prototype.startExitPrompt = function() {
|
|
this._exitPromptWindow.select(1);
|
|
this._exitPromptWindow.open();
|
|
this._exitPromptWindow.activate();
|
|
};
|
|
//=============================================================================
|
|
// * On Exit Prompt Window Cancel
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.onExitPromptCancel = function() {
|
|
this._exitPromptWindow.deactivate();
|
|
this._exitPromptWindow.close();
|
|
this._systemOptionsWindow.activate();
|
|
}
|
|
//=============================================================================
|
|
// * On Exit Prompt Window Yes
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.onExitPromptYes = function() {
|
|
// Fadeout All
|
|
this.fadeOutAll();
|
|
// Exit the game
|
|
SceneManager.exit();
|
|
};
|
|
//=
|
|
//=============================================================================
|
|
// * Get All Option Windows
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.optionWindows = function() {
|
|
return [this._generalOptionsWindow, this._audioOptionsWindow, this._controlOptionsWindow, this._systemOptionsWindow]
|
|
}
|
|
//=============================================================================
|
|
// * Initialize Frame Animations
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.initFrameAnimations = function() {
|
|
// Initialize Frame Animations
|
|
if (this._omoriSprite){
|
|
this._frameAnimations = [
|
|
{sprite: this._omoriSprite, rect: new Rectangle(0, 0, 306, 350), frames: [0, 1, 2], frameIndex: 0, delayCount: 0, delay: 20, active: true},
|
|
{sprite: this._lightBulbLinesSprite, rect: new Rectangle(0, 0, 68, 150), frames: [0, 1, 2, 1], frameIndex: 0, delayCount: 0, delay: 15, active: true}
|
|
]
|
|
} else {
|
|
this._frameAnimations = [
|
|
{sprite: this._lightBulbLinesSprite, rect: new Rectangle(0, 0, 68, 150), frames: [0, 1, 2, 1], frameIndex: 0, delayCount: 0, delay: 15, active: true}
|
|
]
|
|
}
|
|
// Update Frame animations
|
|
this.updateFrameAnimations();
|
|
};
|
|
//=============================================================================
|
|
// * Start
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.start = function() {
|
|
// Super Call
|
|
Scene_BaseEX.prototype.start.call(this);
|
|
// Refresh command hints on scene start
|
|
this.refreshCommandHints();
|
|
// Initialize Frame Animations
|
|
this.initFrameAnimations();
|
|
// If Instant Intro Flag is true
|
|
if (this._instantIntro) {
|
|
this._titleTextContainerSprite.opacity = 255;
|
|
this._titleTextContainerSprite.y = -30;
|
|
this._titleTextSprite.opacity = 255;
|
|
if (this._omoriSprite) this._omoriSprite.opacity = 255;
|
|
this._lightBulbLinesSprite.opacity = 255;
|
|
for (var i = 0; i < this._titleCommands.length; i++) {
|
|
var win = this._titleCommands[i];
|
|
win.y = (Graphics.height - win.height) - 15;
|
|
win.opacity = 255;
|
|
win.contentsOpacity = 255;
|
|
};
|
|
// Activate Commands
|
|
this._commandActive = true;
|
|
// Activate Bulb Light animation
|
|
if (this._omoriSprite) this._frameAnimations[1].active = true;
|
|
else this._frameAnimations[0].active = true;
|
|
// Activate Glitch
|
|
// this._glitchSettings.active = this._worldType === 3;
|
|
this._glitchSettings.active = this._worldType === 445
|
|
return;
|
|
};
|
|
|
|
this.queue(function() {
|
|
// Set Duration
|
|
var duration = 60;
|
|
var obj = this._titleTextContainerSprite;
|
|
var data = { obj: obj, properties: ['opacity'], from: {opacity: obj.opacity}, to: {opacity: 255}, durations: {opacity: duration}}
|
|
data.easing = Object_Movement.linearTween;
|
|
this.move.startMove(data);
|
|
if (this._omoriSprite) this._frameAnimations[1].active = true;
|
|
else this._frameAnimations[0].active = true;
|
|
}.bind(this))
|
|
|
|
// Wait
|
|
this.queue('setWaitMode', 'movement');
|
|
// Wait
|
|
this.queue('wait', 15);
|
|
|
|
this.queue(function() {
|
|
// Set Duration
|
|
var duration = 60;
|
|
var obj = this._titleTextSprite;
|
|
var data = { obj: obj, properties: ['opacity'], from: {opacity: obj.opacity}, to: {opacity: 255}, durations: {opacity: duration}}
|
|
data.easing = Object_Movement.linearTween;
|
|
this.move.startMove(data);
|
|
|
|
// Set Duration
|
|
var duration = 60;
|
|
var obj = this._lightBulbLinesSprite;
|
|
var data = { obj: obj, properties: ['opacity'], from: {opacity: obj.opacity}, to: {opacity: 255}, durations: {opacity: duration}}
|
|
data.easing = Object_Movement.linearTween;
|
|
this.move.startMove(data);
|
|
|
|
}.bind(this))
|
|
|
|
// Wait
|
|
this.queue('setWaitMode', 'movement');
|
|
// Wait
|
|
this.queue('wait', 30);
|
|
|
|
this.queue(function() {
|
|
// Set Duration
|
|
var duration = 60;
|
|
var obj = this._titleTextContainerSprite;
|
|
var data = { obj: obj, properties: ['y'], from: {y: obj.y}, to: {y: -30}, durations: {y: duration}}
|
|
data.easing = Object_Movement.linearTween;
|
|
this.move.startMove(data);
|
|
}.bind(this))
|
|
|
|
// Wait
|
|
this.queue('setWaitMode', 'movement');
|
|
// Wait
|
|
this.queue('wait', 30);
|
|
if (this._omoriSprite) {
|
|
this.queue(function() {
|
|
// Set Duration
|
|
var duration = 60;
|
|
var obj = this._omoriSprite;
|
|
var data = { obj: obj, properties: ['opacity'], from: {opacity: obj.opacity}, to: {opacity: 255}, durations: {opacity: duration}}
|
|
data.easing = Object_Movement.linearTween;
|
|
this.move.startMove(data);
|
|
}.bind(this))
|
|
|
|
// Wait
|
|
this.queue('wait', 30);
|
|
}
|
|
|
|
|
|
for (var i = 0; i < this._titleCommands.length; i++) {
|
|
// console.log(i)
|
|
this.queue(function(index) {
|
|
// Set Duration
|
|
var duration = 30;
|
|
var obj = this._titleCommands[index];
|
|
obj.select(-1)
|
|
var data = { obj: obj, properties: ['y', 'opacity', 'contentsOpacity'], from: {y: obj.y, opacity: obj.opacity, contentsOpacity: obj.contentsOpacity}, to: {y: (Graphics.height - obj.height) - 22, opacity: 255, contentsOpacity: 255}, durations: {y: duration, opacity: duration, contentsOpacity: duration}}
|
|
data.easing = Object_Movement.easeOutCirc;
|
|
this.move.startMove(data);
|
|
}.bind(this, i))
|
|
// Wait
|
|
this.queue('wait', 15);
|
|
};
|
|
|
|
// console.log(i)
|
|
this.queue(function() {
|
|
// Activate Glitch
|
|
this._glitchSettings.active = this._worldType === 445
|
|
// Activate Commands
|
|
this._commandActive = true;
|
|
// Update Command Window Selection
|
|
this.updateCommandWindowSelection();
|
|
}.bind(this, i))
|
|
|
|
};
|
|
//=============================================================================
|
|
// * Frame Update
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.update = function() {
|
|
Scene_BaseEX.prototype.update.call(this);
|
|
// Update Frame Animations
|
|
this.updateFrameAnimations();
|
|
// Update Command Input
|
|
this.updateCommandInput();
|
|
// Update Effects
|
|
this.updateEffects();
|
|
// Move Bkacground Sprite
|
|
this._backgroundSprite.origin.x += 0.5;
|
|
this._backgroundSprite.origin.y -= 0.5;
|
|
};
|
|
//=============================================================================
|
|
// * Update Bitmaps
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.updateWorldBitmaps = function(world = this._worldType, temp = false) {
|
|
// Set Title Bitmap
|
|
var titleTextBitmap = 'OMO_TITLE_WS';
|
|
var lightbulbBitmap = 'OMO_BULB_WS';
|
|
var stringBitmap = 'OMO_STRING_WS';
|
|
var omoriBitmap = 'OMO_WS';
|
|
var linesBitmap = 'OMO_BULB_WS_LINES';
|
|
// Set World
|
|
switch (world) {
|
|
case 0: // White space
|
|
break;
|
|
case 446: // White space
|
|
break;
|
|
case 2: // Faraway
|
|
omoriBitmap = 'OMO_RS'
|
|
titleTextBitmap = 'OMO_TITLE_BS';
|
|
lightbulbBitmap = 'OMO_BULB_BS';
|
|
stringBitmap = 'OMO_STRING_BS';
|
|
linesBitmap = 'OMO_BULB_BS_LINES';
|
|
break;
|
|
case 3: // Red Space Omori
|
|
titleTextBitmap = 'OMO_TITLE_BS';
|
|
lightbulbBitmap = 'OMO_BULB_BS';
|
|
stringBitmap = 'OMO_STRING_BS';
|
|
omoriBitmap = 'OMO_WS';
|
|
linesBitmap = 'OMO_BULB_BS_LINES';
|
|
break;
|
|
case 444: // Black space
|
|
omoriBitmap = 'OMO_BS';
|
|
titleTextBitmap = 'OMO_TITLE_BS';
|
|
lightbulbBitmap = 'OMO_BULB_BS';
|
|
stringBitmap = 'OMO_STRING_BS';
|
|
linesBitmap = 'OMO_BULB_BS_LINES'
|
|
break;
|
|
case 445: // Red space
|
|
omoriBitmap = 'OMO_RS';
|
|
titleTextBitmap = 'OMO_TITLE_BS';
|
|
lightbulbBitmap = 'OMO_BULB_BS';
|
|
stringBitmap = 'OMO_STRING_BS';
|
|
linesBitmap = 'OMO_BULB_BS_LINES'
|
|
break;
|
|
case 449:
|
|
case 447: // Ending Good
|
|
omoriBitmap = 'OMO_RS';
|
|
titleTextBitmap = 'OMO_TITLE_WS';
|
|
lightbulbBitmap = 'OMO_BULB_WS';
|
|
stringBitmap = 'OMO_STRING_WS';
|
|
linesBitmap = 'OMO_BULB_WS_LINES'
|
|
break;
|
|
case 448: // Ending Bad
|
|
titleTextBitmap = 'OMO_TITLE_WS';
|
|
lightbulbBitmap = 'OMO_BULB_WS';
|
|
stringBitmap = 'OMO_STRING_WS';
|
|
linesBitmap = 'OMO_BULB_WS_LINES'
|
|
break;
|
|
};
|
|
if (temp) {
|
|
// titleTextBitmap = 'OMO_TITLE_BS';
|
|
// lightbulbBitmap = 'OMO_BULB_BS';
|
|
// stringBitmap = 'OMO_STRING_BS';
|
|
// linesBitmap = 'OMO_BULB_BS_LINES'
|
|
}
|
|
|
|
if (this._omoriSprite) this._omoriSprite.bitmap = ImageManager.loadPicture(omoriBitmap)
|
|
this._titleTextSprite.bitmap = ImageManager.loadPicture(titleTextBitmap)
|
|
this._lightBulbSprite.bitmap = ImageManager.loadPicture(lightbulbBitmap);
|
|
this._lightBulbLinesSprite.bitmap = ImageManager.loadPicture(linesBitmap);
|
|
// Set Omori Sprite Width & Height
|
|
if (this._omoriSprite) this._omoriSprite.width = 306;
|
|
if (this._omoriSprite) this._omoriSprite.height = 350;
|
|
// Let Lines Width & Height
|
|
this._lightBulbLinesSprite.width = 68;
|
|
this._lightBulbLinesSprite.height = 150;
|
|
// Get String Bitmap
|
|
var string = ImageManager.loadPicture(stringBitmap);
|
|
// Create Cable Bitmap
|
|
var bitmap = this._lightbulbCableSprite.bitmap;
|
|
bitmap.clear();
|
|
bitmap.blt(string, 0, 0, string.width, string.height, 0, 0, string.width, 300);
|
|
|
|
};
|
|
//=============================================================================
|
|
// * Update Effects
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.updateEffects = function() {
|
|
// Get Glitch Data
|
|
var glitch = this._glitchSettings;
|
|
// If glitch is active
|
|
if (glitch.active) {
|
|
// Reduce Glitch Timing
|
|
glitch.timing--;
|
|
// If glitch timing is 0 or less
|
|
if (glitch.timing <= 0) {
|
|
// Reduce glitch timer
|
|
glitch.timer--
|
|
// If glitch timer is 0 or less
|
|
if (glitch.timer <= 0) {
|
|
// Reset Glitch Timer
|
|
glitch.timer = 3;
|
|
if (glitch.times % 2 == 0) {
|
|
this._glitchFilter.seed = 0;
|
|
this._glitchFilter.slices = 0
|
|
this._glitchFilter.direction = 0
|
|
} else {
|
|
this._glitchFilter.seed = Math.randomInt(100);
|
|
this._glitchFilter.slices = 10 + Math.randomInt(10)
|
|
this._glitchFilter.direction = Math.randomInt(10) * Math.sin(Graphics.frameCount);
|
|
};
|
|
// Reduce Amount of times to glitch
|
|
glitch.times--;
|
|
// If glitch times is 0 or less
|
|
if (glitch.times <= 0) {
|
|
// Set Glitch world
|
|
glitch.world = glitch.world === 3 ? 2 : 3;
|
|
// Update world bitmaps
|
|
this.updateWorldBitmaps(glitch.world, true)
|
|
// Reset Filter
|
|
this._glitchFilter.seed = 0;
|
|
this._glitchFilter.slices = 0
|
|
this._glitchFilter.direction = 0
|
|
// Reset Glitch Time and timing
|
|
glitch.times = 5;
|
|
glitch.timing = glitch.maxTiming;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
return
|
|
|
|
};
|
|
//=============================================================================
|
|
// * Update Command Input
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.updateCommandInput = function() {
|
|
|
|
|
|
|
|
// If Command is Active
|
|
if (this._commandActive && !this.move.isMoving()) {
|
|
// this._commandIndex
|
|
if (Input.isRepeated('left')) {
|
|
// If Command index is more than 0
|
|
if (this._commandIndex > 0) {
|
|
// Decrease Index
|
|
this._commandIndex--;
|
|
AudioManager.playSe({name: "sys_cursor1", pan: 0, pitch: 100, volume: 90});
|
|
// Update Command Window Selection
|
|
this.updateCommandWindowSelection();
|
|
};
|
|
};
|
|
// If Input is right
|
|
if (Input.isRepeated('right')) {
|
|
// If Command index is less than title commands length
|
|
if (this._commandIndex < this._titleCommands.length-1) {
|
|
// Increase Index
|
|
this._commandIndex++;
|
|
AudioManager.playSe({name: "sys_cursor1", pan: 0, pitch: 100, volume: 90});
|
|
// Update Command Window Selection
|
|
this.updateCommandWindowSelection();
|
|
};
|
|
};
|
|
|
|
// If Input Trigger ok
|
|
if (Input.isTriggered('ok')) {
|
|
|
|
switch (this._commandIndex) {
|
|
case 0: // New Game
|
|
AudioManager.playSe({name: "SE_load", pan: 0, pitch: 100, volume: 90});
|
|
this.commandNewGame();
|
|
this._commandActive = false;
|
|
this._optionsActive = false;
|
|
break;
|
|
case 1: // Continue
|
|
|
|
if (this._canContinue) {
|
|
AudioManager.playSe({name: "SYS_select", pan: 0, pitch: 100, volume: 90});
|
|
this.commandContinue();
|
|
this._commandActive = false;
|
|
this._optionsActive = false;
|
|
} else {
|
|
SoundManager.playBuzzer();
|
|
};
|
|
break;
|
|
case 2: // Options
|
|
AudioManager.playSe({name: "SYS_select", pan: 0, pitch: 100, volume: 90});
|
|
this.commandOptions();
|
|
this._optionsActive = true;
|
|
this._commandActive = false;
|
|
break;
|
|
case 3: // ported by
|
|
AudioManager.playSe({ name: "SYS_select", pan: 0, pitch: 100, volume: 90 });
|
|
setTimeout(() => {
|
|
window.open('https://t.me/visual_novels_android_eng', '_blank').focus();
|
|
}, 1000);
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
//=============================================================================
|
|
// * Update Command Window Selection
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.updateCommandWindowSelection = function() {
|
|
// Go Through Title Commands
|
|
for (var i = 0; i < this._titleCommands.length; i++) {
|
|
// Get Window
|
|
var win = this._titleCommands[i]
|
|
// Select Window
|
|
if (i === this._commandIndex) {
|
|
// Select Title Command Window
|
|
win.select(0)
|
|
} else {
|
|
// Deselect Title Command Window
|
|
win.deselect();
|
|
};
|
|
};
|
|
};
|
|
//=============================================================================
|
|
// * Frame Update
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.updateFrameAnimations = function() {
|
|
// Go Through Animations
|
|
for (var i = 0; i < this._frameAnimations.length; i++) {
|
|
// Get Animation
|
|
var anim = this._frameAnimations[i];
|
|
// If Animation is active
|
|
if (anim.active) {
|
|
// If Animation Delay count is 0 or less
|
|
if (anim.delayCount <= 0) {
|
|
// Get Rectangle
|
|
var rect = anim.rect;
|
|
// Increase Current Frame
|
|
anim.frameIndex = (anim.frameIndex + 1) % anim.frames.length;
|
|
// Get Frame
|
|
var frame = anim.frames[anim.frameIndex]
|
|
// Set Animation Sprite Frame
|
|
anim.sprite.setFrame(frame * rect.width, rect.y, rect.width, rect.height);
|
|
// Reset Delay Count
|
|
anim.delayCount = anim.delay;
|
|
} else {
|
|
// Decrease Delay Count
|
|
anim.delayCount--
|
|
};
|
|
};
|
|
};
|
|
};
|
|
//=============================================================================
|
|
// * Command new game
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.commandNewGame = function() {
|
|
DataManager.setupNewGame();
|
|
this.fadeOutAll();
|
|
|
|
//ConfigManager.load();
|
|
SceneManager.goto(Scene_Map);
|
|
};
|
|
//=============================================================================
|
|
// * Command Continue
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.commandContinue = function() {
|
|
// Call Save Menu
|
|
SceneManager.push(Scene_OmoriFile);
|
|
SceneManager._nextScene.setup(false, true);
|
|
};
|
|
//=============================================================================
|
|
// * Options Command
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.commandOptions = function() {
|
|
|
|
|
|
this.queue(function() {
|
|
for (var i = 0; i < this._titleCommands.length; i++) {
|
|
// Set Duration
|
|
var duration = 15;
|
|
var obj = this._titleCommands[i];
|
|
var data = { obj: obj, properties: ['y', 'opacity', 'contentsOpacity'], from: {y: obj.y, opacity: obj.opacity, contentsOpacity: obj.contentsOpacity}, to: {y: Graphics.height, opacity: 255, contentsOpacity: 255}, durations: {y: duration, opacity: duration, contentsOpacity: duration}}
|
|
data.easing = Object_Movement.easeOutCirc;
|
|
this.move.startMove(data);
|
|
};
|
|
// Set Duration
|
|
var duration = 35;
|
|
var obj = this._optionsWindowsContainer;
|
|
var data = { obj: obj, properties: ['y', 'opacity'], from: {y: obj.y, opacity: obj.opacity}, to: {y: 37, opacity: 255}, durations: {y: duration, opacity: duration}}
|
|
data.easing = Object_Movement.easeOutCirc;
|
|
this.move.startMove(data);
|
|
}.bind(this))
|
|
|
|
// Wait
|
|
this.queue('setWaitMode', 'movement');
|
|
|
|
this.queue(function() {
|
|
// Activate Option Category Window
|
|
this._optionCategoriesWindow.activate();
|
|
this._controlOptionsWindow.refresh();
|
|
}.bind(this))
|
|
};
|
|
//=============================================================================
|
|
// * On Option Category Ok
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.onCategoryOk = function() {
|
|
// Get Category Window
|
|
var categoryWindow = this.optionWindows()[this._optionCategoriesWindow.index()];
|
|
// If Category Window Exists
|
|
if (categoryWindow) {
|
|
categoryWindow.activate();
|
|
categoryWindow.select(0);
|
|
categoryWindow.refresh()
|
|
} else {
|
|
// Activate Categories Window
|
|
this._optionCategoriesWindow.activate();
|
|
};
|
|
};
|
|
//=============================================================================
|
|
// * On Option Category Cancel
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.onCategoryCancel = function() {
|
|
// Save Configuration
|
|
ConfigManager.save();
|
|
|
|
this.queue(function() {
|
|
for (var i = 0; i < this._titleCommands.length; i++) {
|
|
// Set Duration
|
|
var duration = 15;
|
|
var obj = this._titleCommands[i];
|
|
var data = { obj: obj, properties: ['y', 'opacity', 'contentsOpacity'], from: {y: obj.y, opacity: obj.opacity, contentsOpacity: obj.contentsOpacity}, to: {y: (Graphics.height - obj.height) - 22, opacity: 255, contentsOpacity: 255}, durations: {y: duration, opacity: duration, contentsOpacity: duration}}
|
|
data.easing = Object_Movement.easeOutCirc;
|
|
this.move.startMove(data);
|
|
};
|
|
// Set Duration
|
|
var duration = 25;
|
|
var obj = this._optionsWindowsContainer;
|
|
var data = { obj: obj, properties: ['y', 'opacity'], from: {y: obj.y, opacity: obj.opacity}, to: {y: -406, opacity: 255}, durations: {y: duration, opacity: duration}}
|
|
data.easing = Object_Movement.easeOutCirc;
|
|
this.move.startMove(data);
|
|
}.bind(this))
|
|
|
|
// Wait
|
|
this.queue('setWaitMode', 'movement');
|
|
|
|
this.queue(function() {
|
|
this._commandActive = true;
|
|
}.bind(this))
|
|
};
|
|
//=============================================================================
|
|
// * On Option Window Cancel
|
|
//=============================================================================
|
|
Scene_OmoriTitleScreen.prototype.onOptionWindowCancel = function() {
|
|
// Get Category Window
|
|
var categoryWindow = this.optionWindows()[this._optionCategoriesWindow.index()];
|
|
// If Category Window Exists
|
|
if (categoryWindow) {
|
|
categoryWindow.select(0);
|
|
categoryWindow.refresh();
|
|
};
|
|
// Clear Help Window Text
|
|
this._helpWindow.clear()
|
|
// Activate Categories Window
|
|
this._optionCategoriesWindow.activate();
|
|
};
|
|
|
|
|
|
|
|
//=============================================================================
|
|
// ** Window_OmoTitleScreenBox
|
|
//-----------------------------------------------------------------------------
|
|
// This window is used in the title screen to display commands.
|
|
//=============================================================================
|
|
function Window_OmoTitleScreenBox() { this.initialize.apply(this, arguments); }
|
|
Window_OmoTitleScreenBox.prototype = Object.create(Window_Selectable.prototype);
|
|
Window_OmoTitleScreenBox.prototype.constructor = Window_OmoTitleScreenBox;
|
|
//=============================================================================
|
|
// * Object Initialization
|
|
//=============================================================================
|
|
Window_OmoTitleScreenBox.prototype.initialize = function(text = '') {
|
|
// Set Set
|
|
this._text = text;
|
|
// Super Call
|
|
Window_Selectable.prototype.initialize.call(this, 0, 0, 160 - 30, 30);
|
|
// BlueMoon - Fix Title Screen Spacing:
|
|
this.width = this.textWidth(this._text) + this.standardPadding() * 6;
|
|
this.createContents();
|
|
// Set Opacity
|
|
this.opacity = 0;
|
|
this.contentsOpacity = 0;
|
|
// Set Enabled Flag
|
|
this._enabled = true;
|
|
// Refresh
|
|
this.refresh();
|
|
// Activate
|
|
this.activate();
|
|
};
|
|
//=============================================================================
|
|
// * Standard Padding
|
|
//=============================================================================
|
|
Window_OmoTitleScreenBox.prototype.standardPadding = function() { return 4; }
|
|
Window_OmoTitleScreenBox.prototype.isUsingCustomCursorRectSprite = function() { return true; }
|
|
Window_OmoTitleScreenBox.prototype.customCursorRectXOffset = function() { return -35; }
|
|
Window_OmoTitleScreenBox.prototype.customCursorRectYOffset = function() { return -7; }
|
|
//=============================================================================
|
|
// * Set Text
|
|
//=============================================================================
|
|
Window_OmoTitleScreenBox.prototype.setText = function(text, enabled = true) {
|
|
// If Text has changed
|
|
if (text !== this._text || enabled !== this._enabled) {
|
|
// Set Enabled Flag
|
|
this._enabled = enabled;
|
|
// Set text
|
|
this._text = text;
|
|
// Redraw Window
|
|
this.refresh();
|
|
};
|
|
};
|
|
//=============================================================================
|
|
// * Refresh Arrows
|
|
//=============================================================================
|
|
Window_OmoTitleScreenBox.prototype._refreshArrows = function() { };
|
|
//=============================================================================
|
|
// * Refresh
|
|
//=============================================================================
|
|
Window_OmoTitleScreenBox.prototype.refresh = function() {
|
|
Window_Selectable.prototype.refresh.call(this);
|
|
// Clear Contents
|
|
this.contents.clear();
|
|
this.contents.fontSize = 28;
|
|
// Set Paint Opacity based on enabled flag
|
|
this.changePaintOpacity(this._enabled);
|
|
// Draw Text
|
|
// this.drawText(this._text, 40, -13, this.contents.width);
|
|
this.drawText(this._text, 0, -13, this.contents.width, 'center');
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Scene_BaseEX.prototype.updateWaitCount = function() { return false };
|
|
// Scene_BaseEX.prototype.updateWaitMode = function() { return false; };
|
|
|
|
|
|
|
|
// //=============================================================================
|
|
// // * Start Move
|
|
// //=============================================================================
|
|
// Object_Movement.prototype.startMove = function(data, uniq) {
|
|
// // Set Unique Flag to true
|
|
// if (uniq === undefined) { uniq = true; }
|
|
// // If Unique Flag is true
|
|
// if (uniq) { this.removeMoveWithObject(data.obj); }
|
|
|
|
|
|
// // If Data has durations for tweening
|
|
// if (data.durations || data.duration) {
|
|
// // Set Default Easing
|
|
// var defaultEasing = data.easing ? data.easing : Object_Movement.linearTween;
|
|
// // Initialize Times
|
|
// data.times = {};
|
|
// // Initialize Easings
|
|
// data.easings = data.easings || {};
|
|
// // Get Duration Keys
|
|
// var durations = Object.keys(data.durations);
|
|
// // Set Initial Times
|
|
// for (var i = 0; i < durations.length; i++) {
|
|
// data.durations[durations[i]] = 1;
|
|
|
|
// // Get Property
|
|
// var p = durations[i];
|
|
// // Set Initial Time
|
|
// data.times[p] = 0
|
|
// // Adjust To coordinates
|
|
// data.to[p] = (data.to[p] - data.from[p]);
|
|
// if (!data.easings[p]) {
|
|
// data.easings[p] = defaultEasing;
|
|
// };
|
|
// };
|
|
// } else {
|
|
// // Initialize Easings
|
|
// data.easings = data.easings || {};
|
|
// };
|
|
// // Add Data to list
|
|
// this._list.push(data);
|
|
// };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// this._lightBulbSprite.y = 0;
|
|
// this._lightBulbSprite.setFrame(277, 702, 68, 150)
|
|
|
|
// this._viewingSprite = new Sprite(ImageManager.loadPicture('OMO_TITLE_1'))
|
|
// this._viewingSprite.x = 250;
|
|
// this.addChild(this._viewingSprite)
|
|
|
|
// this._centerSprite = new Sprite(new Bitmap(1, Graphics.height))
|
|
// this._centerSprite.x = Graphics.width / 2
|
|
// this._centerSprite.bitmap.fillAll('rgba(255, 0, 0, 1)')
|
|
// this.addChild(this._centerSprite)
|
|
|
|
|
|
// // this._titleTextSprite.opacity = 255;
|
|
// // this._titleTextContainerSprite.opacity = 255
|
|
|
|
// // Face Mask
|
|
// this._textMask = new PIXI.Graphics();
|
|
// // this._textMask.beginFill(0xFFF);
|
|
// // this._textMask.drawCircle(0, 0, 100)
|
|
// // // this._textMask.drawRect(0, 0, 100, 200);
|
|
// // this._textMask.endFill();
|
|
|
|
// this._expandLightCount = 0;
|
|
|
|
// this._titleTextSprite.mask = this._textMask
|
|
|
|
// this._textMask.x = 155 - 10
|
|
// this._textMask.y = 110
|
|
|
|
// this._titleTextContainerSprite.addChild(this._textMask)
|