1
0
forked from sent/waves
waves/public/assets/g/wbwwb/js/scenes/Scene_Game.js
2025-04-09 17:11:14 -05:00

99 lines
2.2 KiB
JavaScript

/************************************
THE GAME SCENE. THE BIG 'UN.
ACT I - Teaching controls, showing main feedback loop
ACT II - Crazed Square, Nervous Circle, Snobby Square...
ACT III - Angry escalation! And lovers protest!
ACT IV - MURDER AND VIOLENCE AND AHHHHHH. #BeScaredBeAngry
(different scene...)
ACT V - Post-credits peace
*************************************/
function Scene_Game(){
var self = this;
Scene.call(self);
////////////
// SET UP //
////////////
// Graphics!
var g = new PIXI.Container();
self.graphics = g;
Game.stage.addChild(g);
// Set Up Everything
self.world = new World(self);
self.camera = new Camera(self);
self.director = new Director(self);
self.tv = new TV(self);
self.world.addProp(self.tv);
// Special effects!
self.scale = 1;
self.x = self.y = self.offX = self.offY = 0;
self.shaker = new ScreenShake(self);
self.zoomer = new ScreenZoomOut(self);
// Avoid these spots.
self.avoidSpots = [];
// UPDATE
self.update = function(){
self.world.update();
self.camera.update();
self.director.update();
// This order is important
self.zoomer.update();
self.shaker.update();
g.scale.x = g.scale.y = self.scale;
g.x = self.x + self.offX;
g.y = self.y + self.offY;
self.zoomer.fixLaptop(); // hack.
// TOTALLY A HACK
var ratio = self.zoomer.timer/self.zoomer.fullTimer;
ratio = (1-ratio)/1;
self.shaker.baseAlpha = 0.15 + ratio*0.45;
};
// TO IMPLEMENT
self.kill = function(){};
// Going to a Stage
self.go = function(sceneFunc){
sceneFunc(self);
self.update();
};
/////////////
// FADE IN //
/////////////
var blackout = MakeSprite("blackout");
Game.stage.addChild(blackout);
Tween_get(blackout).to({alpha:0}, _s(BEAT), Ease.quadInOut).call(function(){
Game.stage.removeChild(blackout);
});
////////////
// STAGES //
////////////
Stage_Start(self);
Stage_Hat(self);
//Stage_Lovers(self);
//Stage_Screamer(self, true);
//Stage_Nervous(self, true);
//Stage_Snobby(self, true);
//Stage_Angry_Escalation(self, true);
//Stage_Evil(self, true);
}