- ajoute les visuels système (bannière, pause, tokens)
Release Creation / build (release) Successful in 1m57s
Release Creation / build (release) Successful in 1m57s
- active le drag & drop inverse des objets depuis les fiches d’acteur - corrige le calcul des PV des créatures selon la taille - ajoute les options d’armes de créature manquantes - met à jour les styles et les packs générés
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 143 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 214 KiB |
@@ -87,6 +87,43 @@
|
||||
--lo-control-height: 1.95rem;
|
||||
--lo-number-width: 4.75rem;
|
||||
}
|
||||
body.system-fvtt-les-oublies #pause {
|
||||
font-size: 2rem;
|
||||
}
|
||||
body.system-fvtt-les-oublies #pause.paused {
|
||||
gap: 0.5rem;
|
||||
}
|
||||
body.system-fvtt-les-oublies #pause > figcaption {
|
||||
color: #d9d4ca;
|
||||
text-shadow: 0 0 10px rgba(255, 255, 255, 0.22);
|
||||
}
|
||||
body.system-fvtt-les-oublies #pause > img {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
body.system-fvtt-les-oublies #pause::before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
margin-bottom: 0.75rem;
|
||||
background: url("../assets/ui/pause_oublie.webp") center / contain no-repeat;
|
||||
animation: lo-pause-logo 4.2s ease-in-out infinite;
|
||||
transform-origin: 50% 50%;
|
||||
filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.35));
|
||||
}
|
||||
@keyframes lo-pause-logo {
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(0.98) translateY(0);
|
||||
filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.3));
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.03) translateY(-6px);
|
||||
filter: drop-shadow(0 16px 26px rgba(0, 0, 0, 0.45));
|
||||
}
|
||||
}
|
||||
.fvtt-les-oublies.sheet {
|
||||
color: var(--lo-ink);
|
||||
font-family: "Cormorant Garamond", Georgia, serif;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -34,6 +34,50 @@
|
||||
--lo-number-width: 4.75rem;
|
||||
}
|
||||
|
||||
body.system-fvtt-les-oublies #pause {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
body.system-fvtt-les-oublies #pause.paused {
|
||||
gap: 0.5rem;
|
||||
}
|
||||
|
||||
body.system-fvtt-les-oublies #pause > figcaption {
|
||||
color: #d9d4ca;
|
||||
text-shadow: 0 0 10px rgba(255, 255, 255, 0.22);
|
||||
}
|
||||
|
||||
body.system-fvtt-les-oublies #pause > img {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
body.system-fvtt-les-oublies #pause::before {
|
||||
content: "";
|
||||
display: block;
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
margin-bottom: 0.75rem;
|
||||
background: url("../assets/ui/pause_oublie.webp") center/contain no-repeat;
|
||||
animation: lo-pause-logo 4.2s ease-in-out infinite;
|
||||
transform-origin: 50% 50%;
|
||||
filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.35));
|
||||
}
|
||||
|
||||
@keyframes lo-pause-logo {
|
||||
0%,
|
||||
100% {
|
||||
transform: scale(0.98) translateY(0);
|
||||
filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.3));
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scale(1.03) translateY(-6px);
|
||||
filter: drop-shadow(0 16px 26px rgba(0, 0, 0, 0.45));
|
||||
}
|
||||
}
|
||||
|
||||
.fvtt-les-oublies.sheet {
|
||||
color: var(--lo-ink);
|
||||
font-family: "Cormorant Garamond", Georgia, serif;
|
||||
|
||||
@@ -81,6 +81,15 @@ export default class LesOubliesActorSheet extends HandlebarsApplicationMixin(fou
|
||||
super._onRender(context, options)
|
||||
}
|
||||
|
||||
_onDragStart(event) {
|
||||
const itemElement = event.currentTarget?.closest?.("[data-item-id]") ?? event.target?.closest?.("[data-item-id]")
|
||||
const itemId = itemElement?.dataset?.itemId
|
||||
const item = itemId ? this.document.items.get(itemId) : null
|
||||
if (!item || !event.dataTransfer) return
|
||||
|
||||
event.dataTransfer.setData("text/plain", JSON.stringify(item.toDragData()))
|
||||
}
|
||||
|
||||
_canDragStart() {
|
||||
return this.isEditable
|
||||
}
|
||||
|
||||
@@ -41,8 +41,9 @@ export class LesOubliesActor extends Actor {
|
||||
if (this.type !== "creature") return
|
||||
|
||||
const system = this.system
|
||||
const hpValue = Math.max(Number(system.hp?.value ?? 0), 0)
|
||||
const hpMax = Math.max(Number(system.hp?.max ?? hpValue), hpValue, 0)
|
||||
const sizeValue = Math.clamp(Number(system.size?.value ?? 1), 1, 8)
|
||||
const hpMax = Math.max(sizeValue * 4, 0)
|
||||
const hpValue = Math.max(Number(system.hp?.value ?? hpMax), 0)
|
||||
system.hp.max = hpMax
|
||||
system.hp.value = Math.min(hpValue, hpMax)
|
||||
const songesPoints = Math.max(Number(system.songes?.points ?? 0), 0)
|
||||
|
||||
@@ -60,12 +60,14 @@ export const SIZE_LABELS = {
|
||||
}
|
||||
|
||||
export const WEAPON_CATEGORY_LABELS = {
|
||||
corpsacorps: "Corps à corps",
|
||||
melee: "Mêlée",
|
||||
tir: "Tir",
|
||||
jet: "Jet",
|
||||
}
|
||||
|
||||
export const WEAPON_ORIGIN_LABELS = {
|
||||
animaux: "Animaux",
|
||||
geant: "Géant",
|
||||
petitPeuple: "Petit Peuple",
|
||||
}
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.090569 7fe6b57ed6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.098074 7f9b5cbfd6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.106804 7fe6b4fec6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.164577 7f9b4ffff6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.152550 7fe6b57ed6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.395797 7f9b5cbfd6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.122237 7fe6b67ef6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.240415 7f9b5dbff6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.198341 7fe6b5fee6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.609281 7f9b5d3fe6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.137148 7fe6b5fee6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.319307 7f9b5d3fe6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.166829 7fe6b4fec6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.459120 7f9b4ffff6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.214242 7fe6b57ed6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.677244 7f9b5cbfd6c0 Delete type=3 #1
|
||||
|
||||
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
||||
2026/05/04-09:46:56.182767 7fe6b67ef6c0 Delete type=3 #1
|
||||
2026/05/04-10:50:49.540176 7f9b5dbff6c0 Delete type=3 #1
|
||||
|
||||
+2
-1
@@ -5,7 +5,8 @@
|
||||
"manifest": "https://www.uberwald.me/gitea/public/fvtt-les-oublies/raw/branch/main/system.json",
|
||||
"download": "#{DOWNLOAD}#",
|
||||
"url": "https://www.uberwald.me/gitea/public/fvtt-les-oublies",
|
||||
"version": "0.1.0",
|
||||
"background": "systems/fvtt-les-oublies/assets/ui/banniere_les_oublies.webp",
|
||||
"version": "14.0.0",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Copilot",
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each powers as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.activationCondition}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
<h3>{{group.label}}</h3>
|
||||
<div class="item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{entry.item.id}}" draggable="true">
|
||||
<div><strong>{{entry.item.name}}</strong><div>{{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="rollSkill" data-item-id="{{entry.item.id}}">{{localize "LESOUBLIES.ui.roll"}}</button><button type="button" data-action="editItem" data-item-id="{{entry.item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{entry.item.id}}">Delete</button></div>
|
||||
</article>
|
||||
@@ -117,25 +117,25 @@
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{item.system.tradition}} / {{item.system.polarity}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useSpell" data-item-id="{{item.id}}">Activer</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
</div>
|
||||
<div class="item-list skills-item-list">
|
||||
{{#each group.items as |entry|}}
|
||||
<article class="item-card skill-card">
|
||||
<article class="item-card skill-card" data-item-id="{{entry.item.id}}" draggable="true">
|
||||
<div class="skill-card-main">
|
||||
<strong>{{entry.item.name}}</strong>
|
||||
<span class="skill-summary">Base {{entry.item.system.base}} · {{group.label}} {{group.profileValue}} · {{localize "LESOUBLIES.labels.valeurFinale"}} {{entry.finalValue}}</span>
|
||||
@@ -187,7 +187,7 @@
|
||||
<div class="item-list">
|
||||
{{#if equippedWeapons.length}}
|
||||
{{#each equippedWeapons as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="useWeapon" data-item-id="{{item.id}}">Attaque</button><button type="button" data-action="resolveWeaponDamage" data-item-id="{{item.id}}">Dégâts</button><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">Retirer</button></div>
|
||||
</article>
|
||||
@@ -206,7 +206,7 @@
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each spells as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div>
|
||||
<strong>{{item.name}}</strong>
|
||||
<div>{{item.system.tradition}} / {{item.system.polarity}} / coût {{item.system.cost}}</div>
|
||||
@@ -307,19 +307,19 @@
|
||||
</div>
|
||||
<div class="item-list">
|
||||
{{#each weapons as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.arme"}} - {{item.system.damage}}{{#if item.system.equipped}} - Équipée{{/if}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="toggleEquipped" data-item-id="{{item.id}}">{{#if item.system.equipped}}Retirer{{else}}Équiper{{/if}}</button><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each armors as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.armure"}} - Prot {{item.system.protection}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
{{/each}}
|
||||
{{#each equipment as |item|}}
|
||||
<article class="item-card">
|
||||
<article class="item-card" data-item-id="{{item.id}}" draggable="true">
|
||||
<div><strong>{{item.name}}</strong><div>{{localize "TYPES.Item.equipement"}} - {{item.system.category}}</div></div>
|
||||
<div class="item-controls"><button type="button" data-action="editItem" data-item-id="{{item.id}}">Edit</button><button type="button" data-action="deleteItem" data-item-id="{{item.id}}">Delete</button></div>
|
||||
</article>
|
||||
|
||||
Reference in New Issue
Block a user