9.3 KiB
9.3 KiB
Changelog - hbm-rpg-v3
All notable changes to the HbM RPG v3 Foundry VTT system.
The format follows Keep a Changelog and this project adheres to Semantic Versioning.
[Unreleased]
Changed
- Foundry v14 compatibility: Migrated from deprecated
template.jsontodocumentTypesinsystem.json. The system now declares Actor and Item types directly in the manifest as required by Foundry v14+.template.jsonhas been removed. - Updated
compatibility.verifiedto"14"to support Foundry VTT v14 build 363.
[1.2.0] - 2026-04-30
Major mechanics + infrastructure release. Adds optional-rules sub-packs, ActiveEffects integration, automated tests, full localization for the new features, and a v1.2.0 world migration.
Added
- Talent sub-packs for optional rules:
talents-blood- 5 talents from Arcanum Sanguinistalents-abyss- 4 talents from Klątwa Otchłani- Each parsed talent is stamped with
flags['hbm-rpg-v3'].sourceModuleso future module-aware UIs can filter or annotate them. Note: Foundry has no native gating of compendium content by external modules; the flag is informational only. Chwała Szkarłatnemu Kultowi has no talent chapter and is therefore intentionally not split.
- Macro pack
hbm-macros(7 macros, Polish labels): Rzut Puli d6, Test Atrybutu, Nałóż Przypadłość, Krótki/Długi Odpoczynek, Pomocnik Rzucania Grupowego, Doładuj Zapał. - ActiveEffects integration on Talent and Gear sheets. Both item types
now render an Effects fieldset with Add/Edit/Toggle/Delete actions backed
by Foundry's built-in ActiveEffect document;
transfer:trueeffects are auto-applied to actors when the item is granted. - Initiative override.
CONFIG.Combat.initiative.formula = '2d6 + @attributes.initiative'is registered in theinithook; characters use their derived initiative attribute, NPCs default to2d6 + 0. - Per-turn Zeal regeneration is configurable. The combat-turn handler
now reads
flags['hbm-rpg-v3'].zealRegenBonus(default0) added to the base+1regen - talents can grant additional regen via an ActiveEffect withmode: ADDtargeting that flag. - Long-rest cleanup.
rest(actor, 'long')now also deletes temporary ActiveEffects on the actor (those with finite duration or with theflags['hbm-rpg-v3'].untilLongRestmarker), preserving transferred passives. - Migration
1.2.0. Backfills NPCmana/zeal/bloodresources, sets defaultzealRegenBonus = 0on character actors, and best-effort attaches a+1 zealRegenBonusActiveEffect to existing talents whose description mentions "+1 Zapał" or "regeneracja Zapału". - Localization. Added
HBM.{rest, initiative, talentCategory, macro, activeEffect}namespaces to bothlang/pl.jsonandlang/en.json. - Vitest test harness (
vitest.config.ts,tests/setup.ts). 5 test files covering damage layers, rest mechanics, zeal-regen helper, talent parser, and the v1.2.0 migration - 18 tests, all passing.
Notes on skipped items
- Spell preparation is intentionally not implemented - every spellcaster can cast any known spell directly (per design).
- Module gating of sub-pack talents is not enforced because Foundry does
not provide a hook to hide compendium documents based on external module
presence. The
sourceModuleflag is preserved for future opt-in filtering.
[1.1.2] - 2026-04-30
Mechanics polish release. No content changes; focuses on the spell-cast UX, the NPC sheet, and the cast dialog.
Added
- Rich spell-cast chat card (
templates/chat/spell-cast.hbs) with header badges (mode / school / circle / success or failure), a costs ledger, damage block, status-effect chips, save line, registered triggers, and a collapsible description. - Apply-status / apply-damage chat buttons. Click handlers in
src/logic/chat-cards.tstoggle status effects on selected/targeted tokens and pipe damage throughapplyDamage()with the correctignoreMagical*/ignorePhysicalArmorflags pulled from the spell metadata. - NPC sheet can cast spells.
actor/npc.hbsnow lists embedded spell items with a✦ Rzućbutton; the sheet supports drag-drop of items from compendiums or other actors. NPC schema gainedmana,zeal,bloodresources (mirroring characters) so the cast pipeline runs unchanged. - Variable-success picker in the cast dialog. When a spell defines
system.variableSuccesses[](e.g. Przywołanie Istoty z Otchłani), the dialog renders radio options and setsopts.requiredOverridefrom the selected variant. - Canvas-based group-cast UI. When
system.requiresGroupCastis set, the cast dialog now renders a checkbox list of canvas tokens (instead of the free-text actor-id field), so group casters can be picked visually.
Changed
src/logic/spell-cast.tsno longer posts separate damage / status messages - everything is consolidated into the new chat card viarenderTemplate.lang/{pl,en}.json- addedHBM.spellCast.*keys for the new card and dialog widgets.styles/hbm.css- styling for the spell-cast card and the new dialog widgets (caster checkbox list, variant radio list).
[1.0.0] - 2026-04-29
First production release. Adds the full magic and resource model from books I–VIII
plus a build pipeline that generates compendium content from the source markdown
in _books/.
Added
- Spell schema: full coverage of the spell-reference (
deity,bloodCost,components.symbols,requirements.{race,talent,discipline},isSuperspell,requiresGroupCast,minCasters,nonCombatOnly,areaOfEffect.{shape,x,y,unit},damageBase,damageType,ignoresArmor,statusEffects,saveAttribute,saveSkill,overcastOptions,triggers,sourceBook,castingTimeRounds,castingTimeMinutes,variableSuccesses). - Compendium content (152 docs / 11 packs):
spells-general,spells-elements,spells-sacred,spells-academic,spells-superspells,spells-crimson(93 spells total, blood/abyss packs reserved for AS / KO content).talents,talents-npc(34 talents).races(5 races),disciplines,disciplines-forbidden(20 disciplines).
- Cast pipeline:
validateCast()gates resources/race/talent/discipline/deity /group/inCombat/superspell/witch-symbol;castSpell()dispatches standard / sacred / witch / blood / Hekate hybrid;rollSpellDamage()parses formula tokens; reactive triggers (killWithWeapon,targetCastsSpell,damageTaken,turnStart). - Cast dialog with mana/zeal/blood inputs, group-caster picker, GM bypass checkboxes, validation feedback inline.
- New mechanics modules:
blood-magic,abyss-magic,brewing,rest,trade- all exposed undergame.hbm.*. - Actor schema:
attributes.blood,attributes.elixirTolerance,attributes.insanitywith derived clamps and resource cards on the sheet. - Mental conditions: paranoia, fobia, depresja, mania, schizofrenia (Klątwa Otchłani VIII).
- Character sheet: short-rest / long-rest header buttons; spells tab grouped
by school with badges (
★ super,⛧ group,☮ noncombat,🔒 race-lock) and source-book pip. - Compendium browser metadata: per-pack
flags.hbm-rpg-v3.{category,sourceBook, forbidden}andpackFolders(Zaklęcia / Talenty / Rasy i Dziedziny). - Localization: Polish (canonical) and English mirrors for all new
namespaces (
spell,spellSchool,deity,sourceBook,aoeShape,damageType,triggerEvent,spellCast,bloodMagic,mentalCondition). - Migration runner for v0.2.0 worlds (
complexityLevel→components.symbols.length,targetsregex →areaOfEffect,overcastingtext →overcastOptions[0].description). - Build pipeline:
scripts/parsers/*(book-walker, spell/talent/discipline/ race parsers) + Zod validation +scripts/build-packs.ts(LevelDB via@foundryvtt/foundryvtt-cli).bun run packageruns build → packs → zip.
Deferred
gear-*,actors-*,roll-tables-*packs - source books lack stat-block data.- Adventures package (
hbm-rpg-v3-adventures). - Macro packs.
- Compendium browser premium-module integration.
[0.6.1] - 2026-04-29
- Localization parity (
en.jsonmirrors allpl.jsonnamespaces). - CSS polish: badges, source pip, blood-pool tint, school details groups, fieldset and array-row layouts.
- Compendium browser metadata +
packFolders.
[0.6.0] - 2026-04-29
- Spell item-sheet rewrite (8 fieldsets, conditional rendering).
- Cast dialog (
askCastOptions) with mana/zeal/blood/Hekate/group/bypass. - Character header: short-rest / long-rest buttons.
- Resources: blood pool, elixir tolerance, insanity (conditional).
- Spells tab grouped by school with badges.
[0.5.0] - 2026-04-29
- New mechanics modules under
game.hbm.*: blood-magic, abyss-magic, brewing, rest, trade. Actor schema gainselixirTolerance,insanity.
[0.4.0] - 2026-04-29
- Phase 0 foundation: extended
constants,SpellData,CharacterData.attributes.blood, migration runner, mental conditions.
[0.3.x]
- Pre-1.0 baseline: data models, sheets, dice, conditions, basic cast (standard / sacred / witch), 4-layer damage model, race/class linking.