Foundry V12 Fixes
- Moved deprecated calls into conditional statements based on version. - Fixed Megadamage on the SBT sheet
This commit is contained in:
+148
-64
@@ -6,13 +6,19 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
var options = {
|
||||
classes: ["mosh", "sheet", "actor", "character"],
|
||||
template: "systems/mosh/templates/actor/actor-sheet.html",
|
||||
width: 820,
|
||||
height: 820,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "character" }]
|
||||
});
|
||||
}
|
||||
|
||||
if (game.release.generation >= 12) {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, options);
|
||||
} else {
|
||||
return mergeObject(super.defaultOptions, options);
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------- */
|
||||
@@ -24,7 +30,7 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
data.dtypes = ["String", "Number", "Boolean"];
|
||||
|
||||
const superData = data.data.system;
|
||||
|
||||
|
||||
for (let attr of Object.values(data.data.system.attributes)) {
|
||||
attr.isCheckbox = attr.dtype === "Boolean";
|
||||
}
|
||||
@@ -41,34 +47,34 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
data.data.system.settings.useCalm = game.settings.get("mosh", "useCalm");
|
||||
data.data.system.settings.hideWeight = game.settings.get("mosh", "hideWeight");
|
||||
data.data.system.settings.firstEdition = game.settings.get("mosh", "firstEdition");
|
||||
data.data.system.settings.androidPanic = game.settings.get("mosh", "androidPanic");
|
||||
data.data.system.settings.androidPanic = game.settings.get("mosh", "androidPanic");
|
||||
|
||||
|
||||
//SKILL XP BUTTONS
|
||||
superData.xp.html = '';
|
||||
if(superData.xp.html == ''){
|
||||
for(let i = 1; i <= 15; i ++){
|
||||
if(i > superData.xp.value){
|
||||
if(i % 5){
|
||||
if (superData.xp.html == '') {
|
||||
for (let i = 1; i <= 15; i++) {
|
||||
if (i > superData.xp.value) {
|
||||
if (i % 5) {
|
||||
superData.xp.html += '<div class="circle"></div>';
|
||||
}
|
||||
else { //If a special one
|
||||
let trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -54px;">Trained</div>';
|
||||
if(i == 10) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -50px;">Expert</div>';
|
||||
else if(i == 15) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -52px;">Master</div>';
|
||||
superData.xp.html += '<div class="circle" style="background:rgb(200,200,200);">'+trainLevel+'</div>';
|
||||
if (i == 10) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -50px;">Expert</div>';
|
||||
else if (i == 15) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -52px;">Master</div>';
|
||||
superData.xp.html += '<div class="circle" style="background:rgb(200,200,200);">' + trainLevel + '</div>';
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(i % 5){
|
||||
superData.xp.html += '<div class="circle-f"></div>';
|
||||
}
|
||||
else { //If a special one
|
||||
let trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -54px; color:black;">Trained</div>';
|
||||
if(i == 10) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -50px; color:black;">Expert</div>';
|
||||
else if(i == 15) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -52px; color:black;">Master</div>';
|
||||
superData.xp.html += '<div class="circle-f" style="background:black;">'+trainLevel+'</div>';
|
||||
}
|
||||
else {
|
||||
if (i % 5) {
|
||||
superData.xp.html += '<div class="circle-f"></div>';
|
||||
}
|
||||
else { //If a special one
|
||||
let trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -54px; color:black;">Trained</div>';
|
||||
if (i == 10) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -50px; color:black;">Expert</div>';
|
||||
else if (i == 15) trainLevel = '<div class="skill_training_text" style="position: relative; top: 17px; text-align: center; left: -52px; color:black;">Master</div>';
|
||||
superData.xp.html += '<div class="circle-f" style="background:black;">' + trainLevel + '</div>';
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -87,8 +93,8 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
*/
|
||||
_prepareCharacterItems(sheetData) {
|
||||
const actorData = sheetData.data;
|
||||
console.log(sheetData);
|
||||
console.log("sheetdata Above");
|
||||
//console.log(sheetData);
|
||||
///console.log("sheetdata Above");
|
||||
// Initialize containers.
|
||||
const gear = [];
|
||||
const skills = [];
|
||||
@@ -105,21 +111,21 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
|
||||
if (i.type === 'item') {
|
||||
gear.push(i);
|
||||
curWeight+=item.weight*item.quantity;
|
||||
curWeight += item.weight * item.quantity;
|
||||
} else if (i.type === 'skill') {
|
||||
skills.push(i);
|
||||
} else if (i.type === 'armor') {
|
||||
armors.push(i);
|
||||
curWeight+=item.weight;
|
||||
curWeight += item.weight;
|
||||
} else if (i.type === 'weapon') {
|
||||
//We need to update this from the old system.
|
||||
if(item.ranges.value == "" && item.ranges.medium > 0){
|
||||
if (item.ranges.value == "" && item.ranges.medium > 0) {
|
||||
item.ranges.value = item.ranges.short + "/" + item.ranges.medium + "/" + item.ranges.long;
|
||||
item.ranges.medium = 0;
|
||||
}
|
||||
|
||||
weapons.push(i);
|
||||
curWeight+=item.weight;
|
||||
curWeight += item.weight;
|
||||
} else if (i.type === 'condition') {
|
||||
// We'll handle the pip html here.
|
||||
if (item.treatment == null) {
|
||||
@@ -130,10 +136,10 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
}
|
||||
let pipHtml = "";
|
||||
for (let i = 0; i < 3; i++) {
|
||||
if (i < item.treatment.value){
|
||||
if (i < item.treatment.value) {
|
||||
pipHtml += '<i class="fas fa-circle"></i>';
|
||||
}
|
||||
else{
|
||||
else {
|
||||
pipHtml += '<i class="far fa-circle"></i>';
|
||||
}
|
||||
}
|
||||
@@ -144,19 +150,19 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
}
|
||||
}
|
||||
|
||||
if(actorData.system.weight == undefined){
|
||||
if (actorData.system.weight == undefined) {
|
||||
actorData.system.weight = {
|
||||
"current" : 0,
|
||||
"capacity" : 0
|
||||
"current": 0,
|
||||
"capacity": 0
|
||||
};
|
||||
}
|
||||
if(actorData.system.credits == undefined){
|
||||
if (actorData.system.credits == undefined) {
|
||||
actorData.system.credits = {
|
||||
"value" : 0,
|
||||
"value": 0,
|
||||
};
|
||||
}
|
||||
|
||||
actorData.system.weight.capacity = Math.ceil((actorData.system.stats.strength.value/10)); //Removed a +3 here because I misunderstood some Traaa.sh stuff. This whole thing can probably be ripped out tbh.
|
||||
actorData.system.weight.capacity = Math.ceil((actorData.system.stats.strength.value / 10)); //Removed a +3 here because I misunderstood some Traaa.sh stuff. This whole thing can probably be ripped out tbh.
|
||||
actorData.system.weight.current = curWeight;
|
||||
//console.log("Current Weight: " + curWeight + " Capacity: " + actorData.data.weight.capacity);
|
||||
|
||||
@@ -202,14 +208,20 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
value: attribute.value
|
||||
}
|
||||
|
||||
const updateString = "data."+targetName;
|
||||
const updateString = "data." + targetName;
|
||||
|
||||
this.actor.update({[updateString] : updated});
|
||||
this.actor.update({ [updateString]: updated });
|
||||
});
|
||||
|
||||
html.on('mousedown', '.treatment-button', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
|
||||
let amount = item.system.treatment.value;
|
||||
|
||||
@@ -230,7 +242,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
// Update Inventory Item
|
||||
html.find('.item-equip').click(ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
|
||||
item.system.equipped = !item.system.equipped;
|
||||
this.actor.updateEmbeddedDocuments('Item', [item]);
|
||||
@@ -249,7 +267,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
//Quantity adjuster
|
||||
html.on('mousedown', '.item-quantity', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
let amount = item.system.quantity;
|
||||
|
||||
if (event.button == 0) {
|
||||
@@ -264,7 +288,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
//Severity adjuster
|
||||
html.on('mousedown', '.severity', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
|
||||
let amount = item.system.severity;
|
||||
|
||||
if (event.button == 0) {
|
||||
@@ -279,7 +309,7 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
// Delete Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.deleteEmbeddedDocuments("Item",[li.data("itemId")]);
|
||||
this.actor.deleteEmbeddedDocuments("Item", [li.data("itemId")]);
|
||||
li.slideUp(200, () => this.render(false));
|
||||
});
|
||||
|
||||
@@ -309,28 +339,46 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
html.find('.stat-roll').click(ev => {
|
||||
const div = $(ev.currentTarget);
|
||||
const statName = div.data("key");
|
||||
this.actor.rollCheck(null,'low',statName,null,null,null);
|
||||
this.actor.rollCheck(null, 'low', statName, null, null, null);
|
||||
});
|
||||
|
||||
// Rollable Skill
|
||||
html.find('.skill-roll').click(ev => {
|
||||
const li = event.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
this.actor.rollCheck(null,null,null,item.name,item.system.bonus,null);
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
this.actor.rollCheck(null, null, null, item.name, item.system.bonus, null);
|
||||
});
|
||||
|
||||
// Rollable Weapon
|
||||
html.find('.weapon-roll').click(ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
this.actor.rollCheck(null,'low','combat',null,null,item);
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
this.actor.rollCheck(null, 'low', 'combat', null, null, item);
|
||||
});
|
||||
|
||||
// Rollable Damage
|
||||
html.find('.dmg-roll').click(ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
this.actor.rollCheck(null,null,'damage',null,null,item);
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
this.actor.rollCheck(null, null, 'damage', null, null, item);
|
||||
});
|
||||
|
||||
// Rollable Item/Anything with a description that we want to click on.
|
||||
@@ -344,7 +392,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
//increase ammo
|
||||
html.on('mousedown', '.weapon-ammo', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
let amount = item.system.ammo;
|
||||
if (event.button == 0) {
|
||||
if (amount >= 0) {
|
||||
@@ -361,7 +415,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
//increase shots
|
||||
html.on('mousedown', '.weapon-shots', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
if (event.button == 0) {
|
||||
if (item.system.curShots >= 0 && item.system.curShots < item.system.shots && item.system.ammo > 0) {
|
||||
item.system.curShots = Number(item.system.curShots) + 1;
|
||||
@@ -385,7 +445,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
//increase oxygen
|
||||
html.on('mousedown', '.armor-oxy', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
let amount = item.system.oxygenCurrent;
|
||||
if (event.button == 0) {
|
||||
if (amount < item.system.oxygenMax) {
|
||||
@@ -402,13 +468,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
// Calm - Panic Check
|
||||
html.find('.calm-roll').click(ev => {
|
||||
//roll panic check
|
||||
this.actor.rollTable('panicCheck',null,null,null,null,null,null);
|
||||
this.actor.rollTable('panicCheck', null, null, null, null, null, null);
|
||||
});
|
||||
|
||||
|
||||
// Stress - Panic Check
|
||||
html.find('.stress-roll').click(ev => {
|
||||
//roll panic check
|
||||
this.actor.rollTable('panicCheck',null,null,null,null,null,null);
|
||||
this.actor.rollTable('panicCheck', null, null, null, null, null, null);
|
||||
});
|
||||
|
||||
// Clicking on Armor
|
||||
@@ -444,7 +510,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
// Get the type of item to create.
|
||||
const type = header.dataset.type;
|
||||
// Grab any data associated with this control.
|
||||
const data = duplicate(header.dataset);
|
||||
var data;
|
||||
if (game.release.generation >= 12) {
|
||||
data = foundry.utils.duplicate(header.dataset);
|
||||
} else {
|
||||
data = duplicate(header.dataset);
|
||||
}
|
||||
|
||||
// Initialize a default name.
|
||||
const name = `New ${type.capitalize()}`;
|
||||
// Prepare the item object.
|
||||
@@ -459,7 +531,7 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
|
||||
|
||||
// Finally, create the item!
|
||||
return this.actor.createEmbeddedDocuments("Item",[itemData]);
|
||||
return this.actor.createEmbeddedDocuments("Item", [itemData]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -473,7 +545,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
// Get the type of item to create.
|
||||
const type = header.dataset.type;
|
||||
// Grab any data associated with this control.
|
||||
const data = duplicate(header.dataset);
|
||||
var data;
|
||||
if (game.release.generation >= 12) {
|
||||
data = foundry.utils.duplicate(header.dataset);
|
||||
} else {
|
||||
data = duplicate(header.dataset);
|
||||
}
|
||||
//const data = duplicate(header.dataset);
|
||||
// Initialize a default name.
|
||||
const name = `New Skill`;
|
||||
// Prepare the item object.
|
||||
@@ -499,16 +577,16 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
label: "Create",
|
||||
callback: (html) => {
|
||||
var rank = html.find('[id=\"rank\"]')[0].value;
|
||||
if(rank == "Trained")
|
||||
if (rank == "Trained")
|
||||
itemData.data.bonus = 10;
|
||||
if(rank == "Expert")
|
||||
if (rank == "Expert")
|
||||
itemData.data.bonus = 15;
|
||||
if(rank == "Master")
|
||||
if (rank == "Master")
|
||||
itemData.data.bonus = 20;
|
||||
|
||||
itemData.data.rank = rank;
|
||||
itemData.name = html.find('[id=\"name\"]')[0].value
|
||||
this.actor.createEmbeddedDocuments("Item",[itemData]);
|
||||
this.actor.createEmbeddedDocuments("Item", [itemData]);
|
||||
}
|
||||
},
|
||||
cancel: {
|
||||
@@ -523,7 +601,7 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
d.render(true);
|
||||
|
||||
// Finally, create the item!
|
||||
return ;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -549,7 +627,13 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
|
||||
async _updateObject(event, formData) {
|
||||
const actor = this.object;
|
||||
const updateData = expandObject(formData);
|
||||
|
||||
var updateData;
|
||||
if (game.release.generation >= 12) {
|
||||
updateData = foundry.utils.expandObject(formData);
|
||||
} else {
|
||||
updateData = expandObject(formData);
|
||||
}
|
||||
|
||||
await actor.update(updateData, {
|
||||
diff: false
|
||||
|
||||
+22
-10
@@ -6,6 +6,7 @@ export class MothershipActor extends Actor {
|
||||
|
||||
//Augment the basic actor data with additional dynamic data.
|
||||
prepareData() {
|
||||
//console.log(game.release.generation);
|
||||
super.prepareData();
|
||||
|
||||
const actorData = this;
|
||||
@@ -1420,7 +1421,7 @@ export class MothershipActor extends Actor {
|
||||
let woundText = ``;
|
||||
let tableResultEdited = ``;
|
||||
let tableResultFooter = ``;
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID())
|
||||
let rollTarget = null;
|
||||
let valueAddress = [];
|
||||
let specialRoll = null;
|
||||
@@ -2164,7 +2165,7 @@ export class MothershipActor extends Actor {
|
||||
let woundEffect = ``;
|
||||
let msgHeader = ``;
|
||||
let msgImgPath = ``;
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID());
|
||||
let firstEdition = game.settings.get('mosh','firstEdition');
|
||||
let useCalm = game.settings.get('mosh','useCalm');
|
||||
//customize this roll if its a unique use-case
|
||||
@@ -2777,7 +2778,7 @@ export class MothershipActor extends Actor {
|
||||
let msgFlavor = ``;
|
||||
let msgOutcome = ``;
|
||||
let msgChange = ``;
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID())
|
||||
let halfDamage = false;
|
||||
let firstEdition = game.settings.get('mosh','firstEdition');
|
||||
let useCalm = game.settings.get('mosh','useCalm');
|
||||
@@ -3087,7 +3088,7 @@ export class MothershipActor extends Actor {
|
||||
let oldValue = 0;
|
||||
let newValue = 0;
|
||||
let flavorText = ``;
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID())
|
||||
//find where this item is located
|
||||
//get current compendium
|
||||
let compendium = game.packs;
|
||||
@@ -3249,9 +3250,15 @@ export class MothershipActor extends Actor {
|
||||
let messageTemplate = ``;
|
||||
let messageContent = ``;
|
||||
let msgBody = ``;
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID())
|
||||
//dupe item to work with
|
||||
let item = duplicate(this.getEmbeddedDocument('Item',itemId));
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.getEmbeddedDocument('Item',itemId));
|
||||
} else {
|
||||
item = duplicate(this.getEmbeddedDocument('Item',itemId));
|
||||
}
|
||||
|
||||
//reload
|
||||
if (!item.system.useAmmo) {
|
||||
//exit function (it should not be possible to get here)
|
||||
@@ -3312,7 +3319,7 @@ export class MothershipActor extends Actor {
|
||||
//make the player take bleeding damage
|
||||
async takeBleedingDamage() {
|
||||
//init vars
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID())
|
||||
//determine bleeding amount
|
||||
let healthLost = this.items.getName("Bleeding").system.severity*-1;
|
||||
//run the function for the player's 'Selected Character'
|
||||
@@ -3352,7 +3359,7 @@ export class MothershipActor extends Actor {
|
||||
//make the player take radiation damage
|
||||
async takeRadiationDamage() {
|
||||
//init vars
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID())
|
||||
//reduce all stats and saves by 1
|
||||
this.modifyActor('system.stats.strength.value',-1,null,false);
|
||||
this.modifyActor('system.stats.speed.value',-1,null,false);
|
||||
@@ -3396,7 +3403,7 @@ export class MothershipActor extends Actor {
|
||||
//make the player take radiation damage
|
||||
async takeCryoDamage(rollString) {
|
||||
//init vars
|
||||
let chatId = randomID();
|
||||
let chatId = (game.release.generation >= 12 ? foundry.utils.randomID(): randomID())
|
||||
//roll the dice
|
||||
//parse the roll string
|
||||
let parsedRollString = this.parseRollString(rollString,'low');
|
||||
@@ -3906,7 +3913,12 @@ export class MothershipActor extends Actor {
|
||||
|
||||
// print description
|
||||
printDescription(itemId, options = { event: null }) {
|
||||
let item = duplicate(this.getEmbeddedDocument('Item',itemId));
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.getEmbeddedDocument('Item',itemId));
|
||||
} else {
|
||||
item = duplicate(this.getEmbeddedDocument('Item',itemId));
|
||||
}
|
||||
this.chatDesc(item);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,13 +8,19 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
var options = {
|
||||
classes: ["mosh", "sheet", "actor", "creature"],
|
||||
template: "systems/mosh/templates/actor/creature-sheet.html",
|
||||
width: 700,
|
||||
height: 650,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "character" }]
|
||||
});
|
||||
};
|
||||
|
||||
if (game.release.generation >= 12) {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, options);
|
||||
} else {
|
||||
return mergeObject(super.defaultOptions, options);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -46,7 +52,13 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
|
||||
async _updateObject(event, formData) {
|
||||
const actor = this.object;
|
||||
const updateData = expandObject(formData);
|
||||
var updateData;
|
||||
if (game.release.generation >= 12) {
|
||||
updateData = foundry.utils.expandObject(formData);
|
||||
} else {
|
||||
updateData = expandObject(formData);
|
||||
}
|
||||
|
||||
|
||||
await actor.update(updateData, {
|
||||
diff: false
|
||||
@@ -70,12 +82,12 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
|
||||
if (data.data.system.settings == null) {
|
||||
data.data.system.settings = {};
|
||||
}
|
||||
data.data.system.settings.useCalm = game.settings.get("mosh", "useCalm");
|
||||
data.data.system.settings.hideWeight = game.settings.get("mosh", "hideWeight");
|
||||
data.data.system.settings.firstEdition = game.settings.get("mosh", "firstEdition");
|
||||
data.data.system.settings.androidPanic = game.settings.get("mosh", "androidPanic");
|
||||
|
||||
}
|
||||
data.data.system.settings.useCalm = game.settings.get("mosh", "useCalm");
|
||||
data.data.system.settings.hideWeight = game.settings.get("mosh", "hideWeight");
|
||||
data.data.system.settings.firstEdition = game.settings.get("mosh", "firstEdition");
|
||||
data.data.system.settings.androidPanic = game.settings.get("mosh", "androidPanic");
|
||||
|
||||
return data.data;
|
||||
}
|
||||
|
||||
@@ -88,7 +100,7 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
*/
|
||||
_prepareCreatureItems(sheetData) {
|
||||
const actorData = sheetData.data;
|
||||
|
||||
|
||||
// Initialize containers.
|
||||
const abilities = [];
|
||||
const weapons = [];
|
||||
@@ -102,7 +114,7 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
if (i.type === 'ability') {
|
||||
abilities.push(i);
|
||||
} else if (i.type === 'weapon') {
|
||||
if(item.ranges.value == "" && item.ranges.medium > 0){
|
||||
if (item.ranges.value == "" && item.ranges.medium > 0) {
|
||||
item.ranges.value = item.ranges.short + "/" + item.ranges.medium + "/" + item.ranges.long;
|
||||
item.ranges.medium = 0;
|
||||
}
|
||||
@@ -126,7 +138,7 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
// Delete Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.deleteEmbeddedDocuments("Item",[li.data("itemId")]);
|
||||
this.actor.deleteEmbeddedDocuments("Item", [li.data("itemId")]);
|
||||
li.slideUp(200, () => this.render(false));
|
||||
});
|
||||
|
||||
@@ -141,7 +153,7 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
html.find('.stat-roll').click(ev => {
|
||||
const div = $(ev.currentTarget);
|
||||
const statName = div.data("key");
|
||||
this.actor.rollCheck(null,'low',statName,null,null,null);
|
||||
this.actor.rollCheck(null, 'low', statName, null, null, null);
|
||||
});
|
||||
|
||||
//Weapons
|
||||
@@ -158,22 +170,37 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
// Rollable Weapon
|
||||
html.find('.weapon-roll').click(ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
this.actor.rollCheck(null,'low','combat',null,null,item);
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
this.actor.rollCheck(null, 'low', 'combat', null, null, item);
|
||||
});
|
||||
|
||||
// Rollable Damage
|
||||
html.find('.dmg-roll').click(ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
this.actor.rollCheck(null,null,'damage',null,null,item);
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
this.actor.rollCheck(null, null, 'damage', null, null, item);
|
||||
});
|
||||
|
||||
//increase ammo
|
||||
html.on('mousedown', '.weapon-ammo', ev => {
|
||||
//dupe item to work on
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
let amount = item.system.ammo;
|
||||
//increase ammo
|
||||
if (event.button == 0) {
|
||||
@@ -189,24 +216,29 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
this.actor.updateEmbeddedDocuments('Item', [item]);
|
||||
});
|
||||
|
||||
//increase shots
|
||||
html.on('mousedown', '.weapon-shots', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
if (event.button == 0) {
|
||||
if (item.system.curShots >= 0 && item.system.curShots < item.system.shots && item.system.ammo > 0) {
|
||||
item.system.curShots = Number(item.system.curShots) + 1;
|
||||
item.system.ammo = Number(item.system.ammo) - 1;
|
||||
}
|
||||
} else if (event.button == 2) {
|
||||
if (item.system.curShots > 0) {
|
||||
item.system.curShots = Number(item.system.curShots) - 1;
|
||||
item.system.ammo = Number(item.system.ammo) + 1;
|
||||
}
|
||||
}
|
||||
this.actor.updateEmbeddedDocuments('Item', [item]);
|
||||
});
|
||||
|
||||
//increase shots
|
||||
html.on('mousedown', '.weapon-shots', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
if (event.button == 0) {
|
||||
if (item.system.curShots >= 0 && item.system.curShots < item.system.shots && item.system.ammo > 0) {
|
||||
item.system.curShots = Number(item.system.curShots) + 1;
|
||||
item.system.ammo = Number(item.system.ammo) - 1;
|
||||
}
|
||||
} else if (event.button == 2) {
|
||||
if (item.system.curShots > 0) {
|
||||
item.system.curShots = Number(item.system.curShots) - 1;
|
||||
item.system.ammo = Number(item.system.ammo) + 1;
|
||||
}
|
||||
}
|
||||
this.actor.updateEmbeddedDocuments('Item', [item]);
|
||||
});
|
||||
|
||||
//Reload Shots
|
||||
html.on('mousedown', '.weapon-reload', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
@@ -247,7 +279,12 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
// Get the type of item to create.
|
||||
const type = header.dataset.type;
|
||||
// Grab any data associated with this control.
|
||||
const data = duplicate(header.dataset);
|
||||
var data;
|
||||
if (game.release.generation >= 12) {
|
||||
data = foundry.utils.duplicate(header.dataset);
|
||||
} else {
|
||||
data = duplicate(header.dataset);
|
||||
}
|
||||
// Initialize a default name.
|
||||
const name = `New ${type.capitalize()}`;
|
||||
// Prepare the item object.
|
||||
@@ -260,7 +297,7 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
delete itemData.data["type"];
|
||||
|
||||
// Finally, create the item!
|
||||
return this.actor.createEmbeddedDocuments("Item",[itemData]);
|
||||
return this.actor.createEmbeddedDocuments("Item", [itemData]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+103
-72
@@ -12,16 +12,26 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
|
||||
var options = {
|
||||
classes: ["mosh", "sheet", "actor", "ship"],
|
||||
template: "systems/mosh/templates/actor/ship-sheet-sbt.html",
|
||||
width: 700,
|
||||
height: 840,
|
||||
tabs: [{ navSelector: "#sheet-tabs", contentSelector: "#sheet-body", initial: "character" },
|
||||
{ navSelector: "#side-tabs", contentSelector: "#side-body", initial: "close" }],
|
||||
// { navSelector: "#side-tabs", contentSelector: "#side-body", initial: "crew" }],
|
||||
{ navSelector: "#side-tabs", contentSelector: "#side-body", initial: "close" }],
|
||||
// { navSelector: "#side-tabs", contentSelector: "#side-body", initial: "crew" }],
|
||||
scrollY: [".sheet-body", "scroll-lock"]
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
if (game.release.generation >= 12) {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, options);
|
||||
} else {
|
||||
return mergeObject(super.defaultOptions, options);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
_onOpenDeckplan(event) {
|
||||
@@ -65,7 +75,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
data.dtypes = ["String", "Number", "Boolean"];
|
||||
|
||||
// console.log(this.actor.getRollTableData('AqGWwoWXzijFs427'));
|
||||
|
||||
|
||||
// for (let attr of Object.values(data.data.system.attributes)) {
|
||||
// attr.isCheckbox = attr.dtype === "Boolean";
|
||||
// }
|
||||
@@ -89,7 +99,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
|
||||
let maxHull = superData.supplies.hull.max;
|
||||
|
||||
superData.supplies.hull.percentage = " [ "+Math.round(maxHull * 0.25)+" | "+Math.round(maxHull * 0.5)+" | "+Math.round(maxHull * 0.75)+" ]";
|
||||
superData.supplies.hull.percentage = " [ " + Math.round(maxHull * 0.25) + " | " + Math.round(maxHull * 0.5) + " | " + Math.round(maxHull * 0.75) + " ]";
|
||||
|
||||
|
||||
//Run Setup
|
||||
@@ -103,12 +113,12 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
// data.data.system.runSetup = false;
|
||||
// }
|
||||
|
||||
this._prepareMegadamage(data);
|
||||
this._prepareMegadamage(superData);
|
||||
|
||||
return data.data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Organize and classify Items for Character sheets.
|
||||
*
|
||||
@@ -143,13 +153,13 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
cargo.push(i);
|
||||
} else if (i.type === 'module') {
|
||||
modules.push(i);
|
||||
} else if (i.type == 'repair'){
|
||||
} else if (i.type == 'repair') {
|
||||
i.name = i.name.split('.')[0];
|
||||
|
||||
if(i.system.major){
|
||||
if (i.system.major) {
|
||||
majorRepairs.push(i);
|
||||
}
|
||||
else{
|
||||
else {
|
||||
minorRepairs.push(i);
|
||||
}
|
||||
}
|
||||
@@ -165,31 +175,30 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
|
||||
}
|
||||
|
||||
async _prepareMegadamage(sheetData){
|
||||
const actorData = sheetData.data;
|
||||
|
||||
async _prepareMegadamage(sheetData) {
|
||||
const actorData = sheetData;
|
||||
//A script to return the data from a table.
|
||||
let tableId = game.settings.get('mosh','table1eMegadamageEffects');
|
||||
let tableId = game.settings.get('mosh', 'table1eMegadamageEffects');
|
||||
let currentLocation = '';
|
||||
let tableLocation = '';
|
||||
//find where this table is located
|
||||
//get current compendium
|
||||
let compendium = game.packs;
|
||||
//loop through each compendium
|
||||
compendium.forEach(function(pack){
|
||||
//is this a pack of rolltables?
|
||||
if (pack.metadata.type === 'RollTable') {
|
||||
//log where we are
|
||||
currentLocation = pack.metadata.id;
|
||||
//loop through each pack to find the right table
|
||||
pack.index.forEach(function(table) {
|
||||
//is this our table?
|
||||
if (table._id === tableId) {
|
||||
//grab the table location
|
||||
tableLocation = currentLocation;
|
||||
compendium.forEach(function (pack) {
|
||||
//is this a pack of rolltables?
|
||||
if (pack.metadata.type === 'RollTable') {
|
||||
//log where we are
|
||||
currentLocation = pack.metadata.id;
|
||||
//loop through each pack to find the right table
|
||||
pack.index.forEach(function (table) {
|
||||
//is this our table?
|
||||
if (table._id === tableId) {
|
||||
//grab the table location
|
||||
tableLocation = currentLocation;
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
//get table data
|
||||
let tableData = await game.packs.get(tableLocation).getDocument(tableId);
|
||||
@@ -197,38 +206,37 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
let megadamageHTML = "";
|
||||
|
||||
let entries = Array.from(tableData.results.entries());
|
||||
|
||||
//Prep Megadamage List
|
||||
// if(actorData.system.megadamage.hits.length > 0){
|
||||
let index = 0;
|
||||
for(const entry of entries){
|
||||
let index = 0;
|
||||
for (const entry of entries) {
|
||||
|
||||
// Megadamage - Only Active
|
||||
if(index != 0 && actorData.system.megadamage.hits.includes(index)){
|
||||
// megadamageHTML += `<i class="fa-solid fa-wrench megadamage-button rollable" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<i class="fas fa-circle megadamage-button rollable" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<b>${index} |</b> ${entry[1].text} <br/> <br/>`;
|
||||
} else if(index != 0) {
|
||||
// megadamageHTML += `<i class="fa-solid fa-wrench megadamage-button rollable" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<div class="grey"><i class="far fa-circle megadamage-button rollable grey" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<b>${index} |</b> ${entry[1].text} <br/> <br/></div>`;
|
||||
}
|
||||
index++;
|
||||
// Megadamage - Only Active
|
||||
if (index != 0 && actorData.megadamage.hits.includes(index)) {
|
||||
// megadamageHTML += `<i class="fa-solid fa-wrench megadamage-button rollable" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<i class="fas fa-circle megadamage-button rollable" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<b>${index} |</b> ${entry[1].text} <br/> <br/>`;
|
||||
} else if (index != 0) {
|
||||
// megadamageHTML += `<i class="fa-solid fa-wrench megadamage-button rollable" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<div class="grey"><i class="far fa-circle megadamage-button rollable grey" data-key="${index}"></i>  `;
|
||||
megadamageHTML += `<b>${index} |</b> ${entry[1].text} <br/> <br/></div>`;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
// } else {
|
||||
|
||||
// megadamageHTML += entries[0][1].text + "<br/> <br/>";
|
||||
|
||||
// megadamageHTML += entries[0][1].text + "<br/> <br/>";
|
||||
// }
|
||||
|
||||
await this.object.update({
|
||||
"data.megadamage.html": megadamageHTML
|
||||
"system.megadamage.html": megadamageHTML
|
||||
});
|
||||
|
||||
if(actorData.system.page == undefined){
|
||||
actorData.system.page = {};
|
||||
if (actorData.page == undefined) {
|
||||
actorData.page = {};
|
||||
}
|
||||
|
||||
actorData.system.page.megadamageMenuClass = "";
|
||||
actorData.page.megadamageMenuClass = "";
|
||||
|
||||
// if(actorData.system.megadamage.open){
|
||||
// actorData.system.page.megadamageMenuClass = "sbt-megadamage-open"
|
||||
@@ -236,7 +244,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
// actorData.system.page.megadamageMenuClass = "sbt-megadamage-closed"
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// await this.object.update({
|
||||
// "data.megadamage.hits": []
|
||||
// });
|
||||
@@ -253,22 +261,22 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
|
||||
html.on('mousedown', '.megadamage-button', ev => {
|
||||
const data = this.object;
|
||||
|
||||
|
||||
const div = $(ev.currentTarget);
|
||||
const targetKey = div.data("key");
|
||||
|
||||
if(data.data.system.megadamage.hits.includes(targetKey)){
|
||||
const index = data.data.system.megadamage.hits.indexOf(targetKey);
|
||||
data.data.system.megadamage.hits.splice(index, 1);
|
||||
if (data.system.megadamage.hits.includes(targetKey)) {
|
||||
const index = data.system.megadamage.hits.indexOf(targetKey);
|
||||
data.system.megadamage.hits.splice(index, 1);
|
||||
} else {
|
||||
data.data.system.megadamage.hits.push(targetKey);
|
||||
data.system.megadamage.hits.push(targetKey);
|
||||
}
|
||||
|
||||
|
||||
this.object.update({
|
||||
"data.megadamage.hits": data.data.system.megadamage.hits
|
||||
"system.megadamage.hits": data.system.megadamage.hits
|
||||
});
|
||||
|
||||
this._prepareMegadamage(data);
|
||||
this._prepareMegadamage(data.system);
|
||||
});
|
||||
|
||||
// Create inventory item.
|
||||
@@ -276,7 +284,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
// Delete Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.deleteEmbeddedDocuments("Item",[li.data("itemId")]);
|
||||
this.actor.deleteEmbeddedDocuments("Item", [li.data("itemId")]);
|
||||
li.slideUp(200, () => this.render(false));
|
||||
});
|
||||
|
||||
@@ -296,7 +304,13 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
//Quantity adjuster
|
||||
html.on('mousedown', '.item-quantity', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
let amount = item.system.quantity;
|
||||
|
||||
if (event.button == 0) {
|
||||
@@ -316,7 +330,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
html.find('.stat-roll').click(ev => {
|
||||
const div = $(ev.currentTarget);
|
||||
const statName = div.data("key");
|
||||
this.actor.rollCheck(null,'low',statName,null,null,null);
|
||||
this.actor.rollCheck(null, 'low', statName, null, null, null);
|
||||
});
|
||||
|
||||
//Weapons
|
||||
@@ -330,11 +344,16 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
});
|
||||
|
||||
// Rollable Weapon - not needed since individual ship weapons are not fired
|
||||
// html.find('.weapon-roll').click(ev => {
|
||||
// const li = ev.currentTarget.closest(".item");
|
||||
// const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
// this.actor.rollCheck(null,'low','combat',null,null,item);
|
||||
// });
|
||||
html.find('.weapon-roll').click(ev => {
|
||||
// const li = ev.currentTarget.closest(".item");
|
||||
// const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
// this.actor.rollCheck(null,'low','combat',null,null,item);
|
||||
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
this.actor.printDescription(li.dataset.itemId, {
|
||||
event: ev
|
||||
});
|
||||
});
|
||||
|
||||
// Distress Signal
|
||||
html.find('.distress-button').click(ev => {
|
||||
@@ -393,7 +412,13 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
|
||||
html.on('mousedown', '.weapon-ammo', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
//const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
let amount = item.system.ammo;
|
||||
|
||||
if (event.button == 0) {
|
||||
@@ -454,7 +479,13 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
|
||||
|
||||
// Grab any data associated with this control.
|
||||
const data = duplicate(header.dataset);
|
||||
var data;
|
||||
if (game.release.generation >= 12) {
|
||||
data = foundry.utils.duplicate(header.dataset);
|
||||
} else {
|
||||
data = duplicate(header.dataset);
|
||||
}
|
||||
|
||||
// Initialize a default name.
|
||||
const name = `New ${type.capitalize()}`;
|
||||
// Prepare the item object.
|
||||
@@ -462,18 +493,18 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
name: name,
|
||||
type: type,
|
||||
data: data,
|
||||
system : {}
|
||||
system: {}
|
||||
};
|
||||
|
||||
if(type == "repair"){
|
||||
itemData.system.major = (header.dataset.subtype == "major");
|
||||
if (type == "repair") {
|
||||
itemData.system.major = (header.dataset.subtype == "major");
|
||||
}
|
||||
|
||||
// Remove the type from the dataset since it's in the itemData.type prop.
|
||||
delete itemData.data["type"];
|
||||
|
||||
// Finally, create the item!
|
||||
return this.actor.createEmbeddedDocuments("Item",[itemData]);
|
||||
return this.actor.createEmbeddedDocuments("Item", [itemData]);
|
||||
}
|
||||
|
||||
|
||||
@@ -488,7 +519,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
const dataset = element.dataset;
|
||||
|
||||
if (dataset.roll) {
|
||||
let roll = new Roll(dataset.roll, this.actor.data.data);
|
||||
let roll = new Roll(dataset.roll, this.actor.data.system);
|
||||
let label = dataset.label ? `Rolling ${dataset.label} to score under ${dataset.target}` : '';
|
||||
roll.roll().toMessage({
|
||||
speaker: ChatMessage.getSpeaker({ actor: this.actor }),
|
||||
|
||||
+31
-10
@@ -22,7 +22,7 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
const data = super.getData();
|
||||
|
||||
data.dtypes = ["String", "Number", "Boolean"];
|
||||
|
||||
|
||||
// for (let attr of Object.values(data.data.system.attributes)) {
|
||||
// attr.isCheckbox = attr.dtype === "Boolean";
|
||||
// }
|
||||
@@ -45,7 +45,7 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
|
||||
let maxHull = superData.supplies.hull.max;
|
||||
|
||||
superData.supplies.hull.percentage = " [ "+Math.round(maxHull * 0.25)+" | "+Math.round(maxHull * 0.5)+" | "+Math.round(maxHull * 0.75)+" ]";
|
||||
superData.supplies.hull.percentage = " [ " + Math.round(maxHull * 0.25) + " | " + Math.round(maxHull * 0.5) + " | " + Math.round(maxHull * 0.75) + " ]";
|
||||
|
||||
return data.data;
|
||||
}
|
||||
@@ -103,7 +103,7 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
// Delete Inventory Item
|
||||
html.find('.item-delete').click(ev => {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
this.actor.deleteEmbeddedDocuments("Item",[li.data("itemId")]);
|
||||
this.actor.deleteEmbeddedDocuments("Item", [li.data("itemId")]);
|
||||
li.slideUp(200, () => this.render(false));
|
||||
});
|
||||
|
||||
@@ -123,7 +123,12 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
//Quantity adjuster
|
||||
html.on('mousedown', '.item-quantity', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
let amount = item.system.quantity;
|
||||
|
||||
if (event.button == 0) {
|
||||
@@ -143,7 +148,7 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
html.find('.stat-roll').click(ev => {
|
||||
const div = $(ev.currentTarget);
|
||||
const statName = div.data("key");
|
||||
this.actor.rollCheck(null,'low',statName,null,null,null);
|
||||
this.actor.rollCheck(null, 'low', statName, null, null, null);
|
||||
});
|
||||
|
||||
//Weapons
|
||||
@@ -158,13 +163,23 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
// Rollable Weapon
|
||||
html.find('.weapon-roll').click(ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
this.actor.rollCheck(null,'low','combat',null,null,item);
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
this.actor.rollCheck(null, 'low', 'combat', null, null, item);
|
||||
});
|
||||
|
||||
html.on('mousedown', '.weapon-ammo', ev => {
|
||||
const li = ev.currentTarget.closest(".item");
|
||||
const item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId))
|
||||
var item;
|
||||
if (game.release.generation >= 12) {
|
||||
item = foundry.utils.duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
} else {
|
||||
item = duplicate(this.actor.getEmbeddedDocument("Item", li.dataset.itemId));
|
||||
}
|
||||
let amount = item.system.ammo;
|
||||
|
||||
if (event.button == 0) {
|
||||
@@ -220,7 +235,13 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
// Get the type of item to create.
|
||||
const type = header.dataset.type;
|
||||
// Grab any data associated with this control.
|
||||
const data = duplicate(header.dataset);
|
||||
var data;
|
||||
if (game.release.generation >= 12) {
|
||||
data = foundry.utils.duplicate(header.dataset);
|
||||
} else {
|
||||
data = duplicate(header.dataset);
|
||||
}
|
||||
|
||||
// Initialize a default name.
|
||||
const name = `New ${type.capitalize()}`;
|
||||
// Prepare the item object.
|
||||
@@ -233,7 +254,7 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
delete itemData.data["type"];
|
||||
|
||||
// Finally, create the item!
|
||||
return this.actor.createEmbeddedDocuments("Item",[itemData]);
|
||||
return this.actor.createEmbeddedDocuments("Item", [itemData]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -6,12 +6,18 @@ export class MothershipItemSheet extends ItemSheet {
|
||||
|
||||
/** @override */
|
||||
static get defaultOptions() {
|
||||
return mergeObject(super.defaultOptions, {
|
||||
var options = {
|
||||
classes: ["mosh", "sheet", "item"],
|
||||
width: 600,
|
||||
height: 500,
|
||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "description" }]
|
||||
});
|
||||
};
|
||||
|
||||
if (game.release.generation >= 12) {
|
||||
return foundry.utils.mergeObject(super.defaultOptions, options);
|
||||
} else {
|
||||
return mergeObject(super.defaultOptions, options);
|
||||
}
|
||||
}
|
||||
|
||||
/** @override */
|
||||
@@ -32,8 +38,8 @@ export class MothershipItemSheet extends ItemSheet {
|
||||
const data = super.getData();
|
||||
const superData = data.system;
|
||||
|
||||
if(data.type == "weapon"){
|
||||
if(superData.ranges.value == "" && superData.ranges.medium > 0){
|
||||
if (data.type == "weapon") {
|
||||
if (superData.ranges.value == "" && superData.ranges.medium > 0) {
|
||||
superData.ranges.value = superData.ranges.short + "/" + superData.ranges.medium + "/" + superData.ranges.long;
|
||||
superData.ranges.medium = 0;
|
||||
}
|
||||
@@ -45,7 +51,7 @@ export class MothershipItemSheet extends ItemSheet {
|
||||
data.data.system.settings.useCalm = game.settings.get("mosh", "useCalm");
|
||||
data.data.system.settings.hideWeight = game.settings.get("mosh", "hideWeight");
|
||||
data.data.system.settings.firstEdition = game.settings.get("mosh", "firstEdition");
|
||||
data.data.system.settings.androidPanic = game.settings.get("mosh", "androidPanic");
|
||||
data.data.system.settings.androidPanic = game.settings.get("mosh", "androidPanic");
|
||||
|
||||
return data.data;
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ Hooks.once('init', async function () {
|
||||
|
||||
|
||||
Hooks.once("ready", async function () {
|
||||
|
||||
// Wait to register hotbar drop hook on ready so that modules could register earlier if they want to
|
||||
Hooks.on("hotbarDrop", (bar, data, slot) => createMothershipMacro(data, slot));
|
||||
//Calm & 1e/0e character updates
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<br/>
|
||||
<div class="megadamage-list">{{{system.megadamage.html}}}</div>
|
||||
|
||||
<div class="circle-statwrapper">
|
||||
<div class="circle-statwrapper">
|
||||
<div class="resource healthspread minmaxtopstat flex-center" style="grid-template-rows: max-content;">
|
||||
<label for="system.supplies.hull.value" class="resource-label minmaxtext">Hull Points</label>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user