diff --git a/assets/tarots/0_The_Fool.webp b/assets/tarots/0_The_Fool.webp new file mode 100644 index 0000000..3515881 Binary files /dev/null and b/assets/tarots/0_The_Fool.webp differ diff --git a/assets/tarots/11_Justice.webp b/assets/tarots/11_Justice.webp new file mode 100644 index 0000000..4378939 Binary files /dev/null and b/assets/tarots/11_Justice.webp differ diff --git a/assets/tarots/13_Death.webp b/assets/tarots/13_Death.webp new file mode 100644 index 0000000..3fe54d7 Binary files /dev/null and b/assets/tarots/13_Death.webp differ diff --git a/assets/tarots/15_The_Devil.webp b/assets/tarots/15_The_Devil.webp new file mode 100644 index 0000000..f29d75b Binary files /dev/null and b/assets/tarots/15_The_Devil.webp differ diff --git a/assets/tarots/1_The_Magician.webp b/assets/tarots/1_The_Magician.webp new file mode 100644 index 0000000..c039292 Binary files /dev/null and b/assets/tarots/1_The_Magician.webp differ diff --git a/assets/tarots/21_The_World.webp b/assets/tarots/21_The_World.webp new file mode 100644 index 0000000..325b4a1 Binary files /dev/null and b/assets/tarots/21_The_World.webp differ diff --git a/assets/tarots/2_The_High_Priestess.webp b/assets/tarots/2_The_High_Priestess.webp new file mode 100644 index 0000000..6009f9a Binary files /dev/null and b/assets/tarots/2_The_High_Priestess.webp differ diff --git a/assets/tarots/6_The_Lovers.webp b/assets/tarots/6_The_Lovers.webp new file mode 100644 index 0000000..ea38eee Binary files /dev/null and b/assets/tarots/6_The_Lovers.webp differ diff --git a/assets/tarots/8_Strength.webp b/assets/tarots/8_Strength.webp new file mode 100644 index 0000000..93cac74 Binary files /dev/null and b/assets/tarots/8_Strength.webp differ diff --git a/assets/tarots/9_The_Hermit.webp b/assets/tarots/9_The_Hermit.webp new file mode 100644 index 0000000..7a6c606 Binary files /dev/null and b/assets/tarots/9_The_Hermit.webp differ diff --git a/assets/ui/banner_compendium.png b/assets/ui/banner_compendium.png new file mode 100644 index 0000000..76c4b08 Binary files /dev/null and b/assets/ui/banner_compendium.png differ diff --git a/css/fvtt-hellborn.css b/css/fvtt-hellborn.css index ef98303..4f5540b 100644 --- a/css/fvtt-hellborn.css +++ b/css/fvtt-hellborn.css @@ -562,6 +562,10 @@ i.fvtt-hellborn { min-width: 4.5rem; max-width: 4.5rem; } +.fvtt-hellborn .tab.character-equipment .main-div .weapons .weapon .ammoQuantity { + min-width: 3rem; + max-width: 3rem; +} .fvtt-hellborn .tab.character-equipment .main-div .weapons .weapon .type { min-width: 3rem; max-width: 3rem; @@ -1985,6 +1989,17 @@ i.fvtt-hellborn { min-width: 12rem; max-width: 12rem; } +.fvtt-hellborn .tarot-content fieldset .flexrow, +.fvtt-hellborn .tarot-content fieldset .scrollable-content { + align-items: flex-start; +} +.fvtt-hellborn .tarot-content fieldset .tarot-pic { + margin-left: 1rem; + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; +} .fvtt-hellborn .tarot-content .header { display: flex; } diff --git a/lang/en.json b/lang/en.json index 33ee25d..2ede352 100644 --- a/lang/en.json +++ b/lang/en.json @@ -486,7 +486,7 @@ "label": "Maintain" }, "choiceMaintainDuration": { - "label": "Choice Maintain/Duration" + "label": "Maintain/Duration" }, "description": { "label": "Description" @@ -655,6 +655,9 @@ "ammo": { "label": "Ammo" }, + "ammoQuantity": { + "label": "Ammo Quantity" + }, "cost": { "label": "Cost" }, diff --git a/module/applications/sheets/character-sheet.mjs b/module/applications/sheets/character-sheet.mjs index d155ccd..ce5a91e 100644 --- a/module/applications/sheets/character-sheet.mjs +++ b/module/applications/sheets/character-sheet.mjs @@ -19,6 +19,7 @@ export default class HellbornCharacterSheet extends HellbornActorSheet { createMalefica: HellbornCharacterSheet.#onCreateMalefica, createRitual: HellbornCharacterSheet.#onCreateRitual, createPerk: HellbornCharacterSheet.#onCreatePerk, + modifyAmmo: HellbornCharacterSheet.#onModifyAmmo, }, } @@ -169,6 +170,18 @@ export default class HellbornCharacterSheet extends HellbornActorSheet { this.document.createEmbeddedDocuments("Item", [{ name: game.i18n.localize("HELLBORN.Label.newPerk"), type: "perk" }]) } + static async #onModifyAmmo(event, target) { + const quantity = parseInt($(event.target).data("quantity")) + const itemId = $(event.target).data("item-id") + const item = this.document.items.get(itemId) + if (!item) { + console.warn(`HellbornCharacterSheet: Item with ID ${itemId} not found`) + return + } + const currentAmmo = item.system.ammoQuantity || 0 + const newAmmo = Math.max(0, currentAmmo + quantity) // Ensure ammo doesn't go below 0 + await item.update({ "system.ammoQuantity": newAmmo }) + } /** * Handles the roll action triggered by user interaction. diff --git a/module/documents/roll.mjs b/module/documents/roll.mjs index 9f2c10a..d1af2ec 100644 --- a/module/documents/roll.mjs +++ b/module/documents/roll.mjs @@ -202,11 +202,11 @@ export default class HellbornRoll extends Roll { options.nbDisadvantages = Number(options.nbDisadvantages) let dice = 3; let keep = "" - if ( options.nbAdvantages > 0 || options.nbDisadvantages > 0) { + if ( (options.nbAdvantages !== options.nbDisadvantages) && options.nbAdvantages > 0 || options.nbDisadvantages > 0) { dice = 4; if ( options.nbAdvantages > options.nbDisadvantages) { keep = "kh3" - } else { + } else if (options.nbAdvantages < options.nbDisadvantages) { keep = "kl3" } } diff --git a/module/models/weapon.mjs b/module/models/weapon.mjs index 1e82831..4b9571f 100644 --- a/module/models/weapon.mjs +++ b/module/models/weapon.mjs @@ -18,6 +18,7 @@ export default class HellbornWeapon extends foundry.abstract.TypeDataModel { schema.damageType = new fields.StringField({ required: false, initial : "Physical" }) schema.ammo = new fields.StringField({ required: false, initial: "" }) + schema.ammoQuantity = new fields.NumberField({ required: true, initial: 0, min: 0 }) schema.range = new fields.StringField({ required: false, initial: "" }) schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 }) diff --git a/packs-system/hellborn-quickstart/000012.log b/packs-system/hellborn-quickstart/000012.log new file mode 100644 index 0000000..e69de29 diff --git a/packs-system/hellborn-quickstart/000014.ldb b/packs-system/hellborn-quickstart/000014.ldb new file mode 100644 index 0000000..ff19410 Binary files /dev/null and b/packs-system/hellborn-quickstart/000014.ldb differ diff --git a/packs-system/hellborn-quickstart/CURRENT b/packs-system/hellborn-quickstart/CURRENT new file mode 100644 index 0000000..3051f81 --- /dev/null +++ b/packs-system/hellborn-quickstart/CURRENT @@ -0,0 +1 @@ +MANIFEST-000010 diff --git a/packs-system/hellborn-quickstart/LOCK b/packs-system/hellborn-quickstart/LOCK new file mode 100644 index 0000000..e69de29 diff --git a/packs-system/hellborn-quickstart/LOG b/packs-system/hellborn-quickstart/LOG new file mode 100644 index 0000000..2a1a824 --- /dev/null +++ b/packs-system/hellborn-quickstart/LOG @@ -0,0 +1,15 @@ +2025/06/30-20:37:58.108400 7f0798bfa6c0 Recovering log #8 +2025/06/30-20:37:58.118139 7f0798bfa6c0 Delete type=3 #6 +2025/06/30-20:37:58.118202 7f0798bfa6c0 Delete type=0 #8 +2025/06/30-21:11:07.629621 7f07923ff6c0 Level-0 table #13: started +2025/06/30-21:11:07.632961 7f07923ff6c0 Level-0 table #13: 19920 bytes OK +2025/06/30-21:11:07.639130 7f07923ff6c0 Delete type=0 #11 +2025/06/30-21:11:07.658870 7f07923ff6c0 Manual compaction at level-0 from '!folders!0d8PWsAGxiRfOlkP' @ 72057594037927935 : 1 .. '!items!zCOHBP3SYlGAY6zI' @ 0 : 0; will stop at (end) +2025/06/30-21:11:07.675316 7f07923ff6c0 Manual compaction at level-1 from '!folders!0d8PWsAGxiRfOlkP' @ 72057594037927935 : 1 .. '!items!zCOHBP3SYlGAY6zI' @ 0 : 0; will stop at '!items!xiuPJDuvpdMEtiPe' @ 284 : 1 +2025/06/30-21:11:07.675323 7f07923ff6c0 Compacting 1@1 + 1@2 files +2025/06/30-21:11:07.680513 7f07923ff6c0 Generated table #14@1: 267 keys, 115927 bytes +2025/06/30-21:11:07.680536 7f07923ff6c0 Compacted 1@1 + 1@2 files => 115927 bytes +2025/06/30-21:11:07.686716 7f07923ff6c0 compacted to: files[ 0 0 1 0 0 0 0 ] +2025/06/30-21:11:07.686840 7f07923ff6c0 Delete type=2 #5 +2025/06/30-21:11:07.686988 7f07923ff6c0 Delete type=2 #13 +2025/06/30-21:11:07.693807 7f07923ff6c0 Manual compaction at level-1 from '!items!xiuPJDuvpdMEtiPe' @ 284 : 1 .. '!items!zCOHBP3SYlGAY6zI' @ 0 : 0; will stop at (end) diff --git a/packs-system/hellborn-quickstart/LOG.old b/packs-system/hellborn-quickstart/LOG.old new file mode 100644 index 0000000..0459c39 --- /dev/null +++ b/packs-system/hellborn-quickstart/LOG.old @@ -0,0 +1,8 @@ +2025/06/30-19:11:32.088394 7f0792ffd6c0 Recovering log #4 +2025/06/30-19:11:32.165054 7f0792ffd6c0 Delete type=3 #2 +2025/06/30-19:11:32.165125 7f0792ffd6c0 Delete type=0 #4 +2025/06/30-19:18:30.163563 7f07923ff6c0 Level-0 table #9: started +2025/06/30-19:18:30.163654 7f07923ff6c0 Level-0 table #9: 0 bytes OK +2025/06/30-19:18:30.170671 7f07923ff6c0 Delete type=0 #7 +2025/06/30-19:18:30.184576 7f07923ff6c0 Manual compaction at level-0 from '!folders!0d8PWsAGxiRfOlkP' @ 72057594037927935 : 1 .. '!items!zCOHBP3SYlGAY6zI' @ 0 : 0; will stop at (end) +2025/06/30-19:18:30.184606 7f07923ff6c0 Manual compaction at level-1 from '!folders!0d8PWsAGxiRfOlkP' @ 72057594037927935 : 1 .. '!items!zCOHBP3SYlGAY6zI' @ 0 : 0; will stop at (end) diff --git a/packs-system/hellborn-quickstart/MANIFEST-000010 b/packs-system/hellborn-quickstart/MANIFEST-000010 new file mode 100644 index 0000000..c93503c Binary files /dev/null and b/packs-system/hellborn-quickstart/MANIFEST-000010 differ diff --git a/styles/character.less b/styles/character.less index 3690f8a..cf7009f 100644 --- a/styles/character.less +++ b/styles/character.less @@ -438,6 +438,10 @@ min-width: 4.5rem; max-width: 4.5rem; } + .ammoQuantity { + min-width: 3rem; + max-width: 3rem; + } .type { min-width: 3rem; max-width: 3rem; diff --git a/styles/tarot.less b/styles/tarot.less index 599cdaa..fa28f1d 100644 --- a/styles/tarot.less +++ b/styles/tarot.less @@ -24,8 +24,18 @@ min-width: 12rem; max-width: 12rem; } + .flexrow, + .scrollable-content { + align-items: flex-start; + } + .tarot-pic { + margin-left: 1rem; + display: flex; + flex-direction: column; + justify-content: flex-start; // aligne le contenu en haut + align-items: center; // ce } + } } - .header { display: flex; img { diff --git a/system.json b/system.json index c0d3be9..83f15db 100644 --- a/system.json +++ b/system.json @@ -49,6 +49,14 @@ } }, "packs": [ + { + "name": "hellborn-quickstart", + "banner": "systems/fvtt-hellborn/assets/ui/banner_compendium.png", + "label": "Hellborn - Quickstart", + "system": "fvtt-hellborn", + "path": "packs-system/hellborn-quickstart", + "type": "Item" + } ], "grid": { "distance": 10, diff --git a/templates/character-equipment.hbs b/templates/character-equipment.hbs index e0ac115..0395524 100644 --- a/templates/character-equipment.hbs +++ b/templates/character-equipment.hbs @@ -10,15 +10,20 @@ {{#each weapons as |item|}}