// vars
var times_goal_reached = 0;
var last_time_goal_reached = null;
var current_goal_tipped = 0;
cb.settings_choices = [
{name: 'tokens', type: 'int', minValue: 1, default: 100},
{name: 'goal_description', type: 'str', minLength: 1, maxLength: 255}
];
// handlers
cb.onTip(function(tip) {
current_goal_tipped += tip['amount']
if (current_goal_tipped >= cb.settings.tokens) {
goalReached();
}
update_subject();
cb.drawPanel();
});
cb.onDrawPanel(function(user) {
if (times_goal_reached == 0) {
return {
'template': '3_rows_of_labels',
'row1_label': 'Received / Goal (Total):',
'row1_value': '' + current_goal_tipped + ' / ' + cb.settings.tokens + ' (' + ((times_goal_reached * cb.settings.tokens) + current_goal_tipped) + ')',
'row2_label': 'Hit Goal For:',
'row2_value': '' + times_goal_reached + ' times',
'row3_label': 'Last Reached:',
'row3_value': 'Never'
};
} else {
return {
'template': '3_rows_of_labels',
'row1_label': 'Received / Goal (Total):',
'row1_value': '' + current_goal_tipped + ' / ' + cb.settings.tokens + ' (' + ((times_goal_reached * cb.settings.tokens) + current_goal_tipped) + ')',
'row2_label': 'Hit Goal For:',
'row2_value': '' + times_goal_reached + ' times',
'row3_label': 'Last Reached:',
'row3_value': '' + Math.floor(((new Date()).getTime() - last_time_goal_reached.getTime()) / 60000) + ' minutes ago'
};
}
});
// Functions
function refresh() {
cb.log("Refresh called");
cb.setTimeout(refresh, 20000);
cb.drawPanel();
}
function update_subject() {
var new_subject = cb.settings.goal_description +
" [" + tips_remaining() + " tokens remaining]";
cb.log("Changing subject to: " + new_subject);
cb.changeRoomSubject(new_subject);
}
function goalReached() {
last_time_goal_reached = new Date();
var curr_times_reached = Math.floor(current_goal_tipped / cb.settings.tokens);
for (var i = 0; i < curr_times_reached; i++) {
times_goal_reached++;
current_goal_tipped -= cb.settings.tokens;
cb.chatNotice("Goal was reached for the " + getNumberString(times_goal_reached) + " time!");
}
}
function getNumberString(number) {
var numberString = null;
if (number == 1) {
numberString = "1st";
} else if (number == 2) {
numberString = "2nd";
} else if (number == 3) {
numberString = "3rd";
} else {
numberString = "" + number + "th";
}
return (numberString);
}
function tips_remaining() {
var r = cb.settings.tokens - current_goal_tipped;
if (r < 0) {
return 0;
} else {
return r;
}
}
function init() {
update_subject();
}
init();
cb.setTimeout(refresh, 20000);



يسعدنا تفاعلكم بالتعليق، لكن يرجى مراعاة الشروط التالية لضمان نشر التعليق
1أن يكون التعليق خاص بمحتوى التدوينة
2أن لا تضع أي روابط خارجية
3لاضافة كود حوله اولا بمحول الاكواد
4أي سؤال خارج محتوى التدوينة يرجى استخدام ركن الأسئلة محول الأكوادمحول الأكواد الإبتساماتالإبتسامات