Skip to content

Commit 95fdac7

Browse files
committed
Fix missing traits on npc skills
1 parent eec9b45 commit 95fdac7

File tree

4 files changed

+23
-22
lines changed

4 files changed

+23
-22
lines changed

module/documents/items/misc/misc-ability-data-model.mjs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ const skillForAttributeCheck = 'skillForAttributeCheck';
1818
/**
1919
* @type RenderCheckHook
2020
*/
21-
let onRenderAccuracyCheck = (data, check, actor, item, flags) => {
21+
let onRenderAccuracyCheck = async (data, check, actor, item, flags) => {
2222
if (check.type === 'accuracy' && item?.system instanceof MiscAbilityDataModel) {
2323
const inspector = CheckConfiguration.inspect(check);
24-
const weapon = fromUuidSync(inspector.getWeaponReference());
24+
const weapon = await fromUuid(inspector.getWeaponReference());
2525
if (check.critical) {
2626
CommonSections.opportunity(data.sections, item.system.opportunity, CHECK_DETAILS);
2727
}
@@ -46,10 +46,10 @@ Hooks.on(CheckHooks.renderCheck, onRenderAccuracyCheck);
4646
/**
4747
* @type RenderCheckHook
4848
*/
49-
let onRenderAttributeCheck = (sections, check, actor, item, flags) => {
49+
let onRenderAttributeCheck = async (sections, check, actor, item, flags) => {
5050
if (check.type === 'attribute' && item?.system instanceof MiscAbilityDataModel && check.additionalData[skillForAttributeCheck]) {
5151
const inspector = CheckConfiguration.inspect(check);
52-
const ability = fromUuidSync(inspector.getWeaponReference());
52+
const ability = await fromUuid(inspector.getWeaponReference());
5353
CommonSections.itemFlavor(sections, ability);
5454
if (check.critical) {
5555
CommonSections.opportunity(sections, ability.system.opportunity, CHECK_DETAILS);
@@ -216,7 +216,7 @@ export class MiscAbilityDataModel extends BaseSkillDataModel {
216216
config.setWeaponReference(weapon);
217217
await this.configureCheck(config);
218218
await this.addSkillAccuracy(config, actor, item, context);
219-
await this.addSkillDamage(config, item, context);
219+
await this.addSkillDamage(config, item, context, weapon.system);
220220
};
221221
}
222222

module/documents/items/skill/base-skill-data-model.mjs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { ItemPartialTemplates } from '../item-partial-templates.mjs';
1414
import { ChooseWeaponDialog } from './choose-weapon-dialog.mjs';
1515
import { WeaponDataModel } from '../weapon/weapon-data-model.mjs';
1616
import { ResourcePipeline } from '../../../pipelines/resource-pipeline.mjs';
17+
import { BasicItemDataModel } from '../basic/basic-item-data-model.mjs';
1718

1819
/**
1920
* @property {string} description
@@ -184,18 +185,20 @@ export class BaseSkillDataModel extends FUStandardItemDataModel {
184185

185186
// Weapon support
186187
if (weaponData) {
187-
if (this.useWeapon.traits && weaponData.traits) {
188+
if (this.useWeapon.traits) {
188189
if (weaponData.traits) {
189190
config.addTraitsFromItemModel(weaponData.traits);
190191
}
191192
if (weaponData instanceof WeaponDataModel) {
192-
config
193-
.setWeaponTraits({
194-
weaponType: weaponData.type.value,
195-
weaponCategory: weaponData.category.value,
196-
handedness: weaponData.hands.value,
197-
})
198-
.addTraits(weaponData.damageType.value);
193+
config.setWeaponTraits({
194+
weaponType: weaponData.type.value,
195+
weaponCategory: weaponData.category.value,
196+
handedness: weaponData.hands.value,
197+
});
198+
} else if (weaponData instanceof BasicItemDataModel) {
199+
config.setWeaponTraits({
200+
weaponType: weaponData.type.value,
201+
});
199202
}
200203
}
201204
if (this.useWeapon.damage) {

module/documents/items/skill/skill-data-model.mjs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ const skillForAttributeCheck = 'skillForAttributeCheck';
1616
/**
1717
* @type RenderCheckHook
1818
*/
19-
let onRenderAccuracyCheck = (data, check, actor, item, flags) => {
19+
let onRenderAccuracyCheck = async (data, check, actor, item, flags) => {
2020
if (check.type === 'accuracy' && item?.system instanceof SkillDataModel) {
2121
const inspector = CheckConfiguration.inspect(check);
22-
const weapon = fromUuidSync(inspector.getWeaponReference());
22+
const weapon = await fromUuid(inspector.getWeaponReference());
2323

2424
if (check.critical) {
2525
CommonSections.opportunity(data.sections, item.system.opportunity, CHECK_DETAILS);
@@ -40,9 +40,9 @@ Hooks.on(CheckHooks.renderCheck, onRenderAccuracyCheck);
4040
/**
4141
* @type RenderCheckHook
4242
*/
43-
let onRenderAttributeCheck = (data, check, actor, item, flags) => {
43+
let onRenderAttributeCheck = async (data, check, actor, item, flags) => {
4444
if (check.type === 'attribute' && item?.system instanceof SkillDataModel && check.additionalData[skillForAttributeCheck]) {
45-
const skill = fromUuidSync(check.additionalData[skillForAttributeCheck]);
45+
const skill = await fromUuid(check.additionalData[skillForAttributeCheck]);
4646
const inspector = CheckConfiguration.inspect(check);
4747
CommonSections.itemFlavor(data.sections, skill);
4848
CommonSections.tags(data.sections, getTags(skill), CHECK_DETAILS);
@@ -196,8 +196,6 @@ export class SkillDataModel extends BaseSkillDataModel {
196196
#initializeAccuracyCheck(modifiers) {
197197
return async (check, actor, item) => {
198198
const weapon = await this.getWeapon(actor);
199-
/** @type WeaponDataModel **/
200-
const weaponData = weapon.system;
201199
const { check: weaponCheck, error } = await Checks.prepareCheckDryRun('accuracy', actor, weapon);
202200
if (error) {
203201
throw error;
@@ -213,7 +211,7 @@ export class SkillDataModel extends BaseSkillDataModel {
213211
config.setWeaponReference(weapon);
214212
config.setHrZero(this.damage.hrZero || modifiers.shift);
215213
await this.configureCheck(config);
216-
await this.addSkillDamage(config, item, context, weaponData);
214+
await this.addSkillDamage(config, item, context, weapon.system);
217215
await this.addSkillAccuracy(config, actor, item, context);
218216
};
219217
}

module/pipelines/inventory-pipeline.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,11 +258,11 @@ async function requestZenitTransfer(sourceActorId, targetActorId, amount) {
258258
// Now execute directly on GM or request as user
259259
if (game.user?.isGM) {
260260
/** @type FUActor **/
261-
const sourceActor = fromUuidSync(sourceActorId);
261+
const sourceActor = await fromUuid(sourceActorId);
262262

263263
if (validateFunds(sourceActor, amount)) {
264264
/** @type FUActor **/
265-
const targetActor = fromUuidSync(targetActorId);
265+
const targetActor = await fromUuid(targetActorId);
266266

267267
await updateResources(sourceActor, -amount);
268268
await updateResources(targetActor, amount);

0 commit comments

Comments
 (0)