Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $$ user.getNext = function(key)
- {
- var i = args.indexOf(key);
- if (i >= 0 && i != args.length - 1) return args[i+1];
- return null;
- }
- ------------------------------------------------------------------------
- $$ user.quoteArgs= function(args) {
- var newArguments = [];
- var inQuote = false;
- var currentArgument = '';
- for (var i = 0; i < args.length; i++) {
- if (!inQuote) {
- if (args[i][0] == '"') {
- if (args[i][args[i].length-1] == '"') {
- newArguments.push(getTime(args[i].split("''").join('"')));
- } else {
- inQuote = true;
- currentArgument = args[i];
- }
- } else {
- newArguments.push(getTime(args[i].split("''").join('"')));
- }
- } else {
- currentArgument += ' ' + args[i];
- if (args[i][args[i].length-1] == '"') {
- inQuote = false;
- newArguments.push(getTime(currentArgument.split('"').join('').split("''").join('"')));
- }
- }
- }
- return newArguments;
- }
- --------------------------------------------------------------------
- $$ user.getTime= function(arg) {
- var duration = 0;
- var unit = "m";
- var currentTime = new Date();
- var newTime=new Date();
- var result = "";
- if (arg.startsWith("$time"))
- {
- duration = arg.split(":")[1];
- unit = arg.split(":")[2];
- switch (unit)
- {
- case "s":
- newTime= newTime.setSeconds(currentTime.getSeconds() + parseInt(duration));
- break;
- case "m":
- newTime= newTime.setMinutes(currentTime.getMinutes() + parseInt(duration));
- break;
- case "h":
- newTime= newTime.setHours(currentTime.getHours() + parseInt(duration));
- break;
- case "d":
- newTime= newTime.setHours(currentTime.getHours() + (parseInt(duration)*24));
- break;
- }
- var options = {hour: '2-digit', minute:'2-digit'};
- options.timeZone = 'America/Los_Angeles';
- options.timeZoneName = 'short';
- d = new Date();
- d.setTime(newTime);
- strOldDate = currentTime.toLocaleDateString('en-US', options).split(", ")[0];
- strNewDate = d.toLocaleDateString('en-US', options).split(", ")[0];
- strNewTime = d.toLocaleTimeString('en-US', options).split(", ")[1];
- result += strNewTime;
- if (strOldDate != strNewDate) result += " " + strNewDate;
- return result;
- }
- return arg;
- }
- -----------------------------------------
- $$ user.status=function(){args=quoteArgs(Array.from(arguments));var t=getNext("-character");t||(t=user.currentCharacter),character=user.characters[t];var e=getNext("-hp");"reset"==e?character.sheet.hp=character.sheet.maxHP:e&&(character.sheet.hp=parseInt(character.sheet.hp)+parseInt(e));var a=getNext("-spell");a&&(character.status.concentration.spellname=a);var r=getNext("-effect");r&&(character.status.concentration.effect=r);var n=getNext("-target");n&&(character.status.concentration.target=n);var c=getNext("-ends");c&&(character.status.concentration.ends=c);var s=getNext("-condition");s&&(character.status.condition=s);var o=getNext("-conditionends");o&&(character.status.conditionEnds=o);var h=getNext("-stealth");h&&(character.status.stealth=h);var i=getNext("-pos");i&&(character.status.position=i),inArguments(args,"silent")||(echo("```"+character.sheet.name+"'s Status```"),echo("**Hit Points: **"+character.sheet.hp+"/"+character.sheet.maxHP+"\n"),echo("**Position: **"+character.status.position+"\n"),"none"!=character.status.condition&&(conditionString=character.status.condition,"none"!=character.status.conditionEnds&&(conditionString+=" (Ends "+character.status.conditionEnds+")"),echo("**Condition: **"+conditionString+"\n")),0!=character.status.stealth&&echo("**Stealth: **"+character.status.stealth+"\n"),"none"!=character.status.concentration.spellname&&(spellstring="**Concentration: **"+character.status.concentration.spellname,"none"!=character.status.concentration.effect&&(spellstring+=" ["+character.status.concentration.effect+"]"),"none"!=character.status.concentration.target&&(spellstring+=" on "+character.status.concentration.target),"none"!=character.status.concentration.ends&&(spellstring+=" (Ends "+character.status.concentration.ends+")"),echo(spellstring+"\n")),inArguments(args,"end")&&echo("```END TURN```"))};
- ---------------------------------------------------------------------------
- $$ user.setup=function(){user.characters||(user.characters=[]),args=quoteArgs(arguments),user.properText={dex:"Dexterity",str:"Strength",con:"Constitution","int":"Intelligence",wis:"Wisdom",cha:"Charisma",death:"Death"};var e=getNext("-name"),s=getNext("-hp"),t=getNext("-skills");t&&(t=t.split(","));var r=getNext("-expertise");r&&(r=r.split(","));var a=getNext("-saves");a&&(a=a.split(","));var c=getNext("-classes");c&&(c=c.split(","));var i=getNext("-str",10),n=getNext("-dex",10),h=getNext("-con",10),o=getNext("-int",10),u=getNext("-wis",10),l=getNext("-cha",10);if(e){if(user.characters[e]||(user.characters[e]=[],user.characters[e].sheet=new Character("5e",e,{str:i,dex:n,con:h,"int":o,wis:u,cha:l}),user.characters[e].sheet.name=e,user.characters[e].skills=[],user.characters[e].skills={acrobatics:"",animal:"",arcana:"",athletics:"",deception:"",history:"",insight:"",intimidation:"",investigation:"",medicine:"",nature:"",perception:"",performance:"",persuasion:"",religion:"",sleight:"",stealth:"",survival:"",initiative:"",bonus:0},user.characters[e].saves=[],user.characters[e].saves={str:"",dex:"",con:"","int":"",wis:"",cha:"",death:"",bonus:0},user.characters[e].tools=[],user.characters[e].sheet.classes=[],user.characters[e].lastAttack=[],user.characters[e].lastSave=[],user.characters[e].lastCheck=[],user.characters[e].sheet.hp=0,user.characters[e].status=[],user.characters[e].status.concentration=[],statusArgs=["-character",e,"silent","-pos","Outside Combat","-condition","none","-conditionends","none","-stealth","0","-spell","none","-target","none","-effect","none","-ends","none"],status.apply(this,statusArgs)),t)for(idx in t)user.characters[e].skills[t[idx]]="prof";if(r)for(idx in r)user.characters[e].skills[r[idx]]="exp";if(a)for(idx in a)user.characters[e].saves[a[idx]]="prof";if(c)for(idx in c)user.characters[e].sheet.classes.push(c[idx]);s&&(user.characters[e].sheet.maxHP=s)}else echo("\n**CHARACTERS MUST HAVE A NAME! DUH.**\n")};
- -----------------------------------------------------------
- $setup -name CharacterName -hp MaxHP -str 18 -dex 10 -con 18 -int 12 -wis 9 -cha 20 -skills athletics,acrobatics,animal,sleight -expertise arcana,stealth -saves dex,int -classes Class1,Class1,Class1,Class2,Class2
- ---------------------------------------------------------------------------
- $$ user.character = function()
- {
- args = quoteArgs(arguments);
- if (args[0]!="")
- {
- if (user.characters[args[0]])
- {
- echo("Switching from `" + user.currentCharacter + "` to `" + args[0] + "`.\n");
- user.currentCharacter = args[0];
- }
- else echo("No character named `"+args[0]+"` exists...\n");
- }
- else echo("You must enter a character name...\n");
- }
- ----------------------------------------------------------------------------------
- $character CharacterName
- --------------------------------------------------------------------------------
- $$ user.list = function()
- {
- echo("```Characters```");
- for (idx in user.characters)
- {
- charString = "**" + idx +":** " + user.characters[idx].sheet.hp +"/" + user.characters[idx].sheet.maxHP;
- if (user.characters[idx].status.condition!="none") charString+= ", " + user.characters[idx].status.condition;
- if (user.characters[idx].status.concentration.spellname!="none") charString+= ", Concentrating on " + user.characters[idx].status.concentration.spellname;
- if (user.characters[idx].status.stealth!="0") charString+= ", " + user.characters[idx].status.stealth + " Stealth";
- echo(charString + "\n");
- }
- }
- ----------------------------------------------------------------------------
- $$ user.sheet = function ()
- {
- args = quoteArgs(arguments);
- if(args[0]) echo (user.characters[args[0]]);
- else echo (user.characters[user.currentCharacter])
- }
- --------------------------------------------------------
- $$ user.check=function(){args=quoteArgs(Array.from(arguments)),character=user.characters[user.currentCharacter];var e=character.sheet.proficiencyBonus,r=inArguments(arguments,"bard"),t=inArguments(arguments,"save"),n=inArguments(arguments,"reliable")&&(inArguments(arguments,"prof")||inArguments(arguments,"exp")),a=inArguments(arguments,"attack")||inArguments(arguments,"atk"),s=0,i=1,g="",u="",c=getNext("-l"),o=getNext("-phrase"),m=getNext("-csphrase"),h=getNext("-cfphrase"),l=getNext("-failphrase"),p=getNext("-dc");p||(p=0);for(var A in args)character.sheet[args[A]+"Mod"]&&(s+=character.sheet[args[A]+"Mod"],u+=args[A]);inArguments(arguments,"exp")?s+="+"+2*e:inArguments(arguments,"prof")?s+="+"+e:!r||t||a||(s+="+"+Math.floor(e/2)),inArguments(arguments,"adv")&&!inArguments(arguments,"dis")?(i=2,g="-H"):inArguments(arguments,"dis")&&!inArguments(arguments,"adv")&&(i=2,g="-L"),magicBonus=getNext("-mb"),magicBonus&&(s+="+"+magicBonus);var d=i+"d20"+g+" + "+s;inArguments(args,"bless")?d+=" + 1d4[Bless]":inArguments(args,"guide")&&(d+=" + 1d4[Guidance]"),additionalBonus=getNext("-b"),additionalBonus&&(d+="+"+additionalBonus),abilityCheck=roll(d);var k=0;for(var A in abilityCheck.tokens[0].rolls){var b=abilityCheck.tokens[0].rolls[A];b.kept&&(k=b.keptValue)}var x=20==k,f=1==k,y="```"+character.sheet.name+" rolling ";return c?y+=c:u?(y+=user.properText[u],inArguments(arguments,"prof")?y+=" with proficiency":inArguments(arguments,"exp")&&(y+=" with expertise")):y+="a check",y+="...```",inArguments(args,"silent")||(echo("\n"),echo(y),n&&10>k&&echo("~~"),echo(abilityCheck.string+"\n"),n&&10>k&&echo("~~"),n&&10>k&&echo("`"+(abilityCheck.plain-k+10)+"` with Reliable Talent!\n"),m&&x&&abilityCheck.plain>=p?echo("*"+m+"*\n"):h&&f?echo("*"+h+"*\n"):l&&abilityCheck.plain<p?echo("*"+l+"*\n"):o&&echo("*"+o+"*\n")),abilityCheck.plain};
- ------------------------------------------------------------------
- $$ echo("Skills 1\n");
- user.acrobatics = function(){args = [user.characters[user.currentCharacter].skills["acrobatics"],"dex", "-l", "Acrobatics"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.animal = function(){args = [user.characters[user.currentCharacter].skills["animal"],"wis", "-l", "Animal Handling"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.arcana = function(){args = [user.characters[user.currentCharacter].skills["arcana"],"int", "-l", "Arcana"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.athletics = function(){args = [user.characters[user.currentCharacter].skills["athletics"],"str", "-l", "Athletics"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.deception = function(){args = [user.characters[user.currentCharacter].skills["deception"],"cha", "-l", "Deception"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.history = function(){args = [user.characters[user.currentCharacter].skills["history"],"int", "-l", "History"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- ---------------------------------------------------------------------------------------
- $$ echo("Skills 2\n");
- user.insight = function(){args = [user.characters[user.currentCharacter].skills["insight"],"wis", "-l", "Insight"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.intimidation = function(){args = [user.characters[user.currentCharacter].skills["intimidation"],"cha", "-l", "Intimidation"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.investigation = function(){args = [user.characters[user.currentCharacter].skills["investigation"],"int", "-l", "Investigation"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.medicine = function(){args = [user.characters[user.currentCharacter].skills["medicine"],"wis", "-l", "Medicine"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.nature = function(){args = [user.characters[user.currentCharacter].skills["nature"],"int", "-l", "Nature"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.perception = function(){args = [user.characters[user.currentCharacter].skills["perception"],"wis", "-l", "Perception"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.performance = function(){args = [user.characters[user.currentCharacter].skills["performance"],"cha", "-l", "Performance"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.persuasion = function(){args = [user.characters[user.currentCharacter].skills["persuasion"],"cha", "-l", "Persuasion"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- --------------------------------------------------------------------------------
- $$ echo("Skills 3\n");
- user.religion = function(){args = [user.characters[user.currentCharacter].skills["religion"],"int", "-l", "Religion"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.sleight = function(){args = [user.characters[user.currentCharacter].skills["sleight"],"dex", "-l", "Sleight of Hand"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- user.stealth = function()
- {
- args = [user.characters[user.currentCharacter].skills["stealth"],"dex", "-l", "Stealth"];
- args=args.concat(Array.from(arguments));
- var result = check.apply(this,args);
- args = ["-stealth",result.toString(), "silent"];
- args=args.concat(Array.from(arguments))
- status.apply(this,args);
- return result;
- }
- user.survival = function(){args = [user.characters[user.currentCharacter].skills["survival"],"wis", "-l", "Survival"]; args=args.concat(Array.from(arguments)); var result = check.apply(this,args); return result;}
- -----------------------------------------------------------------------------------
- $$ user.init = function()
- {
- if (user.characters[user.currentCharacter].skills["initiative"] == "rake")
- args = ["dex", "-mb", user.characters[user.currentCharacter].sheet.chaMod + "[Rakish Audacity]", "-l", "Initiative","-phrase", "\"I am the only one able to take the lead in this battle!\""];
- else
- args = [user.characters[user.currentCharacter].skills["initiative"],"dex", "-l", "Initiative"];
- args=args.concat(Array.from(arguments));
- var result = check.apply(this,args);
- return result;
- }
- --------------------------------------------------------------------------------------
- $$ user.save = function() {
- var args = Array.from(arguments);
- character = user.characters[user.currentCharacter];
- saveBonus = character.saves["bonus"];
- for (var idx in args) {
- if (character.sheet[args[idx]]) {
- stat = args[idx];
- break;
- }
- if (args[idx] == "death") stat = "death";
- }
- if (user.properText[stat]) properStat = user.properText[stat];
- checkArgs = ["save", "-l", "a(n) "+properStat+" saving throw"];
- if (character.saves[stat]) checkArgs.push(character.saves[stat]);
- if (saveBonus!=0) checkArgs=checkArgs.concat(["-mb", saveBonus.toString()]);
- checkArgs = checkArgs.concat(args);
- result = check.apply(this,checkArgs);
- return result;
- }
- ------------------------------------------------------
- $$ user.formatAttack=function(e,t,r,s,h,c,o,a,n,i,g,f){var m="";a&&0==rr&&(f?echo("\n*"+f+" "+h+" "+n+" times"):echo("\n*"+user.characters[user.currentCharacter].sheet.name+" "+h+" "+n+" times"),o&&echo(" at "+o),echo(".*\n")),r?hits++:echo("~~"),a?(m+="Attack "+(rr+1)+": "+e.simple+" to hit, "+t.simple+" damage.",""!=g&&(m+=" "+g),s&&(m+=" :crossed_swords:"),echo(m)):(h&&(echo("\n"),f?stringPhrase="*"+f+" "+h:stringPhrase="*"+user.characters[user.currentCharacter].sheet.name+" "+h,o&&(stringPhrase+=" at "+o),s&&(stringPhrase+=" and scores a CRITICAL HIT"),stringPhrase+="!*",echo(stringPhrase)),e&&(echo("\n"),echo("**To Hit:** "+e.string)),t.tokens.length>0&&(echo("\n"),echo("**Damage: **"+t.string)),""!=c&&(echo("\n"),o?echo(c.split("Target").join(o)):echo(c))),r||echo("~~"),n>1&&echo("\n"),rr>=n-1&&(a||echo("\n"),n>1&&echo("**Total Damage:** "+i+"\n"),n>1&&a&&""!=c&&hits>0&&(o?echo(c.split("Target").join(o).split("Effect:").join("Effect (x"+hits+"):")):echo(c.split("Effect:").join("Effect (x"+hits+"):")),n>1&&echo("\n")))};
- ------------------------------------------------------------------
- $$ user.a=function(){args=quoteArgs(Array.from(arguments)),character=user.characters[user.currentCharacter];var e=inArguments(args,"summary"),r=[],t=getNext("-lvl"),i=getNext("-t"),a=getNext("-ac"),o=getNext("-ab"),n=getNext("-db");a||(a=0);var c=getNext("-rr"),f=0;for(c||(c=1),hits=0,rr=0;rr<c;rr++){var d="",s="",u="",m={dieCount:0,dieSize:20,diceMod:"",modifier:0},g=[],v=[];for(var C in args){var h=args[C];"function"==typeof character.attacks[h]&&character.attacks[h](v,m,t),"function"==typeof character.attackModifiers[h]&&character.attackModifiers[h](m),"function"==typeof character.damageModifiers[h]&&character.damageModifiers[h](g)}var l="",p=m.dieCount+"d"+m.dieSize+m.diceMod+" + "+m.modifier;o&&(p+="+"+o);var k=roll(p),x=k.plain>=a;if(0==m.dieCount){k="";var O=inArguments(args,"crit")}else{var A=0;for(var C in k.tokens[0].rolls){var M=k.tokens[0].rolls[C];M.kept&&(A=M.keptValue)}var O=20==A||inArguments(args,"crit"),N=20==A;N&&(x=!0)}1==A&&(x=!1);for(var C in v){if(C>0)break;var M=v[C],y=M.dieCount;O&&(y*=2),l&&(M.dieCount||M.modifier)&&(l+="+"),M.dieCount&&(l+=y+"d"+M.dieSize),M.modifier&&M.dieCount&&(l+="+"),M.modifier&&(l+=M.modifier),M.comment&&(l+="["+M.comment+"]"),M.phrase&&(d=M.phrase),M.effect&&""!=s&&(s+="\n"),M.effect&&(s+=M.effect),M.icon&&(u+=M.icon)}for(var C in g)if(!g[C].useOnce&&!g[C].onCrit||(g[C].useOnce&&O&&x||g[C].useOnce&&!g[C].onCrit&&x||g[C].onCrit&&rr==c-1&&x&&c>1&&g[C].useOnce||!g[C].useOnce&&g[C].onCrit&&O)&&-1==r.indexOf(g[C].comment)){var M=g[C],y=M.dieCount;O&&(y*=2),l&&(M.dieCount||M.modifier)&&(l+="+"),M.dieCount&&(l+=y+"d"+M.dieSize),M.modifier&&M.dieCount&&(l+="+"),M.modifier&&(l+=M.modifier),M.comment&&(l+="["+M.comment+"]"),M.phrase&&!e&&(d=M.phrase),M.effect&&""!=s&&(s+="\n"),M.effect&&(s+=M.effect),M.icon&&(u+=M.icon),M.useOnce&&r.push(M.comment)}n&&(l+="+"+n);var z=roll(l);x&&(f+=z.plain),formatAttack(k,z,x,O,d,s,i,e,c,f,u,!1)}};
- -----------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment