290 lines
13 KiB
JavaScript
290 lines
13 KiB
JavaScript
//=============================================================================
|
|
// TDS Omori BlackLetter Map
|
|
// Version: 1.5
|
|
//=============================================================================
|
|
// Add to Imported List
|
|
var Imported = Imported || {} ; Imported.TDS_OmoriBlackLetterMap = true;
|
|
// Initialize Alias Object
|
|
var _TDS_ = _TDS_ || {} ; _TDS_.OmoriBlackLetterMap = _TDS_.OmoriBlackLetterMap || {};
|
|
//=============================================================================
|
|
/*:
|
|
* @plugindesc
|
|
* This plugin shows the Omori Black Letter map.
|
|
*
|
|
* @author TDS
|
|
*
|
|
*/
|
|
//=============================================================================
|
|
|
|
|
|
|
|
|
|
|
|
// ImageManager.loadSystem('blackletter_bg');
|
|
// ImageManager.loadSystem('blackLetter_map_atlas');
|
|
|
|
//=============================================================================
|
|
// ** Input
|
|
//-----------------------------------------------------------------------------
|
|
// The static class that handles input data from the keyboard and gamepads.
|
|
//=============================================================================
|
|
// * Key Mapper Keys
|
|
//=============================================================================
|
|
// Input.keyMapper['81'] = 'q';
|
|
|
|
|
|
|
|
// //=============================================================================
|
|
// // ** Scene_Map
|
|
// //-----------------------------------------------------------------------------
|
|
// // The scene class of the map screen.
|
|
// //=============================================================================
|
|
// // Alias Listing
|
|
// //=============================================================================
|
|
// _TDS_.OmoriBlackLetterMap.Scene_Map_updateScene = Scene_Map.prototype.updateScene;
|
|
// //=============================================================================
|
|
// // * Update Scene
|
|
// //=============================================================================
|
|
// Scene_Map.prototype.updateScene = function() {
|
|
// // Run Original Function
|
|
// _TDS_.OmoriBlackLetterMap.Scene_Map_updateScene.call(this);
|
|
// if (!SceneManager.isSceneChanging()) {
|
|
// this.updateCallBlackLetterMap();
|
|
// };
|
|
// };
|
|
// //=============================================================================
|
|
// // * Update Call Black Letter Map
|
|
// //=============================================================================
|
|
// Scene_Map.prototype.updateCallBlackLetterMap = function() {
|
|
// // If Q Is triggered
|
|
// if (Input.isTriggered('pageup')) {
|
|
// // If Disable switch is off
|
|
// if (!$gameSwitches.value(18)) {
|
|
// // Go to Black Letter Map Scene
|
|
// SceneManager.push(Scene_OmoriBlackLetterMap);
|
|
// };
|
|
// };
|
|
// };
|
|
|
|
_TDS_.OmoriBlackLetterMap.Scene_Map_needsFadeIn = Scene_Map.prototype.needsFadeIn;
|
|
Scene_Map.prototype.needsFadeIn = function() {
|
|
return (_TDS_.OmoriBlackLetterMap.Scene_Map_needsFadeIn.call(this) || SceneManager.isPreviousScene(Scene_OmoriBlackLetterMap));
|
|
};
|
|
|
|
//=============================================================================
|
|
// ** Scene_OmoriBlackLetterMap
|
|
//-----------------------------------------------------------------------------
|
|
// This scene shows the Black Letter map
|
|
//=============================================================================
|
|
function Scene_OmoriBlackLetterMap() { this.initialize.apply(this, arguments);}
|
|
Scene_OmoriBlackLetterMap.prototype = Object.create(Scene_Base.prototype);
|
|
Scene_OmoriBlackLetterMap.prototype.constructor = Scene_OmoriBlackLetterMap;
|
|
//=============================================================================
|
|
// * Object Initialization
|
|
//=============================================================================
|
|
Scene_OmoriBlackLetterMap.prototype.initialize = function() {
|
|
// Super Call
|
|
Scene_Base.prototype.initialize.call(this);
|
|
};
|
|
//=============================================================================
|
|
// * Initialize Atlas Lists
|
|
//=============================================================================
|
|
Scene_OmoriBlackLetterMap.prototype.initAtlastLists = function() {
|
|
// Run Original Function
|
|
Scene_Base.prototype.initAtlastLists.call(this);
|
|
// Add Required Atlas
|
|
// this.addRequiredAtlas('blackletter_bg');
|
|
this.addRequiredAtlas('blackLetter_map_atlas');
|
|
};
|
|
//=============================================================================
|
|
// * Create
|
|
//=============================================================================
|
|
Scene_OmoriBlackLetterMap.prototype.create = function() {
|
|
// Super Call
|
|
Scene_Base.prototype.create.call(this);
|
|
// Create Map Sprite
|
|
this._mapSprite = new Sprite_OmoBlackLetterMap();
|
|
this.addChild(this._mapSprite);
|
|
};
|
|
|
|
Scene_OmoriBlackLetterMap.prototype.start = function() {
|
|
Scene_Base.prototype.start.call(this);
|
|
this.startFadeIn(this.slowFadeSpeed());
|
|
};
|
|
|
|
//=============================================================================
|
|
// * Frame Update
|
|
//=============================================================================
|
|
Scene_OmoriBlackLetterMap.prototype.update = function() {
|
|
// Super Call
|
|
Scene_Base.prototype.update.call(this);
|
|
// If Cancel or Q is pressed
|
|
if (Input.isTriggered('cancel') || Input.isTriggered('q')) {
|
|
// If not busy
|
|
if (!this.isBusy()) {
|
|
// Play Cancel Sound
|
|
// SoundManager.playCancel();
|
|
// Pop Scene
|
|
this.popScene();
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
|
|
//=============================================================================
|
|
// ** Sprite_OmoBlackLetterMap
|
|
//-----------------------------------------------------------------------------
|
|
// This sprite is used to display the black letter map.
|
|
//=============================================================================
|
|
function Sprite_OmoBlackLetterMap() { this.initialize.apply(this, arguments);}
|
|
Sprite_OmoBlackLetterMap.prototype = Object.create(Sprite.prototype);
|
|
Sprite_OmoBlackLetterMap.prototype.constructor = Sprite_OmoBlackLetterMap;
|
|
//=============================================================================
|
|
// * Initialize Object
|
|
//=============================================================================
|
|
Sprite_OmoBlackLetterMap.prototype.initialize = function() {
|
|
// Super Call
|
|
Sprite.prototype.initialize.call(this);
|
|
// Create Background Sprite
|
|
this.createBackgroundSprite();
|
|
// Create Overlay Sprites
|
|
this.createOverlaySprites();
|
|
// Create Text Counter Sprite
|
|
};
|
|
//=============================================================================
|
|
// * Create Background Sprite
|
|
//=============================================================================
|
|
Sprite_OmoBlackLetterMap.prototype.createBackgroundSprite = function() {
|
|
// Create Background Sprite
|
|
this._backgroundSprite = new Sprite(ImageManager.loadSystem('blackletter_bg'));
|
|
this.addChild(this._backgroundSprite);
|
|
};
|
|
//=============================================================================
|
|
// * Create Overlay Sprites
|
|
//=============================================================================
|
|
Sprite_OmoBlackLetterMap.prototype.createOverlaySprites = function() {
|
|
// Create Overlay Bitmap
|
|
var bitmap = new Bitmap(Graphics.width, Graphics.height);
|
|
// Get Background Bitmap
|
|
var bgBitmap = ImageManager.loadAtlas('blackLetter_map_atlas');
|
|
var bgBitmap50 = ImageManager.loadAtlas('blackLetter_map_50_atlas');
|
|
// Get Map Data
|
|
bgBitmap.addLoadListener(() => {
|
|
bgBitmap50.addLoadListener(() => {
|
|
var mapData = [
|
|
{name: 'PYREFLY FOREST', namePos: new Point(80, 195), rect: new Rectangle(0, 0, 193, 139), pos: new Point(111, 103), blackSwitchId: 23, nameSwitchId: 30, blackSwitch50Id: 900 },
|
|
// {name: 'Forgotten Pier', namePos: new Point(200, 27), rect: new Rectangle(194, 0, 155, 120), pos: new Point(225, 52), blackSwitchId: 21, nameSwitchId: 29 },
|
|
{name: 'PINWHEEL FOREST', namePos: new Point(440, 240), rect: new Rectangle(350, 0, 99, 107), pos: new Point(471, 128), blackSwitchId: 24, nameSwitchId: 31, blackSwitch50Id: 901 },
|
|
{name: 'SPROUT MOLE TOWN', namePos: new Point(25, 340), rect: new Rectangle(450, 0, 94, 80), pos: new Point(54, 267), blackSwitchId: 25, nameSwitchId: 32, blackSwitch50Id: 902 },
|
|
{name: 'VAST FOREST', namePos: new Point(250, 300), rect: new Rectangle(0, 124, 640, 201), pos: new Point(-2, 143), blackSwitchId: 26, nameSwitchId: 33, blackSwitch50Id: 903 },
|
|
{name: 'DEEP WELL', namePos: new Point(450, 355), rect: new Rectangle(0, 326, 418, 113), pos: new Point(119, 366), blackSwitchId: 27, nameSwitchId: 34, blackSwitch50Id: 904 },
|
|
{name: 'ORANGE OASIS', namePos: new Point(20, 55), rect: new Rectangle(545, 0, 122, 102), pos: new Point(31, 85), blackSwitchId: 28, nameSwitchId: 35, blackSwitch50Id: 905 },
|
|
{name: 'OTHERWORLD', namePos: new Point(450, 75), rect: new Rectangle(419, 326, 140, 209), pos: new Point(390, 21), blackSwitchId: 29, nameSwitchId: 36, blackSwitch50Id: 906 },
|
|
]
|
|
// Initialize Name Windows Array
|
|
this._nameWindows = [];
|
|
// Create Container for Name Windows
|
|
this._nameWindowsContainer = new Sprite();
|
|
// Go Through Map Data
|
|
for (var i = 0; i < mapData.length; i++) {
|
|
// Get Data
|
|
var data = mapData[i];
|
|
// Get Rect & Position
|
|
var rect = data.rect, pos = data.pos;
|
|
var test = Math.randomInt(100) > 50;
|
|
// If Black switch ID is not on
|
|
/*if (!$gameSwitches.value(data.blackSwitchId)) {
|
|
if (!$gameSwitches.value(data.blackSwitch50Id)) {
|
|
// Draw Black onto Bitmap
|
|
bitmap.blt(bgBitmap50, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);
|
|
} else {
|
|
|
|
}
|
|
};*/
|
|
//if(!!$gameSwitches.value(data.blackSwitchId)) {bitmap.blt(bgBitmap, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);}
|
|
//else if(!!$gameSwitches.value(data.blackSwitch50Id)) {bitmap.blt(bgBitmap50, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);}
|
|
if(!!$gameSwitches.value(data.blackSwitch50Id)) {bitmap.blt(bgBitmap, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);}
|
|
else {
|
|
if(!$gameSwitches.value(data.blackSwitchId)) {
|
|
bitmap.blt(bgBitmap50, rect.x, rect.y, rect.width, rect.height, pos.x, pos.y);
|
|
}
|
|
}
|
|
// Get Name Position
|
|
var namePos = data.namePos;
|
|
var name = $gameSwitches.value(data.nameSwitchId) ? data.name : "???"
|
|
// Create Window
|
|
var win = new Window_OmoBlackLetterMapName(name);
|
|
// Set Window Position
|
|
win.x = namePos.x; win.y = namePos.y;
|
|
this._nameWindows.push(win);
|
|
this._nameWindowsContainer.addChild(win);
|
|
};
|
|
// Create Black Overlay Sprite
|
|
this._blackOverlay = new Sprite(bitmap);
|
|
this.addChild(this._blackOverlay)
|
|
|
|
// Add Name Window container as a child
|
|
this.addChild(this._nameWindowsContainer);
|
|
this.createTextCounterSprite();
|
|
})
|
|
})
|
|
|
|
};
|
|
//=============================================================================
|
|
// * Create Text Counter Sprite
|
|
//=============================================================================
|
|
Sprite_OmoBlackLetterMap.prototype.createTextCounterSprite = function() {
|
|
// Get Background Bitmap
|
|
var bgBitmap = ImageManager.loadAtlas('blackLetter_map_atlas');
|
|
// Create Bitmap
|
|
var bitmap = new Bitmap(200, 40);
|
|
bitmap.blt(bgBitmap, 450, 81, 39, 37, 5, 10);
|
|
bitmap.textColor = '#000000';
|
|
bitmap.outlineColor = 'rgba(255, 255, 255, 1)'
|
|
bitmap.outlineWidth = 3;
|
|
bitmap.drawText('%1/%2'.format($gameVariables.value(19), 26), 48, 0, 70, 55);
|
|
this._textCounterSprite = new Sprite(bitmap);
|
|
this._textCounterSprite.y = Graphics.height - 50;
|
|
this.addChild(this._textCounterSprite);
|
|
};
|
|
|
|
|
|
|
|
//=============================================================================
|
|
// ** Window_OmoBlackLetterMapName
|
|
//-----------------------------------------------------------------------------
|
|
// The window for displaying the name of a map section in the black letter map.
|
|
//=============================================================================
|
|
function Window_OmoBlackLetterMapName() { this.initialize.apply(this, arguments); }
|
|
Window_OmoBlackLetterMapName.prototype = Object.create(Window_Base.prototype);
|
|
Window_OmoBlackLetterMapName.prototype.constructor = Window_OmoBlackLetterMapName;
|
|
//=============================================================================
|
|
// * Object Initialization
|
|
//=============================================================================
|
|
Window_OmoBlackLetterMapName.prototype.initialize = function(name) {
|
|
// Set Name
|
|
this._name = name;
|
|
// Super Call
|
|
Window_Base.prototype.initialize.call(this, 0, 0, 300, 38);
|
|
this.refresh();
|
|
};
|
|
//=============================================================================
|
|
// * Settings
|
|
//=============================================================================
|
|
Window_OmoBlackLetterMapName.prototype.standardPadding = function() { return 4; };
|
|
Window_OmoBlackLetterMapName.prototype.windowWidth = function() { return Graphics.width; };
|
|
//=============================================================================
|
|
// * Refresh
|
|
//=============================================================================
|
|
Window_OmoBlackLetterMapName.prototype.refresh = function() {
|
|
// Clear Contents
|
|
this.contents.clear();
|
|
// Get Text Width
|
|
var textWidth = this.textWidth(this._name);
|
|
// Adjust Width
|
|
this.width = textWidth + (this._name === "???" ? 24 : this.padding*2);
|
|
this.contents.fontSize = 22;
|
|
// Draw Name
|
|
this.drawText(this._name, 0, -7, this.contentsWidth(), 'center');
|
|
};
|