Skip to content

Instantly share code, notes, and snippets.

@SteveKoontz
Created August 30, 2016 23:50
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SteveKoontz/4ba56685ebbfb1c7b0e039ae7c6c13fe to your computer and use it in GitHub Desktop.
Save SteveKoontz/4ba56685ebbfb1c7b0e039ae7c6c13fe to your computer and use it in GitHub Desktop.
if(!state.timer) {
state.timer = {
timercount: 180,
timerinterval: ""
}
}
else {
state.timer = {
timercount: 180,
timerinterval: ""
}
}
var display;
var clocktimer;
on('chat:message', function(msg) {
if(msg.type == 'api' && msg.content.indexOf('!timer') !== -1) {
startclock();
}
else if(msg.type == 'api' && msg.content.indexOf('!reset') !== -1) {
log(display);
if(display === undefined) {
startclock();
}
state.timer.timercount = 180;
track30.set('playing',false);
track60.set('playing',false);
sendChat(msg.who, "/em pushed the button.");
}
});
var startclock = function() {
var pageid = Campaign().get("playerpageid");
var page = getObj("page", pageid);
var pagetop = (page.get("height") * 70) / 2;
var pageleft = (page.get("width") * 70) / 2;
track30 = findObjs({type: 'jukeboxtrack',title: '30 Seconds'})[0];
track60 = findObjs({type: 'jukeboxtrack',title: '60 Seconds'})[0];
display = findObjs({
_pageid: pageid,
_type: "text",
top: pagetop,
left: pageleft,
layer: "map"
})[0];
if(!display) {
createObj("text", {
pageid: pageid,
top: pagetop,
left: pageleft,
layer: "map",
color: "rgb(255, 255, 255)",
font_size: 56,
font_family: "Contrail",
text: state.timer["timercount"].toString()
});
display = findObjs({
_pageid: pageid,
_type: "text",
top: pagetop,
left: pageleft,
layer: "map"
})[0];
}
clocktimer = setInterval(interval, 1000);
}
var interval = function() {render(display);}
var render = function(display) {
state.timer.timercount = state.timer.timercount - 1;
var minutes = Math.floor(state.timer.timercount / 60);
var seconds = state.timer.timercount - (minutes * 60);
if(seconds < 10) {seconds = "0" + seconds};
var output = minutes + ":" + seconds;
var textcolor = state.timer.timercount > 60 ? "rgb(255, 255, 255)" : "rgb(206, 32, 41)";
display.set({
text: output,
color: textcolor
});
if(state.timer.timercount < 1) {
clearInterval(clocktimer);
track30.set('playing',false);
track60.set('playing',false);
}
else if(state.timer.timercount < 31) {
if(track60 && track60.get('playing') === true) {
track60.set('playing',false);
}
if(track30 && track30.get('playing') === false) {
log(track30);
track30.set({playing: true, loop: true, volume: 100});
}
}
else if(state.timer.timercount < 61) {
if(track60 && track60.get('playing') === false) {
track60.set({playing: true, loop: true, volume: 100});
}
// if(track30 && track30.get('playing') === true) {
// track30.set('playing',false);
// }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment