Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ^^ user.atk = function() {
- var args = Array.from(arguments);
- function getNext(key) {
- var i = args.indexOf(key);
- if (i >= 0 && i != args.length - 1) return args[i+1].split("_").join(" ");
- return null;
- }
- var target = getNext("-t");
- var abilityMod = 0;
- var tohitMod = 0;
- var phrase = "";
- var effectString="";
- var toHit = {
- dieCount: 0,
- dieSize: 20,
- diceMod: '',
- modifier: 0
- };
- var damage=[];
- var attack=[];
- for (var idx in args) {
- var arg = args[idx];
- if (typeof user.attacks[arg] == "function") {
- user.attacks[arg](attack,toHit);
- }
- if (typeof user.attackModifiers[arg] == "function") {
- user.attackModifiers[arg](toHit);
- }
- if (typeof user.damageModifiers[arg] == "function") {
- user.damageModifiers[arg](damage);
- }
- }
- var damageString = '';
- var atkRollStr = toHit.dieCount + "d" + toHit.dieSize + toHit.diceMod + " + " + toHit.modifier;
- var attackRoll = roll(atkRollStr);
- if (toHit.dieCount==0)
- {
- attackRoll="";
- var isCritical = inArguments(arguments,"crit");
- }
- else {
- var toHitDie = 0;
- for (var idx in attackRoll.tokens[0].rolls) {
- var r = attackRoll.tokens[0].rolls[idx];
- if (r.kept) {
- toHitDie = r.keptValue;
- }
- }
- var isCritical = (toHitDie == 20 || inArguments(arguments,"crit"));
- }
- for (var idx in attack) {
- if (idx>0)
- {
- //You should only call one type of attack. Using the first one in the arguments.
- break;
- }
- var r = attack[idx];
- var rollDice = r.dieCount;
- if (isCritical) rollDice*=2;
- if (damageString && (r.dieCount || r.modifier)) damageString += "+";
- if (r.dieCount) damageString += rollDice + "d" + r.dieSize;
- if (r.modifier && r.dieCount) damageString += "+";
- if (r.modifier) damageString += r.modifier;
- if (r.comment) damageString += '[' + r.comment + ']';
- if (r.phrase) phrase = r.phrase;
- if (r.effect) effectString+=r.effect+"\n";
- }
- for (var idx in damage) {
- var r = damage[idx];
- var rollDice = r.dieCount;
- if (isCritical) rollDice*=2;
- if (damageString && (r.dieCount || r.modifier)) damageString += "+";
- if (r.dieCount) damageString += rollDice + "d" + r.dieSize;
- if (r.modifier && r.dieCount) damageString += "+";
- if (r.modifier) damageString += r.modifier;
- if (r.comment) damageString += '[' + r.comment + ']';
- if (r.phrase) phrase = r.phrase;
- if (r.effect) effectString+=r.effect+"\n";
- }
- var damageRoll = roll(damageString);
- if (damageString!="") formatAttack(attackRoll, damageRoll, phrase, effectString, target);
- else formatAttack(attackRoll, "", phrase, effectString, target);
- }
Advertisement
Add Comment
Please, Sign In to add comment