From a58867ad980ee4262a6702b8545e6c7e918c2ba9 Mon Sep 17 00:00:00 2001 From: Kevin Garner Date: Tue, 4 Feb 2025 10:05:26 -0600 Subject: [PATCH] Added toHit just like the new save prop. --- src/features/item/ItemContext.ts | 5 +++++ src/sheets/classic/Tidy5eCharacterSheet.svelte.ts | 5 ++++- src/sheets/classic/Tidy5eGroupSheetClassic.svelte.ts | 1 + src/sheets/classic/Tidy5eKgarVehicleSheet.svelte.ts | 3 +++ src/sheets/classic/Tidy5eNpcSheet.svelte.ts | 3 +++ src/sheets/classic/actor/tabs/ActorActionsTab.svelte | 10 ++++++---- src/types/group.types.ts | 1 + src/types/types.ts | 3 +++ 8 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/features/item/ItemContext.ts b/src/features/item/ItemContext.ts index fdbbabf33..f3eec4c9c 100644 --- a/src/features/item/ItemContext.ts +++ b/src/features/item/ItemContext.ts @@ -20,4 +20,9 @@ export class ItemContext { }; } } + + static getToHit(item: Item5e): number | null { + const toHit = parseInt(item.labels.modifier); + return item.hasAttack && !isNaN(toHit) ? toHit : null; + } } diff --git a/src/sheets/classic/Tidy5eCharacterSheet.svelte.ts b/src/sheets/classic/Tidy5eCharacterSheet.svelte.ts index 31876dc4a..19f7c9f61 100644 --- a/src/sheets/classic/Tidy5eCharacterSheet.svelte.ts +++ b/src/sheets/classic/Tidy5eCharacterSheet.svelte.ts @@ -1499,7 +1499,10 @@ export class Tidy5eCharacterSheet // Save context.save = ItemContext.getItemSaveContext(item); - + + // To Hit + context.toHit = ItemContext.getToHit(item); + // Activities context.activities = Activities.getVisibleActivities( item, diff --git a/src/sheets/classic/Tidy5eGroupSheetClassic.svelte.ts b/src/sheets/classic/Tidy5eGroupSheetClassic.svelte.ts index 160df82cd..98da9b7aa 100644 --- a/src/sheets/classic/Tidy5eGroupSheetClassic.svelte.ts +++ b/src/sheets/classic/Tidy5eGroupSheetClassic.svelte.ts @@ -830,6 +830,7 @@ export class Tidy5eGroupSheetClassic extends Tidy5eActorSheetBaseMixin( hasUses: item.hasLimitedUses, isStack: item.system.quantity > 1, save: ItemContext.getItemSaveContext(item), + toHit: ItemContext.getToHit(item), totalWeight: (await item.system.totalWeight)?.toNearest(0.1) ?? 0, }; } diff --git a/src/sheets/classic/Tidy5eKgarVehicleSheet.svelte.ts b/src/sheets/classic/Tidy5eKgarVehicleSheet.svelte.ts index 5e1aa66c9..8950351f3 100644 --- a/src/sheets/classic/Tidy5eKgarVehicleSheet.svelte.ts +++ b/src/sheets/classic/Tidy5eKgarVehicleSheet.svelte.ts @@ -583,6 +583,9 @@ export class Tidy5eVehicleSheet // Save ctx.save = ItemContext.getItemSaveContext(item); + // To Hit + ctx.toHit = ItemContext.getToHit(item); + // Activities ctx.activities = Activities.getVisibleActivities( item, diff --git a/src/sheets/classic/Tidy5eNpcSheet.svelte.ts b/src/sheets/classic/Tidy5eNpcSheet.svelte.ts index 02c71cefc..400d16feb 100644 --- a/src/sheets/classic/Tidy5eNpcSheet.svelte.ts +++ b/src/sheets/classic/Tidy5eNpcSheet.svelte.ts @@ -943,6 +943,9 @@ export class Tidy5eNpcSheet // Save ctx.save = ItemContext.getItemSaveContext(item); + // To Hit + ctx.toHit = ItemContext.getToHit(item); + ctx.totalWeight = item.system.totalWeight?.toNearest(0.1); if (item.type === CONSTANTS.ITEM_TYPE_SPELL) { if (this._concentration.items.has(item)) { diff --git a/src/sheets/classic/actor/tabs/ActorActionsTab.svelte b/src/sheets/classic/actor/tabs/ActorActionsTab.svelte index 81bb03b8b..52d73cee3 100644 --- a/src/sheets/classic/actor/tabs/ActorActionsTab.svelte +++ b/src/sheets/classic/actor/tabs/ActorActionsTab.svelte @@ -38,6 +38,7 @@ setSearchResultsContext, } from 'src/features/search/search.svelte'; import { getSheetContext } from 'src/sheets/sheet-context.svelte'; + import { formatAsModifier } from 'src/utils/formatting'; let context = $derived( @@ -260,7 +261,7 @@ {@const save = ctx?.save} - {#if save?.dc || actionItem.item.labels?.toHit} + {#if save?.dc || ctx?.toHit} {#if save?.dc} {:else} - {actionItem.item.labels?.toHit ?? ''} + {@const toHit = formatAsModifier( + ctx.toHit?.toString() ?? '', + )} + {toHit} {/if} {/if} diff --git a/src/types/group.types.ts b/src/types/group.types.ts index 2a2d023f8..c4159bf44 100644 --- a/src/types/group.types.ts +++ b/src/types/group.types.ts @@ -57,6 +57,7 @@ export interface GroupItemContext { hasUses?: boolean; isStack?: boolean; save?: ItemSaveContext; + toHit?: number | null; totalWeight?: number; } diff --git a/src/types/types.ts b/src/types/types.ts index 0ea1d3fed..570f3185d 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -236,6 +236,7 @@ export type CharacterItemContext = { linkedUses?: LinkedUses; needsSubclass?: boolean; save?: ItemSaveContext; + toHit?: number | null; toggleClass?: string; toggleTitle?: string; totalWeight?: number; @@ -434,6 +435,7 @@ export type NpcItemContext = { needsSubclass?: boolean; parent?: Item5e; save?: ItemSaveContext; + toHit?: number | null; toggleTitle?: string; totalWeight?: number; }; @@ -480,6 +482,7 @@ export type VehicleItemContext = { cover?: string; hasUses?: boolean; save?: ItemSaveContext; + toHit?: number | null; threshold?: number | string; toggleClass?: string; toggleTitle?: string;