In the following code, RPGText1 comes up as undefined. What is missing? /* Generates Mothership Characters for the Residue Processing Scenario
*
* Syntax: !RPGen option
*
*/
var RPG = RPG || {
version: "0.0.1",
output: [],
listen: function () {
on('chat:message', function (msg) {
// Exit if not an api command
if (msg.type != "api") {
return;
}
if (msg.content.indexOf("!RPGen ") != -1) {
var input = msg.content.split(" ");
if (input[1] == "help") {
RPG.showHelp();
} else {
sendChat('API', "/direct <h6>Generating character</h6>");
RPG.generate(msg, RPG.printSheet, RPG.save);
}
} else if (msg.content.indexOf("!RPGen") != -1) {
RPG.showHelp();
}
});
},
showHelp: function () {
sendChat("API", "/direct <table style='background: #DCD9D5; border-radius: 20px; font-size: 10px;'>" +
"<thead><tr><th>Help</th></tr></thead>" +
"<tbody>" +
"<tr><td><strong>!fodder</strong><br><strong>!fodder help</strong><br>Show this help screen.</td></tr>" +
"<tr><td><strong>!fodder core</strong><br>Use default core DCC tables.</td></tr>" +
"<tr><td><strong>!fodder brokenmoon</strong><br>Use Crawling Under A Broken Moon tables, including mutants and robots.</td></tr>" +
"<tr><td><strong>!fodder crawl</strong><br>Use Crawl! tables for zero-level character generation, including gnomes and physical characteristics.</td></tr>" +
"<tr><td> </td></tr>" +
"</td></tr></tbody></table>");
},
generate: function (msg, outputCallback, saveCallback) {
RPG.id = msg.playerid;
RPG.player = msg.who;
RPG.name = msg.who + " #" + (findObjs({_type: "character", controlledby: msg.playerid}).length + 1)
RPG.GenAbilities(msg);
RPG.GenHistory(msg);
RPG.GenSuit(msg);
RPG.GenSkills(msg);
RPG.printSheet(msg);
RPG.save(msg);
if (typeof outputCallback === "function") {
setTimeout(outputCallback, 2500, msg, saveCallback);
}
},
GenAbilities: function (msg) {
sendChat("API", "/roll 1t[RP-Stats]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
RPG.Strength = values[0];
RPG.Speed = values[1];
RPG.Intellect = values[2];
RPG.Combat = values[3];
RPG.Health = 10;
RPG.Stress = 5;
RPG.Sanity = 20;
RPG.Fear = 20;
RPG.Body = 20;
RPG.Armor = 20;
RPG.output['Strength'] = "<tr><td style='font-weight: bold; padding: 5px;'>Strength</td><td style='padding: 5px;'>" + RPG.Strength + "</td></tr>";
RPG.output['Speed'] = "<tr><td style='font-weight: bold; padding: 5px;'>Speed</td><td style='padding: 5px;'>" + RPG.Speed + "</td></tr>";
RPG.output['Intellect'] = "<tr><td style='font-weight: bold; padding: 5px;'>Intellect</td><td style='padding: 5px;'>" + RPG.Intellect + "</td></tr>";
RPG.output['Combat'] = "<tr><td style='font-weight: bold; padding: 5px;'>Combat</td><td style='padding: 5px;'>" + RPG.Combat + "</td></tr>";
RPG.output['Health'] = "<tr><td style='font-weight: bold; padding: 5px;'>Health</td><td style='padding: 5px;'>" + RPG.Health + "</td></tr>";
RPG.output['Stress'] = "<tr><td style='font-weight: bold; padding: 5px;'>Stress</td><td style='padding: 5px;'>" + RPG.Stress + "</td></tr>";
RPG.output['Sanity'] = "<tr><td style='font-weight: bold; padding: 5px;'>Sanity Save</td><td style='padding: 5px;'>" + RPG.Sanity + "</td></tr>";
RPG.output['Fear'] = "<tr><td style='font-weight: bold; padding: 5px;'>Fear Save</td><td style='padding: 5px;'>" + RPG.Fear + "</td></tr>";
RPG.output['Body'] = "<tr><td style='font-weight: bold; padding: 5px;'>Body Save</td><td style='padding: 5px;'>" + RPG.Body + "</td></tr>";
RPG.output['Armor'] = "<tr><td style='font-weight: bold; padding: 5px;'>Armor Save</td><td style='padding: 5px;'>" + RPG.Armor + "</td></tr>";
RPGText1 = "<table font-size: 10px;'> <tbody>" +
RPG.output['Strength'] +
RPG.output['Speed'] +
RPG.output['Intellect'] +
RPG.output['Combat'] +
RPG.output['Health'] +
RPG.output['Stress'] +
RPG.output['Sanity'] +
RPG.output['Fear'] +
RPG.output['Body'] +
RPG.output['Armor'] +
"</tbody></table>";
sendChat(msg.who, "/direct " + RPGText1);
});
},
GenHistory: function (msg) {
sendChat("API", "/roll 1t[RP-History]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
RPG.Study = values[0];
RPG.Effect = values[1];
if (RPG.Effect.includes('(A)')) {
RPG.Fear = 50;
}
RPG.output['Study'] = "<tr><td style='font-weight: bold; padding: 5px;'>Study</td><td style='padding: 5px;'>" + RPG.Study + "</td></tr>";
RPG.output['Effect'] = "<tr><td style='font-weight: bold; padding: 5px;'>Side Effect</td><td style='padding: 5px;'>" + RPG.Effect + "</td></tr>";
RPGText2 = "<table font-size: 10px;'> <tbody>" +
RPG.output['Study'] +
RPG.output['Effect'] +
"</tbody></table>";
sendChat(msg.who, "/direct " + RPGText2);
});
},
GenSuit: function (msg) {
sendChat("API", "/roll 1t[RP-Expression]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
RPG.Expression = values[0];
RPG.output['Expression'] = "<tr><td style='font-weight: bold; padding: 5px;'>Doll Suit Expression</td><td style='padding: 5px;'>" + RPG.Expression + "</td></tr>";
let content1 = JSON.parse(result[0].content);
let values1 = content.rolls[0].results[0].tableItem.name.split(':');
RPG.Quirk = values[0];
RPG.output['Quirk'] = "<tr><td style='font-weight: bold; padding: 5px;'>Doll Suit Quirk</td><td style='padding: 5px;'>" + RPG.Quirk + "</td></tr>";
RPGText3 = "<table font-size: 10px;'> <tbody>" +
RPG.output['Quirk'] +
RPG.output['Expression'] +
"</tbody></table>";
sendChat(msg.who, "/direct " + RPGText3);
});
},
GenSkills: function (msg) {
sendChat("API", "/roll 1t[RP-Skills]", function (result) {
let content = JSON.parse(result[0].content);
let values = content.rolls[0].results[0].tableItem.name.split(':');
RPG.Skill = values[0];
RPG.output['Skill'] = "<tr><td style='font-weight: bold; padding: 5px;'>Skill</td><td style='padding: 5px;'>" + RPG.Skill + "</td></tr>";
RPGText4 = "<table font-size: 10px;'> <tbody>" +
RPG.output['Skill'] +
"</tbody></table>";
sendChat(msg.who, "/direct " + RPGText4);
});
},
printSheet: function (msg, saveCallback) {
let styleLabel = "style='font-weight: bold; padding: 5px;'";
let styleVal = "style='padding: 5px;'";
/* RPG.output['Strength'] = "<tr><td style='font-weight: bold; padding: 5px;'>Strength</td><td style='padding: 5px;'>" + RPG.Strength + "</td></tr>";
RPG.output['Speed'] = "<tr><td style='font-weight: bold; padding: 5px;'>Speed</td><td style='padding: 5px;'>" + RPG.Speed + "</td></tr>";
RPG.output['Intellect'] = "<tr><td style='font-weight: bold; padding: 5px;'>Intellect</td><td style='padding: 5px;'>" + RPG.Intellect + "</td></tr>";
RPG.output['Combat'] = "<tr><td style='font-weight: bold; padding: 5px;'>Combat</td><td style='padding: 5px;'>" + RPG.Combat + "</td></tr>";
RPG.output['Health'] = "<tr><td style='font-weight: bold; padding: 5px;'>Health</td><td style='padding: 5px;'>" + RPG.Health + "</td></tr>";
RPG.output['Stress'] = "<tr><td style='font-weight: bold; padding: 5px;'>Stress</td><td style='padding: 5px;'>" + RPG.Stress + "</td></tr>";
RPG.output['Sanity'] = "<tr><td style='font-weight: bold; padding: 5px;'>Sanity Save</td><td style='padding: 5px;'>" + RPG.Sanity + "</td></tr>";
RPG.output['Fear'] = "<tr><td style='font-weight: bold; padding: 5px;'>Fear Save</td><td style='padding: 5px;'>" + RPG.Fear + "</td></tr>";
RPG.output['Body'] = "<tr><td style='font-weight: bold; padding: 5px;'>Body Save</td><td style='padding: 5px;'>" + RPG.Body + "</td></tr>";
RPG.output['Armor'] = "<tr><td style='font-weight: bold; padding: 5px;'>Armor Save</td><td style='padding: 5px;'>" + RPG.Armor + "</td></tr>";
RPG.output['Study'] = "<tr><td style='font-weight: bold; padding: 5px;'>Study</td><td style='padding: 5px;'>" + RPG.Study + "</td></tr>";
RPG.output['Effect'] = "<tr><td style='font-weight: bold; padding: 5px;'>Side Effect</td><td style='padding: 5px;'>" + RPG.Effect + "</td></tr>";
RPG.output['Quirk'] = "<tr><td style='font-weight: bold; padding: 5px;'>Doll Suit Quirk</td><td style='padding: 5px;'>" + RPG.Quirk + "</td></tr>";
RPG.output['Expression'] = "<tr><td style='font-weight: bold; padding: 5px;'>Doll Suit Expression</td><td style='padding: 5px;'>" + RPG.Expression + "</td></tr>";
RPG.output['Skill'] = "<tr><td style='font-weight: bold; padding: 5px;'>Skill</td><td style='padding: 5px;'>" + RPG.Skill + "</td></tr>";
*/
RPGTextAll = "<p><p>CURRENT CHARACTER PARAMETERS<p><p>" + RPGText1 + RPGText2 + RPGText3 + RPGText4;
sendChat(msg.who, "/direct " + RPGTextAll);
if (typeof saveCallback === "function") {
saveCallback();
}
},
save: function () {
let character = createObj("character", {
name: RPG.name,
archived: false,
inplayerjournals: "all",
controlledby: "all"
});
character.set('bio', RPGTextAll);
createObj('attribute', {
name: 'strength',
current: RPG.Strength,
_characterid: character.id
});
createObj('attribute', {
name: 'speed',
current: RPG.Speed,
_characterid: character.id
});
createObj('attribute', {
name: 'intellect',
current: RPG.Intellect,
_characterid: character.id
});
createObj('attribute', {
name: 'combat',
current: RPG.Combat,
_characterid: character.id
});
createObj('attribute', {
name: 'health',
current: RPG.Health,
_characterid: character.id
});
createObj('attribute', {
name: 'stress',
current: RPG.Stress,
_characterid: character.id
});
createObj('attribute', {
name: 'sanity',
current: RPG.Sanity,
_characterid: character.id
});
createObj('attribute', {
name: 'fear',
current: RPG.Fear,
_characterid: character.id
});
createObj('attribute', {
name: 'body',
current: RPG.Body,
_characterid: character.id
});
createObj('attribute', {
name: 'armor',
current: RPG.Armor,
_characterid: character.id
});
sendChat('', 'Created <a href="<a href="http://journal.roll20.net/character/" rel="nofollow">http://journal.roll20.net/character/</a>' + character.id + '" style="color:blue;text-decoration:underline;">NPCBUILD ' + NPCBUILD.name + '</a>');
}
};
on("ready", function () {
RPG.listen();
});