Apps Home
|
Create an App
kingdom
Author:
main_account
Description
Source Code
Launch App
Current Users
Created by:
Main_Account
/* /help text */ var guardsx = 'Guards guide-lines\nRules: As a guard, you are here to keep the peace, and to organize any chaos.\n1. If a member of the kingdom finds the hidden crown; you are to give them the rank they desire, and inform me of there request.\n2.If someone is spamming or if someone is disturbing other members of the kingdom, you have the power to bestow a special rank upon them, The Town Drunk.\nTips\nHow to give ranks: To give a rank simply type ~username,number equal to rank Ex(~main_account,50). Do not give anyone the value of 0.\nHow to bestow the town drunk:To change someone to a town drunk type drunk:username=true Ex(drunk:main_account=true). You can easily reverse it by typing the same command again, but turn the true to false. Everything is case sensitive. It is advised to copy and past usernames for convenience.' var roguex = "Rogue Spells\n Hide: Blend in with your surroundings. How: type hide:username (replace username with the real username) into chat.(you can use once every three minutes)\n Pickpocket: steal 10 coins from a player and add them to your collection. How: type pickpocket:username (replace username with the real username) into chat.(you can use once every three minutes)" var healerx = "Healer Spells\n Rise: Increase a user by 1 rank. How: type rise:username (replace username with the real username) into chat.(you can use once every three minutes)\n Blend: Change the color of you messages. How: type blend:color (replace color with your color) into chat.(you can use once every three minutes)" var warriorx = "Warrior Spells\n Shout: Strike fear into all enemies. How: type shout:true into chat.(you can use once every three minutes)\n Knockout: Incapacitate a user. How: type knockout:username (replace username with the real username) into chat.(you can use once every three minutes)" var magex = "Mage Spells\n Transform: Turn a user into an animal. How: type transform:username (replace username with the real username) into chat.(you can use once every three minutes)\n Silver-tongue: hinder a users speech. How: type silver-tongue:username (replace username with the real username) into chat.(you can use once every three minutes)" var exorcistx = "Exorcist Spells\n Haunt: Have a ghost send secret messages to a user for you. How: haunt:username , type as many messages as you want, then to turn it off, type off into chat\n Cleanse: Clears away any mess a witch has left behind. How: type the word cleanse into chat." var witchx = "Witch Spells\n Plague: Spread your dark magic to all members of the kingdom. How: type plague:on into chat.(Note: only a exorcist can cure the plague spell.)" function helpMenu(user){ cb.sendNotice("Information for guards. : /guards",user,"fff","#797979"); cb.sendNotice("Information for the holy knight : has the same powers as /guards",user,"fff","#ff7800") cb.sendNotice("View all spells. : /spells",user,"#fff","#7c00ea"); cb.sendNotice("All rogue spells : /rogue",user,"#fff","#01a735"); cb.sendNotice("All healer spells : /healer",user,"#fff","#ff00de"); cb.sendNotice("All mage spells : /mage",user,"#fff","#0018d2"); cb.sendNotice("All warrior spells : /warrior",user,"#fff","#ff0000"); cb.sendNotice("All exorcist spells : /exorcist",user,"#fff","#432267"); cb.sendNotice("All witch spells : /witch",user,"#fff","#144218") } function spells(user){ cb.sendNotice(magex,user,"#fff","#5d6fff"); cb.sendNotice(healerx,user,"#fff","#FFC0CB"); cb.sendNotice(warriorx,user,"#fff","#ff002d"); cb.sendNotice(roguex,user,"#fff","#14c500"); cb.sendNotice(exorcistx,user,"#fff","#131313") cb.sendNotice(witchx,user,"#fff","#a500b7") } function randomNum(min, max) { return Math.floor(Math.random() * (max - min)) + min; } var lucky_number = randomNum(1,41); var lucky_tipper = ""; var high_tipper = ""; var royals = { peasant: { min: 1, color: "#55c7ff", title: "Peasant", welcome: "start from the bottom, then rise your way to the top!", icon: ":peasanticon", bgColor: "#FFFFFF" }, servant: { min: 10, color: "#ec8787", title: "Servant", welcome: "you are now trusted enough to enter the castle.", icon: ":servanticon", bgColor: "rgba(255, 192, 203, .5)" }, jester: { min: 20, color: "#ec8787", title: "Royal Jester", welcome: "many have come to know your name, you are quite the entertainer.", icon: ":jestericon", bgColor: "rgba(0, 255, 0, 0.3)" }, baron: { min: 30, color: "#008000", title: "Baron", welcome: "manage your new land well.", icon: ":baronicon", bgColor: "rgba(0, 255, 255, .3)" }, knight: { min: 40, color: "#ff5b34", title: "Knight", welcome: "prepare to fight for your king!", icon: ":knightIcon", bgColor: "rgba(255, 138, 0, 0.3)" }, duke: { min: 50, color: "#0000ff94", title: "Duke", welcome: "enjoy your growing domain.", icon: ":dukeicon", bgColor: "rgba(127, 255, 212, .7)" }, vassal: { min: 60, color: "#c317bd", title: "Vassal", welcome: "you can now visit the royal court", icon: ":vassalicon", bgColor: "rgba(0, 152, 255, 0.38)" }, priest: { min: 80, color: "#ff0097e0", title: "High Priest", welcome: "pray for your king!", icon: ":priesticon", bgColor: "rgba(255, 0, 203, 0.18)" }, lord: { min: 100, color: "#EA7AF4", title: "Lord", welcome: "council your king with your best advice.", icon: ":lordicon", bgColor: "rgba(195, 255, 0, 0.31)" } }; var specials = { randomlines: { type: 'wizard', color: "#8a2be2", title: "Wizard", welcome: "the hidden tower awaits!", icon: ":wizardicon", super: true }, prince:{bgColor:"#897eca",color:"#6ce890",title:"Prince",welcome:"you bow before no man.",icon:":princeicon",super:false} }; var classes = { mage:{icon:":mageGem",powers:["transform","silver-tongue"],bgColor:"rgba(47, 123, 255, 0.34)",func:"BlueSpell",name:"Mage",num:0}, healer:{icon:":healerGem",powers:["rise","blend"],bgColor:"rgba(191, 80, 80, 0.29)",func:"PinkSpell",name:"Healer",num:1}, warrior :{icon:":warriorGem",powers:["shout","knockout"],bgColor:"rgba(255, 0, 0, 0.53)",func:"RedSpell",name:"Warrior",num:2}, rogue:{icon:":rogueGem",powers:["hide","pickpocket"],bgColor:"rgba(37, 162, 27, 0.49)",func:"GreenSpell",name:"Rogue",num:3}, /*specials (duo class option)*/ exorcist:{icon:":exorcistGem",powers:["haunt","cleanse"],color:"white",func:"WhiteSpell",name:["Theurgist","Witch Doctor","Paladin","Shadow Scout","Exorcist"]}, witch:{icon:":witchGem",powers:["plague",""],color:"black",func:"BlackSpell",name:["Necromancer","White Witch","Black Knight","Assassin","Witch"]}, monk:{icon:":monkGem",powers:["",""],color:"yellow",func:"YellowSpell",name:["Nature Magician","","","","Monk"]}, bard:{icon:"bardGem",powers:["",""],color:"orange",func:"OrangeSpell",name:["Blue Mage","Caster","","Thief","Bard"]}, dragonTrainer:{icon:"dragonGem",powers:["",""],color:"#B80F0A",func:"CrimsonSpell",name:["Red Mage","Battle Priest","Dragon Knight","","Dragon Trainer"]}, illusionist:{icon:"illusionistGem",powers:["",""],color:"purple",func:"PurpleSpell",name:["Summoner","","Warlord","Ninja","Illusionist"]} }; var basicQue = []; var advancedQue = []; /*Sort the royals dictionary, so its not in random order*/ var sorted = Object.keys(royals).map(function (royal) { return { min: royals[royal].min, type: royal }; }).sort(function (a, b) { return b.min - a.min }); var tippers = {}; var kingdom = {}; var advanced_citizen = {}; var bestow = function (user) { if (specials[user]) { return; } if (!tippers[user].tips) { if (tippers[user].type) { delete kingdom[tippers[user].type][user]; } tippers[user].type = null; return; } for (var i = 0; i < sorted.length; ++i) { var level = sorted[i]; if (tippers[user].tips >= level.min) { if (tippers[user].type !== level.type) { kingdom[level.type] = kingdom[level.type] || {}; kingdom[level.type][user] = true; if (tippers[user].type) { delete kingdom[tippers[user].type][user]; } tippers[user].type = level.type; var props = royals[level.type]; cb.sendNotice("Welcome " + user + " The " + props.title + " to your new title, " + props.welcome + "\nYou have unlocked special gifs, simply type :king" + level.type + "1,2,3 or 4 (include the colon)", user, '#ffffff', '#bc02e8'); } return; } } }; /* This is the function for /kingdom */ var details = function (user) { cb.sendNotice('------ Behold, our glorious kingdom...', user); for (var i = 0; i < sorted.length; ++i) { var level = sorted[i]; var props = royals[level.type]; var peeps = kingdom[level.type]; if (peeps) { cb.sendNotice(props.icon + ' ' + props.title + 's: ' + Object.keys(peeps).join(', '), user, '#ffffff', props.color); } } }; /*End*/ cb.onEnter(function (user) { /*Welcome message*/ cb.sendNotice('Hello traveler, your king wants to invite you to his kingdom and give you the chance to rise to power. The amount you tip determines your rank in the kingdom, the choice is yours.', user.user, '#ffffff', '#ff0000'); /*If a user had a rank, give it to them again when they come in*/ if(!tippers[user.user]){ tippers[user.user] = tippers[user.user] || {tips : 0}; tippers[user.user].tips += 1; bestow(user.user); } /*Constant rank for ardo50*/ if(user.user == "ardo50"){ tippers["ardo50"].tips = 30; bestow("ardo50"); } }); cb.onTip(function (tip) { /*Check for holy knight*/ if(tip.amount === lucky_number && lucky_tipper === ""){ lucky_tipper = tip.from_user; specials[lucky_tipper] = {type: 'Holy Knight', color: "#0f00ff", title: "Holy Knight", icon: ":holyknighticon", super: true, bgColor: "#f0ff00" }; cb.sendNotice('The sword has chosen you brave knight, its great power is now yours.',tip.from_user, '#f0ff00', '#ff0000'); } /*Add to users tip amount*/ tippers[tip.from_user] = tippers[tip.from_user] || {tips : 0}; tippers[tip.from_user].tips += parseInt(tip.amount); /*Class checker*/ if(tippers[tip.from_user].tips >= 200){ if(!advanced_citizen[tip.from_user]){ advanced_citizen[tip.from_user] = {basicClass:null,advancedClass:null,time:0,baseAmount:0,rotateClass:false}; cb.sendNotice("You have done well with your training; you may now choose a class to aid in your travels.\n\nClass options: mage|healer|warrior|rogue \n\n Type your answer below\n*************************************************",tip.from_user,'#fff','#02ca00'); basicQue.push(tip.from_user); } else if (advanced_citizen[tip.from_user] && tippers[tip.from_user].tips >= 300 && advanced_citizen[tip.from_user].advancedClass == null){ cb.sendNotice("You have unlocked duo class mode, pick from the advanced classes below. \n\n Class options: exorcist|witch| \n\n Type your answer below\n*************************************************",tip.from_user,'#fff','#b100d0'); advanced_citizen[tip.from_user].baseAmount = tippers[tip.from_user].tips; if(!advancedQue.includes(tip.from_user)){ advancedQue.push(tip.from_user); } } else if (advanced_citizen[tip.from_user] && (advanced_citizen[tip.from_user].baseAmount + 100) <= tippers[tip.from_user].tips){ advanced_citizen[tip.from_user].baseAmount = tippers[tip.from_user].tips; advanced_citizen[tip.from_user].rotateClass = true; cb.sendNotice("you may pick a new basic or advanced class if you wish.\n Options: warrior|healer|rogue|mage|witch|exorcist",tip.from_user,'#fff','#02ca00'); } } /*Find the highest tipper*/ var tipper_list = [["dummy",0]]; for (var key in tippers) { if(tippers[key].tips < 200){ tipper_list.push([key,tippers[key].tips]); } } tipper_list.sort(function(a, b) { return a[1] - b[1]; }); var old_tipper = high_tipper; high_tipper = tipper_list[tipper_list.length - 1][0]; if(old_tipper != high_tipper){ cb.sendNotice('You are now a Prince, ' + specials.prince.welcome, high_tipper, '#ff0000', '#ffffff'); } /*Give user new rank*/ if(tip.from_user != high_tipper && tip.from_user != lucky_tipper){ bestow(tip.from_user); } }); /*Regular expression matches*/ var drunks = {} var drunkReg = /^drunk:(.+)=(true|false)/; var modReg = /^G:(.+)$/; var masterKeyReg = /^\~([^\:]+)\,(\+)?(\d+)$/; var gifReg = /\:((?:king(peasant|servant|jester|baron|knight|duke|vassal|priest|lord)\d+)|(?:(peasant|servant|jester|baron|knight|duke|vassal|priest|lord)icon))/g; var powerReg = /(\S+):(\S+)/; /*Town drunk var and methods*/ var time = null; var sentenceCount = -1; var sentenceList = ["Im sorry!","Please forgive me!","Want me to shine your shoes?","Your so smart" ] function getSentence(array){ sentenceCount ++; if (sentenceCount >= array.length){ sentenceCount = 0; } return sentenceList[sentenceCount]; } /*End*/ cb.onMessage(function (message) { /*Master controls*/ if (message.user == "main_account" || specials[message.user]) { var parts = message.m.match(masterKeyReg); var mod_match = message.m.match(modReg); var drunk_match = message.m.match(drunkReg); if(drunk_match){ drunks[drunk_match[1]] = {bool:drunk_match[2],time:null} message.m = 'hmm'; } /*Guards code*/ if(message.user == "main_account" && mod_match && !specials[mod_match[1]]){ specials[mod_match[1]] = {type: 'Guard', color: "#ffffff", title: "Guard", icon: ":guardicon", super: true, bgColor: "#000000"}; } else if (message.user == "main_account" && mod_match && specials[mod_match[1]]){ delete specials[mod_match[1]]; } /*End*/ if (parts) { var user = parts[1]; var relative = !!parts[2]; var amount = parseInt(parts[3]); tippers[user] = tippers[user] || {tips : 0}; tippers[user].tips = (relative ? tippers[user].tips : 0) + amount; bestow(user); } } /*Town drunk data*/ var drunk_boolean = null try{ if(drunks[message.user].bool == 'true'){ drunk_boolean = true; } else{ drunk_boolean = false; } } catch(err){ drunk_boolean = false; } /* /help command */ if(message.m === '/help'){ helpMenu(message.user); message['X-Spam'] = true; return message; } /* /guards command */ if(message.m == "/guards"){ cb.chatNotice(guardsx,message.user,"#fff","#797979"); } /* /spells command */ if(message.m === '/spells'){ spells(message.user); } /* /rogue command */ if(message.m == "/rogue"){ cb.sendNotice(roguex,message.user,"#fff","#01a735"); } /* /mage command */ if(message.m == "/mage"){ cb.sendNotice(magex,message.user,"#fff","#0018d2"); } /* /warrior command */ if(message.m == "/warrior"){ cb.sendNotice(warriorx,message.user,"#fff","#ff0000"); } /* /healer command */ if(message.m == "/healer"){ cb.sendNotice(healerx,message.user,"#fff","#ff00de"); } /* /witch command */ if(message.m == "/witch"){ cb.sendNotice(witchx,message.user,"#fff","#144218"); } /* /exorcist command */ if(message.m == "/exorcist"){ cb.sendNotice(exorcistx,message.user,"#fff","#432267"); } /* /kingdom command */ if (message.m === '/kingdom') { details(message.user); message['X-Spam'] = true; return message; } /*Gif filter*/ var royal = (specials[message.user] ? { type: specials[message.user].type } : tippers[message.user]); if (!specials[message.user] || !specials[message.user].super) { message.m = message.m.replace(gifReg, function ($0, gif, type1, type2) { var type = type1 || type2; if (!royal || royal.type !== type) { return ""; } return ":" + gif; }); } /*Town drunk checker and spam checker*/ var date = new Date(); if(drunk_boolean === true && drunks[message.user].time == null){ cb.sendNotice(message.m,'main_account'); message.c = '#f49104'; message.m = "The Town Drunk :drunkicon : " + getSentence(sentenceList); drunks[message.user].time = date.getSeconds(); return message; } else if(drunk_boolean === true && drunks[message.user].time != null){ var nTime = date.getSeconds(); if(Math.abs(nTime - drunks[message.user].time) >= 5){ cb.sendNotice(message.m,'main_account'); message.c = '#f49104'; message.m = "The Town Drunk :drunkicon : " + getSentence(sentenceList); drunks[message.user].time = date.getSeconds(); return message; } else{ cb.sendNotice(message.m,'main_account'); cb.sendNotice("no,no; dont spam, just say your sorry.",message.user,'#f00','#fff'); message['X-Spam'] = true; message.m = "This message has been erased."; return message; } } /*Check if new class recruit has picked a class*/ //basic classes if(basicQue.includes(message.user) && (message.m == "mage" || message.m == "healer" || message.m == "warrior" || message.m == "rogue")){ cb.chatNotice("problem"); advanced_citizen[message.user].basicClass = message.m; delete basicQue[basicQue.indexOf(message.user)]; spells(message.user); } //advanced classes else if(advancedQue.includes(message.user) && (message.m == "exorcist" || message.m == "monk" || message.m == "bard" || message.m == "dragon trainer" || message.m == "illusionist" || message.m == "witch")){ advanced_citizen[message.user].advancedClass = message.m; delete advancedQue[advancedQue.indexOf(message.user)]; spells(message.user); } /*Checks if they want to change there current classes*/ if(advanced_citizen[message.user]){ if(advanced_citizen[message.user].rotateClass === true && (message.m == "mage" || message.m == "healer" || message.m == "warrior" || message.m == "rogue")){ advanced_citizen[message.user].basicClass = message.m; advanced_citizen[message.user].rotateClass = false; spells(message.user); } else if(advanced_citizen[message.user].rotateClass === true && (message.m == "exorcist" || message.m == "monk" || message.m == "bard" || message.m == "dragon trainer" || message.m == "illusionist" || message.m == "witch")){ advanced_citizen[message.user].advancedClass = message.m; advanced_citizen[message.user].rotateClass = false; spells(message.user); } } /*Class spells conditionals*/ //Exorcist if(spirit[message.user] && spirit[message.user].bool == true){ if(message.m == "off"){ WhiteSpell('haunt',spirit[message.user].haunt,message.user); } else{ cb.sendNotice(message.m,spirit[message.user].haunt); cb.sendNotice(message.m,"main_account"); message['X-Spam'] = true; message.m = message.m + ":This message is hidden"; return message; } } if(advanced_citizen[message.user] && advanced_citizen[message.user].advancedClass == 'exorcist'){ if(message.m == "cleanse"){ WhiteSpell("cleanse",null,message.user); } } //Rogue if(hiders.includes(message.user)){ message.background = "white"; message.c = "white"; return message; } //Mage if(pigPen.includes(message.user)){ var kind = animals[Math.floor(Math.random() * animals.length)]; var wordCount = message.m.split(" ").length; var sentence = kind[1].repeat(wordCount); message.m = sentence; return message; } if(tongue.includes(message.user)){ var split = message.m.split(" "); var newSen = []; for (var x in split){ var num = Math.floor(Math.random() * split[x].length); var word = split[x].slice(0,num) + split[x].slice(num + 1); newSen.push(word) } var sentence = newSen.join(" "); message.m = sentence; return message; } /*Modify class members message and check and execute class spells*/ /*Spells here*/ if (advanced_citizen[message.user]){ if (advanced_citizen[message.user].basicClass != null && advanced_citizen[message.user].advancedClass != null){ message.m = classes[advanced_citizen[message.user].basicClass].icon + " " + classes[advanced_citizen[message.user].advancedClass].icon + " " + classes[advanced_citizen[message.user].advancedClass].name[classes[advanced_citizen[message.user].basicClass].num] + " ~ " + message.m; if(message.m.match(powerReg)){ var l = message.m.match(powerReg); if(classes[advanced_citizen[message.user].basicClass].powers.includes(l[1])){ eval(classes[advanced_citizen[message.user].basicClass].func + "(" + "'" + l[1] + "'," + "'" + l[2] + "'" + ",'" + message.user + "'" + ")"); } else if(classes[advanced_citizen[message.user].advancedClass].powers.includes(l[1])){ eval(classes[advanced_citizen[message.user].advancedClass].func + `('${l[1]}','${l[2]}','${message.user}')`); } } } else if(advanced_citizen[message.user].basicClass != null && advanced_citizen[message.user].advancedClass == null){ message.m = classes[advanced_citizen[message.user].basicClass].icon + " " + classes[advanced_citizen[message.user].basicClass].name + " ~ " + message.m; if(message.m.match(powerReg)){ var l = message.m.match(powerReg); if(classes[advanced_citizen[message.user].basicClass].powers.includes(l[1])){ eval(classes[advanced_citizen[message.user].basicClass].func + "('" + l[1] + "','" + l[2] + "','" + message.user + "')"); } } } else if(advanced_citizen[message.user].basicClass == null && advanced_citizen[message.user].advancedClass != null){ message.m = classes[advanced_citizen[message.user].advancedClass].icon + " " + classes[advanced_citizen[message.user].advancedClass].name[4] + " ~ " + message.m; if(message.m.match(powerReg)){ var l = message.m.match(powerReg); if(classes[advanced_citizen[message.user].advancedClass].powers.includes(l[1])){ eval(classes[advanced_citizen[message.user].advancedClass].func + `('${l[1]}','${l[2]}','${message.user}')`); } } } /*End*/ /*Edit class members message*/ try{ message.background = classes[advanced_citizen[message.user].basicClass].bgColor; } catch(err){ message.background = "rgba(188, 2, 232, .4)"; } try{ message.c = classes[advanced_citizen[message.user].advancedClass].color; } catch(err){ message.c ="#fff"; } message.f = "Courier New"; return message; } /*End*/ /*More class spells conditionals*/ //Witch if(darkDay == true){ message.c = 'green'; message.background = 'black'; return message } //Warrior if(KO.includes(message.user)){ message.m = "*zzz*"; return message; } if(yell == true){ message.m = "*crying*"; return message; } /*Edits high tipper's message*/ if(message.user == high_tipper){ message.background = specials.prince.bgColor; message.c = specials.prince.color; message.m = " The " + "Prince " + specials.prince.icon + " : " + message.m; return message; } /*Edit users message if ranked*/ if (royal) { var props = (specials[message.user] ? specials[message.user] : royals[royal.type]); message.background = props.bgColor; message.c = props.color; message.m = " The " + props.title + " " + props.icon + " : " + message.m; } return message; }); /*everyone gets +1 tips per minute*/ function ClockWork(){ setTimeout(function(){for(var key in tippers){ cb.chatNotice("add one"); tippers[key].tips += 1; bestow(key); } ClockWork(); },60000); } ClockWork(); /*All class variables*/ //Mage variables var animals = [["frog","ribbit "],["duck","quack "],["bird","chirp "],["sheep","baa "]]; var pigPen = []; var tongue = []; //Warrior variables var cry = [":scared57",":scareddis",":scaredcat2",":Afraidbuttplug",":cryingjlaw",":hideshy"] var yell = false; var KO = []; //Healer variables //Rogue variables var hiders = []; //Witch variables var darkDay = false; //Exorcist variables var spirit = {} /*Class functions*/ //Healer powers function PinkSpell(spell,name,caster){ if (advanced_citizen[caster].time != 0){ if( Date.now() < (advanced_citizen[caster].time + 180000)){ return; } } if(spell == "rise"){ Rise(name,caster); } else if(spell == "blend"){ Blend(name,caster); } else{ return; } function Rise(name,caster){ try{ tippers[name].tips += 10; bestow(name); advanced_citizen[caster].time = Date.now(); return; } catch(err){ } }; function Blend(color,caster){ classes["healer"].bgColor = color; advanced_citizen[caster].time = Date.now(); }; }; //Mage powers function BlueSpell(spell,name,caster){ if (advanced_citizen[caster].time != 0){ if( Date.now() < (advanced_citizen[caster].time + 180000)){ return; } } if(spell == "transform"){ Transform(name,caster); } else if(spell == "silver-tongue"){ Silver_Tongue(name,caster); } else{ return; } function Transform(n,caster){ pigPen.push(n); setTimeout(function(){delete pigPen[pigPen.indexOf(n)]},60000); advanced_citizen[caster].time = Date.now(); } function Silver_Tongue(n,caster){ tongue.push(n); setTimeout(function(){delete tongue[tongue.indexOf(n)]},60000); advanced_citizen[caster].time = Date.now(); } }; //Warrior powers function RedSpell(spell,name,caster){ if (advanced_citizen[caster].time != 0){ if( Date.now() < (advanced_citizen[caster].time + 180000)){ return; } } if(spell == "shout"){ Shout(caster); } else if(spell == "knockout"){ Knockout(name,caster); } else{ return; } function Shout(caster){ yell = true; setTimeout(function(){yell = false;},30000); advanced_citizen[caster].time = Date.now(); } function Knockout(n,caster){ KO.push(n); setTimeout(function(){delete KO[KO.indexOf(n)]},60000); advanced_citizen[caster].time = Date.now(); } }; //Rogue powers function GreenSpell(spell,name,caster){ if (advanced_citizen[caster].time != 0){ if( Date.now() < (advanced_citizen[caster].time + 180000)){ return; } } if(spell == "hide"){ Hide(name,caster); } else if(spell == "pickpocket"){ Pickpocket(name,caster); } else{ return; } function Hide(n,caster){ hiders.push(n); setTimeout(function(){delete hiders[hiders.indexOf(n)]},60000); advanced_citizen[caster].time = Date.now(); } function Pickpocket(n,caster){ tippers[n].tips -= 10; bestow(n); tippers[caster].tips += 10; advanced_citizen[caster].time = Date.now(); } } //Witch powers function BlackSpell(spell,name,caster){ if (advanced_citizen[caster].time != 0){ if( Date.now() < (advanced_citizen[caster].time + 180000)){ return; } } if(spell == "plague"){ Plague(caster); } function Plague(caster){ darkDay = true; advanced_citizen[caster].time = Date.now(); } } //Exorcist powers function WhiteSpell(spell,name,caster){ if (advanced_citizen[caster].time != 0){ if( Date.now() < (advanced_citizen[caster].time + 30000)){ return; } } if(spell == "haunt"){ Haunt(name,caster); } else if(spell == "cleanse"){ Cleanse(caster); } else{ return; } function Haunt(n,caster){ if(spirit[caster]){ if(spirit[caster].bool){ spirit[caster].bool = false; } else{ spirit[caster].bool = true; spirit[caster].haunt = n; } } else{ spirit[caster] = {bool:true,haunt:n} } advanced_citizen[caster].time = Date.now(); } function Cleanse(caster){ darkDay = false; advanced_citizen[caster].time = Date.now(); } }
© Copyright Chaturbate 2011- 2025. All Rights Reserved.