This commit is contained in:
François-Xavier Guillois
2023-09-05 12:06:22 +02:00
parent e1238a1ad1
commit 983f856187
15 changed files with 153 additions and 145 deletions
+4
View File
@@ -1,5 +1,9 @@
# CHANGELOG
## 0.1.6
- finition de l'onglet totem
- ajout du logo de totem dans la sidebar
- ajout de traductions manquantes
## 0.1.5
- début de mise en forme des feuilles créature et pnj
Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

+38 -3
View File
@@ -138,6 +138,16 @@
"rarity_sm": "Rar.",
"reliability": "Fiabilité",
"reliability_sm": "Fiab.",
"wounds":{
"name":"Blessure",
"threshold": "Seuil",
"light":"Légère",
"heavy": "Grave",
"deadly": "Mortelle",
"light_wounds":"Blessure légère",
"heavy_wounds":"Blessure grave",
"deadly_wounds":"Blessure mortelle"
},
"ammo": "Munitions",
"ammo_sm": "Mun",
"trait": "Trait",
@@ -160,21 +170,46 @@
"totem_picker": "Sélecteur de totem",
"actor_picker": "Sélecteur de personnage"
},
"UI": {
"add": "Ajouter",
"source":"Source",
"duration":"Durée",
"effect_toggle":"Basculer un effet",
"effect_edit":"Modifier un effet",
"effect_delete":"Détruire un effet",
"effect_create":"Créer un effet",
"effects": {
"name": "Effets",
"temporary": "Effets temporaires",
"passive": "Effets passifs",
"inactive": "Effets inactifs"
}
},
"ITEMS": {
"defense": "Protection",
"defenses": "Protections",
"new_defense": "Nouvelle protection",
"weapon": "Arme",
"new_weapon": "Nouvelle arme",
"weapons": "Armes",
"new_background": "Nouvel historique",
"backgrounds": "Historiques",
"new_trauma": "Nouveau traumatisme",
"traumas": "Traumatismes",
"rumor": "Rumeur",
"new_rumor": "Nouvelle rumeur",
"rumors": "Rumeurs",
"ability": "Capacité",
"new_ability": "Nouvelle capacité",
"abilities": "Capacités",
"specialties": "Spécialités",
"new_specialty": "Nouvelle spécialité",
"evolution": "Adaptation",
"new_evolution": "Nouvelle adaptation",
"evolutions": "Adaptations",
"vehicles": "Véhicules"
"new_vehicle": "Nouveau véhicule",
"vehicles": "Véhicules",
"new_objective": "Nouvel objectif"
},
"ABILITIES": {
"vigor": { "name": "Vigueur"},
@@ -318,8 +353,8 @@
"SKILLS": {
"arts": { "name": "Arts"},
"civilization": { "name": "Civilisations"},
"psychology": { "name": "Relationnel"},
"rumors": { "name": "Cité"},
"psychology": { "name": "Psychologie"},
"rumors": { "name": "Rumeurs"},
"healing": { "name": "Soins"},
"animalism": { "name": "Animalisme"},
"dissection": { "name": "Dissection"},
+3 -1
View File
@@ -315,7 +315,9 @@ export class VermineActorSheet extends ActorSheet {
// Grab any data associated with this control.
const data = duplicate(header.dataset);
// Initialize a default name.
const name = `New ${type.capitalize()}`;
// const name = `New ${type.capitalize()}`;
const name = game.i18n.localize('ITEMS.new_' + type);
// Prepare the item object.
const itemData = {
name: name,
+2 -39
View File
@@ -143,19 +143,8 @@ export class VermineCharacterSheet extends VermineActorSheet {
// Everything below here is only needed if the sheet is editable
if (!this.isEditable) return;
// Add Inventory Item
html.find('.item-create').click(this._onItemCreate.bind(this));
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.items.get(li.data("itemId"));
item.delete();
li.slideUp(200, () => this.render(false));
});
// Active Effect management
html.find(".effect-control").click(ev => onManageActiveEffect(ev, this.actor));
// Add and delete Inventory Item
// already configured in parents listeners
// Rollable abilities.
html.find('.rollable').click(this._onRoll.bind(this));
@@ -189,32 +178,6 @@ export class VermineCharacterSheet extends VermineActorSheet {
}
}
/**
* Handle creating a new Owned Item for the actor using initial data defined in the HTML dataset
* @param {Event} event The originating click event
* @private
*/
async _onItemCreate(event) {
event.preventDefault();
const header = event.currentTarget;
// Get the type of item to create.
const type = header.dataset.type;
// Grab any data associated with this control.
const data = duplicate(header.dataset);
// Initialize a default name.
const name = `New ${type.capitalize()}`;
// Prepare the item object.
const itemData = {
name: name,
type: type,
system: data
};
// Remove the type from the dataset since it's in the itemData.type prop.
delete itemData.system["type"];
// Finally, create the item!
return await Item.create(itemData, {parent: this.actor});
}
/**
* Handle clickable rolls.
-13
View File
@@ -141,19 +141,6 @@ export class VermineCreatureSheet extends ActorSheet {
// Everything below here is only needed if the sheet is editable
if (!this.isEditable) return;
// Add Inventory Item
html.find('.item-create').click(this._onItemCreate.bind(this));
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.items.get(li.data("itemId"));
item.delete();
li.slideUp(200, () => this.render(false));
});
// Active Effect management
html.find(".effect-control").click(ev => onManageActiveEffect(ev, this.actor));
// Rollable abilities.
html.find('.rollable').click(this._onRoll.bind(this));
-14
View File
@@ -141,20 +141,6 @@ export class VermineNpcSheet extends VermineActorSheet {
// Everything below here is only needed if the sheet is editable
if (!this.isEditable) return;
// Add Inventory Item
html.find('.item-create').click(this._onItemCreate.bind(this));
// Delete Inventory Item
html.find('.item-delete').click(ev => {
const li = $(ev.currentTarget).parents(".item");
const item = this.actor.items.get(li.data("itemId"));
item.delete();
li.slideUp(200, () => this.render(false));
});
// Active Effect management
html.find(".effect-control").click(ev => onManageActiveEffect(ev, this.actor));
// Rollable abilities.
html.find('.rollable').click(this._onRoll.bind(this));
+2 -4
View File
@@ -8,9 +8,7 @@
// Actor partials.
"systems/vermine2047/templates/actor/parts/actor-spells.html",
"systems/vermine2047/templates/actor/parts/actor-features.html",
"systems/vermine2047/templates/actor/parts/actor-spells.html",
// "systems/vermine2047/templates/actor/parts/actor-features.html",
"systems/vermine2047/templates/actor/parts/actor-id.hbs",
"systems/vermine2047/templates/actor/parts/actor-totem.hbs",
"systems/vermine2047/templates/actor/parts/character-features.hbs",
@@ -19,7 +17,7 @@
"systems/vermine2047/templates/actor/parts/actor-weapons.hbs",
"systems/vermine2047/templates/actor/parts/actor-defenses.hbs",
"systems/vermine2047/templates/actor/parts/actor-stories.hbs",
"systems/vermine2047/templates/actor/parts/actor-effects.html",
"systems/vermine2047/templates/actor/parts/actor-combat.html",
// Group partials
"systems/vermine2047/templates/actor/parts/group-header.hbs",
+1 -1
View File
@@ -2,7 +2,7 @@
"id": "vermine2047",
"title": "Vermine 2047",
"description": "The Vermine 2047 system for FoundryVTT!",
"version": "0.1.5",
"version": "0.1.6",
"compatibility": {
"minimum": "10",
"verified": "10.287",
+3 -6
View File
@@ -4,16 +4,19 @@
"templates": {
"base": {
"minorWound": {
"threshold":1,
"value": 0,
"min": 0,
"max": 4
},
"majorWound": {
"threshold":4,
"value": 0,
"min": 0,
"max": 2
} ,
"deadlyWound": {
"threshold":8,
"value": 0,
"min": 0,
"max": 2
@@ -29,7 +32,6 @@
"age": 15,
"ageType": 2,
"profile": "",
"origin": "",
"theme": "",
"instincts": "",
"prohibits": "",
@@ -58,11 +60,6 @@
"value": 0,
"min": 0,
"max": 5
},
"group": {
"value": 0,
"min": 0,
"max": 5
}
},
"abilities": {
+2 -2
View File
@@ -1,4 +1,4 @@
<form class="{{cssClass}} {{actor.type}} flexcol" autocomplete="off">
<form class="{{cssClass}} {{actor.type}} flexcol form" autocomplete="off">
<div class="form">
<aside>
<img class="logo mx-auto" src="systems/vermine2047/assets/images/ui/logo.webp" width="200" alt="logo Vermine" />
@@ -56,7 +56,7 @@
<div class="tab combat" data-group="primary" data-tab="combat">
<h3>{{ localize 'VERMINE.combat'}}</h3>
<!-- effects -->
{{> "systems/vermine2047/templates/actor/parts/actor-effects.html"}}
{{> "systems/vermine2047/templates/actor/parts/actor-combat.html"}}
</div>
<div class="tab stories" data-group="primary" data-tab="stories">
+65
View File
@@ -0,0 +1,65 @@
<div class="grid grid-2col">
<div>
<h4 class="align-center">{{ localize "VERMINE.self_control"}}</h4>
<p class="align-center">
<input type="number" name="system.attributes.self_control.value" value="{{ system.attributes.self_control.value }}" data-dtype="Number" min="{{ system.attributes.self_control.min }}" max="{{ system.attributes.self_control.max }}" />
</p>
</div>
<div>
<h4 class="align-center">{{ localize "VERMINE.effort"}}</h4>
<p class="align-center">
<input type="number" name="system.attributes.effort.value" value="{{ system.attributes.effort.value }}" data-dtype="Number" min="{{ system.attributes.effort.min }}" max="{{ system.attributes.effort.max }}" />
</p>
</div>
</div>
<h4 class="item-name effect-name flexrow">{{ localize "VERMINE.wounds.name"}}</h4>
<ul class="unstyled">
<li>{{ localize 'VERMINE.wounds.light'}}</li>
<li>{{ localize 'VERMINE.wounds.heavy'}}</li>
<li>{{ localize 'VERMINE.wounds.deadly'}}</li>
</l>
<h4 class="item-name effect-name flexrow">{{ localize "UI.effects.name"}}</h4>
<ol class="items-list effects-list">
{{#each effects as |section sid|}}
<li class="items-header flexrow" data-effect-type="{{section.type}}">
<p class="item-name effect-name flexrow">{{#if (eq section.type 'temporary')}}
{{localize "UI.effects.temporary" }}
{{else if (eq section.type 'passive')}}
{{localize "UI.effects.passive" }}
{{else if (eq section.type 'inactive')}}
{{localize "UI.effects.inactive" }}
{{/if}}
</p>
<div class="effect-source">{{localize 'UI.source'}}</div>
<div class="effect-source">{{localize 'UI.duration'}}</div>
<div class="item-controls effect-controls flexrow">
<a class="effect-control" data-action="create" title="{{localize 'UI.effect_create'}}">
<i class="fas fa-plus"></i> {{localize "UI.add"}}
</a>
</div>
</li>
<ol class="item-list">
{{#each section.effects as |effect|}}
<li class="item effect flexrow" data-effect-id="{{effect.id}}">
<div class="item-name effect-name">
<a class="effect-control flexrow flex-group-center items-center" data-action="edit" title="{{localize 'UI.effect_edit'}}">
<img class="item-image" src="{{effect.icon}}"/>
<span>{{effect.label}}</span>
</a>
</div>
<div class="effect-source">{{effect.sourceName}}</div>
<div class="effect-duration">{{effect.duration.label}}</div>
<div class="item-controls effect-controls flexrow">
<a class="effect-control" data-action="toggle" title="{{localize 'UI.effect_toggle'}}">
<i class="fas {{#if effect.disabled}}fa-check{{else}}fa-times{{/if}}"></i>
</a>
<a class="effect-control" data-action="delete" title="{{localize 'UI.effect_delete'}}">
<i class="fas fa-trash"></i>
</a>
</div>
</li>
{{/each}}
</ol>
{{/each}}
</ol>
-38
View File
@@ -1,38 +0,0 @@
<ol class="items-list effects-list">
{{#each effects as |section sid|}}
<li class="items-header flexrow" data-effect-type="{{section.type}}">
<h3 class="item-name effect-name flexrow">{{localize section.label}}</h3>
<div class="effect-source">Source</div>
<div class="effect-source">Duration</div>
<div class="item-controls effect-controls flexrow">
<a class="effect-control" data-action="create" title="{{localize 'VERMINE.EffectCreate'}}">
<i class="fas fa-plus"></i> {{localize "VERMINE.Add"}}
</a>
</div>
</li>
<ol class="item-list">
{{#each section.effects as |effect|}}
<li class="item effect flexrow" data-effect-id="{{effect.id}}">
<div class="item-name effect-name flexrow">
<img class="item-image" src="{{effect.icon}}"/>
<h4>{{effect.label}}</h4>
</div>
<div class="effect-source">{{effect.sourceName}}</div>
<div class="effect-duration">{{effect.duration.label}}</div>
<div class="item-controls effect-controls flexrow">
<a class="effect-control" data-action="toggle" title="{{localize 'VERMINE.EffectToggle'}}">
<i class="fas {{#if effect.disabled}}fa-check{{else}}fa-times{{/if}}"></i>
</a>
<a class="effect-control" data-action="edit" title="{{localize 'VERMINE.EffectEdit'}}">
<i class="fas fa-edit"></i>
</a>
<a class="effect-control" data-action="delete" title="{{localize 'VERMINE.EffectDelete'}}">
<i class="fas fa-trash"></i>
</a>
</div>
</li>
{{/each}}
</ol>
{{/each}}
</ol>
+7 -8
View File
@@ -2,17 +2,16 @@
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100"/>
</div>
<ul class="padding-with-frieze unstyled paper">
<li>
<div class="flexcol flex-group-center items-center w-full">
<label for="system.identity.origin" class="resource-label flexlarge align-left">{{ localize "IDENTITY.origin"}}</label>
<select name="system.identity.origin" class="w-full">
{{selectOptions config.origins selected=system.identity.origin localize=true}}
</select>
</div>
{{#if system.identity.totem }}
<li class="row lgb">
<div class="flexcol flex-group-center items-center w-full">
<img src="/systems/vermine2047/assets/images/ui/totems/{{ system.identity.totem }}.webp" alt="{{ smarttl 'TOTEMS' system.identity.totem 'name' }}" width="80" height="80" />
</div>
</li>
{{/if}}
{{#if system.identity.theme}}
<li>
<div class="flexcol flex-group-center items-center w-full">
<div class="flexcol flex-group-center items-center w-full">
<label for="system.identity.theme" class="resource-label flexlarge align-left">{{ localize "IDENTITY.theme"}}</label>
<p>{{{ system.identity.theme }}}</p>
</div>
+23 -13
View File
@@ -1,19 +1,22 @@
<h4 class="align-center">
{{ smarttl 'TOTEMS' system.identity.totem 'name' }}
</h4>
<p class="align-center"> {{ smarttl 'TOTEMS' system.identity.totem 'description' }}</p>
<p style="font-size:80%;">{{ smarttlk "TOTEMS" system.identity.totem "description"}}</p>
<div class="grid grid-2col">
<div class="">
<div class="item-name">Principes</div>
<div class="item-name"><strong>Principes</strong><br />{{ smarttlk "TOTEMS" system.identity.totem "instincts"}}</div>
</div>
<div class="">
<div class="item-name">Interdits</div>
<div class="item-name"><strong>Interdits</strong><br />{{ smarttlk "TOTEMS" system.identity.totem "bans"}}</div>
</div>
</div>
<hr>
<div class="grid grid-2col">
<div>
<h4>{{ localize 'ITEMS.abilities'}}</h4>
<h4>
<span>{{ localize 'ITEMS.abilities'}}</span>
<a class="item-control item-create" title="Create item" data-type="ability"><i class="fas fa-plus"></i></a>
</h4>
<ol class="list-item">
{{#each abilities as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}">
@@ -21,7 +24,6 @@
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
</div>
<div class="item-controls flexrow">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-eye"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
@@ -29,7 +31,10 @@
</ol>
</div>
<div>
<h4>{{ localize 'ITEMS.specialties'}}</h4>
<h4>
<span>{{ localize 'ITEMS.specialties'}}</span>
<a class="item-control item-create" title="Create item" data-type="specialty"><i class="fas fa-plus"></i></a>
</h4>
<ol class="list-item">
{{#each specialties as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}">
@@ -37,7 +42,6 @@
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
</div>
<div class="item-controls flexrow">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-eye"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
@@ -45,7 +49,10 @@
</ol>
</div>
<div>
<h4>{{ localize 'ITEMS.backgrounds'}}</h4>
<h4>
<span>{{ localize 'ITEMS.backgrounds'}}</span>
<a class="item-control item-create" title="Create item" data-type="background"><i class="fas fa-plus"></i></a>
</h4>
<ol class="list-item">
{{#each backgrounds as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}">
@@ -53,7 +60,6 @@
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
</div>
<div class="item-controls flexrow">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-eye"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
@@ -61,7 +67,10 @@
</ol>
</div>
<div>
<h4>{{ localize 'ITEMS.traumas'}}</h4>
<h4>
<span>{{ localize 'ITEMS.traumas'}}</span>
<a class="item-control item-create" title="Create item" data-type="trauma"><i class="fas fa-plus"></i></a>
</h4>
<ol class="list-item">
{{#each traumas as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}">
@@ -69,7 +78,6 @@
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
</div>
<div class="item-controls flexrow">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-eye"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>
@@ -77,7 +85,10 @@
</ol>
</div>
<div>
<h4>{{ localize 'ITEMS.evolutions'}}</h4>
<h4>
<span>{{ localize 'ITEMS.evolutions'}}</span>
<a class="item-control item-create" title="Create item" data-type="evolution"><i class="fas fa-plus"></i></a>
</h4>
<ol class="list-item">
{{#each evolutions as |item id|}}
<li class="item flexrow" data-item-id="{{item._id}}">
@@ -85,7 +96,6 @@
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
</div>
<div class="item-controls flexrow">
<a class="item-control item-edit" title="Edit Item"><i class="fas fa-eye"></i></a>
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
</div>
</li>