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

142 lines
3.2 KiB
JavaScript

Game.addToManifest({
gun: "sprites/peeps/gun.json",
gun_cock: "sounds/gun_cock.mp3"
});
/****
Same. Except....
A GUN.
Gun MC:
00-17: pulling it out.
****/
function EvilHatPeep(scene){
var self = this;
Peep.apply(self, [scene]);
self._CLASS_ = "EvilHatPeep";
// Add the body & GUN sprites
self.gunMC = self.addMovieClip("gun");
self.gunMC.gotoAndStop(0);
self.bodyMC = self.addMovieClip("hatguy");
self.bodyMC.gotoAndStop(0);
// Position.
self.loop = false;
self.x = -300;
//self.x = 300; // HAAAACK
self.y = 470;
self.direction = 0;
// WHO TO KILL
self.victim = null; // plz tell this peep.
self.freezeEveryone = null; // plz tell this peep.
self.bang = null; // plz tell this peep.
// Goes through the spot...
var doubles = 0;
var MODE = 0;
MODE_WALK = 0;
MODE_GUN = 1;
self.goThroughSpots = true;
self.callbacks.update = function(){
if(self.x>420 && !self.isMurdering){
self.itsMurderTime();
}
// Animate on triples.
doubles = (doubles+1)%3;
var gun = self.gunMC;
var frame = gun.currentFrame;
if(doubles==0){
switch(MODE){
case MODE_GUN:
if(frame<17) gun.gotoAndStop(frame+1);
break;
}
}
// SPEED ONLY WHEN SEEN
if(MODE==MODE_WALK){
self.speed = scene.director.isWatchingTV ? 0 : 1.25;
}
};
// WEIRD WALK
self.walkAnim = function(){
// Hop & flip
self.hop += self.speed/40;
if(self.hop>1) self.hop--;
self.flip = (self.vel.x<0) ? -1 : 1;
// Hop up & down
var t = self.hop*Math.TAU;
var g = self.graphics;
g.rotation = Math.sin(t)*0.2;
g.pivot.y = Math.abs(Math.sin(t))*7;
};
// WOBBLE IN PLACE
/*self.standAnim = function(){
// Hop & flip
self.hop += self.speed/200;
if(self.hop>1) self.hop--;
// Hop up & down
var t = self.hop*Math.TAU;
var g = self.graphics;
g.rotation = Math.sin(t)*0.035;
g.pivot.y = 0;
};*/
// IT'S MURDER TIME
self.isMurdering = false;
self.hasGunOut = false;
self.pauseAnimsWhenNotWatching = true;
self.itsMurderTime = function(){
// STOP.
self.isMurdering = true;
self.stopWalking();
self.bounce = 1.2;
// Half Beat.
// Happy Smiles at you.
self.setTimeout(function(){
self.victim.smile();
},_s(0.5));
// +1.5 beats.
// Pull out gun. Happy frowns.
// AND EVERYONE FREEZES.
self.setTimeout(function(){
self.hasGunOut = true;
Game.sounds.bg_park.stop(); // STAHP.
Game.sounds.gun_cock.play(); // SOUND
MODE = MODE_GUN;
},_s(0.5+1.5));
self.setTimeout(function(){
self.freezeEveryone();
self.victim.frown();
},_s(0.5+1.5+0.5));
// +4 beats.
// BANG.
self.setTimeout(function(){
Game.sounds.gunshot.play();
self.bang();
},_s(0.5+1.5+4.0));
}
}