Brandon Cornejo
5 years ago
1 changed files with 126 additions and 0 deletions
@ -0,0 +1,126 @@ |
|||
var generateUUID = (function() { |
|||
"use strict"; |
|||
|
|||
var a = 0, b = []; |
|||
return function() { |
|||
var c = (new Date()).getTime() + 0, d = c === a; |
|||
a = c; |
|||
for (var e = new Array(8), f = 7; 0 <= f; f--) { |
|||
e[f] = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(c % 64); |
|||
c = Math.floor(c / 64); |
|||
} |
|||
c = e.join(""); |
|||
if (d) { |
|||
for (f = 11; 0 <= f && 63 === b[f]; f--) { |
|||
b[f] = 0; |
|||
} |
|||
b[f]++; |
|||
} else { |
|||
for (f = 0; 12 > f; f++) { |
|||
b[f] = Math.floor(64 * Math.random()); |
|||
} |
|||
} |
|||
for (f = 0; 12 > f; f++){ |
|||
c += "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz".charAt(b[f]); |
|||
} |
|||
return c; |
|||
}; |
|||
}()), |
|||
|
|||
generateRowID = function () { |
|||
"use strict"; |
|||
return generateUUID().replace(/_/g, "Z"); |
|||
}; |
|||
|
|||
var addAttr = function(char_id, name, value, max) { |
|||
let obj = { |
|||
name: name, |
|||
current: value, |
|||
characterid: char_id |
|||
}; |
|||
|
|||
if(max) { |
|||
obj.max = max; |
|||
} |
|||
|
|||
return createObj("attribute", obj); |
|||
}; |
|||
|
|||
on("chat:message", function(msg) { |
|||
if(msg.type == "api" && msg.content.indexOf("!acksimport ") !== -1) { |
|||
var data = msg.content.replace("!acksimport ", ""); |
|||
|
|||
var npcs = JSON.parse(data); |
|||
for(let c of npcs) { |
|||
sendChat(msg.who, "Creating NPC: " + c.name); |
|||
|
|||
// Create the character sheet for this NPC
|
|||
let sheet = createObj("character", { |
|||
name: c.name |
|||
}); |
|||
sheet.set('bio', "A generated npc character."); |
|||
sheet.set('gmnotes', "Generated by Atr0phyACKS"); |
|||
|
|||
// Add all of their attributes and mods
|
|||
addAttr(sheet.id, "str", c.attributes.str, null); |
|||
addAttr(sheet.id, "int", c.attributes.int, null); |
|||
addAttr(sheet.id, "wis", c.attributes.wis, null); |
|||
addAttr(sheet.id, "dex", c.attributes.dex, null); |
|||
addAttr(sheet.id, "con", c.attributes.con, null); |
|||
addAttr(sheet.id, "chr", c.attributes.chr, null); |
|||
|
|||
addAttr(sheet.id, "str_mod", c.attribute_mods.str, null); |
|||
addAttr(sheet.id, "int_mod", c.attribute_mods.int, null); |
|||
addAttr(sheet.id, "wis_mod", c.attribute_mods.wis, null); |
|||
addAttr(sheet.id, "dex_mod", c.attribute_mods.dex, null); |
|||
addAttr(sheet.id, "con_mod", c.attribute_mods.con, null); |
|||
addAttr(sheet.id, "chr_mod", c.attribute_mods.chr, null); |
|||
|
|||
// Add their Hit Points
|
|||
addAttr(sheet.id, "hp", c.hp, c.hp); |
|||
|
|||
// Set the guild and level
|
|||
addAttr(sheet.id, "class", c.guild, null); |
|||
addAttr(sheet.id, "level", c.level, null); |
|||
addAttr(sheet.id, "align", c.alignment, null); |
|||
|
|||
// Set the AC and attack throw
|
|||
addAttr(sheet.id, "ac", c.armour.ac_mod, null); |
|||
addAttr(sheet.id, "attack_throw", c.attack_throw, null); |
|||
addAttr(sheet.id, "attack_throw_vis", c.attack_throw, null); |
|||
|
|||
// Set the saves
|
|||
addAttr(sheet.id, "save_pp", c.saves.pp, null); |
|||
addAttr(sheet.id, "save_pd", c.saves.pd, null); |
|||
addAttr(sheet.id, "save_bb", c.saves.bb, null); |
|||
addAttr(sheet.id, "save_sw", c.saves.sw, null); |
|||
addAttr(sheet.id, "save_sp", c.saves.sp, null); |
|||
|
|||
/* Add our Repeating Sections */ |
|||
|
|||
// for armour
|
|||
let armour_name = "repeating_equipment_" + generateRowID(); |
|||
addAttr(sheet.id, armour_name + "_equipment_name", c.armour.name, null); |
|||
|
|||
// for weapons
|
|||
let melee_name = "repeating_attacks_" + generateRowID(); |
|||
addAttr(sheet.id, melee_name + "_attack_name", c.melee.name, null); |
|||
addAttr(sheet.id, melee_name + "_attack_throw_mod", c.melee.throw_mod, null); |
|||
addAttr(sheet.id, melee_name + "_attack_dmg", c.melee.damage, null); |
|||
} |
|||
} |
|||
|
|||
if(msg.type == "api" && msg.content.indexOf("!acksdeleteall") !== -1) { |
|||
let characters = findObjs({type: 'character'}); |
|||
|
|||
for(let character of characters) { |
|||
character.get('gmnotes', function(val) { |
|||
if(val === "Generated by Atr0phyACKS") { |
|||
sendChat(msg.who, "Deleting generated NPC: " + character.get('name')); |
|||
character.remove(); |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
}); |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue