Fix sheets to await parent data
This commit is contained in:
@@ -21,7 +21,7 @@ export class MothershipActorSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
async getData() {
|
||||
const data = super.getData();
|
||||
const data = await super.getData();
|
||||
|
||||
data.dtypes = ["String", "Number", "Boolean"];
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ export class MothershipCreatureSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
async getData() {
|
||||
const data = super.getData();
|
||||
const data = await super.getData();
|
||||
data.dtypes = ["String", "Number", "Boolean"];
|
||||
// for (let attr of Object.values(data.data.attributes)) {
|
||||
// attr.isCheckbox = attr.dtype === "Boolean";
|
||||
|
||||
@@ -66,7 +66,7 @@ export class MothershipShipSheetSBT extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
async getData() {
|
||||
const data = super.getData();
|
||||
const data = await super.getData();
|
||||
|
||||
data.dtypes = ["String", "Number", "Boolean"];
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ export class MothershipShipSheet extends ActorSheet {
|
||||
|
||||
/** @override */
|
||||
async getData() {
|
||||
const data = super.getData();
|
||||
const data = await super.getData();
|
||||
|
||||
data.dtypes = ["String", "Number", "Boolean"];
|
||||
|
||||
|
||||
@@ -25,13 +25,21 @@ export class MothershipClassSheet extends MothershipItemSheet {
|
||||
|
||||
/** @override */
|
||||
async getData() {
|
||||
const data = super.getData();
|
||||
const data = await super.getData();
|
||||
if (typeof data.system.base_adjustment.skills_granted == 'undefined'){
|
||||
data.system.base_adjustment.skills_granted=[];
|
||||
}
|
||||
data.system.base_adjustment.skills_granted_object = [];
|
||||
for (const skill of data.system.base_adjustment.skills_granted){
|
||||
data.system.base_adjustment.skills_granted_object.push(await fromUuid(skill));
|
||||
if(Array.isArray(skill)){
|
||||
let option_skills = [];
|
||||
for (const option of skill){
|
||||
option_skills.push(await fromUuid(option));
|
||||
}
|
||||
data.system.base_adjustment.skills_granted_object.push(option_skills);
|
||||
}else{
|
||||
data.system.base_adjustment.skills_granted_object.push(await fromUuid(skill));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -56,17 +64,31 @@ export class MothershipClassSheet extends MothershipItemSheet {
|
||||
if (droppedUuid.type != "Item"){
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(event);
|
||||
console.log(event.currentTarget);
|
||||
console.log(event.target);
|
||||
console.log(event.target.parentNode);
|
||||
const droppedObject = await fromUuid(droppedUuid.uuid);
|
||||
if (droppedObject.type == "skill"){
|
||||
//todo: add a check if the skill already exist in the list and dont add it, (by id or by name?)
|
||||
if(event.target.id == "skills.fixed"){
|
||||
let skills = this.object.system.base_adjustment.skills_granted;
|
||||
skills.push(droppedObject.uuid);
|
||||
this.object.update({"system.base_adjustment.skills_granted":skills});
|
||||
return this.render(false);
|
||||
if(event.currentTarget.id == "skills.fixed"){
|
||||
let parent_fixed_or = event.target.closest('div[id="skills.fixed.or"]');
|
||||
|
||||
if(parent_fixed_or){
|
||||
let array_index = parent_fixed_or.getAttribute("index");
|
||||
let skills = this.object.system.base_adjustment.skills_granted;
|
||||
skills[array_index].push(droppedObject.uuid);
|
||||
this.object.update({"system.base_adjustment.skills_granted":skills});
|
||||
return this.render(false);
|
||||
|
||||
}else{
|
||||
let skills = this.object.system.base_adjustment.skills_granted;
|
||||
skills.push(droppedObject.uuid);
|
||||
this.object.update({"system.base_adjustment.skills_granted":skills});
|
||||
return this.render(false);
|
||||
}
|
||||
}
|
||||
else if(event.target.id =="skills.common"){
|
||||
else if(event.currentTarget.id =="skills.common"){
|
||||
let skills = this.object.system.common_skills;
|
||||
skills.push(droppedObject.uuid);
|
||||
this.object.update({"system.common_skills":skills});
|
||||
@@ -85,7 +107,18 @@ export class MothershipClassSheet extends MothershipItemSheet {
|
||||
const li = $(ev.currentTarget).parents(".item");
|
||||
|
||||
let skills = this.object.system.base_adjustment.skills_granted.filter(function( obj ) {
|
||||
|
||||
if(Array.isArray(obj)){
|
||||
let found = false;
|
||||
for (const option of obj){
|
||||
if (option === li.data("itemId")){
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
return !found;
|
||||
}else{
|
||||
return obj !== li.data("itemId");
|
||||
}
|
||||
});
|
||||
this.object.update({"system.base_adjustment.skills_granted":skills});
|
||||
return this.render(false);
|
||||
@@ -113,6 +146,13 @@ export class MothershipClassSheet extends MothershipItemSheet {
|
||||
});
|
||||
|
||||
html.find('.stat-create').click(this._onStatCreate.bind(this));
|
||||
html.find('div[id="skill-create-or-option"]').click(ev => {
|
||||
let skills = this.object.system.base_adjustment.skills_granted;
|
||||
//add new empty or option
|
||||
skills.push([]);
|
||||
this.object.update({"system.base_adjustment.skills_granted":skills});
|
||||
return this.render(false);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ export class MothershipItemSheet extends ItemSheet {
|
||||
|
||||
/** @override */
|
||||
async getData() {
|
||||
const data = super.getData();
|
||||
const data = await super.getData();
|
||||
const superData = data.system;
|
||||
|
||||
if (data.type == "weapon") {
|
||||
|
||||
@@ -20,7 +20,7 @@ export class MothershipSkillSheet extends MothershipItemSheet {
|
||||
|
||||
/** @override */
|
||||
async getData() {
|
||||
const data = super.getData();
|
||||
const data = await super.getData();
|
||||
if (typeof data.system.prerequisite_ids == 'undefined'){
|
||||
data.system.prerequisite_ids=[];
|
||||
}
|
||||
|
||||
@@ -212,20 +212,51 @@
|
||||
<div class="skill-stat">{{ localize 'Mosh.SkillName' }}</div>
|
||||
<div class="skill-stat">{{ localize 'Mosh.SkillRank' }}</div>
|
||||
<div class="skill-stat">{{ localize 'Mosh.SkillBonus' }}</div>
|
||||
<div class="item-controls">
|
||||
<div class="item-controls" id="skill-create-or-option" >
|
||||
<a class="item-control" title="{{ localize 'Mosh.CreateSkill' }}" data-type="skill"><i
|
||||
class="fas fa-plus"></i> {{ localize 'Mosh.AddOr' }}</a>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
{{#each system.base_adjustment.skills_granted_object as |skill id|}}
|
||||
<li class="item flexrow dropitem" data-item-id="{{skill.uuid}}">
|
||||
<div class="item-image"><img src="{{skill.img}}" title="{{skill.name}}" width="24" height="24" /></div>
|
||||
<div class="skill-name skill-roll list-roll">{{skill.name}}</div>
|
||||
<div class="skill-stat">{{skill.system.rank}}</div>
|
||||
<div class="skill-stat">{{skill.system.bonus}}</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control skills-granted-delete" title="{{ localize 'Mosh.DeleteSkill' }}"><i
|
||||
class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{#if skill.name}}
|
||||
<li class="item flexrow" data-item-id="{{skill.uuid}}">
|
||||
<div class="item-image"><img src="{{skill.img}}" title="{{skill.name}}" width="24" height="24" /></div>
|
||||
<div class="skill-name skill-roll list-roll">{{skill.name}}</div>
|
||||
<div class="skill-stat">{{skill.system.rank}}</div>
|
||||
<div class="skill-stat">{{skill.system.bonus}}</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control skills-granted-delete" title="{{ localize 'Mosh.DeleteSkill' }}"><i
|
||||
class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{else}}
|
||||
<li class="{{#if skill.[1]}}{{else}}item flexrow{{/if}}">
|
||||
<div id = "skills.fixed.or" index="{{@index}}" >
|
||||
<div class="resource-label" style="float: left;">OR</div>
|
||||
<ol style="border-left: 1px solid #111;">
|
||||
{{#each skill as |subskill subid|}}
|
||||
<li class="item flexrow" data-item-id="{{subskill.uuid}}">
|
||||
<div class="item-image"><img src="{{subskill.img}}" title="{{subskill.name}}" width="24" height="24" /></div>
|
||||
<div class="skill-name skill-roll list-roll">{{subskill.name}}</div>
|
||||
<div class="skill-stat">{{subskill.system.rank}}</div>
|
||||
<div class="skill-stat">{{subskill.system.bonus}}</div>
|
||||
<div class="item-controls">
|
||||
<a class="item-control skills-granted-delete" title="{{ localize 'Mosh.DeleteSkill' }}"><i
|
||||
class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
</li>
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
{{#if skill.[1]}}{{else}}
|
||||
<div class="item-controls">
|
||||
<a class="item-control skills-granted-delete" title="{{ localize 'Mosh.DeleteSkill' }}"><i
|
||||
class="fas fa-trash"></i></a>
|
||||
</div>
|
||||
{{/if}}
|
||||
</li>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</ol>
|
||||
</div>
|
||||
@@ -463,7 +494,7 @@
|
||||
</div>
|
||||
</li>
|
||||
{{#each system.common_skills_object as |skill id|}}
|
||||
<li class="item flexrow dropitem" data-item-id="{{skill.uuid}}">
|
||||
<li class="item flexrow" data-item-id="{{skill.uuid}}">
|
||||
<div class="item-image"><img src="{{skill.img}}" title="{{skill.name}}" width="24" height="24" /></div>
|
||||
<div class="skill-name skill-roll list-roll">{{skill.name}}</div>
|
||||
<div class="skill-stat">{{skill.system.rank}}</div>
|
||||
|
||||
Reference in New Issue
Block a user