content/hifi-content/liv/dev/AmusementPark/alien_alert.js
2022-02-14 02:04:11 +01:00

48 lines
No EOL
1.6 KiB
JavaScript

(function() {
var lightID;
var colors = [{red: 255, green: 255, blue: 255 },
{red: 0, green: 255, blue: 0 },
{ red: 0, green: 0, blue: 255 }];
var loop;
var isAttack = false;
var alienListener = function(channel, message, sender){
message = JSON.parse(message);
if (channel == "InvasionChannel" && message.type == 'before_it_all_happens') {
Script.clearInterval(loop);
Entities.editEntity(lightID, {'color' : {red: 255, green: 0, blue: 0}});
isAttack = true;
} else if (channel == "InvasionChannel" && message.type == 'gameover') {
isAttack = false;
Script.setInterval(lightEffect, 10000);
}
}
var lightEffect = function(){
var color = Math.round(Math.random()*3); // one of three random colors
if (!isAttack){
Entities.editEntity(lightID, {'color' : colors[color]});
}
}
var HatEffect = function(){
};
HatEffect.prototype = {
preload: function(entityID){
lightID = Entities.getChildrenIDs(entityID)[0]; //we only have one child, the light
Messages.subscribe("InvasionChannel");
Messages.messageReceived.connect(alienListener);
loop = Script.setInterval(lightEffect, 10000);
},
unload: function(){
Messages.messageReceived.disconnect(alienListener);
Script.clearInterval(loop);
}
};
return new HatEffect();
});