reprise du projet

This commit is contained in:
Erwan Lemaire
2025-04-17 14:55:41 +02:00
parent 62f13c8cc3
commit d380efeed5
16 changed files with 526 additions and 244 deletions
+1
View File
@@ -34,6 +34,7 @@
- [X] faire l'update l' l'actor juste après s'etre accorder des rerolls, et avoir utiliser le sang-froid
- [X] update des reserves de sang-froids lors de jets
- [X] ajout des domaines de prédilections
- [ ] gérer le dés en +/- selon l'influence du totem adapté ou humain selon les domaines
- [ ] gérer les réussites auto
- [ ] gérer les seuils auto si compétence non maitrisée
+1 -1
View File
File diff suppressed because one or more lines are too long
+14
View File
@@ -46,6 +46,20 @@ export class VermineActor extends Actor {
// things organized.
this._prepareCharacterData(actorData);
this._prepareNpcData(actorData);
//combat initiative reaction difficulty
console.log(this.system.combatStatus)
switch (parseInt(this.system.combatStatus.difficulty)) {
case 5: this.system.combatStatus.label = "Offensif";
break;
case 7: this.system.combatStatus.label = "Actif";
break;
case 9: this.system.combatStatus.label = "Passif";
break;
default:
this.system.combatStatus.label = "Passif";
this.system.combatStatus.difficulty = "9";
}
}
/**
+5 -4
View File
@@ -182,7 +182,7 @@ export class VermineCharacterSheet extends VermineActorSheet {
event.preventDefault();
const element = event.currentTarget;
const dataset = element.dataset;
console.log("Ceci est un jet d'un personnage joueur");
console.log("Ceci est un jet d'un personnage joueur", this.actor);
// Handle item rolls.
if (dataset.rollType) {
if (dataset.rollType == 'item') {
@@ -197,7 +197,7 @@ export class VermineCharacterSheet extends VermineActorSheet {
dataset.rollType = dataset.type;
let data = {
actorId: this.actor.id,
actorId: this.object.id,
rollType: dataset.rollType,
labelKey: dataset.label,
@@ -205,8 +205,9 @@ export class VermineCharacterSheet extends VermineActorSheet {
};
let dial = await RollDialog.create(data);
dial.render(true)
return true;
console.log("from sheet", data, this)
return dial.render(true)
}
}
+6 -6
View File
@@ -47,10 +47,14 @@ export default class RollDialog extends Dialog {
rolltype: null,
NoD: 1,
Reroll: false,
actorId: game.user.character.id
actorId: game.user.character?.id || canvas.tokens.controlled[0]?.actor.id
}) {
// Retrieve the actor data based on the actorId
data.actor = await game.actors.get(data.actorId);
if (!data.actor) {
return await ui.notifications.warn("Vous n'avez pas de personnage attitré ou de token selectionné");
}
console.log(data.actor)
data.availableSpecialties = data.actor.items.filter(it => it.type == "specialty");
console.log(data.availableSpecialties)
@@ -177,13 +181,9 @@ export default class RollDialog extends Dialog {
return html.querySelector('select#ability').options[html.querySelector('select#ability').selectedIndex].dataset.label
}
displaySpecialties() {
console.log(this)
let specialties = this.element[0].querySelectorAll('[data-spec-skill]');
for (let specEl of specialties) {
if (specEl.dataset.specSkill != this.getLabel()) {
specEl.style.display = "none";
specEl.querySelector('input').checked = null;
} else { specEl.style.display = "inline" }
specEl.style.display = "inline"
}
}
/**
-2
View File
@@ -421,7 +421,6 @@ export class VermineCombatant extends Combatant {
constructor(data, context) {
super(data, context);
this.setDefaultAttitude();
console.log(this)
}
setDefaultAttitude() {
@@ -429,7 +428,6 @@ export class VermineCombatant extends Combatant {
}
_getInitiativeFormula() {
console.log(this);
return String(CONFIG.Combat.initiative.formula || game.system.initiative);
}
+22 -13
View File
@@ -34,19 +34,6 @@ Hooks.once('init', async function () {
VermineCombat
};
// Add custom constants for configuration.
CONFIG.VERMINE = VERMINE;
CONFIG.VERMINE.model = game.system.template;
/**
* Set an initiative formula for the system
* @type {String}
*/
CONFIG.Combat.initiative = {
formula: "(@abilities.reflexes.value + @skills.alertness.value)d10cs>=@combatStatus.difficulty",
decimals: 2
};
// Define custom Document classes
CONFIG.Actor.documentClass = VermineActor;
CONFIG.Item.documentClass = VermineItem;
@@ -84,8 +71,30 @@ Hooks.once('init', async function () {
registerHooks(); // register Hooks
registerSettings(); // register Vermine Settings
//CONFIG AFTER INIT documentypes
// Add custom constants for configuration.
CONFIG.VERMINE = VERMINE;
CONFIG.VERMINE.model = {
Actor: game.system.template.Actor,
Item: game.system.template.Item
}
/**
* Set an initiative formula for the system
* @type {String}
*/
CONFIG.Combat.initiative = {
formula: "(@abilities.reflexes.value + @skills.alertness.value)d10cs>=@combatStatus.difficulty",
decimals: 2
};
//afficher le mode de jeu
let mode = game.settings.get('vermine2047', 'game-mode');
if (!mode) { mode = '1'; await game.settings.set('vermine2047', 'game-mode', '1') }
let el = document.createElement('SPAN');
switch (mode) {
case '1':
+2 -1
View File
@@ -5,9 +5,10 @@
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"launch Foundry12": "cd C:/Program Files/Foundry Virtual Tabletop_V12/resources/app && node main.js",
"launch_Foundry12": "node /home/rwan/foundry/foundry_software/FoundryVTT-12.331/resources/app/main.js",
"watch": "gulp watch",
"buildStyle": "gulp buildStyles",
"dev": "npm run launch_Foundry12 & xdg-open http://localhost:30000/",
"pushLDBtoYAML": "node ./tools/pushLDBtoYAML.mjs",
"pullYAMLtoLDB": "node ./tools/pullYAMLtoLDB.mjs"
},
+10 -4
View File
@@ -679,11 +679,17 @@ ul.unstyled li {
}
}
.system-vermine2047 .sheet.actor .preferred {
.system-vermine2047 .sheet.actor .skill-category {
padding: .3rem;
h4,
label {
text-shadow: 0px 0px 5px rgba(0, 128, 0, 0.411)
&.preferred {
h4,
label {
text-shadow: 0px 0px 5px rgba(0, 128, 0, 0.411)
}
box-shadow: 0px 0px 30px rgba(0, 128, 0, 0.306) inset;
}
}
+24 -3
View File
@@ -10,8 +10,15 @@
},
"authors": [
{
"name": "François-Xavier Guillois",
"flags": {}
"name": "François-Xavier Guillois"
},
{
"name": "Rwanoux",
"discord": "rwanoux"
},
{
"name": "Pretre",
"discord": "pretre"
}
],
"esmodules": [
@@ -141,5 +148,19 @@
"manifest": "https://raw.githubusercontent.com/rwanoux/vermine2047/refs/heads/main/system.json",
"download": "https://github.com/rwanoux/vermine2047/archive/refs/heads/main.zip",
"license": "LICENSE.txt",
"changelog": "CHANGELOG.md"
"changelog": "CHANGELOG.md",
"flags": {
"hotReload": {
"extensions": [
"css",
"hbs",
"json"
],
"paths": [
"assets",
"lang",
"templates"
]
}
}
}
+78 -26
View File
@@ -1,22 +1,38 @@
<form class="{{cssClass}} {{actor.type}} flexcol form" autocomplete="off">
<form
class="{{cssClass}} {{actor.type}} flexcol form"
autocomplete="off"
>
<div class="form">
{{log this}}
<aside>
<div class="flexrow" id="edit">
<div
class="flexrow"
id="edit"
>
<span>mode jeu</span>
<input type="checkbox" name="flags.world.editMode"
<input
type="checkbox"
name="flags.world.editMode"
{{#if actor.flags.world.editMode}}
checked
{{/if}} />
{{/if}}
/>
<span>mode edit</span>
</div>
<img class="logo mx-auto"
src="systems/vermine2047/assets/images/ui/logo.webp" width="200"
alt="logo Vermine" />
<img
class="logo mx-auto"
src="systems/vermine2047/assets/images/ui/logo.webp"
width="200"
alt="logo Vermine"
/>
<div class="sidebar" data-group="dashboard" data-tab="sidebar">
<div
class="sidebar"
data-group="dashboard"
data-tab="sidebar"
>
<!--ID -->
{{> "systems/vermine2047/templates/actor/character/character-id.hbs"}}
</div>
@@ -26,29 +42,46 @@
{{> "systems/vermine2047/templates/actor/character/character-header.hbs"}}
<!-- SHEET NAVIGATION -->
<nav class="sheet-navigation sheet-tabs tabs flex-group-center"
data-group="primary">
<a class="item" data-tab="character"
data-tooltip="{{localize "VERMINE.tabs.abilities"}}">
<nav
class="sheet-navigation sheet-tabs tabs flex-group-center"
data-group="primary"
>
<a
class="item"
data-tab="character"
data-tooltip="{{localize "VERMINE.tabs.abilities"}}"
>
<i class="fas fa-address-card"></i>
</a>
<a class="item" data-tab="totem"
data-tooltip="{{localize "VERMINE.tabs.totem"}}">
<a
class="item"
data-tab="totem"
data-tooltip="{{localize "VERMINE.tabs.totem"}}"
>
<i class="fas fa-star"></i>
</a>
<a class="item" data-tab="equipment"
data-tooltip="{{localize "VERMINE.tabs.equipment"}}">
<a
class="item"
data-tab="equipment"
data-tooltip="{{localize "VERMINE.tabs.equipment"}}"
>
<i class="fas fa-hammer"></i>
</a>
<a class="item" data-tab="stories"
data-tooltip="{{localize "VERMINE.tabs.stories"}}">
<a
class="item"
data-tab="stories"
data-tooltip="{{localize "VERMINE.tabs.stories"}}"
>
<i class="fas fa-book-open-reader"></i>
</a>
<a class="item" data-tab="combat"
data-tooltip="{{localize "VERMINE.tabs.combat"}}">
<a
class="item"
data-tab="combat"
data-tooltip="{{localize "VERMINE.tabs.combat"}}"
>
<i class="fas fa-medal"></i>
</a>
@@ -60,30 +93,49 @@
<!-- BODY -->
<section class="sheet-body">
<section class="sheet-content">
<div class="tab character character-pane active" data-group="primary"
data-tab="character">
<div
class="tab character character-pane active"
data-group="primary"
data-tab="character"
>
<!-- Character -->
{{>
"systems/vermine2047/templates/actor/character/character-features.hbs"}}
</div>
<div class="tab totem" data-group="primary" data-tab="totem">
<div
class="tab totem"
data-group="primary"
data-tab="totem"
>
<h3>{{ localize 'IDENTITY.totem'}}</h3>
{{>
"systems/vermine2047/templates/actor/character/character-totem.hbs"}}
</div>
<div class="tab equipment" data-group="primary" data-tab="equipment">
<div
class="tab equipment"
data-group="primary"
data-tab="equipment"
>
<h3>{{ localize 'VERMINE.equipment'}}</h3>
<!-- Rituals -->
{{> "systems/vermine2047/templates/actor/parts/actor-items.hbs"}}
</div>
<div class="tab combat" data-group="primary" data-tab="combat">
<div
class="tab combat"
data-group="primary"
data-tab="combat"
>
<h3>{{ localize 'VERMINE.combat'}}</h3>
<!-- effects -->
{{>
"systems/vermine2047/templates/actor/character/character-combat.hbs"}}
</div>
<div class="tab stories" data-group="primary" data-tab="stories">
<div
class="tab stories"
data-group="primary"
data-tab="stories"
>
<h3>{{ localize 'VERMINE.stories'}}</h3>
{{>
"systems/vermine2047/templates/actor/character/character-stories.hbs"}}
@@ -4,12 +4,11 @@
<div class="flexrow align-center combat-status">
{{#each config.combatStatus as |dif label|}}
<div>
<label for="combatStatus1">{{label}}</label>
<label for="combat-status-{{diff}}">{{label}}</label>
<input
id="combat-status-{{diff}}"
type="radio"
style="width:1rem"
name="system.combatStatus.difficulty"
id="combatStatus1"
value="{{dif}}"
{{#ife @root.system.combatStatus.difficulty dif}}checked
{{/ife}}
@@ -2,84 +2,112 @@
<h3>Caractéristiques</h3>
<div class="grid grid-4col">
{{#each config.abilityCategories as |abilityCategory ackey|}}
<div class="characteristics">
<h4 class="align-center">{{ smarttl "ABILITY_CATEGORIES" ackey }}</h4>
{{#each @root.system.abilities as |ability key|}}
{{#if (eq ability.category ackey) }}
<div class="ability flexrow flex-group-center items-center">
<label for="system.abilities.{{key}}.value"
class="resource-label rollable flexlarge align-left" data-type="ability"
data-label="{{ key }}">{{ smarttl "ABILITIES" key }}</label>
<input type="number" class="hexa" name="system.abilities.{{key}}.value"
value="{{ability.value}}" data-dtype="Number" min="1" max="5" />
</div>
{{/if}}
{{/each}}
<div class="characteristics">
<h4 class="align-center">{{ smarttl "ABILITY_CATEGORIES" ackey }}</h4>
{{#each @root.system.abilities as |ability key|}}
{{#if (eq ability.category ackey) }}
<div class="ability flexrow flex-group-center items-center">
<label
for="system.abilities.{{key}}.value"
class="resource-label rollable flexlarge align-left"
data-type="ability"
data-label="{{ key }}"
>{{ smarttl "ABILITIES" key }}</label>
<input
type="number"
class="hexa"
name="system.abilities.{{key}}.value"
value="{{ability.value}}"
data-dtype="Number"
min="1"
max="5"
/>
</div>
{{/if}}
{{/each}}
</div>
</div>
{{/each}}
</div>
<h3>Compétences</h3>
<div class="grid grid-2col">
{{#each system.skill_categories as |skillCategory sckey|}}
{{#if skillCategory.label}}
<div class="col
{{#if skillCategory.label}}
<div class="col skill-category
{{#ife sckey @root.system.skill_categories.preferred}}
preferred
{{/ife}}">
<h4>{{ smarttl "SKILLS_CATEGORIES" sckey }}
<input type="radio" data-tooltip="domaine de prédilection ?"
name="system.skill_categories.preferred" value="{{sckey}}"
{{#ife sckey @root.system.skill_categories.preferred}}
checked
{{/ife}}>
</h4>
{{#each @root.system.skills as |skill skey|}}
<h4>{{ smarttl "SKILLS_CATEGORIES" sckey }}
<input
type="radio"
data-tooltip="domaine de prédilection ?"
name="system.skill_categories.preferred"
value="{{sckey}}"
{{#ife sckey @root.system.skill_categories.preferred}}
checked
{{/ife}}
>
</h4>
{{#each @root.system.skills as |skill skey|}}
{{#if (eq skill.category sckey) }}
<div class="ability flexrow ">
<label for="system.skills.{{skey}}.value"
class="resource-label rollable flexlarge align-left" data-type="skill"
data-label="{{ skey }}">
{{ smarttl "SKILLS" skey }}
{{#if (eq skill.rarity 1)}}<sup>(I)</sup>{{/if}}
{{#if (eq skill.rarity 2)}}<sup>(II)</sup>{{/if}}
{{#if (eq skill.category sckey) }}
<div class="ability flexrow ">
<label
for="system.skills.{{skey}}.value"
class="resource-label rollable flexlarge align-left"
data-type="skill"
data-label="{{ skey }}"
>
{{ smarttl "SKILLS" skey }}
{{#if (eq skill.rarity 1)}}<sup>(I)</sup>{{/if}}
{{#if (eq skill.rarity 2)}}<sup>(II)</sup>{{/if}}
</label>
<div class="specialties">
{{#ifgt skill.value 1}}
<i class="fas fa-add add-specialty"
data-tooltip="ajout de spécialité"></i>
{{/ifgt}}
{{#each skill.specialties as |spe ind|}}
{{#ife spe.system.skill skey}}
<i class="specialty"
data-tooltip="spécialité utilisable">{{spe.name}}</i>
{{/ife}}
{{/each}}
</div>
<select name="system.skills.{{skey}}.value" class="skill-select">
{{selectOptions @root.config.SkillLevels selected=value
</label>
<div class="specialties">
{{#ifgt skill.value 1}}
<i
class="fas fa-add add-specialty"
data-tooltip="ajout de spécialité"
></i>
{{/ifgt}}
{{#each skill.specialties as |spe ind|}}
{{#ife spe.system.skill skey}}
<i
class="specialty"
data-tooltip="spécialité utilisable"
>{{spe.name}}</i>
{{/ife}}
{{/each}}
</div>
<select
name="system.skills.{{skey}}.value"
class="skill-select"
>
{{selectOptions @root.config.SkillLevels selected=value
localize=true}}
</select>
<span class="hexa">{{skill.value}}</span>
<div class="skill-dots flexrow">
{{#repeat (skillLevel "dicePool" skill.value) 0 "dicepool"}}
<div class="dice-pool-dot"
data-tooltip="{{localize "VERMINE.pool"}}"></div>
{{/repeat}}
{{#repeat (skillLevel "reroll" skill.value) 0 "dicereroll"}}
<div class="dice-reroll-dot"
data-tooltip="{{localize "VERMINE.reroll"}}">X</div>
{{/repeat}}
</select>
<span class="hexa">{{skill.value}}</span>
<div class="skill-dots flexrow">
{{#repeat (skillLevel "dicePool" skill.value) 0 "dicepool"}}
<div
class="dice-pool-dot"
data-tooltip="{{localize "VERMINE.pool"}}"
></div>
{{/repeat}}
{{#repeat (skillLevel "reroll" skill.value) 0 "dicereroll"}}
<div
class="dice-reroll-dot"
data-tooltip="{{localize "VERMINE.reroll"}}"
>X</div>
{{/repeat}}
</div>
</div>
{{/if}}
{{/each}}
</div>
</div>
{{/if}}
{{/each}}
</div>
{{/if}}
{{/each}}
</div>
+223 -106
View File
@@ -1,12 +1,32 @@
<form id="dice-pool-form" class="vermine form"
data-actor-id="{{ speakerId }}">
{{log this}}
<input type="hidden" name="label" id="label" value="{{ label }}" />
<input type="hidden" name="rollType" id="rollType" value="{{ rollType }}" />
<input type="hidden" name="abilityScore" id="abilityScore"
value="{{ abilityScore }}" />
<input type="hidden" name="skillScore" id="skillScore"
value="{{ skillScore }}" />
<form
id="dice-pool-form"
class="vermine form"
data-actor-id="{{ speakerId }}"
>
<input
type="hidden"
name="label"
id="label"
value="{{ label }}"
/>
<input
type="hidden"
name="rollType"
id="rollType"
value="{{ rollType }}"
/>
<input
type="hidden"
name="abilityScore"
id="abilityScore"
value="{{ abilityScore }}"
/>
<input
type="hidden"
name="skillScore"
id="skillScore"
value="{{ skillScore }}"
/>
<div class="dice-pool flexcol">
<h1 class="flexrow row lgb flex-group-center">
<span>Type de jet <strong>{{#if (eq rollType 'skill')}}{{ localize
@@ -18,30 +38,54 @@
<div class="flexrow">
<label class="label">{{localize
'VERMINE.difficulty'}}</label>
<select class="info-value" data-roll="tue"
<select
class="info-value"
data-roll="tue"
data-dtype="String"
type="number" name="difficulty" id="difficulty" min="3" max="10">
type="number"
name="difficulty"
id="difficulty"
min="3"
max="10"
>
{{#select difficulty }}
<option value="{{ diffLevel 'difficulty' 1}}">{{ diffLevel 'label' 1}} -
{{ diffLevel 'difficulty' 1}}</option>
<option value="{{ diffLevel 'difficulty' 2}}">{{ diffLevel 'label' 2}} -
{{ diffLevel 'difficulty' 2}}</option>
<option value="{{ diffLevel 'difficulty' 3}}" selected>{{ diffLevel
<option value="{{ diffLevel 'difficulty' 1}}">{{ diffLevel 'label' 1}} -
{{ diffLevel 'difficulty' 1}}
</option>
<option value="{{ diffLevel 'difficulty' 2}}">{{ diffLevel 'label' 2}} -
{{ diffLevel 'difficulty' 2}}
</option>
<option
value="{{ diffLevel 'difficulty' 3}}"
selected
>{{ diffLevel
'label' 3}} - {{ diffLevel 'difficulty' 3}}</option>
<option value="{{ diffLevel 'difficulty' 4}}">{{ diffLevel 'label' 4}} -
{{ diffLevel 'difficulty' 4}}</option>
<option value="{{ diffLevel 'difficulty' 5}}">{{ diffLevel 'label' 5}} -
{{ diffLevel 'difficulty' 5}}</option>
<option value="{{ diffLevel 'difficulty' 4}}">{{ diffLevel 'label' 4}} -
{{ diffLevel 'difficulty' 4}}
</option>
<option value="{{ diffLevel 'difficulty' 5}}">{{ diffLevel 'label' 5}} -
{{ diffLevel 'difficulty' 5}}
</option>
{{/select}}
</select>
<label for="handicap">Handicap</label>
<select class="info-value" data-roll="tue"
<select
class="info-value"
data-roll="tue"
data-dtype="String"
type="number" name="handicap" id="handicap" min="0" max="2">
type="number"
name="handicap"
id="handicap"
min="0"
max="2"
>
{{#select difficulty }}
<option value="1" selected>aucun</option>
<option value="2">(I)</option>
<option value="3">(II)</option>
<option
value="1"
selected
>aucun</option>
<option value="2">(I)</option>
<option value="3">(II)</option>
{{/select}}
</select>
</div>
@@ -49,28 +93,37 @@
<h2 class="flexcol">
<label class="label">{{localize
'VERMINE.ability'}}</label>
<select class="info-value" data-roll="true"
<select
class="info-value"
data-roll="true"
data-dtype="String"
type="number" name="ability" id="ability" min="1" max="5">
type="number"
name="ability"
id="ability"
min="1"
max="5"
>
<option value="0">-- Choisissez une caractéristique
--</option>
{{#each config.abilityCategories as |abilCategory catkey|}}
<optgroup label="{{ smarttlk 'ABILITY_CATEGORIES' catkey 'name' }}">
{{#each @root.actor.system.abilities as |abil key|}}
{{#ife abil.category catkey}}
<option value="{{abil.value}}"
data-label="{{key}}"
{{#ife @root.rollType "ability"}}
{{#ife @root.labelKey key}}
selected="true"
{{/ife}}
{{/ife}}>{{ smarttlk 'ABILITIES' key 'name'
<optgroup label="{{ smarttlk 'ABILITY_CATEGORIES' catkey 'name' }}">
{{#each @root.actor.system.abilities as |abil key|}}
{{#ife abil.category catkey}}
<option
value="{{abil.value}}"
data-label="{{key}}"
{{#ife @root.rollType "ability"}}
{{#ife @root.labelKey key}}
selected="true"
{{/ife}}
{{/ife}}
>{{ smarttlk 'ABILITIES' key 'name'
}} / {{abil.value}}</option>
{{/ife}}
{{/each}}
{{/ife}}
{{/each}}
</optgroup>
</optgroup>
{{/each}}
</select>
@@ -78,53 +131,71 @@
<h3 class="flexcol">
<label class="label">{{localize
'VERMINE.skill_title'}}</label>
<select class="info-value" data-roll="true"
<select
class="info-value"
data-roll="true"
data-dtype="String"
type="number" name="skill" id="skill" min="1" max="5">
type="number"
name="skill"
id="skill"
min="1"
max="5"
>
<option>-- Choisissez une compétence
--</option>
{{#each config.skillCategories as |skillCategory catkey|}}
<optgroup label="{{ smarttlk 'SKILLS_CATEGORIES' catkey 'name' }}">
{{#each @root.actor.system.skills as |skill key|}}
{{#ife skill.category catkey}}
<option value="{{skill.value}}" data-pool="{{skillLevel "dicePool"
<optgroup label="{{ smarttlk 'SKILLS_CATEGORIES' catkey 'name' }}">
{{#each @root.actor.system.skills as |skill key|}}
{{#ife skill.category catkey}}
<option
value="{{skill.value}}"
data-pool="{{skillLevel "dicePool"
skill.value}}"
data-label="{{key}}"
data-reroll="{{skillLevel "reroll" skill.value}}"
{{#ife @root.rollType "skill"}}
{{#ife @root.labelKey key}}
selected="true"
{{/ife}}
{{/ife}}>
<b>{{ smarttlk 'SKILLS' key 'name' }},</b>
<i>{{skillLevel "label" skill.value}}</i>
</option>
{{/ife}}
{{/each}}
</optgroup>
data-label="{{key}}"
data-reroll="{{skillLevel "reroll" skill.value}}"
{{#ife @root.rollType "skill"}}
{{#ife @root.labelKey key}}
selected="true"
{{/ife}}
{{/ife}}
>
<b>{{ smarttlk 'SKILLS' key 'name' }},</b>
<i>{{skillLevel "label" skill.value}}</i>
</option>
{{/ife}}
{{/each}}
</optgroup>
{{/each}}
</select>
{{log availableSpecialties.length}}
{{#if availableSpecialties.length}}
<label class="label">{{localize 'VERMINE.specialty'}} (+1D)</label>
<div class="flexrow">
<span data-spec-skill="{{spec.system.skill}}">
<i>aucunes</i>
<input type="radio" data-roll="true" name="usingSpecialization"
id="usingSpecialization"
value="aucune">
</span>
{{#each availableSpecialties as |spec ind|}}
<label class="label">{{localize 'VERMINE.specialty'}} (+1D)</label>
<div class="flexrow">
<span data-spec-skill="{{spec.system.skill}}">
<i>aucunes</i>
<input
type="radio"
data-roll="true"
name="usingSpecialization"
id="usingSpecialization"
value="aucune"
>
</span>
{{#each availableSpecialties as |spec ind|}}
<span data-spec-skill="{{spec.system.skill}}">
<i>{{spec.name}}</i>
<input type="radio" data-roll="true" name="usingSpecialization"
id="usingSpecialization"
value="{{spec.name}}" {{#if specialty}}checked{{/if}}>
</span>
{{/each}}
<span data-spec-skill="{{spec.system.skill}}">
<i>{{spec.name}}</i>
<input
type="radio"
data-roll="true"
name="usingSpecialization"
id="usingSpecialization"
value="{{spec.name}}"
{{#if specialty}}checked{{/if}}
>
</span>
{{/each}}
</div>
</div>
{{/if}}
</h3>
</div>
@@ -132,25 +203,44 @@
<div class="grid grid-2col">
<div class="flexrow row smb">
<label class="label">{{localize 'VERMINE.help'}} (+1D)</label>
<input type="checkbox" data-roll="true" name="helped" id="helped"
value="1" {{#if
help}}checked{{/if}}>
<input
type="checkbox"
data-roll="true"
name="helped"
id="helped"
value="1"
{{#if
help}}checked{{/if}}
>
</div>
<div class="flexrow row mdb">
<label class="label">{{localize
'VERMINE.group'}}</label>
<input type="number" data-roll="true" class="numeric-entry"
<input
type="number"
data-roll="true"
class="numeric-entry"
style="text-align: center;"
name="group" id="group" min="0" max="5" value="0">
name="group"
id="group"
min="0"
max="5"
value="0"
>
</div>
<div class="flexrow row mdb">
<label class="label">{{localize
'VERMINE.self_control'}} + <span id="self_control_value">0</span>D
</label>
<input type="range" id="self_control" data-roll="true"
<input
type="range"
id="self_control"
data-roll="true"
name="self_control"
min="0"
max="0" value="0" />
max="0"
value="0"
/>
</div>
<div class="flexcol row mdb">
<label class="label">{{localize 'VERMINE.tooling'}} (+1D)</label>
@@ -158,16 +248,26 @@
<div class="item-list grid grid-4col">
<h3>
<i>Auncun</i>
<input type="radio" data-roll="true" name="usingTools"
id="usingTools" value="0" checked>
<input
type="radio"
data-roll="true"
name="usingTools"
id="usingTools"
value="0"
checked
>
</h3>
{{#each availableItems as |item ind|}}
<span>
<i>{{item.name}}</i>
<input type="radio" data-roll="true" name="usingTools"
id="usingTools"
value="{{item.name}}">
</span>
<span>
<i>{{item.name}}</i>
<input
type="radio"
data-roll="true"
name="usingTools"
id="usingTools"
value="{{item.name}}"
>
</span>
{{/each}}
</div>
</div>
@@ -176,25 +276,42 @@
<label class="label">utiliser des dés totems ?
</label>
{{#ifgt @root.actor.system.adaptation.totems.human.value 0}}
<div class="totem-human">
<h4 for="human-totem">totem humain </h4>
<input type="checkbox" data-roll="true" name="human-totem"
id="human-totem"
value="1">
</div>
<div class="totem-human">
<h4 for="human-totem">totem humain </h4>
<input
type="checkbox"
data-roll="true"
name="human-totem"
id="human-totem"
value="1"
>
</div>
{{/ifgt}}
{{#ifgt @root.actor.system.adaptation.totems.adapted.value 0}}
<div class="totem-adapted">
<h4 for="human-totem">totem adapté </h4>
<input type="checkbox" data-roll="true" name="adapted-totem"
id="adapted-totem"
value="1">
</div>
<div class="totem-adapted">
<h4 for="human-totem">totem adapté </h4>
<input
type="checkbox"
data-roll="true"
name="adapted-totem"
id="adapted-totem"
value="1"
>
</div>
{{/ifgt}}
</div>
</div>
</div>
<p><input type="hidden" name="speakerId" value="{{ speakerId }}" />
<input type="hidden" name="skillLabel" value="{{ skill }}" /></p>
<p><input
type="hidden"
name="speakerId"
value="{{ speakerId }}"
/>
<input
type="hidden"
name="skillLabel"
value="{{ skill }}"
/>
</p>
</form>
+30 -6
View File
@@ -1,20 +1,44 @@
<form class="{{cssClass}}" autocomplete="off">
<form
class="{{cssClass}}"
autocomplete="off"
>
{{log this}}
<header class="sheet-header">
<img class="profile-img" src="{{item.img}}" data-edit="img" title="{{item.name}}"/>
<img
class="profile-img"
src="{{item.img}}"
data-edit="img"
title="{{item.name}}"
/>
<div class="header-fields">
<h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name"/></h1>
<select name="system.skill" class="skill-select">
<h1 class="charname"><input
name="name"
type="text"
value="{{item.name}}"
placeholder="Name"
/></h1>
<select
name="system.skill"
class="skill-select"
>
{{#each @root.config.skillCategories as |skillCategory sckey|}}
{{log skillCategory}}
{{log @root.config.model.Actor.character.skills}}
<optgroup label="{{ smarttlk 'SKILLS_CATEGORIES' sckey 'name' }}">
{{#each @root.config.model.Actor.character.skills as |skill key|}}
{{log sckey}}
{{log skill}}
{{#ife skill.category sckey}}
<option value="{{key}}" {{#ife key @root.item.system.skill}} selected {{/ife}}>{{ smarttlk 'SKILLS' key 'name' }}</option>
<option
value="{{key}}"
{{#ife key @root.item.system.skill}}
selected
{{/ife}}
>{{ smarttlk 'SKILLS' key 'name' }}</option>
{{/ife}}
{{/each}}
</optgroup>
+11
View File
@@ -0,0 +1,11 @@
{
"folders": [
{
"path": "."
},
{
"path": "../noc"
}
],
"settings": {}
}