Correction: I am getting 2 PowerCards being output...damn strange. Anyway, here's basically the main function along with the event handler and on ready. I would assume the issue would be somewhere in here since it starts the whole process. I'm not seeing it and its driving me nuts. // Chat input processing.
handleInput = function(msg) {
var rollRes = {},
dmgRes = {};
if (msg.type != "api") return;
var playerObj = getObj("player", msg.playerid);
msg.who = msg.who.replace(" (GM)", "");
var pcMsg = {};
var args = msg.content.split("--");
// Trim leading and trailing spaces from arguments.
var i = 0;
for (i=0; i < args.length; i++) {
args[i] = args[i].trim();
}
if (args[0] === '!atk') {
var attacker = args[1];
var target = args[2];
var advDisadv = args[3];
var attkType = args[4];
var dmgRoll = args[5];
var dmgType = args[6];
var weapon = args[7];
var special = args[8];
var save = args[9];
var saveDC = args[10];
var effect = args[11];
// Get attributes from selected and target.
var aAttr = getPCAttr(attacker);
var tAttr = getNPCAttr(target);
// To Hit Roll
rollRes = attackRoll({targetAC: tAttr.AC, advDisadv: advDisadv, profBonus: aAttr.profBonus, attkType: attkType,
strMod: aAttr.strMod, dexMod: aAttr.dexMod, gMHit: aAttr.gMHit, gRHit: aAttr.gRHit});
pcMsg.content = "!power --format|COMBAT --name|API Output --To Hit:|[[" + rollRes.toHitRoll + "]]";
if (parseInt(rollRes.hit, 10) === 1) {
pcMsg.content += " --Hit Msg:|You hit!";
// Damage Roll
dmgRes = damageRoll({targetID: target, targetHP: tAttr.HP, advDisadv: advDisadv, attkType: attkType,
strMod: aAttr.strMod, dexMod: aAttr.dexMod, crit: rollRes.crit, dmgRoll: dmgRoll, gMDmg: aAttr.gMDmg,
gRDmg: aAttr.gRDmg, save: save, saveDC: saveDC});
pcMsg.content += " --Damage:|[[" + dmgRes + "]]";
}else{
pcMsg.content += " --Hit Msg:|You missed!";
}
if (parseInt(rollRes.crit, 10) === 1) {
pcMsg.content += " --Roll Type:|CRITICAL";
}
if (parseInt(rollRes.fail, 10) === 1) {
pcMsg.content += " --Roll Type:|FUMBLE";
}
pcMsg.content += " --Attack Type:|" + rollRes.attkType +
" --Adv/Disadv:|" + rollRes.advDisadv;
PowerCard.Process(pcMsg, playerObj);
log("-------------------------------");
}
},
registerEventHandlers = function() {
on('chat:message', handleInput);
};
return {
CheckInstall: checkInstall,
RegisterEventHandlers: registerEventHandlers
};
}());
on('ready',function() {
'use strict';
Attack.CheckInstall();
Attack.RegisterEventHandlers();
});