Fix sheets to await parent data

This commit is contained in:
Melon-PieldeSapo
2025-01-07 14:56:19 +01:00
parent 7f56646f80
commit 09653d8cb5
8 changed files with 98 additions and 27 deletions
+1 -1
View File
@@ -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"];
+1 -1
View File
@@ -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";
+1 -1
View File
@@ -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"];
+1 -1
View File
@@ -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"];
+49 -9
View File
@@ -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);
});
}
+1 -1
View File
@@ -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") {
+1 -1
View File
@@ -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=[];
}
+43 -12
View File
@@ -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>