- //============================================================================= 
- // Overlay.js 
- //============================================================================= 
- /*: 
-  * @plugindesc Overlay Mapping script by SWEBOK v1.3 
-  * @author SWEBOK 
-  * 
-  * @param Light Switch 
-  * @desc Turn on/off light layer 
-  * @default 1 
-  * 
-  * @param Parallax Switch 
-  * @desc Turn on/off parallax layer 
-  * @default 2 
-  * 
-  * @param Ground Switch 
-  * @desc Turn on/off ground layer 
-  * @default 3 
-  * 
-  * @param Light Variable 
-  * @desc Switch to another light 
-  * @default 1 
-  * 
-  * @param Parallax Variable 
-  * @desc Switch to another parallax 
-  * @default 2 
-  * 
-  * @param Ground Variable 
-  * @desc Switch to another ground 
-  * @default 3 
-  * 
-  * @help This plugin does not provide plugin commands. 
-  * 
-  * Last Updated: 02/11/2017 
-  *     v1.0 - 10/24/2015 - first release. 
-  *     v1.1 - 10/27/2015 - upper tilemap layer problem solved 
-  *     v1.2 - 07/10/2016 - add map note tag settings, remove load pic error process 
-  *     v1.3 - 02/11/2017 - fixed a problem about ground pic wrong position 
-  * 
-  * This script will automatically load map's overlay by map's note, and a map can have more than 
-  * one image per layer, so you don't have to create two or more map just for day/night or 
-  * when an event occur. 
-  * 
-  * Create a folder in img and name it overlay. 
-  * Put all of your overlay into img/overlay. 
-  * Your overlay file will have the name set in map's note + "-" + Number. 
-  * Number is 1, 2, 3, ... using for Overlay Variables. 
-  * 
-  * Example: img/overlay/ground2-1.png 
-  * 
-  * Map note example: 
-  *        <OVERLAY> 
-  *                LIGHT = light1 
-  *                PARALLAX = par1 
-  *                GROUND = ground1 
-  *        </OVERLAY> 
-  *  
-  * when variable are 1, the map loads light1-1.png, par1-1.png, ground1-1.png from overlay folder. 
-  * 
-  * Tips: 
-  * All pictures must be .png 
-  * Do not use "=" in the names of pictures 
-  */ 
-   
-  (function() { 
-         var parameters = PluginManager.parameters('Overlay'); 
-         var lightSwitch = Number(parameters['Light Switch'] || 1); 
-         var parallaxSwitch = Number(parameters['Parallax Switch'] || 2); 
-         var groundSwitch = Number(parameters['Ground Switch'] || 3); 
-         var lightVariable = Number(parameters['Light Variable'] || 1); 
-         var parallaxVariable = Number(parameters['Parallax Variable'] || 2); 
-         var groundVariable = Number(parameters['Ground Variable'] || 3); 
-   
-         Game_Map.prototype.processMapNotetags = function () { 
-                 var note1 = /<(?:OVERLAY)>/i; 
-                 var note2 = /<\/(?:OVERLAY)>/i; 
-   
-                 var notedata = $dataMap.note.split(/[\r\n]+/); 
-   
-                 this.layerNameEval = ''; 
-                 var layerNameEval = false; 
-                 this._layerName = ['', '', '']; 
-   
-   
-                 for (var i = 0; i < notedata.length; i++) { 
-                         var line = notedata[i]; 
-                         console.log(line); 
-                         if (line.match(note1)) { 
-                                 layerNameEval = true; 
-                         } else if (line.match(note2)) { 
-                                 layerNameEval = false; 
-                         } else if (layerNameEval) { 
-                                 this.layerNameEval = line; 
-                                 var layerClass = this.layerNameEval.split('=')[0].trim(); 
-                                 var index = 1; 
-                                 if (index != -1) { 
-                                         switch (layerClass) { 
-                                                 case 'LIGHT': 
-                                                         this._layerName[0] = this.layerNameEval.split('=')[1].trim(); 
-                                                         break; 
-                                                 case 'PARALLAX': 
-                                                         this._layerName[1] = this.layerNameEval.split('=')[1].trim(); 
-                                                         break; 
-                                                 case 'GROUND': 
-                                                         this._layerName[2] = this.layerNameEval.split('=')[1].trim(); 
-                                                         break; 
-                                         } 
-                                         console.log(this.layerNameEval.split('=')[1].trim()); 
-                                 } 
-                         } 
-                 } 
-         }; 
-   
-         ImageManager.loadOverlay = function(filename, hue) { 
-                 return this.loadBitmap('img/overlay/', filename, hue, false); 
-         }; 
-   
-         Spriteset_Map.prototype.initialize = function() { 
-                 Spriteset_Base.prototype.initialize.call(this); 
-                 this.processMapNotetags(); 
-         }; 
-   
-         Spriteset_Map.prototype.createLowerLayer = function() { 
-                 Spriteset_Base.prototype.createLowerLayer.call(this); 
-                 this.createParallax(); 
-                 this.createTilemap(); 
-                 this.createOverlayGround(); 
-                 this.createCharacters(); 
-                 this.createOverlayParallax(); 
-                 this.createShadow(); 
-                 this.createOverlayLight(); 
-                 this.createDestination(); 
-                 this.createWeather(); 
-         }; 
-   
-         Spriteset_Map.prototype.update = function() { 
-                 Spriteset_Base.prototype.update.call(this); 
-                 this.updateTileset(); 
-                 this.updateParallax(); 
-                 this.updateTilemap(); 
-                 this.updateOverlayGround(); 
-                 this.updateOverlayParallax(); 
-                 this.updateShadow(); 
-                 this.updateOverlayLight(); 
-                 this.updateWeather(); 
-         }; 
-   
-         Spriteset_Map.prototype.processMapNotetags = function() { 
-                 $gameMap.processMapNotetags(); 
-         }; 
-   
-         Spriteset_Map.prototype.createOverlayGround = function() { 
-                 this._overlayGround = new TilingSprite(); 
-                 this._overlayGround.move(0, 0, Graphics.width, Graphics.height); 
-                 // 2017.2.11 create new layer in tilemap for overlay ground, z = 1 
-                 var groundLayer = new Sprite(); 
-                 this._tilemap.addChild(groundLayer); 
-                 groundLayer.z = 1; 
-                 groundLayer.addChild(this._overlayGround); 
-         }; 
-   
-         Spriteset_Map.prototype.createCharacters = function() { 
-                 this._characterSprites = []; 
-                 $gameMap.events().forEach(function(event) { 
-                         this._characterSprites.push(new Sprite_Character(event)); 
-                 }, this); 
-                 $gameMap.vehicles().forEach(function(vehicle) { 
-                         this._characterSprites.push(new Sprite_Character(vehicle)); 
-                 }, this); 
-                 $gamePlayer.followers().reverseEach(function(follower) { 
-                         this._characterSprites.push(new Sprite_Character(follower)); 
-                 }, this); 
-                 this._characterSprites.push(new Sprite_Character($gamePlayer)); 
-                 for (var i = 0; i < this._characterSprites.length; i++) { 
-                         this._tilemap.addChild(this._characterSprites[i]); 
-                 } 
-         }; 
-   
-         Spriteset_Map.prototype.createOverlayParallax = function() { 
-                 this._overlayParallax = new TilingSprite(); 
-                 this._overlayParallax.move(0, 0, Graphics.width, Graphics.height); 
-                 this._baseSprite.addChild(this._overlayParallax); 
-         }; 
-   
-         Spriteset_Map.prototype.createOverlayLight = function() { 
-                 this._overlayLight = new TilingSprite(); 
-                 this._overlayLight.move(0, 0, Graphics.width, Graphics.height); 
-                 this._baseSprite.addChild(this._overlayLight); 
-         }; 
-   
-   
-         Spriteset_Map.prototype.updateOverlayGround = function() { 
-                 var gndSwitch = $gameSwitches.value(groundSwitch); 
-                 if (gndSwitch) { 
-                         var groundIndex = $gameVariables.value(groundVariable); 
-                         if (this._overlayGroundName !== $gameMap._layerName[2] + '-' + groundIndex) { 
-                                 this._overlayGroundName = $gameMap._layerName[2] + '-' + groundIndex; 
-                                 if ($gameMap._layerName[2] !== '') { 
-                                         this._overlayGround.bitmap = ImageManager.loadOverlay(this._overlayGroundName); 
-                                 } else { 
-                                         this._overlayGround.bitmap = ImageManager.loadEmptyBitmap(); 
-                                 } 
-                         } 
-                         if (this._overlayGround.bitmap) { 
-                                 this._overlayGround.origin.x = $gameMap.displayX() * $gameMap.tileWidth(); 
-                                 this._overlayGround.origin.y = $gameMap.displayY() * $gameMap.tileHeight(); 
-                         } 
-                 } 
-                 else { 
-                         if (this._overlayGroundName !== '') { 
-                                 this._overlayGroundName = ''; 
-                                 this._overlayGround.bitmap = ImageManager.loadEmptyBitmap(); 
-                         } 
-                 } 
-         }; 
-   
-         Spriteset_Map.prototype.updateOverlayParallax = function() { 
-                 var parSwitch = $gameSwitches.value(parallaxSwitch); 
-                 if (parSwitch) { 
-                         var parIndex = $gameVariables.value(parallaxVariable); 
-                         if (this._overlayParallaxName !== $gameMap._layerName[1] + '-' + parIndex) { 
-                                 this._overlayParallaxName = $gameMap._layerName[1] + '-' + parIndex; 
-                                 if ($gameMap._layerName[1] !== '') { 
-                                         this._overlayParallax.bitmap = ImageManager.loadOverlay(this._overlayParallaxName); 
-                                 } else { 
-                                         this._overlayParallax.bitmap = ImageManager.loadEmptyBitmap(); 
-                                 } 
-                         } 
-                         if (this._overlayParallax.bitmap) { 
-                                 this._overlayParallax.origin.x = $gameMap.displayX() * $gameMap.tileWidth(); 
-                                 this._overlayParallax.origin.y = $gameMap.displayY() * $gameMap.tileHeight(); 
-                         } 
-                 } 
-                 else { 
-                         if (this._overlayParallaxName !== '') { 
-                                 this._overlayParallaxName = ''; 
-                                 this._overlayParallax.bitmap = ImageManager.loadEmptyBitmap(); 
-                         } 
-                 } 
-         }; 
-   
-         Spriteset_Map.prototype.updateOverlayLight = function() { 
-                 var liSwitch = $gameSwitches.value(lightSwitch); 
-                 if (liSwitch) { 
-                         var lightIndex = $gameVariables.value(lightVariable); 
-                         if (this._overlayLightName !== $gameMap._layerName[0] + '-' + lightIndex) { 
-                                 this._overlayLightName = $gameMap._layerName[0] + '-' + lightIndex; 
-                                 if ($gameMap._layerName[0] !== '') { 
-                                         this._overlayLight.bitmap = ImageManager.loadOverlay(this._overlayLightName); 
-                                 } else { 
-                                         this._overlayLight.bitmap = ImageManager.loadEmptyBitmap(); 
-                                 } 
-                         } 
-                         if (this._overlayLight.bitmap) { 
-                                 this._overlayLight.origin.x = $gameMap.displayX() * $gameMap.tileWidth(); 
-                                 this._overlayLight.origin.y = $gameMap.displayY() * $gameMap.tileHeight(); 
-                         } 
-                 } 
-                 else { 
-                         if (this._overlayLightName !== '') { 
-                                 this._overlayLightName = ''; 
-                                 this._overlayLight.bitmap = ImageManager.loadEmptyBitmap(); 
-                         } 
-                 } 
-         }; 
-  })();