Apps Home
|
Create an App
woodscrewtree
Author:
grillcouchpipe
Description
Source Code
Launch App
Current Users
Created by:
Grillcouchpipe
var roomMembers = {}; var currentLevel = 0; var currentVote = 0; var VOTE_STRINGS = ['slower', 'faster']; INSTRUCTIONS = 'Type "/faster" or "/slower" to vote to increase the level from 1-10 \nYou can only vote once per minute \n Your vote is worth more the longer you spend in the room \nThe level will reset every 10 minutes', cb.onEnter(function(user) { if (roomMembers[user.user] === undefined) { roomMembers[user.user] = { voteStatus: 0, voteWeight: 1, joined: Date.now() } } else { roomMembers[user.user].joined = Date.now(); roomMembers[user.user].voteWeight = 1; cb.sendNotice('Vote weight reset', user.user); } cb.sendNotice(INSTRUCTIONS, user.user, '#0000F2', '#FFFFFF', 'bold'); }); cb.onMessage(function(message) { if (message.user === cb.room_slug) { if (message.m === 'reset') { currentLevel = 0; message.m = ''; return message; } } if (roomMembers[message.user] === undefined) { roomMembers[message.user] = { voteStatus: 0, voteWeight: 1, joined: Date.now() } } if (message.m.toLowerCase().includes('faster') === true) { handleVote(message.user, 'faster'); } else if (message.m.toLowerCase().includes('slower') === true) { handleVote(message.user, 'slower'); } return message; }); cb.setTimeout(voteWeightTimeout, 9e5); function voteWeightTimeout() { var now = Date.now(); for (var user in roomMembers) { if (now - roomMembers[user].joined > 6e5) { roomMembers[user].voteWeight += 1; cb.log(roomMembers[user].voteWeight); cb.sendNotice('Vote weight increased to ' + roomMembers[user].voteWeight, user) } } cb.setTimeout(voteWeightTimeout, 9e5); } // Timer for vote reset cb.setTimeout(voteResetTimeout, 6e4); function voteResetTimeout() { resetVotes(); if (currentLevel > 6) { cb.setTimeout(voteResetTimeout, 4e4); } else { cb.setTimeout(voteResetTimeout, 12e4); } } // Timer to incr/decr level based on result of vote cb.setTimeout(voteEvaluateTimeout, 6e4); function voteEvaluateTimeout() { var result = null; if (currentVote > 0) { currentLevel += 1; result = 'increased to ' } else if (currentVote < 0) { currentLevel -= 1; result = 'decreased to ' } else { result = 'stayed at '; } cb.sendNotice('Voting complete. Level ' + result + currentLevel); cb.changeRoomSubject('Current level ' + currentLevel); currentVote = 0; cb.setTimeout(voteEvaluateTimeout, 6e4); } // Timer for level reset cb.setTimeout(levelResetTimeout, 6e5); function levelResetTimeout() { currentLevel = 0; cb.sendNotice('10 minutes - level reset'); cb.sendNotice('The current level is 0'); cb.sendNotice( 'Send the message "faster" or "slower" to vote \nYou can only vote once per minute \n Your vote is worth more the longer you spend in the room \nThe level will reset every 10 minutes', user.user, '#FFFFFF', '#000000', 'bold' ); cb.setTimeout(levelResetTimeout, 6e5); } function handleVote(user, voteString) { if (canVote(user) === true) { if (voteString === 'faster') { currentVote += roomMembers[user].voteWeight; } else if (voteString === 'slower') { currentVote -= roomMembers[user].voteWeight; } roomMembers[user].voteStatus = 1; var winningText = null; if (currentVote >= 0) { winningText = 'Faster'; } else { winningText = 'Slower'; } cb.sendNotice('Voted for ' + voteString + '! ' + voteString.charAt(0).toUpperCase() + voteString.slice(1) + ' is winning by ' + Math.abs(currentVote), user); } else { cb.sendNotice('Vote discarded. Only one vote per minute allowed', user); } } function canVote(user) { return roomMembers[user].voteStatus === 0 } function resetVotes() { for (var user in roomMembers) { roomMembers[user].voteStatus = 0; } }
© Copyright Chaturbate 2011- 2025. All Rights Reserved.