reprise du projet
This commit is contained in:
@@ -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
File diff suppressed because one or more lines are too long
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
||||
@@ -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
@@ -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
@@ -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"
|
||||
},
|
||||
|
||||
+7
-1
@@ -679,12 +679,18 @@ ul.unstyled li {
|
||||
}
|
||||
}
|
||||
|
||||
.system-vermine2047 .sheet.actor .preferred {
|
||||
.system-vermine2047 .sheet.actor .skill-category {
|
||||
padding: .3rem;
|
||||
|
||||
&.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;
|
||||
}
|
||||
}
|
||||
|
||||
.system-vermine2047 .sheet.actor #edit {
|
||||
|
||||
+24
-3
@@ -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"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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}}
|
||||
|
||||
@@ -7,11 +7,21 @@
|
||||
{{#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" />
|
||||
<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}}
|
||||
@@ -23,24 +33,31 @@
|
||||
<div class="grid grid-2col">
|
||||
{{#each system.skill_categories as |skillCategory sckey|}}
|
||||
{{#if skillCategory.label}}
|
||||
<div class="col
|
||||
<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}}"
|
||||
<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}}>
|
||||
{{/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 }}">
|
||||
<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}}
|
||||
@@ -48,17 +65,24 @@
|
||||
</label>
|
||||
<div class="specialties">
|
||||
{{#ifgt skill.value 1}}
|
||||
<i class="fas fa-add add-specialty"
|
||||
data-tooltip="ajout de spécialité"></i>
|
||||
<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>
|
||||
<i
|
||||
class="specialty"
|
||||
data-tooltip="spécialité utilisable"
|
||||
>{{spe.name}}</i>
|
||||
{{/ife}}
|
||||
{{/each}}
|
||||
</div>
|
||||
<select name="system.skills.{{skey}}.value" class="skill-select">
|
||||
<select
|
||||
name="system.skills.{{skey}}.value"
|
||||
class="skill-select"
|
||||
>
|
||||
{{selectOptions @root.config.SkillLevels selected=value
|
||||
localize=true}}
|
||||
|
||||
@@ -66,12 +90,16 @@
|
||||
<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>
|
||||
<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>
|
||||
<div
|
||||
class="dice-reroll-dot"
|
||||
data-tooltip="{{localize "VERMINE.reroll"}}"
|
||||
>X</div>
|
||||
{{/repeat}}
|
||||
</div>
|
||||
|
||||
|
||||
@@ -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,28 +38,52 @@
|
||||
<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>
|
||||
{{ diffLevel 'difficulty' 1}}
|
||||
</option>
|
||||
<option value="{{ diffLevel 'difficulty' 2}}">{{ diffLevel 'label' 2}} -
|
||||
{{ diffLevel 'difficulty' 2}}</option>
|
||||
<option value="{{ diffLevel 'difficulty' 3}}" selected>{{ diffLevel
|
||||
{{ 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>
|
||||
{{ diffLevel 'difficulty' 4}}
|
||||
</option>
|
||||
<option value="{{ diffLevel 'difficulty' 5}}">{{ diffLevel 'label' 5}} -
|
||||
{{ diffLevel 'difficulty' 5}}</option>
|
||||
{{ 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="1"
|
||||
selected
|
||||
>aucun</option>
|
||||
<option value="2">(I)</option>
|
||||
<option value="3">(II)</option>
|
||||
{{/select}}
|
||||
@@ -49,9 +93,16 @@
|
||||
<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|}}
|
||||
@@ -59,13 +110,15 @@
|
||||
<optgroup label="{{ smarttlk 'ABILITY_CATEGORIES' catkey 'name' }}">
|
||||
{{#each @root.actor.system.abilities as |abil key|}}
|
||||
{{#ife abil.category catkey}}
|
||||
<option value="{{abil.value}}"
|
||||
<option
|
||||
value="{{abil.value}}"
|
||||
data-label="{{key}}"
|
||||
{{#ife @root.rollType "ability"}}
|
||||
{{#ife @root.labelKey key}}
|
||||
selected="true"
|
||||
{{/ife}}
|
||||
{{/ife}}>{{ smarttlk 'ABILITIES' key 'name'
|
||||
{{/ife}}
|
||||
>{{ smarttlk 'ABILITIES' key 'name'
|
||||
}} / {{abil.value}}</option>
|
||||
{{/ife}}
|
||||
{{/each}}
|
||||
@@ -78,16 +131,25 @@
|
||||
<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"
|
||||
<option
|
||||
value="{{skill.value}}"
|
||||
data-pool="{{skillLevel "dicePool"
|
||||
skill.value}}"
|
||||
data-label="{{key}}"
|
||||
data-reroll="{{skillLevel "reroll" skill.value}}"
|
||||
@@ -95,7 +157,8 @@
|
||||
{{#ife @root.labelKey key}}
|
||||
selected="true"
|
||||
{{/ife}}
|
||||
{{/ife}}>
|
||||
{{/ife}}
|
||||
>
|
||||
<b>{{ smarttlk 'SKILLS' key 'name' }},</b>
|
||||
<i>{{skillLevel "label" skill.value}}</i>
|
||||
</option>
|
||||
@@ -104,23 +167,31 @@
|
||||
</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"
|
||||
<input
|
||||
type="radio"
|
||||
data-roll="true"
|
||||
name="usingSpecialization"
|
||||
id="usingSpecialization"
|
||||
value="aucune">
|
||||
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"
|
||||
<input
|
||||
type="radio"
|
||||
data-roll="true"
|
||||
name="usingSpecialization"
|
||||
id="usingSpecialization"
|
||||
value="{{spec.name}}" {{#if specialty}}checked{{/if}}>
|
||||
value="{{spec.name}}"
|
||||
{{#if specialty}}checked{{/if}}
|
||||
>
|
||||
</span>
|
||||
{{/each}}
|
||||
|
||||
@@ -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,15 +248,25 @@
|
||||
<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"
|
||||
<input
|
||||
type="radio"
|
||||
data-roll="true"
|
||||
name="usingTools"
|
||||
id="usingTools"
|
||||
value="{{item.name}}">
|
||||
value="{{item.name}}"
|
||||
>
|
||||
</span>
|
||||
{{/each}}
|
||||
</div>
|
||||
@@ -178,23 +278,40 @@
|
||||
{{#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"
|
||||
<input
|
||||
type="checkbox"
|
||||
data-roll="true"
|
||||
name="human-totem"
|
||||
id="human-totem"
|
||||
value="1">
|
||||
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"
|
||||
<input
|
||||
type="checkbox"
|
||||
data-roll="true"
|
||||
name="adapted-totem"
|
||||
id="adapted-totem"
|
||||
value="1">
|
||||
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>
|
||||
@@ -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>
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
},
|
||||
{
|
||||
"path": "../noc"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
Reference in New Issue
Block a user