Skip to content

Commit

Permalink
hotfix: revert dragon for class/skills, fix applicable effects
Browse files Browse the repository at this point in the history
  • Loading branch information
spyrella committed Sep 6, 2024
1 parent 1e13cf7 commit 0e76cbf
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 45 deletions.
73 changes: 36 additions & 37 deletions module/documents/actors/actor.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -225,9 +225,6 @@ export class FUActor extends Actor {
const featureType = item.system.featureType;
const actor = item.actor;

// Check if the item is one of the applicable types
if (!applicableTypes.includes(itemType)) continue;

// Handle weapons and shields if weapons modules are active
if ((itemType === 'weapon' || itemType === 'shield') && actor?.system.vehicle?.weaponsActive) {
continue;
Expand All @@ -237,40 +234,42 @@ export class FUActor extends Actor {
if (itemType === 'armor' && actor?.system.vehicle?.armorActive) {
continue;
}

// Handle class features based on vehicle configuration
if (itemType === 'classFeature' && vehicleTypes.includes(featureType)) {
const vehicle = actor?.system?.vehicle;
const isEmbarked = vehicle?.embarked;
let itemExistsInVehicle = false;

if (featureType === 'projectfu.supportModule' && Array.isArray(vehicle?.supports)) {
itemExistsInVehicle = vehicle.supports.some((support) => support.id === itemId);
} else if (featureType === 'projectfu.weaponModule' && Array.isArray(vehicle?.weapons)) {
itemExistsInVehicle = vehicle.weapons.some((weapon) => weapon.id === itemId);
} else if (featureType === 'projectfu.armorModule') {
itemExistsInVehicle = vehicle?.armor?.id === itemId;
} else if (featureType === 'projectfu.vehicle') {
itemExistsInVehicle = vehicle?.vehicle?.id === itemId;
}

// Continue to the next effect if the item shouldn't transfer its effects
if (!isEmbarked || !itemExistsInVehicle || (item.transferEffects && !item.transferEffects())) {
// console.log('Skipping effect due to non-embarked status or item not being part of vehicle.');
continue;
}
} else if (itemType === 'classFeature' && arcanumTypes.includes(featureType)) {
const currentArcanumId = actor?.system.equipped?.arcanum;

// Check if the item is the currently active arcanum
if (itemId !== currentArcanumId) {
continue;
}
} else {
// Handle regular items using the equipped data model
const equipData = this.system.equipped;
if (!equipData.transferEffects(itemId)) {
continue;
// Check if the item is one of the applicable types
if (applicableTypes.includes(itemType)) {
// Handle class features based on vehicle configuration
if (itemType === 'classFeature' && vehicleTypes.includes(featureType)) {
const vehicle = actor?.system?.vehicle;
const isEmbarked = vehicle?.embarked;
let itemExistsInVehicle = false;

if (featureType === 'projectfu.supportModule' && Array.isArray(vehicle?.supports)) {
itemExistsInVehicle = vehicle.supports.some((support) => support.id === itemId);
} else if (featureType === 'projectfu.weaponModule' && Array.isArray(vehicle?.weapons)) {
itemExistsInVehicle = vehicle.weapons.some((weapon) => weapon.id === itemId);
} else if (featureType === 'projectfu.armorModule') {
itemExistsInVehicle = vehicle?.armor?.id === itemId;
} else if (featureType === 'projectfu.vehicle') {
itemExistsInVehicle = vehicle?.vehicle?.id === itemId;
}

// Continue to the next effect if the item shouldn't transfer its effects
if (!isEmbarked || !itemExistsInVehicle || (item.transferEffects && !item.transferEffects())) {
// console.log('Skipping effect due to non-embarked status or item not being part of vehicle.');
continue;
}
} else if (itemType === 'classFeature' && arcanumTypes.includes(featureType)) {
const currentArcanumId = actor?.system.equipped?.arcanum;

// Check if the item is the currently active arcanum
if (itemId !== currentArcanumId) {
continue;
}
} else {
// Handle regular items using the equipped data model
const equipData = this.system.equipped;
if (!equipData.transferEffects(itemId)) {
continue;
}
}
}
}
Expand Down
8 changes: 0 additions & 8 deletions module/sheets/actor-standard-sheet.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -511,14 +511,6 @@ export class FUStandardActorSheet extends ActorSheet {
await item.update({ 'system.quantity.value': newQuantity });
},
},
{
types: ['class', 'skill'],
update: async (itemData, item) => {
const incrementValue = itemData.system.level?.value || 1;
const newValue = Math.min((item.system.level.value || 0) + incrementValue, item.system.level.max || 0);
await item.update({ 'system.level.value': newValue });
},
},
{
types: ['effect'],
update: async (itemData) => {
Expand Down

0 comments on commit 0e76cbf

Please sign in to comment.