Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| eb0ab56794 | |||
| 4d96c15066 | |||
| fb5c408bbd |
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;
|
||||
max-width: 4.5rem;
|
||||
}
|
||||
.fvtt-hellborn .tab.character-equipment .main-div .weapons .weapon .ammoQuantity {
|
||||
min-width: 4.2rem;
|
||||
max-width: 4.2rem;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
@@ -2444,6 +2459,9 @@ i.fvtt-hellborn {
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.item-to-chat ul .tarot-spacing {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.item-to-chat ul li {
|
||||
margin: 0 10px;
|
||||
font-family: var(--font-primary);
|
||||
@@ -2452,11 +2470,15 @@ i.fvtt-hellborn {
|
||||
.item-to-chat ul li p {
|
||||
margin: 0;
|
||||
}
|
||||
.item-to-chat .tarot-item-img {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
.flavor-text-damage {
|
||||
font-family: var(--font-secondary);
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
color: var(--color-dark-2);
|
||||
margin-top: 5px;
|
||||
margin-top: 0px;
|
||||
align-items: center;
|
||||
}
|
||||
.flavor-text-damage .chat-damage-type {
|
||||
font-weight: bold;
|
||||
@@ -2466,11 +2488,12 @@ i.fvtt-hellborn {
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
.flavor-text-damage h2 {
|
||||
margin-top: 10px;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 4px;
|
||||
text-align: center;
|
||||
margin-top: 4px;
|
||||
margin-left: 4px;
|
||||
margin-bottom: 0px;
|
||||
font-family: var(--font-title);
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
font-size: calc(var(--font-size-standard) * 1.1);
|
||||
color: var(--title-color);
|
||||
}
|
||||
.dice-roll {
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 })
|
||||
|
||||
|
||||
BIN
packs-system/hellborn-quickstart/000014.ldb
Normal file
0
packs-system/hellborn-quickstart/000017.log
Normal file
1
packs-system/hellborn-quickstart/CURRENT
Normal file
@@ -0,0 +1 @@
|
||||
MANIFEST-000015
|
||||
0
packs-system/hellborn-quickstart/LOCK
Normal file
8
packs-system/hellborn-quickstart/LOG
Normal file
@@ -0,0 +1,8 @@
|
||||
2025/06/30-22:25:13.089120 7f07937fe6c0 Recovering log #12
|
||||
2025/06/30-22:25:13.141380 7f07937fe6c0 Delete type=3 #10
|
||||
2025/06/30-22:25:13.141434 7f07937fe6c0 Delete type=0 #12
|
||||
2025/06/30-22:34:15.665682 7f07923ff6c0 Level-0 table #18: started
|
||||
2025/06/30-22:34:15.665712 7f07923ff6c0 Level-0 table #18: 0 bytes OK
|
||||
2025/06/30-22:34:15.671514 7f07923ff6c0 Delete type=0 #16
|
||||
2025/06/30-22:34:15.696997 7f07923ff6c0 Manual compaction at level-0 from '!folders!0d8PWsAGxiRfOlkP' @ 72057594037927935 : 1 .. '!items!zCOHBP3SYlGAY6zI' @ 0 : 0; will stop at (end)
|
||||
2025/06/30-22:34:15.707753 7f07923ff6c0 Manual compaction at level-1 from '!folders!0d8PWsAGxiRfOlkP' @ 72057594037927935 : 1 .. '!items!zCOHBP3SYlGAY6zI' @ 0 : 0; will stop at (end)
|
||||
15
packs-system/hellborn-quickstart/LOG.old
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)
|
||||
BIN
packs-system/hellborn-quickstart/MANIFEST-000015
Normal file
@@ -438,6 +438,10 @@
|
||||
min-width: 4.5rem;
|
||||
max-width: 4.5rem;
|
||||
}
|
||||
.ammoQuantity {
|
||||
min-width: 4.2rem;
|
||||
max-width: 4.2rem;
|
||||
}
|
||||
.type {
|
||||
min-width: 3rem;
|
||||
max-width: 3rem;
|
||||
|
||||
@@ -69,6 +69,9 @@
|
||||
margin: 0;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.tarot-spacing {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
li {
|
||||
margin: 0 10px;
|
||||
font-family: var(--font-primary);
|
||||
@@ -78,26 +81,31 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.tarot-item-img {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.flavor-text-damage {
|
||||
font-family: var(--font-secondary);
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
color: var(--color-dark-2);
|
||||
margin-top: 5px;
|
||||
margin-top: 0px;
|
||||
align-items: center;
|
||||
.chat-damage-type {
|
||||
font-weight: bold;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom:0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
h2 {
|
||||
margin-top: 10px;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 4px;
|
||||
text-align: center;
|
||||
margin-top: 4px;
|
||||
margin-left: 4px;
|
||||
margin-bottom: 0px;
|
||||
font-family: var(--font-title);
|
||||
font-size: calc(var(--font-size-standard) * 1.2);
|
||||
font-size: calc(var(--font-size-standard) * 1.1);
|
||||
color: var(--title-color);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -10,15 +10,27 @@
|
||||
{{#each weapons as |item|}}
|
||||
<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>
|
||||
<div class="name rollable" data-roll-type="weapon" data-tooltip="{{{item.system.description}}}">
|
||||
{{item.name}}
|
||||
</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="range" data-tooltip="Range">{{upperFirst item.system.range}}</span>
|
||||
|
||||
{{#if (eq item.system.weaponType "melee")}}
|
||||
<span class="ammoQuantity" > </span>
|
||||
<span class="ammo" ></span>
|
||||
|
||||
{{else}}
|
||||
<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>
|
||||
<span class="ammo" data-tooltip="Ammo">{{upperFirst item.system.ammo}}</span>
|
||||
{{/if}}
|
||||
|
||||
<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}}">
|
||||
|
||||
@@ -16,15 +16,15 @@
|
||||
<li><strong>Reversed XP Trigger : </strong>{{system.penalty}}</li>
|
||||
{{/if}}
|
||||
|
||||
<li><strong>Description : </strong>{{{system.description}}}</li>
|
||||
<li class="tarot-spacing"><strong>Description : </strong>{{{system.description}}}</li>
|
||||
|
||||
{{#if (eq system.orientation "Upright")}}
|
||||
<li><strong>Positive Effect : </strong>{{{system.positiveEffect}}}</li>
|
||||
<li class="tarot-spacing"><strong>Positive Effect : </strong>{{{system.positiveEffect}}}</li>
|
||||
{{else}}
|
||||
<li><strong>Negative Effect : </strong>{{{system.negativeEffect}}}</li>
|
||||
<li class="tarot-spacing"><strong>Negative Effect : </strong>{{{system.negativeEffect}}}</li>
|
||||
{{/if}}
|
||||
|
||||
</ul>
|
||||
<img class="tarot-item-img" src="{{system.image}}" />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -27,7 +27,7 @@
|
||||
{{formInput systemFields.negativeEffect enriched=enrichedNegativeEffect value=system.negativeEffect name="system.negativeEffect"
|
||||
toggled=true}}
|
||||
</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"}}"/>
|
||||
{{formField systemFields.image value=system.image localize=true }}
|
||||
</div>
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
{{#if (eq system.weaponType "ranged")}}
|
||||
{{formField systemFields.subType value=system.subType localize=true}}
|
||||
{{formField systemFields.range value=system.range localize=true}}
|
||||
{{formField systemFields.ammoQuantity value=system.ammoQuantity localize=true}}
|
||||
{{formField systemFields.ammo value=system.ammo localize=true}}
|
||||
{{/if}}
|
||||
|
||||
|
||||