//=============================================================================// FirgofCRTMode.js//=============================================================================/*: * @plugindesc Creates a CRT-like overlay effect. * @author James "Firgof" Woodall and ocean pollen * * @help To be filled. */function rgb2hex(r,g, { if (g !== undefined) return Number(0x1000000 + r*0x10000 + g*0x100 + .toString(16).substring(1); else return Number(0x1000000 + r[0]*0x10000 + r[1]*0x100 + r[2]).toString(16).substring(1);} function getRandomArbitrary(min, max){ return Math.random() * (max - min) + min;};(function() { function prepend(obj, name, func) { var orig = obj.prototype[name] obj.prototype[name] = function() { func.call(this) orig.call(this) } } function extend(obj, name, func) { var orig = obj.prototype[name] obj.prototype[name] = function() { orig.call(this) func.call(this) } } var firstTime = 1; var minTimeAchieved = 0; $crt_overlay1 = new Sprite_Base(); $crt_overlay2 = new Sprite_Base(); $crt_overlay3 = new Sprite_Base(); $crt_overlay4 = new Sprite_Base(); $crt_overlay4b = new Sprite_Base(); $crt_overlay5 = new Sprite_Base(); $crt_overlay8 = new Sprite_Base(); $crt_overlay11 = new Sprite_Base(); $crt_glitch_base = new Sprite_Base(); // For BLT corruption $crt_glitch = new Sprite_Base(); // Actual glitch image var overlayList = [$crt_overlay1, $crt_overlay2, $crt_overlay3, $crt_overlay8, $crt_overlay11, $crt_overlay4, $crt_overlay5]; $crt_overlay1.bitmap = ImageManager.loadPicture("crt_phosphor_grid"); $crt_overlay2.bitmap = ImageManager.loadPicture("crt_wave"); $crt_overlay3.bitmap = ImageManager.loadPicture("crt_linedcolor"); $crt_overlay5.bitmap = ImageManager.loadPicture("crt_border_merged"); $crt_overlay8.bitmap = ImageManager.loadPicture("crt_interiorlight"); $crt_overlay1.blendMode = 1; $crt_overlay1.opacity = 40; $crt_overlay1.blendMode = 0; $crt_overlay2.blendMode = 1; $crt_overlay2.opacity = 120; $crt_overlay3.blendMode = 1; $crt_overlay3.opacity = 50; $crt_overlay5.blendMode = 0; $crt_overlay5.opacity = 255; $crt_overlay8.blendMode = 1; $crt_overlay8.opacity = 10; $crt_overlay8.y = 12 $crt_overlay4.bitmap = ImageManager.loadPicture("majorglitch"); $crt_overlay4b.bitmap = ImageManager.loadPicture("majorglitch"); /* var desiredFPS = 1, fpsLimit = 10000/desiredFPS, nextUpdate = 0 $crt_overlay4.update = function() { var now = Date.now()+30*Math.random(); if (now < nextUpdate) { minTimeAchieved = 0; return;} else{ minTimeAchieved = 1; nextUpdate = now + fpsLimit + 5*Math.random(); } }*/ var nextUpdate = 0; $crt_overlay4.update = function(){ var now = Date.now(); if (now <= nextUpdate){ var target = $crt_overlay4.bitmap; var height = SceneManager._screenHeight*Math.random(); var off = SceneManager._screenHeight*Math.random(); $crt_overlay4.bitmap = ImageManager.loadPicture("majorglitch"); //$crt_overlay4.bitmap = ImageManager.loadPicture("crt_phosphor_grid"); //$crt_overlay4.bitmap = Bitmap.snap(); $crt_overlay4.bitmap.clearRect(0,off,SceneManager._screenWidth,height); //return; // myRenderTexture.render(Scene_Base, matrix); } else{ var target = $crt_overlay4.bitmap; var height = SceneManager._screenHeight*Math.random(); var off = SceneManager._screenHeight*Math.random(); var w = SceneManager._screenWidth; var h = SceneManager._screenHeight; if (Math.random() > 0.1){ //target.fillAll("#FF0000"); $crt_overlay4.bitmap.blt( $crt_overlay4b.bitmap , 0, 0, $crt_overlay4b.bitmap.width, $crt_overlay4b.bitmap.height, 0, 0, $crt_overlay4b.bitmap.width, $crt_overlay4b.bitmap.height); //$crt_overlay4.bitmap.blt( $crt_overlay4b.bitmap , 240, SceneManager.scene_Height, $crt_overlay4b.bitmap.height, $crt_overlay4b.bitmap.width, w*Math.random(), h*Math.random()); $crt_overlay4.bitmap = ImageManager.loadPicture("majorglitch"); $crt_overlay4.update(); } target.fillRect( (SceneManager._screenWidth*Math.random()), off+(height*Math.random()), SceneManager._screenWidth,SceneManager._screenHeight,"#FF0000"); target.fillRect( (SceneManager._screenWidth*Math.random()), off+(height*Math.random()), SceneManager._screenWidth,SceneManager._screenHeight,"#00FF00"); target.fillRect( (SceneManager._screenWidth*Math.random()), off+(height*Math.random()), SceneManager._screenWidth,SceneManager._screenHeight,"#0000FF"); var r = Math.floor(256*Math.random()); var g = Math.floor(256*Math.random()); var b = Math.floor(256*Math.random()); var out = "#"+rgb2hex(r,g,; var r = Math.floor(256*Math.random()); var g = Math.floor(256*Math.random()); var b = Math.floor(256*Math.random()); var out2 = "#"+rgb2hex(r,g,; if (Math.random() > 0.5) { var grad = true; } else{ var grad = false; } if (Math.random()> 0.90){ target.gradientFillRect ( Math.random()*w , Math.random()*h , Math.random()*w , Math.random()*h , out , out2, grad ) if (Math.random() > 0.5) { var grad = true; } else{ var grad = false; } var r = Math.floor(256*Math.random()); var g = Math.floor(256*Math.random()); var b = Math.floor(256*Math.random()); var out = "#"+rgb2hex(r,g,; target.gradientFillRect ( Math.random()*w , Math.random()*h , Math.random()*w , Math.random()*h , out , out2, grad ) } target.blt(target, w*Math.random(), h*Math.random(), $crt_overlay4b.bitmap.width, $crt_overlay4b.bitmap.height, w*Math.random(), h*Math.random()); target.blt(target, w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random()); target.blt(target, w*Math.random(), h*Math.random(), $crt_overlay4b.bitmap.width, $crt_overlay4b.bitmap.height, w*Math.random(), h*Math.random()); target.blt(target, w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random()); target.blt(target, w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random()); target.blt(target, w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random()); target.blt(target, w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random(), w*Math.random(), h*Math.random()); $crt_overlay4.bitmap.clearRect(w*Math.random(),h*Math.random(),w,h); //var r = Math.floor(256*Math.random()); //var g = Math.floor(256*Math.random()); //var b = Math.floor(256*Math.random()); //target.adjustTone ( r , g , b ) //target.blendMode = 0; //target.opacity = Math.random()*255; nextUpdate = now + Math.random()*2000; } } function zsorter(a, { if (!a.z && !b.z) return 0 if (!a.z) return -1; if (!b.z) return 1; return a.z - b.z } extend(Scene_Map, 'initialize', function() { for (var i = 0; i < overlayList.length; i++) { overlayList[i].z = i + 1 this.addChild(overlayList[i]) } }) extend(Scene_MenuBase, 'create', function() { $gameSwitches[0] = !$gameSwitches[0]; }) prepend(Scene_Map, 'updateChildren', function() { if($gameSwitches[0] === false){ if(firstTime === 0){ firstTime = 1; $crt_overlay1.visible = false; $crt_overlay2.visible = false; $crt_overlay3.visible = false; $crt_overlay4.visible = false; $crt_overlay8.visible = false; $crt_overlay11.visible = false; } } else{ if (firstTime === 1){ $crt_overlay1.visible = true; $crt_overlay2.visible = true; $crt_overlay3.visible = true; $crt_overlay4.visible = true; $crt_overlay8.visible = true; $crt_overlay11.visible = true; } if (minTimeAchieved == 1){ $crt_overlay11.bitmap = Bitmap.snap(this); $crt_overlay11.opacity = 180*Math.random(); minTimeAchieved = 0; var offx = getRandomArbitrary(-1,1); offx*= Math.floor(Math.random()*2) == 1 ? 1 : -1; offx*= Math.floor(Math.random()*2) == 1 ? 6 : 1; var offy = getRandomArbitrary(-1,1); offy*= Math.floor(Math.random()*2) == 1 ? 1 : -1; offy*= Math.floor(Math.random()*2) == 1 ? 6 : 1; $crt_overlay11.x = offx; $crt_overlay11.y = offy; } else{ $crt_overlay11.opacity = 0; var op = 0+getRandomArbitrary(16,80); $crt_overlay2.opacity = 70; $crt_overlay2.y += 1; if ($crt_overlay2.y >= SceneManager._screenHeight + 180){ $crt_overlay2.y = -180; } $crt_overlay4.opacity = op; $crt_overlay8.opacity = 120+(op*0.001); $crt_overlay4.blendMode = 0; } this.children = this.children.sort(zsorter) } })})()