Apps Home
|
Create an App
Surprise Goal!
Author:
lollaptop
Description
Source Code
Launch App
Current Users
Created by:
Lollaptop
cb.settings_choices = [ {name: 'finality_message', label: 'Final Goal Met Subject', type: 'str', minLength: 1, maxLength: 255, defaultValue: 'All goals reached! Thanks to all tippers!'}, {name:'goalTarget1', label: 'Goal 1 Target', type:'int', minValue:1, defaultValue: 200}, {name:'goalDesc1', label:'Goal 1 Description', type:'str', minLength: 1, maxLength: 255}, {name:'goalTarget2', label: 'Goal 2 Target', type:'int', minValue:1, defaultValue: 200, required: false}, {name:'goalDesc2', label:'Goal 2 Description', type:'str', minLength: 1, maxLength: 255, required: false}, {name:'goalTarget3', label: 'Goal 3 Target', type:'int', minValue:1, defaultValue: 200, required: false}, {name:'goalDesc3', label:'Goal 3 Description', type:'str', minLength: 1, maxLength: 255, required: false}, {name:'goalTarget4', label: 'Goal 4 Target', type:'int', minValue:1, defaultValue: 200, required: false}, {name:'goalDesc4', label:'Goal 4 Description', type:'str', minLength: 1, maxLength: 255, required: false}, {name:'goalTarget5', label: 'Goal 5 Target', type:'int', minValue:1, defaultValue: 200, required: false}, {name:'goalDesc5', label:'Goal 5 Description', type:'str', minLength: 1, maxLength: 255, required: false}, {name:'goalTarget6', label: 'Goal 6 Target', type:'int', minValue:1, defaultValue: 200, required: false}, {name:'goalDesc6', label:'Goal 6 Description', type:'str', minLength: 1, maxLength: 255, required: false}, {name:'goalTarget7', label: 'Goal 7 Target', type:'int', minValue:1, defaultValue: 200, required: false}, {name:'goalDesc7', label:'Goal 7 Description', type:'str', minLength: 1, maxLength: 255, required: false}, {name:'goalTarget8', label: 'Goal 8 Target', type:'int', minValue:1, defaultValue: 200, required: false}, {name:'goalDesc8', label:'Goal 8 Description', type:'str', minLength: 1, maxLength: 255, required: false} ]; var goalProgress = 0; //Progress towards goal var goalsArray = [goal]; //Array of goals var goalCounter = 0; //Current goal var goalStart = cb.settings.goalTarget1; //Add goals in settings to goalsArray for (var i = 0; i < 8; i++) { var vDesc = eval("cb.settings.goalDesc"+(i+1)); if(eval(vDesc == "")){ break; } var goal = {goal: eval("cb.settings.goalTarget"+(i+1)), goalText: eval("cb.settings.goalDesc"+(i+1)), hitter:"" }; goalsArray[i] = goal; } cb.onTip(function (tip) { goalProgress += parseInt(tip['amount']) checkGoals(tip); return 0; }); cb.onDrawPanel(function(user) { var vLabel1; var vValue1; var vValue2; var vValue3; if(goalCounter < goalsArray.length) { vLabel1 = "Goal - " + goalsArray[goalCounter].goalText + ':'; vValue1 = goalProgress + " Tokens towards goal:"; } else { vLabel1 = "Final goal reached:"; vValue1 = "Tip Jar still active"; } if(goalCounter == 0) { vValue2 = "None"; vValue3 = "None"; } else { vValue2 = goalsArray[goalCounter - 1].goalText + " - " + goalsArray[goalCounter - 1].goal + " tokens"; vValue3 = goalsArray[goalCounter - 1].hitter } return { 'template': '3_rows_of_labels', 'row1_label': vLabel1, 'row1_value': vValue1, 'row2_label': 'Last goal:', 'row2_value': vValue2, 'row3_label': 'Goal hit by:', 'row3_value': vValue3 }; }); function updateRoom() { if (goalsArray.length == goalCounter) { cb.changeRoomSubject(cb.settings.finality_message); } else { cb.changeRoomSubject(goalsArray[goalCounter].goalText + ": " + (goalStart - goalProgress) + " remaining"); } cb.drawPanel(); return 0; } function alertBroadcaster(vMessage, vColour){ if (cb.settings.broadcaster_notification == "Yes") { cb.sendNotice(vMessage, cb.room_slug, vColour, "#000000", "bold"); } return } function checkGoals(tip) { goalStart = goalsArray[goalCounter].goal; while (goalProgress >= goalStart) { goalProgress -= goalStart; cb.chatNotice("Goal reached: " + goalsArray[goalCounter].goalText); alertBroadcaster("GOAL REACHED: " + goalsArray[goalCounter].goalText, "#FF7900"); goalsArray[goalsCounter].hitter = tip['from_user']; goalCounter++; goalStart = goalsArray[goalCounter].goal; alertBroadcaster("NEW GOAL: " + goalsArray[goalCounter].goalText, "#FF7900"); } updateRoom(); return 0; } //commands and junk cb.onMessage(function (msg) { if (msg['user'] == cb.room_slug) { //Only accept commands from the broadcaster msg['X-Spam'] = true; msg['m'] = msg['m'].trim(); var msgArray = msg['m'].split(" "); //Split each word into an array //All commands must be below this line //All commands above this line } return msg; }); updateRoom();
© Copyright Chaturbate 2011- 2025. All Rights Reserved.