Add compendium data
All checks were successful
Release Creation / build (release) Successful in 1m2s
BIN
assets/tarots/0_The_Fool.webp
Normal file
|
After Width: | Height: | Size: 648 KiB |
BIN
assets/tarots/11_Justice.webp
Normal file
|
After Width: | Height: | Size: 357 KiB |
BIN
assets/tarots/13_Death.webp
Normal file
|
After Width: | Height: | Size: 417 KiB |
BIN
assets/tarots/15_The_Devil.webp
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
assets/tarots/1_The_Magician.webp
Normal file
|
After Width: | Height: | Size: 406 KiB |
BIN
assets/tarots/21_The_World.webp
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
assets/tarots/2_The_High_Priestess.webp
Normal file
|
After Width: | Height: | Size: 545 KiB |
BIN
assets/tarots/6_The_Lovers.webp
Normal file
|
After Width: | Height: | Size: 404 KiB |
BIN
assets/tarots/8_Strength.webp
Normal file
|
After Width: | Height: | Size: 338 KiB |
BIN
assets/tarots/9_The_Hermit.webp
Normal file
|
After Width: | Height: | Size: 299 KiB |
BIN
assets/ui/banner_compendium.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
@@ -562,6 +562,10 @@ i.fvtt-hellborn {
|
|||||||
min-width: 4.5rem;
|
min-width: 4.5rem;
|
||||||
max-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 {
|
.fvtt-hellborn .tab.character-equipment .main-div .weapons .weapon .type {
|
||||||
min-width: 3rem;
|
min-width: 3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
@@ -1985,6 +1989,17 @@ i.fvtt-hellborn {
|
|||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
max-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 {
|
.fvtt-hellborn .tarot-content .header {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -486,7 +486,7 @@
|
|||||||
"label": "Maintain"
|
"label": "Maintain"
|
||||||
},
|
},
|
||||||
"choiceMaintainDuration": {
|
"choiceMaintainDuration": {
|
||||||
"label": "Choice Maintain/Duration"
|
"label": "Maintain/Duration"
|
||||||
},
|
},
|
||||||
"description": {
|
"description": {
|
||||||
"label": "Description"
|
"label": "Description"
|
||||||
@@ -655,6 +655,9 @@
|
|||||||
"ammo": {
|
"ammo": {
|
||||||
"label": "Ammo"
|
"label": "Ammo"
|
||||||
},
|
},
|
||||||
|
"ammoQuantity": {
|
||||||
|
"label": "Ammo Quantity"
|
||||||
|
},
|
||||||
"cost": {
|
"cost": {
|
||||||
"label": "Cost"
|
"label": "Cost"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export default class HellbornCharacterSheet extends HellbornActorSheet {
|
|||||||
createMalefica: HellbornCharacterSheet.#onCreateMalefica,
|
createMalefica: HellbornCharacterSheet.#onCreateMalefica,
|
||||||
createRitual: HellbornCharacterSheet.#onCreateRitual,
|
createRitual: HellbornCharacterSheet.#onCreateRitual,
|
||||||
createPerk: HellbornCharacterSheet.#onCreatePerk,
|
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" }])
|
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.
|
* Handles the roll action triggered by user interaction.
|
||||||
|
|||||||
@@ -202,11 +202,11 @@ export default class HellbornRoll extends Roll {
|
|||||||
options.nbDisadvantages = Number(options.nbDisadvantages)
|
options.nbDisadvantages = Number(options.nbDisadvantages)
|
||||||
let dice = 3;
|
let dice = 3;
|
||||||
let keep = ""
|
let keep = ""
|
||||||
if ( options.nbAdvantages > 0 || options.nbDisadvantages > 0) {
|
if ( (options.nbAdvantages !== options.nbDisadvantages) && options.nbAdvantages > 0 || options.nbDisadvantages > 0) {
|
||||||
dice = 4;
|
dice = 4;
|
||||||
if ( options.nbAdvantages > options.nbDisadvantages) {
|
if ( options.nbAdvantages > options.nbDisadvantages) {
|
||||||
keep = "kh3"
|
keep = "kh3"
|
||||||
} else {
|
} else if (options.nbAdvantages < options.nbDisadvantages) {
|
||||||
keep = "kl3"
|
keep = "kl3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ export default class HellbornWeapon extends foundry.abstract.TypeDataModel {
|
|||||||
schema.damageType = new fields.StringField({ required: false, initial : "Physical" })
|
schema.damageType = new fields.StringField({ required: false, initial : "Physical" })
|
||||||
|
|
||||||
schema.ammo = new fields.StringField({ required: false, initial: "" })
|
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.range = new fields.StringField({ required: false, initial: "" })
|
||||||
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
schema.cost = new fields.NumberField({ required: true, initial: 0, min: 0 })
|
||||||
|
|
||||||
|
|||||||
0
packs-system/hellborn-quickstart/000012.log
Normal file
BIN
packs-system/hellborn-quickstart/000014.ldb
Normal file
1
packs-system/hellborn-quickstart/CURRENT
Normal file
@@ -0,0 +1 @@
|
|||||||
|
MANIFEST-000010
|
||||||
0
packs-system/hellborn-quickstart/LOCK
Normal file
15
packs-system/hellborn-quickstart/LOG
Normal file
@@ -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)
|
||||||
8
packs-system/hellborn-quickstart/LOG.old
Normal file
@@ -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)
|
||||||
BIN
packs-system/hellborn-quickstart/MANIFEST-000010
Normal file
@@ -438,6 +438,10 @@
|
|||||||
min-width: 4.5rem;
|
min-width: 4.5rem;
|
||||||
max-width: 4.5rem;
|
max-width: 4.5rem;
|
||||||
}
|
}
|
||||||
|
.ammoQuantity {
|
||||||
|
min-width: 3rem;
|
||||||
|
max-width: 3rem;
|
||||||
|
}
|
||||||
.type {
|
.type {
|
||||||
min-width: 3rem;
|
min-width: 3rem;
|
||||||
max-width: 3rem;
|
max-width: 3rem;
|
||||||
|
|||||||
@@ -24,8 +24,18 @@
|
|||||||
min-width: 12rem;
|
min-width: 12rem;
|
||||||
max-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 {
|
.header {
|
||||||
display: flex;
|
display: flex;
|
||||||
img {
|
img {
|
||||||
|
|||||||
@@ -49,6 +49,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"packs": [
|
"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": {
|
"grid": {
|
||||||
"distance": 10,
|
"distance": 10,
|
||||||
|
|||||||
@@ -10,15 +10,20 @@
|
|||||||
{{#each weapons as |item|}}
|
{{#each weapons as |item|}}
|
||||||
<div class="weapon item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
<div class="weapon item" data-item-id="{{item.id}}" data-item-uuid="{{item.uuid}}" data-drag="true">
|
||||||
|
|
||||||
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}}" />
|
<img class="item-img" src="{{item.img}}" data-tooltip="{{item.name}} - {{upperFirst item.system.weaponType}}" />
|
||||||
<i class="fa-regular fa-dice"></i>
|
<i class="fa-regular fa-dice"></i>
|
||||||
<div class="name rollable" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
<div class="name rollable" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||||
{{item.name}}
|
{{item.name}}
|
||||||
</div>
|
</div>
|
||||||
<span class="type" data-tooltip="Type">{{upperFirst item.system.weaponType}}</span>
|
<!-- <span class="type" data-tooltip="Type">{{upperFirst item.system.weaponType}}</span> -->
|
||||||
<span class="properties" data-tooltip="Properties">{{upperFirst item.system.properties}}</span>
|
<span class="properties" data-tooltip="Properties">{{upperFirst item.system.properties}}</span>
|
||||||
<span class="range" data-tooltip="Range">{{upperFirst item.system.range}}</span>
|
<span class="range" data-tooltip="Range">{{upperFirst item.system.range}}</span>
|
||||||
<span class="ammo" data-tooltip="Ammo">{{upperFirst item.system.ammo}}</span>
|
<span class="ammo" data-tooltip="Ammo">{{upperFirst item.system.ammo}}</span>
|
||||||
|
<span class="ammoQuantity" data-tooltip="ammoQuantity">
|
||||||
|
<i class="fa-solid fa-octagon-plus" data-action="modifyAmmo" data-quantity="1" data-item-id="{{item.id}}"></i>
|
||||||
|
{{item.system.ammoQuantity}}
|
||||||
|
<i class="fa-solid fa-octagon-minus" data-action="modifyAmmo" data-quantity="-1" data-item-id="{{item.id}}"></i>
|
||||||
|
</span>
|
||||||
|
|
||||||
<a class="damage rollable" data-tooltip="Damage" data-item-id="{{item.id}}" data-action="roll"
|
<a class="damage rollable" data-tooltip="Damage" data-item-id="{{item.id}}" data-action="roll"
|
||||||
data-roll-type="damage" data-roll-value="{{item.system.damageFormula}}">
|
data-roll-type="damage" data-roll-value="{{item.system.damageFormula}}">
|
||||||
|
|||||||
@@ -23,8 +23,8 @@
|
|||||||
{{else}}
|
{{else}}
|
||||||
<li class="tarot-spacing"><strong>Negative Effect : </strong>{{{system.negativeEffect}}}</li>
|
<li class="tarot-spacing"><strong>Negative Effect : </strong>{{{system.negativeEffect}}}</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
<img class="item-img" src="{{system.image}}" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
{{formInput systemFields.negativeEffect enriched=enrichedNegativeEffect value=system.negativeEffect name="system.negativeEffect"
|
{{formInput systemFields.negativeEffect enriched=enrichedNegativeEffect value=system.negativeEffect name="system.negativeEffect"
|
||||||
toggled=true}}
|
toggled=true}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div class="tarot-pic">
|
||||||
<img src="{{system.image}}" class="item-img" data-edit="image" data-action="editImage" data-tooltip="{{localize "HELLBORN.Label.imageTooltip"}}"/>
|
<img src="{{system.image}}" class="item-img" data-edit="image" data-action="editImage" data-tooltip="{{localize "HELLBORN.Label.imageTooltip"}}"/>
|
||||||
{{formField systemFields.image value=system.image localize=true }}
|
{{formField systemFields.image value=system.image localize=true }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
{{formField systemFields.subType value=system.subType localize=true}}
|
{{formField systemFields.subType value=system.subType localize=true}}
|
||||||
{{formField systemFields.range value=system.range localize=true}}
|
{{formField systemFields.range value=system.range localize=true}}
|
||||||
{{formField systemFields.ammo value=system.ammo localize=true}}
|
{{formField systemFields.ammo value=system.ammo localize=true}}
|
||||||
|
{{formField systemFields.ammoQuantity value=system.ammoQuantity localize=true}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{formField systemFields.properties value=system.properties classes="long-input"}}
|
{{formField systemFields.properties value=system.properties classes="long-input"}}
|
||||||
|
|||||||