plein de truc
This commit is contained in:
@@ -1 +1,10 @@
|
|||||||
# Vermine 2047 System
|
# Vermine 2047 System
|
||||||
|
|
||||||
|
|
||||||
|
##TODO
|
||||||
|
|
||||||
|
- [ ] envoyer les spécialités utilisables au rollDialog
|
||||||
|
- [ ] refacto des template chat de roll
|
||||||
|
- [ ] gérer les dés de totems humains et adapté : couleur différente/double succès
|
||||||
|
- [ ] gérer les rerolls depuis chat(cf noc)
|
||||||
|
- [ ] repasser sur les différents itemTypes et sheets
|
||||||
-458
File diff suppressed because one or more lines are too long
+1
-388
File diff suppressed because one or more lines are too long
+40
@@ -0,0 +1,40 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const gulp = require('gulp');
|
||||||
|
const sass = require('gulp-sass')(require('sass'));
|
||||||
|
var browserSync = require('browser-sync').create();
|
||||||
|
|
||||||
|
function buildStyles() {
|
||||||
|
return gulp.src('./scss/vermine2047.scss')
|
||||||
|
.pipe(sass({ outputStyle: 'compressed' }).on('error', sass.logError))
|
||||||
|
.pipe(gulp.dest('./css'))
|
||||||
|
.pipe(browserSync.stream());
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
function reloadTemplatesHTML() {
|
||||||
|
|
||||||
|
return browserSync.reload("templates/**/*.html")
|
||||||
|
}
|
||||||
|
|
||||||
|
function reloadTemplatesHBS() {
|
||||||
|
|
||||||
|
return browserSync.reload("templates/**/*.hbs")
|
||||||
|
}
|
||||||
|
exports.buildStyles = buildStyles;
|
||||||
|
exports.watch = function () {
|
||||||
|
browserSync.init(
|
||||||
|
{
|
||||||
|
server: false,
|
||||||
|
proxy: {
|
||||||
|
target: "https://localhost:443/",
|
||||||
|
ws: true,
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
gulp.watch("./templates/**/*.html").on('change', reloadTemplatesHTML);
|
||||||
|
gulp.watch("./templates/**/*.hbs").on('change', reloadTemplatesHBS);
|
||||||
|
gulp.watch(['./scss/**/*.scss', './scss/*.scss'], buildStyles);
|
||||||
|
|
||||||
|
};
|
||||||
+394
-284
@@ -2,396 +2,506 @@
|
|||||||
"SETTINGS": {
|
"SETTINGS": {
|
||||||
"world": {
|
"world": {
|
||||||
"game_mode": {
|
"game_mode": {
|
||||||
"name":"Choix du mode de jeu",
|
"name": "Game Mode Selection",
|
||||||
"hint":"À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers."
|
"hint": "Just like some video games offer different modes, Vermine 2047 lets players choose their Game Mode and set the degree of realism, supernatural and dangerosity of the universe themselves."
|
||||||
},
|
},
|
||||||
"first_run": {
|
"first_run": {
|
||||||
"name":"Affichage du tour d'accueil",
|
"name": "First Run Display",
|
||||||
"hint":"Pour aider les débutantEs à bien commencer avec le système Vermine 2047."
|
"hint": "To help beginners get started with the Vermine 2047 system."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"VERMINE.WorldSettings.GameMode.Name":"Choix du mode de jeu",
|
"VERMINE.WorldSettings.GameMode.Name": "Game Mode Selection",
|
||||||
"VERMINE.WorldSettings.GameMode.Hint":"À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers.",
|
"VERMINE.WorldSettings.GameMode.Hint": "Just like some video games offer different modes, Vermine 2047 lets players choose their Game Mode and set the degree of realism, supernatural and dangerosity of the universe themselves.",
|
||||||
"GAME_MODES": {
|
"GAME_MODES": {
|
||||||
"heroic": { "name": "Héroique"},
|
"heroic": {
|
||||||
"epic": { "name": "Epique"},
|
"name": "Heroic"
|
||||||
"legendary": { "name": "Légendaire"}
|
},
|
||||||
|
"epic": {
|
||||||
|
"name": "Epic"
|
||||||
|
},
|
||||||
|
"legendary": {
|
||||||
|
"name": "Legendary"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"ROLLS": {
|
"ROLLS": {
|
||||||
"tool": "Lanceur de dés",
|
"tool": "Dice Roller",
|
||||||
"roll_dice": "Jeter les dés"
|
"roll_dice": "Roll the dice"
|
||||||
},
|
},
|
||||||
"TOURS": {
|
"TOURS": {
|
||||||
"ChatMessage": "<h3>Bienvenue dans Vermine!</h3><p>Si vous utilisez ce système pour la première fois, notre shaman va vous guider vers votre rite d'initiation</p> <button id=\"vermine-tour-chat-button\"> <i class=\"fas fa-person-hiking\"></i> J'y vais mais j'ai peur </button>",
|
"ChatMessage": "<h3>Welcome to Vermine!</h3><p>If you're using this system for the first time, our shaman will guide you to your initiation rite</p> <button id=\"vermine-tour-chat-button\"> <i class=\"fas fa-person-hiking\"></i> I'm going but I'm scared </button>",
|
||||||
"Welcome": {
|
"Welcome": {
|
||||||
"Title": "Bienvenue dans Vermine",
|
"Title": "Welcome to Vermine",
|
||||||
"Description": "Aperçu du système Vermine",
|
"Description": "Overview of the Vermine system",
|
||||||
"WelcomeTitle": "Bienvenue",
|
"WelcomeTitle": "Welcome",
|
||||||
"WelcomeContent": "<p>Bienvenue dans Vermine, survivantE ! Faire le tour de notre zone d'action te permettre de retrouver tes marques, même si c'est ton premier jour parmi nous.</p><p>En haut de la colonne de droite, tu as tout ce que tu as le droit de faire chez nous : parler, voir les autres tronches de ta commu, gérer ton matos et celui de tes potes, étudier les cartes, lire les journaux des clamsés, aller nous chercher de la bouffe à coups de surin. Entrons dans le vif du sujet.</p>",
|
"WelcomeContent": "<p>Welcome to Vermine, survivor! Take a tour of our action zone to find your bearings, even if it's your first day among us.</p><p>At the top of the right column, you have everything you're allowed to do here: talk, see other tronches of your commu, manage your matos and that of your potes, study the maps, read the journals of the clamsés, go get us some food with your surin. Let's get into the thick of it.</p>",
|
||||||
"ActorTabTitle": "Peupler son univers",
|
"ActorTabTitle": "Populate your universe",
|
||||||
"ActorTabContent": "<p>Bien installéE, survivantE ? Tournons pas au tour du pot, si tu veux rester avec nous, va falloir nous dire qui tu es, d'où tu viens, et à qui tu fais confiance. Une fois que t'es prêtE pour ca, clique donc sur le bouton \"Créer un acteur\"</p>",
|
"ActorTabContent": "<p>Well installed, survivor? Let's not turn around the pot, if you want to stay with us, you'll have to tell us who you are, where you come from, and who you trust. Once you're ready for that, click on the \"Create an actor\" button</p>",
|
||||||
"CharacterCreateTitle": "Créer un groupe",
|
"CharacterCreateTitle": "Create a group",
|
||||||
"CharacterCreateContent": "<p>Ce bouton crée une fiche de groupe, parce que c'est par là qu'on commence, dans ce trou ! Ta tronche viendra ensuite, quand tu créeras ta fiche de personnage. Au fur et à mesure que tu progresses, tu voudras peut-être rajouter des infos sur ce que tu vois trainer autour du camp.</p>",
|
"CharacterCreateContent": "<p>This button creates a group file, because that's where we start, in this trou! Your tronche will come later, when you create your character file. As you progress, you might want to add some info on what you see around the camp.</p>",
|
||||||
"CompendiumTitle": "Cartes",
|
"CompendiumTitle": "Maps",
|
||||||
"CompendiumContent": "<p>Vous aurez probablement besoin d'une carte des Terres de Fer ou d'un secteur de la Forge. Vous pouvez créer votre propre scène pour cela, ou vous pouvez utiliser l'une des nôtres. Ouvrez l'un de ces compendiums et faites glisser une carte dans votre zone de scènes (l'onglet qui ressemble à une carte pliée).</p>",
|
"CompendiumContent": "<p>You will probably need a map of the Iron Lands or a sector of the Forge. You can create your own scene for that, or you can use one of ours. Open one of these compendiums and drag a map into your scene tab (the tab that looks like a folded map).</p>",
|
||||||
"OracleToolTitle": "Totem",
|
"OracleToolTitle": "Totem",
|
||||||
"OracleToolContent": "<p>Aucune partie d'Vermine ou Starforged ne serait complète sans oracles. Ce bouton fera apparaître une fenêtre avec tous les oracles du jeu choisi. Les oracles sont également disponibles depuis la fiche de personnage.</p>",
|
"OracleToolContent": "<p>No game of Vermine or Starforged would be complete without oracles. This button will open a window with all the oracles of the chosen game. The oracles are also available from the character sheet.</p>",
|
||||||
"ToursTitle": "Prochaines étapes",
|
"ToursTitle": "Next steps",
|
||||||
"ToursContent": "<p>Tu t'en sors pas si mal ! Moi je vais te laisser là, mais si tu as d'autres questions, tu peux venir me trouver. Si ca concerne la mécanique, inscris-toi dans notre groupe de parole, par là <a href=\"https://discord.gg/FqGHYvXg\">Totem Foundry Discord</a>. Sinon, tu peux rejoindre la place centrale par ici <a href=\"https://discord.gg/qejqmSxr\">Vermine Discord</a></p><p>Enjoy!</p>"
|
"ToursContent": "<p>You're not doing too badly! I'll leave you there, but if you have any questions, you can come find me. If it's about the mechanics, sign up for our group of speech, over there <a href=\"https://discord.gg/FqGHYvXg\">Totem Foundry Discord</a>. Otherwise, you can join the central place over here <a href=\"https://discord.gg/qejqmSxr\">Vermine Discord</a></p><p>Enjoy!</p>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DIFFICULTY_LEVELS": {
|
"DIFFICULTY_LEVELS": {
|
||||||
"obvious": "Evidente",
|
"obvious": "Obvious",
|
||||||
"easy": "Facile",
|
"easy": "Easy",
|
||||||
"hard": "Difficile",
|
"hard": "Hard",
|
||||||
"very_hard": "Très difficile",
|
"very_hard": "Very hard",
|
||||||
"impossible": "Impossible"
|
"impossible": "Impossible"
|
||||||
},
|
},
|
||||||
"ATTITUDES": {
|
"ATTITUDES": {
|
||||||
"offensive": { "name": "Offensif"},
|
"offensive": {
|
||||||
"active": { "name": "Actif"},
|
"name": "Offensive"
|
||||||
"passive": { "name": "Passif"}
|
},
|
||||||
|
"active": {
|
||||||
|
"name": "Active"
|
||||||
|
},
|
||||||
|
"passive": {
|
||||||
|
"name": "Passive"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"AGE_TYPES": {
|
"AGE_TYPES": {
|
||||||
"young": "Jeune",
|
"young": "Young",
|
||||||
"adult": "Adulte",
|
"adult": "Adult",
|
||||||
"old": "Vieux"
|
"old": "Old"
|
||||||
},
|
},
|
||||||
"IDENTITY": {
|
"IDENTITY": {
|
||||||
"name": "Nom",
|
"name": "Name",
|
||||||
"height": "Taille",
|
"height": "Height",
|
||||||
"weight": "Poids",
|
"weight": "Weight",
|
||||||
"totem": "Totem",
|
"totem": "Totem",
|
||||||
"age": "Age",
|
"age": "Age",
|
||||||
"gender": "Sexe",
|
"gender": "Gender",
|
||||||
"profile": "Profil",
|
"profile": "Profile",
|
||||||
"origin": "Origine",
|
"origin": "Origin",
|
||||||
"theme": "Concept",
|
"theme": "Concept",
|
||||||
"instincts": "Instincts",
|
"instincts": "Instincts",
|
||||||
"prohibits": "Interdits",
|
"prohibits": "Prohibits",
|
||||||
"objectives": "Objectifs",
|
"objectives": "Objectives",
|
||||||
"relations": "Relations",
|
"relations": "Relations",
|
||||||
"morale":"Moral",
|
"morale": "Morale",
|
||||||
"morale_level": "Niveau de moral",
|
"morale_level": "Morale level",
|
||||||
"notes": "Notes"
|
"notes": "Notes"
|
||||||
},
|
},
|
||||||
"ADVERSITY": {
|
"ADVERSITY": {
|
||||||
"threat": "Menace",
|
"threat": "Threat",
|
||||||
"experience": "Expérience",
|
"experience": "Experience",
|
||||||
"role": "Rôle",
|
"role": "Role",
|
||||||
"attack": "Attaque",
|
"attack": "Attack",
|
||||||
"damage": "Dommages",
|
"damage": "Damage",
|
||||||
"weapon": "Arme",
|
"weapon": "Weapon",
|
||||||
"vigor": "Vigueur",
|
"vigor": "Vigor",
|
||||||
"wounds": "Blessures",
|
"wounds": "Wounds",
|
||||||
"action": "Action",
|
"action": "Action",
|
||||||
"specialties": "Spécialité",
|
"specialties": "Specialty",
|
||||||
"rerolls": "Relances",
|
"rerolls": "Rerolls",
|
||||||
"contact": "Contact",
|
"contact": "Contact",
|
||||||
"reaction": "Réaction",
|
"reaction": "Reaction",
|
||||||
"pools":"Réserves",
|
"pools": "Reserves",
|
||||||
"gear": "Matériel",
|
"gear": "Gear",
|
||||||
"protection": "Protection",
|
"protection": "Protection",
|
||||||
"skills": "Compétences",
|
"skills": "Skills",
|
||||||
"pattern": "Gabarit",
|
"pattern": "Pattern",
|
||||||
"size": "Taille",
|
"size": "Size",
|
||||||
"pack": "Groupe"
|
"pack": "Group"
|
||||||
},
|
},
|
||||||
|
|
||||||
"VERMINE": {
|
"VERMINE": {
|
||||||
"name": "Vermine",
|
"name": "Vermine",
|
||||||
"stats": "Statistiques",
|
"stats": "Statistics",
|
||||||
"level": "Niveau",
|
"level": "Level",
|
||||||
"experience": "Expérience",
|
"experience": "Experience",
|
||||||
"reputation": "Réputation",
|
"reputation": "Reputation",
|
||||||
"pool": "Réserve",
|
"pool": "Reserve",
|
||||||
"pools": "Réserves",
|
"pools": "Reserves",
|
||||||
"self_control": "Sang-Froid",
|
"self_control": "Self-control",
|
||||||
"effort": "Effort",
|
"effort": "Effort",
|
||||||
"group": "Groupe",
|
"group": "Group",
|
||||||
"abilities":"Caractéristiques",
|
"abilities": "Characteristics",
|
||||||
"ability":"Caractéristique",
|
"ability": "Characteristic",
|
||||||
"skills_title":"Compétences",
|
"skills_title": "Skills",
|
||||||
"skill_title":"Compétence",
|
"skill_title": "Skill",
|
||||||
"skill_mastery":"Maîtrise",
|
"skill_mastery": "Mastery",
|
||||||
"bonus":"Bonus",
|
"bonus": "Bonus",
|
||||||
"penalty":"Malus",
|
"penalty": "Penalty",
|
||||||
"reroll":"Relance",
|
"reroll": "Reroll",
|
||||||
"equipment":"Equipement",
|
"equipment": "Equipment",
|
||||||
"specialty":"Spécialité",
|
"specialty": "Specialty",
|
||||||
"technique":"Technique",
|
"technique": "Technique",
|
||||||
"techniques":"Techniques",
|
"techniques": "Techniques",
|
||||||
"difficulty":"Difficulté",
|
"difficulty": "Difficulty",
|
||||||
"help":"Entraide",
|
"help": "Help",
|
||||||
"tooling":"Equipement",
|
"tooling": "Equipment",
|
||||||
"quantity": "Quantité",
|
"quantity": "Quantity",
|
||||||
"qty": "Qté",
|
"qty": "Qty",
|
||||||
"weight": "Poids",
|
"weight": "Weight",
|
||||||
"dmg": "Dmg",
|
"dmg": "Dmg",
|
||||||
"damage": "Dommage",
|
"damage": "Damage",
|
||||||
"damages": "Dommages",
|
"damages": "Damages",
|
||||||
"range": "Portée",
|
"range": "Range",
|
||||||
"ranges": "Portées",
|
"ranges": "Ranges",
|
||||||
"mobility": "Mobilité",
|
"mobility": "Mobility",
|
||||||
"rarity": "Rareté",
|
"rarity": "Rarity",
|
||||||
"rarity_sm": "Rar.",
|
"rarity_sm": "Rar.",
|
||||||
"reliability": "Fiabilité",
|
"reliability": "Reliability",
|
||||||
"reliability_sm": "Fiab.",
|
"reliability_sm": "Fiab.",
|
||||||
"wounds":{
|
"wounds": {
|
||||||
"name":"Blessures",
|
"name": "Wounds",
|
||||||
"threshold": "Seuil",
|
"threshold": "Threshold",
|
||||||
"light":"Légère",
|
"light": "Light",
|
||||||
"heavy": "Grave",
|
"heavy": "Heavy",
|
||||||
"deadly": "Mortelle",
|
"deadly": "Deadly",
|
||||||
"light_wounds":"Blessure légère",
|
"light_wounds": "Light wounds",
|
||||||
"heavy_wounds":"Blessure grave",
|
"heavy_wounds": "Heavy wounds",
|
||||||
"deadly_wounds":"Blessure mortelle"
|
"deadly_wounds": "Deadly wounds"
|
||||||
},
|
},
|
||||||
"ammo": "Munitions",
|
"ammo": "Ammo",
|
||||||
"ammo_sm": "Mun",
|
"ammo_sm": "Mun",
|
||||||
"trait": "Trait",
|
"trait": "Trait",
|
||||||
"traits": "Traits",
|
"traits": "Traits",
|
||||||
"clew": "Indice",
|
"clew": "Clue",
|
||||||
"combat": "Combat",
|
"combat": "Combat",
|
||||||
"stories": "Histoires",
|
"stories": "Stories",
|
||||||
"gear": "Matériel",
|
"gear": "Gear",
|
||||||
"information": "Informations",
|
"information": "Information",
|
||||||
"boost": "boost",
|
"boost": "Boost",
|
||||||
"group_abilities": "Capacités de groupe",
|
"group_abilities": "Group abilities",
|
||||||
"totem_abilities": "Capacités de totem",
|
"totem_abilities": "Totem abilities",
|
||||||
"type_group": "Groupe",
|
"type_group": "Group",
|
||||||
"type_character": "Personnage",
|
"type_character": "Character",
|
||||||
"type_npc": "PNJ",
|
"type_npc": "NPC",
|
||||||
"type_creature": "Créature",
|
"type_creature": "Creature",
|
||||||
"type": "Type",
|
"type": "Type",
|
||||||
"group_members": "Membres",
|
"group_members": "Members",
|
||||||
"encounters": "Rencontres",
|
"encounters": "Encounters",
|
||||||
"road": "La Route",
|
"road": "The Road",
|
||||||
"totem_picker": "Sélecteur de totem",
|
"totem_picker": "Totem picker",
|
||||||
"actor_picker": "Sélecteur de personnage"
|
"actor_picker": "Actor picker"
|
||||||
},
|
},
|
||||||
"UI": {
|
"UI": {
|
||||||
"add": "Ajouter",
|
"add": "Add",
|
||||||
"source":"Source",
|
"source": "Source",
|
||||||
"duration":"Durée",
|
"duration": "Duration",
|
||||||
"effect_toggle":"Basculer un effet",
|
"effect_toggle": "Toggle effect",
|
||||||
"effect_edit":"Modifier un effet",
|
"effect_edit": "Edit effect",
|
||||||
"effect_delete":"Détruire un effet",
|
"effect_delete": "Delete effect",
|
||||||
"effect_create":"Créer un effet",
|
"effect_create": "Create effect",
|
||||||
"effects": {
|
"effects": {
|
||||||
"name": "Effets",
|
"name": "Effects",
|
||||||
"temporary": "Effets temporaires",
|
"temporary": "Temporary effects",
|
||||||
"passive": "Effets passifs",
|
"passive": "Passive effects",
|
||||||
"inactive": "Effets inactifs"
|
"inactive": "Inactive effects"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ITEMS": {
|
"ITEMS": {
|
||||||
"defense": "Protection",
|
"defense": "Protection",
|
||||||
"defenses": "Protections",
|
"defenses": "Protections",
|
||||||
"new_defense": "Nouvelle protection",
|
"new_defense": "New protection",
|
||||||
"weapon": "Arme",
|
"weapon": "Weapon",
|
||||||
"new_weapon": "Nouvelle arme",
|
"new_weapon": "New weapon",
|
||||||
"weapons": "Armes",
|
"weapons": "Weapons",
|
||||||
"new_background": "Nouvel historique",
|
"new_background": "New background",
|
||||||
"backgrounds": "Historiques",
|
"backgrounds": "Backgrounds",
|
||||||
"new_trauma": "Nouveau traumatisme",
|
"new_trauma": "New trauma",
|
||||||
"traumas": "Traumatismes",
|
"traumas": "Traumas",
|
||||||
"rumor": "Rumeur",
|
"rumor": "Rumor",
|
||||||
"new_rumor": "Nouvelle rumeur",
|
"new_rumor": "New rumor",
|
||||||
"rumors": "Rumeurs",
|
"rumors": "Rumors",
|
||||||
"ability": "Capacité",
|
"ability": "Ability",
|
||||||
"new_ability": "Nouvelle capacité",
|
"new_ability": "New ability",
|
||||||
"abilities": "Capacités",
|
"abilities": "Abilities",
|
||||||
"specialties": "Spécialités",
|
"specialties": "Specialties",
|
||||||
"new_specialty": "Nouvelle spécialité",
|
"new_specialty": "New specialty",
|
||||||
"evolution": "Adaptation",
|
"evolution": "Adaptation",
|
||||||
"new_evolution": "Nouvelle adaptation",
|
"new_evolution": "New adaptation",
|
||||||
"evolutions": "Adaptations",
|
"evolutions": "Adaptations",
|
||||||
"new_vehicle": "Nouveau véhicule",
|
"new_vehicle": "New vehicle",
|
||||||
"vehicles": "Véhicules",
|
"vehicles": "Vehicles",
|
||||||
"new_objective": "Nouvel objectif",
|
"new_objective": "New objective",
|
||||||
"learning": "Apprentissage",
|
"learning": "Learning",
|
||||||
"cost": "Coût",
|
"cost": "Cost",
|
||||||
"rituel": "Rituel",
|
"rituel": "Ritual",
|
||||||
"transe": "Transe",
|
"transe": "Trance",
|
||||||
"effects": "Effets",
|
"effects": "Effects",
|
||||||
"details": "Détails"
|
"details": "Details"
|
||||||
},
|
},
|
||||||
"ABILITIES": {
|
"ABILITIES": {
|
||||||
"vigor": { "name": "Vigueur"},
|
"vigor": {
|
||||||
"health": { "name": "Santé"},
|
"name": "Vigor"
|
||||||
"precision":{ "name": "Précision"},
|
},
|
||||||
"reflexes":{ "name": "Réflexes"},
|
"health": {
|
||||||
"knowledge":{ "name": "Savoir"},
|
"name": "Health"
|
||||||
"perception":{ "name": "Perception"},
|
},
|
||||||
"will":{ "name": "Volonté"},
|
"precision": {
|
||||||
"empathy":{ "name": "Empathie"}
|
"name": "Precision"
|
||||||
|
},
|
||||||
|
"reflexes": {
|
||||||
|
"name": "Reflexes"
|
||||||
|
},
|
||||||
|
"knowledge": {
|
||||||
|
"name": "Knowledge"
|
||||||
|
},
|
||||||
|
"perception": {
|
||||||
|
"name": "Perception"
|
||||||
|
},
|
||||||
|
"will": {
|
||||||
|
"name": "Will"
|
||||||
|
},
|
||||||
|
"empathy": {
|
||||||
|
"name": "Empathy"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"SKILL_LEVELS": {
|
"SKILL_LEVELS": {
|
||||||
"beginner": "Débutant",
|
"incompetent": "Incompetent",
|
||||||
"proficient": "Confirmé",
|
"beginner": "Beginner",
|
||||||
"expert":"Expert",
|
"proficient": "Proficient",
|
||||||
"master":"Maître",
|
"expert": "Expert",
|
||||||
"legend":"Légende"
|
"master": "Master",
|
||||||
|
"legend": "Legend"
|
||||||
},
|
},
|
||||||
"THREAT_LEVELS": {
|
"THREAT_LEVELS": {
|
||||||
"minor": "Mineure",
|
"minor": "Minor",
|
||||||
"serious": "Sérieuse",
|
"serious": "Serious",
|
||||||
"major":"Majeure",
|
"major": "Major",
|
||||||
"deadly":"Mortelle"
|
"deadly": "Deadly"
|
||||||
},
|
},
|
||||||
"ROLE_LEVELS": {
|
"ROLE_LEVELS": {
|
||||||
"minor": "Mineur",
|
"minor": "Minor",
|
||||||
"secondary": "Secondaire",
|
"secondary": "Secondary",
|
||||||
"important":"Important",
|
"important": "Important",
|
||||||
"major":"Majeur"
|
"major": "Major"
|
||||||
},
|
},
|
||||||
"PATTERN_LEVELS": {
|
"PATTERN_LEVELS": {
|
||||||
"insect": "Insecte",
|
"insect": "Insect",
|
||||||
"rat": "Rat",
|
"rat": "Rat",
|
||||||
"dog":"Chien",
|
"dog": "Dog",
|
||||||
"bear":"Ours"
|
"bear": "Bear"
|
||||||
},
|
},
|
||||||
"TOTEMS": {
|
"TOTEMS": {
|
||||||
"human": {
|
"human": {
|
||||||
"name": "L'Humain",
|
"name": "Human",
|
||||||
"number":1,
|
"number": 1,
|
||||||
"description":"",
|
"description": "",
|
||||||
"instincts" : "",
|
"instincts": "",
|
||||||
"bans" : "",
|
"bans": "",
|
||||||
"opposite": "adapted"
|
"opposite": "adapted"
|
||||||
},
|
},
|
||||||
"predator": {
|
"predator": {
|
||||||
"name": "Le prédateur",
|
"name": "Predator",
|
||||||
"number":2,
|
"number": 2,
|
||||||
"description":"Totem emblématique, le Prédateur a toujours été l’un des plus répandus dans le règne animal, et il reste de loin celui qui influence le plus grand nombre d’espèces aujourd’hui. On l’observe aussi bien chez les mammifères que chez de minuscules insectes, en meute comme en solitaire. Il inspire les comportements de traque, de chasse et d’affrontement essentiels à l’alimentation, mais il ne prône qu’une violence justifiée, nécessaire et vitale. Selon les peuples et les cultures, il a longtemps été symbolisé par le lion, l’aigle ou le chasseur, et ses valeurs guerrières ont toujours revêtu une certaine forme de noblesse. Un prédateur ne tue pas : il triomphe. Un prédateur ne fuit pas : il perd, ou il meurt",
|
"description": "Totem emblematic, the Predator has always been one of the most widespread in the animal kingdom, and it remains by far the one that influences the greatest number of species today. It is observed as well in mammals as in tiny insects, in packs as in solitaries. It inspires hunting, chasing and fighting behaviors essential to feeding, but it only preaches a justified, necessary and vital violence. Depending on peoples and cultures, it has long been symbolized by the lion, the eagle or the hunter, and its warrior values have always taken a certain form of nobility. A predator does not kill: it triumphs. A predator does not flee: it loses, or it dies",
|
||||||
"instincts" : "Triompher, relever un défi, prendre l’initiative, atteindre un objectif.",
|
"instincts": "Triumph, overcome a challenge, take the initiative, achieve a goal.",
|
||||||
"bans" : "Fuir, abandonner, renoncer,faire preuve de lâcheté.",
|
"bans": "Flee, abandon, renounce, show cowardice.",
|
||||||
"behaviour" : "Déterminé, implacable,courageux, dominant.",
|
"behaviour": "Determined, implacable,courageous, dominant.",
|
||||||
"opposite": "scavenger"
|
"opposite": "scavenger"
|
||||||
},
|
},
|
||||||
"scavenger": {
|
"scavenger": {
|
||||||
"name": "Le Charognard",
|
"name": "Scavenger",
|
||||||
"number":3,
|
"number": 3,
|
||||||
"description":"Dans un écosystème dominé par la loi du plus fort, certains ont pris le parti d’attendre que la mort fasse son œuvre, quitte à se contenter des restes. Poissons de fond, plantes carnivores, pillards, insectes nécrophages, vautours ou meutes de loups trop faibles pour s’attaquer seuls aux proies de grande taille : le Charognard inspire toutes les espèces qui ont fait de la patience une de leurs rares vertus, et misent sur la faiblesse, la blessure, la fatigue ou l’opportunité pour se nourrir. Il règne sur les régions hostiles où le soleil, la chaleur ou le froid font son jeu, et se développe souvent dans l’ombre du Prédateur, avec qui il entretient une relation quasi symbiotique",
|
"description": "In an ecosystem dominated by the law of the strongest, some have taken the party to wait for death to do its work, even if it means settling for the remains. Fish from the bottom, carnivorous plants, scavengers, necrophagous insects, vultures or packs of wolves too weak to attack the prey alone: the Scavenger inspires all the species that have made patience one of their rare virtues, and bet on weakness, injury, fatigue or opportunity to feed. It reigns over hostile regions where the sun, the heat or the cold make its game, and often develops in the shadow of the Predator, with which it maintains a quasi symbiotic relationship",
|
||||||
"instincts" : "Achever, saboter, affaiblir, s’en prendre au plus faible.",
|
"instincts": "Finish, sabotage, weaken, attack the weakest.",
|
||||||
"bans" : "Affronter, s’exposer, agir de façon compulsive, s’apitoyer.",
|
"bans": "Face, expose, act compulsively, pity.",
|
||||||
"behaviour" : "Sournois, calculateur, impitoyable",
|
"behaviour": "Sly, calculating, pitiless",
|
||||||
"opposite": "predator"
|
"opposite": "predator"
|
||||||
},
|
},
|
||||||
"symbiote": {
|
"symbiote": {
|
||||||
"name": "Le Symbiote",
|
"name": "Symbiote",
|
||||||
"number":4,
|
"number": 4,
|
||||||
"description":"Symbole d’entraide, d’équilibre et d’harmonie, le Symbiote se définit par la relation d’échange et de réciprocité où chaque partie profite de ce que l’autre apporte, quels que soient ses besoins ou ses motivations. Très courante dans le règne végétal, où de nombreuses fleurs et plantes l’ont instaurée avec les pollinisateurs, cette relation de symbiose s’observe également chez les insectes, les mammifères et les êtres humains. Elle peut être ponctuelle, issue des liens du sang, liée à un territoire ou un projet commun, et rien ne l’empêche d’être motivée par le profit ou l’intérêt, tant qu’elle est réciproque – ce qui distingue le Symbiote du Parasite.",
|
"description": "Symbol of mutual aid, balance and harmony, the Symbiote is defined by the relationship of exchange and reciprocity where each party benefits from what the other brings, whatever its needs or motivations. Very common in the plant kingdom, where many flowers and plants have established it with pollinators, this symbiotic relationship is also observed in insects, mammals and human beings. It can be punctual, stemming from blood ties, linked to a territory or a common project, and nothing prevents it from being motivated by profit or interest, as long as it is reciprocal – which distinguishes the Symbiote from the Parasite.",
|
||||||
"instincts" : "Partager, transmettre, équilibrer, trouver un compromis",
|
"instincts": "Share, transmit, balance, find a compromise",
|
||||||
"bans" : "Exploiter, abuser, profiter de la faiblesse, mettre en danger",
|
"bans": "Exploit, abuse, profit from weakness, put in danger",
|
||||||
"behaviour" : "Bienveillant, responsable, diplomate, modéré.",
|
"behaviour": "Well-intentioned, responsible, diplomatic, moderate.",
|
||||||
"opposite": "parasite"
|
"opposite": "parasite"
|
||||||
},
|
},
|
||||||
"parasite": {
|
"parasite": {
|
||||||
"name": "Le Parasite",
|
"name": "The Parasite",
|
||||||
"number":5,
|
"number": 5,
|
||||||
"description":"Totem des infections, des basses œuvres et des épidémies, le Parasite a toujours joué un rôle funeste dans le destin de l’humanité, jusqu’à en devenir le fléau. Symbolisé par les moustiques, il s’observe également chez de nombreux champignons, végétaux et insectes incapables de survivre, de se nourrir ou de se reproduire sans un hôte, et toujours à ses dépens. Le Parasite exploite, profite, abuse sans états d’âme, mu par la seule démarche de prendre ce qu’un autre possède et dont il a besoin. Avec le Prédateur, c’est l’un des Totems les plus présents et les plus redoutés, tant les comportements qu’il inspire peuvent ruiner tout espoir de survie.",
|
"description": "Totem of infections, low works and epidemics, the Parasite has always played a sinister role in the destiny of humanity, until becoming its scourge. Symbolized by mosquitoes, it is also observed in many fungi, plants and insects unable to survive, feed or reproduce without a host, and always at its expense. The Parasite exploits, profits, abuses without remorse, driven by the sole approach of taking what another possesses and needs. Along with the Predator, it is one of the most present and most feared Totems, as the behaviors it inspires can ruin all hope of survival.",
|
||||||
"instincts" : "Profiter, manipuler, voler, exploiter.",
|
"instincts": "Profit, manipulate, steal, exploit.",
|
||||||
"bans" : "Partager, contribuer, tenir une promesse, prendre par la force",
|
"bans": "Share, contribute, keep a promise, take by force",
|
||||||
"behaviour" : "Manipulateur, menteur, égoïste, profiteur",
|
"behaviour": "Manipulator, liar, selfish, profiteer",
|
||||||
"opposite": "symbiote"
|
"opposite": "symbiote"
|
||||||
},
|
},
|
||||||
"builder": {
|
"builder": {
|
||||||
"name": "Le Bâtisseur",
|
"name": "The Builder",
|
||||||
"number":6,
|
"number": 6,
|
||||||
"description":"Souvent confondu avec la Ruche en raison des constructions géantes typiques de certaines espèces sociales, le Bâtisseur n’est pas le Totem de la communauté, mais celui de la fondation. À l’image des termites, des castors, de la plupart des oiseaux ou de certaines espèces d’araignées, il se caractérise par l’acte de construction, de création ou de modification, et s’observe aussi bien chez des groupes que chez des individus. Avec la Ruche, le Symbiote et la Horde, c’est l’un des Totems les plus courants chez les communautés humaines, dont il inspire les édifices, les inventions et les réparations.",
|
"description": "Often confused with the Hive due to the giant constructions typical of certain social species, the Builder is not the Totem of the community, but that of the foundation. In the image of termites, beavers, most birds or certain species of spiders, it is characterized by the act of construction, creation or modification, and is observed as well in groups as in individuals. Along with the Hive, the Symbiote and the Horde, it is one of the most common Totems among human communities, which it inspires with buildings, inventions and repairs.",
|
||||||
"instincts" : "Fonder, créer, s’installer durablement, nouer des liens.",
|
"instincts": "Found, create, settle permanently, forge links.",
|
||||||
"bans" : "Détruire, saboter, quitter une communauté, provoquer le chaos",
|
"bans": "Destroy, sabotage, leave a community, provoke chaos",
|
||||||
"behaviour" : "Réfléchi, organisé, pragmatique, constant.",
|
"behaviour": "Reflective, organized, pragmatic, constant.",
|
||||||
"opposite": "horde"
|
"opposite": "horde"
|
||||||
},
|
},
|
||||||
"horde": {
|
"horde": {
|
||||||
"name": "La Horde",
|
"name": "The Horde",
|
||||||
"number":7,
|
"number": 7,
|
||||||
"description":"Fléau des cultures depuis la nuit des temps, la Horde est à l’image des nuées de criquets, des meutes de carnivores ou des tribus de nomades qui la représentent : imprévisible, impitoyable et sans visage. Au-delà de ses aspects collectifs, ce Totem redoutable se caractérise surtout par sa violence et sa méthode d’action. Là où le Prédateur tue, la Horde brûle, pille, dévaste pour parvenir à ses fins sans le moindre état d’âme. Elle inspire ceux qui prennent par la force, qui détruisent, qui ravagent et qui refusent toute forme de compromis, quelles que soient leur démarche ou leurs motivations.",
|
"description": "Scourge of cultures since time immemorial, the Horde is in the image of swarms of locusts, packs of carnivores or nomadic tribes that represent it: unpredictable, pitiless and faceless. Beyond its collective aspects, this formidable Totem is characterized above all by its violence and method of action. Where the Predator kills, the Horde burns, plunders, devastates to achieve its ends without the slightest remorse. It inspires those who take by force, who destroy, who ravage and who refuse any form of compromise, whatever their approach or motivations.",
|
||||||
"instincts" : "Piller, détruire, prendre par la force, miser sur le nombre",
|
"instincts": "Pillage, destroy, take by force, rely on numbers",
|
||||||
"bans" : "Négocier, épargner, faire des réserves, planifier à long terme.",
|
"bans": "Negotiate, spare, make reserves, plan in the long term.",
|
||||||
"behaviour" : "Violent, imprévisible, destructeur, radical.",
|
"behaviour": "Violent, unpredictable, destructive, radical.",
|
||||||
"opposite": "builder"
|
"opposite": "builder"
|
||||||
},
|
},
|
||||||
"hive": {
|
"hive": {
|
||||||
"name": "La Ruche",
|
"name": "The Hive",
|
||||||
"number":8,
|
"number": 8,
|
||||||
"description":"Fourmis, abeilles, termites, factions aux règles strictes : la Ruche est le Totem des créatures sociales et des communautés humaines par excellence. Des cellules familiales aux multinationales, des meutes organisées aux super-colonies de plusieurs milliards d’individus, la Ruche est caractérisée par l’organisation, la hiérarchie, le dévouement et la conscience aigüe du rôle que chacun doit jouer dans l’intérêt commun, plus que par la notion de communauté elle-même. Elle s’appuie bien souvent sur un ensemble de règles, des tâches attribuées, des rôles identifiés – une philosophie qui proscrit tout individualisme et condamne toute désobéissance.",
|
"description": "Ants, bees, termites, factions with strict rules: the Hive is the Totem of social creatures and human communities par excellence. From family cells to multinationals, from organized packs to super-colonies of several billion individuals, the Hive is characterized by organization, hierarchy, dedication and a keen awareness of the role that each must play in the common interest, more than by the notion of community itself. It often relies on a set of rules, assigned tasks, identified roles - a philosophy that proscribes individualism and condemns disobedience.",
|
||||||
"instincts" : "Organiser, œuvrer pour la communauté, respecter la hiérarchie, privilégier l’intérêt collectif",
|
"instincts": "Organize, work for the community, respect the hierarchy, prioritize the collective interest",
|
||||||
"bans" : "trahir, désobéir, mettre sa communauté en danger, faire preuve d’individualisme.",
|
"bans": "Betray, disobey, put one's community in danger, show individualism.",
|
||||||
"behaviour" : "Méthodique, autoritaire, consciencieux, rigide",
|
"behaviour": "Methodical, authoritarian, conscientious, rigid",
|
||||||
"opposite": "loner"
|
"opposite": "loner"
|
||||||
},
|
},
|
||||||
"loner": {
|
"loner": {
|
||||||
"name": "Le solitaire",
|
"name": "The Loner",
|
||||||
"number":9,
|
"number": 9,
|
||||||
"description":"Survivre, quoi qu’il en coûte. Sans cruauté, sans états d’âme, mais à tout prix. À l’inverse de la Ruche qui loue le sacrifice s’il est accompli dans l’intérêt du groupe, le Solitaire incarne le plus fondamental des réflexes : celui de la survie. Ni individualiste, ni franchement égoïste, il fait seulement passer ses propres intérêts, ses urgences et ses nécessités avant tout, quitte à trahir, à décevoir, à quitter ou à tuer. Rien n’empêche un Solitaire de trouver une place durable dans un groupe, d’y jouer un rôle précis ou même de suivre des règles établies, tant qu’elles ne heurtent pas ses propres convictions et qu’elles ne mettent pas en péril son bien le plus précieux : sa vie.",
|
"description": "Survive, whatever the cost. Without cruelty, without remorse, but at all costs. Unlike the Hive, which praises sacrifice if it is accomplished in the interest of the group, the Loner embodies the most fundamental of reflexes: that of survival. Neither individualistic nor frankly selfish, it simply puts its own interests, urgencies and necessities first, even if it means betraying, disappointing, leaving or killing. Nothing prevents a Loner from finding a lasting place in a group, playing a precise role or even following established rules, as long as they do not conflict with its own convictions and do not put its most precious asset in danger: its life.",
|
||||||
"instincts" : "Survivre, anticiper, s’adapter, faire passer sa vie avant tout",
|
"instincts": "Survive, anticipate, adapt, put one's life first",
|
||||||
"bans" : "Se sacrifier, risquer sa vie, dépendre de quelqu’un, se résigner.",
|
"bans": "Sacrifice oneself, risk one's life, depend on someone, resign.",
|
||||||
"behaviour" : "Indépendant, lucide, autonome, réactif.",
|
"behaviour": "Independent, lucid, autonomous, reactive.",
|
||||||
"opposite": "hive"
|
"opposite": "hive"
|
||||||
},
|
},
|
||||||
"adapted": {
|
"adapted": {
|
||||||
"name": "L'adapté",
|
"name": "The Adapted",
|
||||||
"number":10,
|
"number": 10,
|
||||||
"description":"Évoluer ou mourir. Changer ou disparaître. L’Adapté est le Totem de la nécessité, de la survie et de l’évolution. Ni positif, ni négatif, il est présent partout. Il est cette dynamique, ce principe fondamental qui rythme les mutations des espèces et qui rappelle que l’Homme est la seule forme de vie à tenter de contrôler sa propre évolution. L’Adapté ne possède ni Interdit, ni Instinct spécifique. Aucun comportement n’est inapproprié, s’il permet de faire face et de survivre, et les Instincts de tous les autres Totems le renforcent. Seul l’Humain lutte contre son influence…",
|
"description": "Evolve or die. Change or disappear. The Adapted is the Totem of necessity, survival and evolution. Neither positive nor negative, it is present everywhere. It is this dynamic, this fundamental principle that rhythm the mutations of species and reminds us that Man is the only form of life trying to control its own evolution. The Adapted has no Forbidden, no Specific Instinct. No behavior is inappropriate, if it allows to cope and survive, and the Instincts of all other Totems reinforce it. Only Man fights against its influence...",
|
||||||
"instincts" : "Tous ceux des huit Totems majeurs",
|
"instincts": "All those of the eight major Totems",
|
||||||
"bans" : "Aucun…",
|
"bans": "None...",
|
||||||
"opposite": "human"
|
"opposite": "human"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ABILITY_CATEGORIES": {
|
"ABILITY_CATEGORIES": {
|
||||||
"physical": { "name": "Physique"},
|
"physical": {
|
||||||
"manual": { "name": "Manuel"},
|
"name": "Physical"
|
||||||
"mental": { "name": "Mental"},
|
},
|
||||||
"social": { "name": "Social"}
|
"manual": {
|
||||||
|
"name": "Manual"
|
||||||
|
},
|
||||||
|
"mental": {
|
||||||
|
"name": "Mental"
|
||||||
|
},
|
||||||
|
"social": {
|
||||||
|
"name": "Social"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"SKILLS_CATEGORIES": {
|
"SKILLS_CATEGORIES": {
|
||||||
"man": { "name": "L'Homme" },
|
"man": {
|
||||||
"animal": { "name": "L'Animal" },
|
"name": "Man"
|
||||||
"tool": { "name": "L'Outil" },
|
},
|
||||||
"weapon": { "name": "L'Arme" },
|
"animal": {
|
||||||
"survival": { "name": "La Survie" },
|
"name": "Animal"
|
||||||
"world": { "name": "La Terre" }
|
},
|
||||||
|
"tool": {
|
||||||
|
"name": "Tool"
|
||||||
|
},
|
||||||
|
"weapon": {
|
||||||
|
"name": "Weapon"
|
||||||
|
},
|
||||||
|
"survival": {
|
||||||
|
"name": "Survival"
|
||||||
|
},
|
||||||
|
"world": {
|
||||||
|
"name": "World"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"SKILLS": {
|
"SKILLS": {
|
||||||
"arts": { "name": "Arts"},
|
"arts": {
|
||||||
"civilization": { "name": "Civilisations"},
|
"name": "Arts"
|
||||||
"psychology": { "name": "Psychologie"},
|
},
|
||||||
"rumors": { "name": "Rumeurs"},
|
"civilization": {
|
||||||
"healing": { "name": "Soins"},
|
"name": "Civilizations"
|
||||||
"animalism": { "name": "Animalisme"},
|
},
|
||||||
"dissection": { "name": "Dissection"},
|
"psychology": {
|
||||||
"wildlife": { "name": "Faune"},
|
"name": "Psychology"
|
||||||
"repulsion": { "name": "Répulsion"},
|
},
|
||||||
"tracks": { "name": "Traces"},
|
"rumors": {
|
||||||
"crafting": { "name": "Artisanat"},
|
"name": "Rumors"
|
||||||
"diy": { "name": "Bricolage"},
|
},
|
||||||
"mecanical": { "name": "Mécanique"},
|
"healing": {
|
||||||
"piloting": { "name": "Pilotage"},
|
"name": "Healing"
|
||||||
"technology": { "name": "Technologie"},
|
},
|
||||||
"firearms": { "name": "Armes à feu"},
|
"animalism": {
|
||||||
"armory": { "name": "Armurerie"},
|
"name": "Animalism"
|
||||||
"shield": { "name": "Bouclier"},
|
},
|
||||||
"close": { "name": "Corps-à-corps"},
|
"dissection": {
|
||||||
"archery": { "name": "Armes de tir"},
|
"name": "Dissection"
|
||||||
"throwing": { "name": "Lancer"},
|
},
|
||||||
"melee": { "name": "Mêlée"},
|
"wildlife": {
|
||||||
"atletics": { "name": "Atlétisme"},
|
"name": "Wildlife"
|
||||||
"stealth": { "name": "Discrétion"},
|
},
|
||||||
"alertness": { "name": "Vigilance"},
|
"repulsion": {
|
||||||
"flora": { "name": "Flore"},
|
"name": "Repulsion"
|
||||||
"food": { "name": "Alimentation"},
|
},
|
||||||
"environment": { "name": "Environnement"},
|
"tracks": {
|
||||||
"road": { "name": "Route"},
|
"name": "Tracks"
|
||||||
"toxics": { "name": "Toxiques"},
|
},
|
||||||
"ruins": { "name": "Vestiges"}
|
"crafting": {
|
||||||
|
"name": "Crafting"
|
||||||
|
},
|
||||||
|
"diy": {
|
||||||
|
"name": "DIY"
|
||||||
|
},
|
||||||
|
"mecanical": {
|
||||||
|
"name": "Mechanical"
|
||||||
|
},
|
||||||
|
"piloting": {
|
||||||
|
"name": "Piloting"
|
||||||
|
},
|
||||||
|
"technology": {
|
||||||
|
"name": "Technology"
|
||||||
|
},
|
||||||
|
"firearms": {
|
||||||
|
"name": "Firearms"
|
||||||
|
},
|
||||||
|
"armory": {
|
||||||
|
"name": "Armory"
|
||||||
|
},
|
||||||
|
"shield": {
|
||||||
|
"name": "Shield"
|
||||||
|
},
|
||||||
|
"close": {
|
||||||
|
"name": "Melee"
|
||||||
|
},
|
||||||
|
"archery": {
|
||||||
|
"name": "Ranged"
|
||||||
|
},
|
||||||
|
"throwing": {
|
||||||
|
"name": "Throwing"
|
||||||
|
},
|
||||||
|
"melee": {
|
||||||
|
"name": "Melee"
|
||||||
|
},
|
||||||
|
"atletics": {
|
||||||
|
"name": "Athletics"
|
||||||
|
},
|
||||||
|
"stealth": {
|
||||||
|
"name": "Stealth"
|
||||||
|
},
|
||||||
|
"alertness": {
|
||||||
|
"name": "Alertness"
|
||||||
|
},
|
||||||
|
"flora": {
|
||||||
|
"name": "Flora"
|
||||||
|
},
|
||||||
|
"food": {
|
||||||
|
"name": "Food"
|
||||||
|
},
|
||||||
|
"environment": {
|
||||||
|
"name": "Environment"
|
||||||
|
},
|
||||||
|
"road": {
|
||||||
|
"name": "Road"
|
||||||
|
},
|
||||||
|
"toxics": {
|
||||||
|
"name": "Toxics"
|
||||||
|
},
|
||||||
|
"ruins": {
|
||||||
|
"name": "Ruins"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"SEXES": {
|
"SEXES": {
|
||||||
"male": "Masculin",
|
"male": "Masculine",
|
||||||
"female":"Féminin"
|
"female": "Feminine"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+514
@@ -0,0 +1,514 @@
|
|||||||
|
{
|
||||||
|
"SETTINGS": {
|
||||||
|
"world": {
|
||||||
|
"game_mode": {
|
||||||
|
"name": "Choix du mode de jeu",
|
||||||
|
"hint": "À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers."
|
||||||
|
},
|
||||||
|
"first_run": {
|
||||||
|
"name": "Affichage du tour d'accueil",
|
||||||
|
"hint": "Pour aider les débutantEs à bien commencer avec le système Vermine 2047."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"VERMINE.WorldSettings.GameMode.Name": "Choix du mode de jeu",
|
||||||
|
"VERMINE.WorldSettings.GameMode.Hint": "À l’image de certains jeux vidéo proposant différents, Vermine 2047 permet aux joueurs de choisir leur Mode de jeu et de fixer eux-mêmes le degré de réalisme, de surnaturel et de dangerosité de l’univers.",
|
||||||
|
"GAME_MODES": {
|
||||||
|
"heroic": {
|
||||||
|
"name": "Héroique"
|
||||||
|
},
|
||||||
|
"epic": {
|
||||||
|
"name": "Epique"
|
||||||
|
},
|
||||||
|
"legendary": {
|
||||||
|
"name": "Légendaire"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ROLLS": {
|
||||||
|
"tool": "Lanceur de dés",
|
||||||
|
"roll_dice": "Jeter les dés"
|
||||||
|
},
|
||||||
|
"TOURS": {
|
||||||
|
"ChatMessage": "<h3>Bienvenue dans Vermine!</h3><p>Si vous utilisez ce système pour la première fois, notre shaman va vous guider vers votre rite d'initiation</p> <button id=\"vermine-tour-chat-button\"> <i class=\"fas fa-person-hiking\"></i> J'y vais mais j'ai peur </button>",
|
||||||
|
"Welcome": {
|
||||||
|
"Title": "Bienvenue dans Vermine",
|
||||||
|
"Description": "Aperçu du système Vermine",
|
||||||
|
"WelcomeTitle": "Bienvenue",
|
||||||
|
"WelcomeContent": "<p>Bienvenue dans Vermine, survivantE ! Faire le tour de notre zone d'action te permettre de retrouver tes marques, même si c'est ton premier jour parmi nous.</p><p>En haut de la colonne de droite, tu as tout ce que tu as le droit de faire chez nous : parler, voir les autres tronches de ta commu, gérer ton matos et celui de tes potes, étudier les cartes, lire les journaux des clamsés, aller nous chercher de la bouffe à coups de surin. Entrons dans le vif du sujet.</p>",
|
||||||
|
"ActorTabTitle": "Peupler son univers",
|
||||||
|
"ActorTabContent": "<p>Bien installéE, survivantE ? Tournons pas au tour du pot, si tu veux rester avec nous, va falloir nous dire qui tu es, d'où tu viens, et à qui tu fais confiance. Une fois que t'es prêtE pour ca, clique donc sur le bouton \"Créer un acteur\"</p>",
|
||||||
|
"CharacterCreateTitle": "Créer un groupe",
|
||||||
|
"CharacterCreateContent": "<p>Ce bouton crée une fiche de groupe, parce que c'est par là qu'on commence, dans ce trou ! Ta tronche viendra ensuite, quand tu créeras ta fiche de personnage. Au fur et à mesure que tu progresses, tu voudras peut-être rajouter des infos sur ce que tu vois trainer autour du camp.</p>",
|
||||||
|
"CompendiumTitle": "Cartes",
|
||||||
|
"CompendiumContent": "<p>Vous aurez probablement besoin d'une carte des Terres de Fer ou d'un secteur de la Forge. Vous pouvez créer votre propre scène pour cela, ou vous pouvez utiliser l'une des nôtres. Ouvrez l'un de ces compendiums et faites glisser une carte dans votre zone de scènes (l'onglet qui ressemble à une carte pliée).</p>",
|
||||||
|
"OracleToolTitle": "Totem",
|
||||||
|
"OracleToolContent": "<p>Aucune partie d'Vermine ou Starforged ne serait complète sans oracles. Ce bouton fera apparaître une fenêtre avec tous les oracles du jeu choisi. Les oracles sont également disponibles depuis la fiche de personnage.</p>",
|
||||||
|
"ToursTitle": "Prochaines étapes",
|
||||||
|
"ToursContent": "<p>Tu t'en sors pas si mal ! Moi je vais te laisser là, mais si tu as d'autres questions, tu peux venir me trouver. Si ca concerne la mécanique, inscris-toi dans notre groupe de parole, par là <a href=\"https://discord.gg/FqGHYvXg\">Totem Foundry Discord</a>. Sinon, tu peux rejoindre la place centrale par ici <a href=\"https://discord.gg/qejqmSxr\">Vermine Discord</a></p><p>Enjoy!</p>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"DIFFICULTY_LEVELS": {
|
||||||
|
"obvious": "Evidente",
|
||||||
|
"easy": "Facile",
|
||||||
|
"hard": "Difficile",
|
||||||
|
"very_hard": "Très difficile",
|
||||||
|
"impossible": "Impossible"
|
||||||
|
},
|
||||||
|
"ATTITUDES": {
|
||||||
|
"offensive": {
|
||||||
|
"name": "Offensif"
|
||||||
|
},
|
||||||
|
"active": {
|
||||||
|
"name": "Actif"
|
||||||
|
},
|
||||||
|
"passive": {
|
||||||
|
"name": "Passif"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AGE_TYPES": {
|
||||||
|
"young": "Jeune",
|
||||||
|
"adult": "Adulte",
|
||||||
|
"old": "Vieux"
|
||||||
|
},
|
||||||
|
"IDENTITY": {
|
||||||
|
"name": "Nom",
|
||||||
|
"height": "Taille",
|
||||||
|
"weight": "Poids",
|
||||||
|
"totem": "Totem",
|
||||||
|
"age": "Age",
|
||||||
|
"gender": "Sexe",
|
||||||
|
"profile": "Profil",
|
||||||
|
"origin": "Origine",
|
||||||
|
"theme": "Concept",
|
||||||
|
"instincts": "Instincts",
|
||||||
|
"prohibits": "Interdits",
|
||||||
|
"objectives": "Objectifs",
|
||||||
|
"relations": "Relations",
|
||||||
|
"morale": "Moral",
|
||||||
|
"morale_level": "Niveau de moral",
|
||||||
|
"notes": "Notes"
|
||||||
|
},
|
||||||
|
"ADVERSITY": {
|
||||||
|
"threat": "Menace",
|
||||||
|
"experience": "Expérience",
|
||||||
|
"role": "Rôle",
|
||||||
|
"attack": "Attaque",
|
||||||
|
"damage": "Dommages",
|
||||||
|
"weapon": "Arme",
|
||||||
|
"vigor": "Vigueur",
|
||||||
|
"wounds": "Blessures",
|
||||||
|
"action": "Action",
|
||||||
|
"specialties": "Spécialité",
|
||||||
|
"rerolls": "Relances",
|
||||||
|
"contact": "Contact",
|
||||||
|
"reaction": "Réaction",
|
||||||
|
"pools": "Réserves",
|
||||||
|
"gear": "Matériel",
|
||||||
|
"protection": "Protection",
|
||||||
|
"skills": "Compétences",
|
||||||
|
"pattern": "Gabarit",
|
||||||
|
"size": "Taille",
|
||||||
|
"pack": "Groupe"
|
||||||
|
},
|
||||||
|
"VERMINE": {
|
||||||
|
"name": "Vermine",
|
||||||
|
"stats": "Statistiques",
|
||||||
|
"level": "Niveau",
|
||||||
|
"experience": "Expérience",
|
||||||
|
"reputation": "Réputation",
|
||||||
|
"pool": "Réserve",
|
||||||
|
"pools": "Réserves",
|
||||||
|
"self_control": "Sang-Froid",
|
||||||
|
"effort": "Effort",
|
||||||
|
"group": "Groupe",
|
||||||
|
"abilities": "Caractéristiques",
|
||||||
|
"ability": "Caractéristique",
|
||||||
|
"skills_title": "Compétences",
|
||||||
|
"skill_title": "Compétence",
|
||||||
|
"skill_mastery": "Maîtrise",
|
||||||
|
"bonus": "Bonus",
|
||||||
|
"penalty": "Malus",
|
||||||
|
"reroll": "Relance",
|
||||||
|
"equipment": "Equipement",
|
||||||
|
"specialty": "Spécialité",
|
||||||
|
"technique": "Technique",
|
||||||
|
"techniques": "Techniques",
|
||||||
|
"difficulty": "Difficulté",
|
||||||
|
"help": "Entraide",
|
||||||
|
"tooling": "Equipement",
|
||||||
|
"quantity": "Quantité",
|
||||||
|
"qty": "Qté",
|
||||||
|
"weight": "Poids",
|
||||||
|
"dmg": "Dmg",
|
||||||
|
"damage": "Dommage",
|
||||||
|
"damages": "Dommages",
|
||||||
|
"range": "Portée",
|
||||||
|
"ranges": "Portées",
|
||||||
|
"mobility": "Mobilité",
|
||||||
|
"rarity": "Rareté",
|
||||||
|
"rarity_sm": "Rar.",
|
||||||
|
"reliability": "Fiabilité",
|
||||||
|
"reliability_sm": "Fiab.",
|
||||||
|
"wounds": {
|
||||||
|
"name": "Blessures",
|
||||||
|
"threshold": "Seuil",
|
||||||
|
"light": "Légère",
|
||||||
|
"heavy": "Grave",
|
||||||
|
"deadly": "Mortelle",
|
||||||
|
"light_wounds": "Blessure légère",
|
||||||
|
"heavy_wounds": "Blessure grave",
|
||||||
|
"deadly_wounds": "Blessure mortelle"
|
||||||
|
},
|
||||||
|
"tabs": {
|
||||||
|
"abilities": "Caractéristiques et compétences",
|
||||||
|
"totem": "Totem et ajustements",
|
||||||
|
"combat": "Combat et reserves",
|
||||||
|
"equipment": "Matériel",
|
||||||
|
"stories": "Histoire"
|
||||||
|
},
|
||||||
|
"ammo": "Munitions",
|
||||||
|
"ammo_sm": "Mun",
|
||||||
|
"trait": "Trait",
|
||||||
|
"traits": "Traits",
|
||||||
|
"clew": "Indice",
|
||||||
|
"combat": "Combat",
|
||||||
|
"stories": "Histoires",
|
||||||
|
"gear": "Matériel",
|
||||||
|
"information": "Informations",
|
||||||
|
"boost": "boost",
|
||||||
|
"group_abilities": "Capacités de groupe",
|
||||||
|
"totem_abilities": "Capacités de totem",
|
||||||
|
"type_group": "Groupe",
|
||||||
|
"type_character": "Personnage",
|
||||||
|
"type_npc": "PNJ",
|
||||||
|
"type_creature": "Créature",
|
||||||
|
"type": "Type",
|
||||||
|
"group_members": "Membres",
|
||||||
|
"encounters": "Rencontres",
|
||||||
|
"road": "La Route",
|
||||||
|
"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",
|
||||||
|
"new_vehicle": "Nouveau véhicule",
|
||||||
|
"vehicles": "Véhicules",
|
||||||
|
"new_objective": "Nouvel objectif",
|
||||||
|
"learning": "Apprentissage",
|
||||||
|
"cost": "Coût",
|
||||||
|
"rituel": "Rituel",
|
||||||
|
"transe": "Transe",
|
||||||
|
"effects": "Effets",
|
||||||
|
"details": "Détails"
|
||||||
|
},
|
||||||
|
"ABILITIES": {
|
||||||
|
"vigor": {
|
||||||
|
"name": "Vigueur"
|
||||||
|
},
|
||||||
|
"health": {
|
||||||
|
"name": "Santé"
|
||||||
|
},
|
||||||
|
"precision": {
|
||||||
|
"name": "Précision"
|
||||||
|
},
|
||||||
|
"reflexes": {
|
||||||
|
"name": "Réflexes"
|
||||||
|
},
|
||||||
|
"knowledge": {
|
||||||
|
"name": "Savoir"
|
||||||
|
},
|
||||||
|
"perception": {
|
||||||
|
"name": "Perception"
|
||||||
|
},
|
||||||
|
"will": {
|
||||||
|
"name": "Volonté"
|
||||||
|
},
|
||||||
|
"empathy": {
|
||||||
|
"name": "Empathie"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SKILL_LEVELS": {
|
||||||
|
"incompetent": "Incompétent",
|
||||||
|
"beginner": "Débutant",
|
||||||
|
"proficient": "Confirmé",
|
||||||
|
"expert": "Expert",
|
||||||
|
"master": "Maître",
|
||||||
|
"legend": "Légende"
|
||||||
|
},
|
||||||
|
"THREAT_LEVELS": {
|
||||||
|
"minor": "Mineure",
|
||||||
|
"serious": "Sérieuse",
|
||||||
|
"major": "Majeure",
|
||||||
|
"deadly": "Mortelle"
|
||||||
|
},
|
||||||
|
"ROLE_LEVELS": {
|
||||||
|
"minor": "Mineur",
|
||||||
|
"secondary": "Secondaire",
|
||||||
|
"important": "Important",
|
||||||
|
"major": "Majeur"
|
||||||
|
},
|
||||||
|
"PATTERN_LEVELS": {
|
||||||
|
"insect": "Insecte",
|
||||||
|
"rat": "Rat",
|
||||||
|
"dog": "Chien",
|
||||||
|
"bear": "Ours"
|
||||||
|
},
|
||||||
|
"TOTEMS": {
|
||||||
|
"human": {
|
||||||
|
"name": "L'Humain",
|
||||||
|
"number": 1,
|
||||||
|
"description": "",
|
||||||
|
"instincts": "",
|
||||||
|
"bans": "",
|
||||||
|
"opposite": "adapted"
|
||||||
|
},
|
||||||
|
"predator": {
|
||||||
|
"name": "Le prédateur",
|
||||||
|
"number": 2,
|
||||||
|
"description": "Totem emblématique, le Prédateur a toujours été l’un des plus répandus dans le règne animal, et il reste de loin celui qui influence le plus grand nombre d’espèces aujourd’hui. On l’observe aussi bien chez les mammifères que chez de minuscules insectes, en meute comme en solitaire. Il inspire les comportements de traque, de chasse et d’affrontement essentiels à l’alimentation, mais il ne prône qu’une violence justifiée, nécessaire et vitale. Selon les peuples et les cultures, il a longtemps été symbolisé par le lion, l’aigle ou le chasseur, et ses valeurs guerrières ont toujours revêtu une certaine forme de noblesse. Un prédateur ne tue pas : il triomphe. Un prédateur ne fuit pas : il perd, ou il meurt",
|
||||||
|
"instincts": "Triompher, relever un défi, prendre l’initiative, atteindre un objectif.",
|
||||||
|
"bans": "Fuir, abandonner, renoncer,faire preuve de lâcheté.",
|
||||||
|
"behaviour": "Déterminé, implacable,courageux, dominant.",
|
||||||
|
"opposite": "scavenger"
|
||||||
|
},
|
||||||
|
"scavenger": {
|
||||||
|
"name": "Le Charognard",
|
||||||
|
"number": 3,
|
||||||
|
"description": "Dans un écosystème dominé par la loi du plus fort, certains ont pris le parti d’attendre que la mort fasse son œuvre, quitte à se contenter des restes. Poissons de fond, plantes carnivores, pillards, insectes nécrophages, vautours ou meutes de loups trop faibles pour s’attaquer seuls aux proies de grande taille : le Charognard inspire toutes les espèces qui ont fait de la patience une de leurs rares vertus, et misent sur la faiblesse, la blessure, la fatigue ou l’opportunité pour se nourrir. Il règne sur les régions hostiles où le soleil, la chaleur ou le froid font son jeu, et se développe souvent dans l’ombre du Prédateur, avec qui il entretient une relation quasi symbiotique",
|
||||||
|
"instincts": "Achever, saboter, affaiblir, s’en prendre au plus faible.",
|
||||||
|
"bans": "Affronter, s’exposer, agir de façon compulsive, s’apitoyer.",
|
||||||
|
"behaviour": "Sournois, calculateur, impitoyable",
|
||||||
|
"opposite": "predator"
|
||||||
|
},
|
||||||
|
"symbiote": {
|
||||||
|
"name": "Le Symbiote",
|
||||||
|
"number": 4,
|
||||||
|
"description": "Symbole d’entraide, d’équilibre et d’harmonie, le Symbiote se définit par la relation d’échange et de réciprocité où chaque partie profite de ce que l’autre apporte, quels que soient ses besoins ou ses motivations. Très courante dans le règne végétal, où de nombreuses fleurs et plantes l’ont instaurée avec les pollinisateurs, cette relation de symbiose s’observe également chez les insectes, les mammifères et les êtres humains. Elle peut être ponctuelle, issue des liens du sang, liée à un territoire ou un projet commun, et rien ne l’empêche d’être motivée par le profit ou l’intérêt, tant qu’elle est réciproque – ce qui distingue le Symbiote du Parasite.",
|
||||||
|
"instincts": "Partager, transmettre, équilibrer, trouver un compromis",
|
||||||
|
"bans": "Exploiter, abuser, profiter de la faiblesse, mettre en danger",
|
||||||
|
"behaviour": "Bienveillant, responsable, diplomate, modéré.",
|
||||||
|
"opposite": "parasite"
|
||||||
|
},
|
||||||
|
"parasite": {
|
||||||
|
"name": "Le Parasite",
|
||||||
|
"number": 5,
|
||||||
|
"description": "Totem des infections, des basses œuvres et des épidémies, le Parasite a toujours joué un rôle funeste dans le destin de l’humanité, jusqu’à en devenir le fléau. Symbolisé par les moustiques, il s’observe également chez de nombreux champignons, végétaux et insectes incapables de survivre, de se nourrir ou de se reproduire sans un hôte, et toujours à ses dépens. Le Parasite exploite, profite, abuse sans états d’âme, mu par la seule démarche de prendre ce qu’un autre possède et dont il a besoin. Avec le Prédateur, c’est l’un des Totems les plus présents et les plus redoutés, tant les comportements qu’il inspire peuvent ruiner tout espoir de survie.",
|
||||||
|
"instincts": "Profiter, manipuler, voler, exploiter.",
|
||||||
|
"bans": "Partager, contribuer, tenir une promesse, prendre par la force",
|
||||||
|
"behaviour": "Manipulateur, menteur, égoïste, profiteur",
|
||||||
|
"opposite": "symbiote"
|
||||||
|
},
|
||||||
|
"builder": {
|
||||||
|
"name": "Le Bâtisseur",
|
||||||
|
"number": 6,
|
||||||
|
"description": "Souvent confondu avec la Ruche en raison des constructions géantes typiques de certaines espèces sociales, le Bâtisseur n’est pas le Totem de la communauté, mais celui de la fondation. À l’image des termites, des castors, de la plupart des oiseaux ou de certaines espèces d’araignées, il se caractérise par l’acte de construction, de création ou de modification, et s’observe aussi bien chez des groupes que chez des individus. Avec la Ruche, le Symbiote et la Horde, c’est l’un des Totems les plus courants chez les communautés humaines, dont il inspire les édifices, les inventions et les réparations.",
|
||||||
|
"instincts": "Fonder, créer, s’installer durablement, nouer des liens.",
|
||||||
|
"bans": "Détruire, saboter, quitter une communauté, provoquer le chaos",
|
||||||
|
"behaviour": "Réfléchi, organisé, pragmatique, constant.",
|
||||||
|
"opposite": "horde"
|
||||||
|
},
|
||||||
|
"horde": {
|
||||||
|
"name": "La Horde",
|
||||||
|
"number": 7,
|
||||||
|
"description": "Fléau des cultures depuis la nuit des temps, la Horde est à l’image des nuées de criquets, des meutes de carnivores ou des tribus de nomades qui la représentent : imprévisible, impitoyable et sans visage. Au-delà de ses aspects collectifs, ce Totem redoutable se caractérise surtout par sa violence et sa méthode d’action. Là où le Prédateur tue, la Horde brûle, pille, dévaste pour parvenir à ses fins sans le moindre état d’âme. Elle inspire ceux qui prennent par la force, qui détruisent, qui ravagent et qui refusent toute forme de compromis, quelles que soient leur démarche ou leurs motivations.",
|
||||||
|
"instincts": "Piller, détruire, prendre par la force, miser sur le nombre",
|
||||||
|
"bans": "Négocier, épargner, faire des réserves, planifier à long terme.",
|
||||||
|
"behaviour": "Violent, imprévisible, destructeur, radical.",
|
||||||
|
"opposite": "builder"
|
||||||
|
},
|
||||||
|
"hive": {
|
||||||
|
"name": "La Ruche",
|
||||||
|
"number": 8,
|
||||||
|
"description": "Fourmis, abeilles, termites, factions aux règles strictes : la Ruche est le Totem des créatures sociales et des communautés humaines par excellence. Des cellules familiales aux multinationales, des meutes organisées aux super-colonies de plusieurs milliards d’individus, la Ruche est caractérisée par l’organisation, la hiérarchie, le dévouement et la conscience aigüe du rôle que chacun doit jouer dans l’intérêt commun, plus que par la notion de communauté elle-même. Elle s’appuie bien souvent sur un ensemble de règles, des tâches attribuées, des rôles identifiés – une philosophie qui proscrit tout individualisme et condamne toute désobéissance.",
|
||||||
|
"instincts": "Organiser, œuvrer pour la communauté, respecter la hiérarchie, privilégier l’intérêt collectif",
|
||||||
|
"bans": "trahir, désobéir, mettre sa communauté en danger, faire preuve d’individualisme.",
|
||||||
|
"behaviour": "Méthodique, autoritaire, consciencieux, rigide",
|
||||||
|
"opposite": "loner"
|
||||||
|
},
|
||||||
|
"loner": {
|
||||||
|
"name": "Le solitaire",
|
||||||
|
"number": 9,
|
||||||
|
"description": "Survivre, quoi qu’il en coûte. Sans cruauté, sans états d’âme, mais à tout prix. À l’inverse de la Ruche qui loue le sacrifice s’il est accompli dans l’intérêt du groupe, le Solitaire incarne le plus fondamental des réflexes : celui de la survie. Ni individualiste, ni franchement égoïste, il fait seulement passer ses propres intérêts, ses urgences et ses nécessités avant tout, quitte à trahir, à décevoir, à quitter ou à tuer. Rien n’empêche un Solitaire de trouver une place durable dans un groupe, d’y jouer un rôle précis ou même de suivre des règles établies, tant qu’elles ne heurtent pas ses propres convictions et qu’elles ne mettent pas en péril son bien le plus précieux : sa vie.",
|
||||||
|
"instincts": "Survivre, anticiper, s’adapter, faire passer sa vie avant tout",
|
||||||
|
"bans": "Se sacrifier, risquer sa vie, dépendre de quelqu’un, se résigner.",
|
||||||
|
"behaviour": "Indépendant, lucide, autonome, réactif.",
|
||||||
|
"opposite": "hive"
|
||||||
|
},
|
||||||
|
"adapted": {
|
||||||
|
"name": "L'adapté",
|
||||||
|
"number": 10,
|
||||||
|
"description": "Évoluer ou mourir. Changer ou disparaître. L’Adapté est le Totem de la nécessité, de la survie et de l’évolution. Ni positif, ni négatif, il est présent partout. Il est cette dynamique, ce principe fondamental qui rythme les mutations des espèces et qui rappelle que l’Homme est la seule forme de vie à tenter de contrôler sa propre évolution. L’Adapté ne possède ni Interdit, ni Instinct spécifique. Aucun comportement n’est inapproprié, s’il permet de faire face et de survivre, et les Instincts de tous les autres Totems le renforcent. Seul l’Humain lutte contre son influence…",
|
||||||
|
"instincts": "Tous ceux des huit Totems majeurs",
|
||||||
|
"bans": "Aucun…",
|
||||||
|
"opposite": "human"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ABILITY_CATEGORIES": {
|
||||||
|
"physical": {
|
||||||
|
"name": "Physique"
|
||||||
|
},
|
||||||
|
"manual": {
|
||||||
|
"name": "Manuel"
|
||||||
|
},
|
||||||
|
"mental": {
|
||||||
|
"name": "Mental"
|
||||||
|
},
|
||||||
|
"social": {
|
||||||
|
"name": "Social"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SKILLS_CATEGORIES": {
|
||||||
|
"man": {
|
||||||
|
"name": "L'Homme"
|
||||||
|
},
|
||||||
|
"animal": {
|
||||||
|
"name": "L'Animal"
|
||||||
|
},
|
||||||
|
"tool": {
|
||||||
|
"name": "L'Outil"
|
||||||
|
},
|
||||||
|
"weapon": {
|
||||||
|
"name": "L'Arme"
|
||||||
|
},
|
||||||
|
"survival": {
|
||||||
|
"name": "La Survie"
|
||||||
|
},
|
||||||
|
"world": {
|
||||||
|
"name": "La Terre"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SKILLS": {
|
||||||
|
"arts": {
|
||||||
|
"name": "Arts"
|
||||||
|
},
|
||||||
|
"civilization": {
|
||||||
|
"name": "Civilisations"
|
||||||
|
},
|
||||||
|
"psychology": {
|
||||||
|
"name": "Psychologie"
|
||||||
|
},
|
||||||
|
"rumors": {
|
||||||
|
"name": "Rumeurs"
|
||||||
|
},
|
||||||
|
"healing": {
|
||||||
|
"name": "Soins"
|
||||||
|
},
|
||||||
|
"animalism": {
|
||||||
|
"name": "Animalisme"
|
||||||
|
},
|
||||||
|
"dissection": {
|
||||||
|
"name": "Dissection"
|
||||||
|
},
|
||||||
|
"wildlife": {
|
||||||
|
"name": "Faune"
|
||||||
|
},
|
||||||
|
"repulsion": {
|
||||||
|
"name": "Répulsion"
|
||||||
|
},
|
||||||
|
"tracks": {
|
||||||
|
"name": "Traces"
|
||||||
|
},
|
||||||
|
"crafting": {
|
||||||
|
"name": "Artisanat"
|
||||||
|
},
|
||||||
|
"diy": {
|
||||||
|
"name": "Bricolage"
|
||||||
|
},
|
||||||
|
"mecanical": {
|
||||||
|
"name": "Mécanique"
|
||||||
|
},
|
||||||
|
"piloting": {
|
||||||
|
"name": "Pilotage"
|
||||||
|
},
|
||||||
|
"technology": {
|
||||||
|
"name": "Technologie"
|
||||||
|
},
|
||||||
|
"firearms": {
|
||||||
|
"name": "Armes à feu"
|
||||||
|
},
|
||||||
|
"armory": {
|
||||||
|
"name": "Armurerie"
|
||||||
|
},
|
||||||
|
"shield": {
|
||||||
|
"name": "Bouclier"
|
||||||
|
},
|
||||||
|
"close": {
|
||||||
|
"name": "Corps-à-corps"
|
||||||
|
},
|
||||||
|
"archery": {
|
||||||
|
"name": "Armes de tir"
|
||||||
|
},
|
||||||
|
"throwing": {
|
||||||
|
"name": "Lancer"
|
||||||
|
},
|
||||||
|
"melee": {
|
||||||
|
"name": "Mêlée"
|
||||||
|
},
|
||||||
|
"atletics": {
|
||||||
|
"name": "Atlétisme"
|
||||||
|
},
|
||||||
|
"stealth": {
|
||||||
|
"name": "Discrétion"
|
||||||
|
},
|
||||||
|
"alertness": {
|
||||||
|
"name": "Vigilance"
|
||||||
|
},
|
||||||
|
"flora": {
|
||||||
|
"name": "Flore"
|
||||||
|
},
|
||||||
|
"food": {
|
||||||
|
"name": "Alimentation"
|
||||||
|
},
|
||||||
|
"environment": {
|
||||||
|
"name": "Environnement"
|
||||||
|
},
|
||||||
|
"road": {
|
||||||
|
"name": "Route"
|
||||||
|
},
|
||||||
|
"toxics": {
|
||||||
|
"name": "Toxiques"
|
||||||
|
},
|
||||||
|
"ruins": {
|
||||||
|
"name": "Vestiges"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"SEXES": {
|
||||||
|
"male": "Masculin",
|
||||||
|
"female": "Féminin"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs";
|
import { onManageActiveEffect, prepareActiveEffectCategories } from "../system/effects.mjs";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend the basic ActorSheet with some very simple modifications
|
* Extend the basic ActorSheet with some very simple modifications
|
||||||
@@ -90,8 +90,22 @@ export class VermineActorSheet extends ActorSheet {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
//click on wound radio
|
||||||
|
html.find('[type="radio"][data-wound]').click(ev => {
|
||||||
|
this._onWoundClick(ev)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
_onWoundClick(ev) {
|
||||||
|
if (!ev.currentTarget.checked) { return }
|
||||||
|
let woundType = ev.currentTarget.dataset.wound;
|
||||||
|
let targetProp = "system." + woundType + ".value";
|
||||||
|
let update = {};
|
||||||
|
update[targetProp] = ev.currentTarget.value - 1
|
||||||
|
|
||||||
|
this.actor.update(update)
|
||||||
|
|
||||||
|
}
|
||||||
async _onItemCreate(event) {
|
async _onItemCreate(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
const header = event.currentTarget;
|
const header = event.currentTarget;
|
||||||
@@ -113,6 +127,6 @@ export class VermineActorSheet extends ActorSheet {
|
|||||||
delete itemData.system["type"];
|
delete itemData.system["type"];
|
||||||
|
|
||||||
// Finally, create the item!
|
// Finally, create the item!
|
||||||
return await Item.create(itemData, {parent: this.actor});
|
return await Item.create(itemData, { parent: this.actor });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,7 @@ export class VermineCharacterSheet extends VermineActorSheet {
|
|||||||
return mergeObject(super.defaultOptions, {
|
return mergeObject(super.defaultOptions, {
|
||||||
classes: ["vermine2047", "sheet", "character", "actor"],
|
classes: ["vermine2047", "sheet", "character", "actor"],
|
||||||
template: "systems/vermine2047/templates/actor/actor-sheet.hbs",
|
template: "systems/vermine2047/templates/actor/actor-sheet.hbs",
|
||||||
width: 600,
|
|
||||||
height: 600,
|
|
||||||
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
|
tabs: [{ navSelector: ".sheet-tabs", contentSelector: ".sheet-body", initial: "features" }]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -53,7 +52,6 @@ export class VermineCharacterSheet extends VermineActorSheet {
|
|||||||
if (actorData.type == 'npc') {
|
if (actorData.type == 'npc') {
|
||||||
this._prepareItems(context);
|
this._prepareItems(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add roll data for TinyMCE editors.
|
// Add roll data for TinyMCE editors.
|
||||||
context.rollData = context.actor.getRollData();
|
context.rollData = context.actor.getRollData();
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import {onManageActiveEffect, prepareActiveEffectCategories} from "../system/effects.mjs";
|
import { onManageActiveEffect, prepareActiveEffectCategories } from "../system/effects.mjs";
|
||||||
import { VermineActorSheet } from "./actor-sheet.mjs";
|
import { VermineActorSheet } from "./actor-sheet.mjs";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend the basic ActorSheet with some very simple modifications
|
* Extend the basic ActorSheet with some very simple modifications
|
||||||
* @extends {ActorSheet}
|
* @extends {ActorSheet}
|
||||||
*/
|
*/
|
||||||
export class VermineCreatureSheet extends ActorSheet {
|
export class VermineCreatureSheet extends VermineActorSheet {
|
||||||
|
|
||||||
/** @override */
|
/** @override */
|
||||||
static get defaultOptions() {
|
static get defaultOptions() {
|
||||||
@@ -118,7 +118,7 @@ export class VermineCreatureSheet extends ActorSheet {
|
|||||||
delete itemData.system["type"];
|
delete itemData.system["type"];
|
||||||
|
|
||||||
// Finally, create the item!
|
// Finally, create the item!
|
||||||
return await Item.create(itemData, {parent: this.actor});
|
return await Item.create(itemData, { parent: this.actor });
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+81
-78
@@ -6,79 +6,80 @@ export const VERMINE = {};
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
VERMINE.AgeTypes = {
|
VERMINE.AgeTypes = {
|
||||||
1:{ "name":"AGE_TYPES.young", "beginning": 0 },
|
1: { "name": "AGE_TYPES.young", "beginning": 0 },
|
||||||
2:{ "name":"AGE_TYPES.adult", "beginning": 18 },
|
2: { "name": "AGE_TYPES.adult", "beginning": 18 },
|
||||||
3:{ "name":"AGE_TYPES.old", "beginning": 47 }
|
3: { "name": "AGE_TYPES.old", "beginning": 47 }
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.SkillLevels = {
|
VERMINE.SkillLevels = {
|
||||||
1:{ "label":"SKILL_LEVELS.beginner", "dicePool":1, "reroll":0},
|
0: { "label": "SKILL_LEVELS.incompetent", "dicePool": 0, "reroll": 0 },
|
||||||
2:{ "label":"SKILL_LEVELS.proficient", "dicePool":1, "reroll":1},
|
1: { "label": "SKILL_LEVELS.beginner", "dicePool": 1, "reroll": 0 },
|
||||||
3:{ "label":"SKILL_LEVELS.expert", "dicePool":2, "reroll":1},
|
2: { "label": "SKILL_LEVELS.proficient", "dicePool": 1, "reroll": 1 },
|
||||||
4:{ "label":"SKILL_LEVELS.master", "dicePool":2, "reroll":2},
|
3: { "label": "SKILL_LEVELS.expert", "dicePool": 2, "reroll": 1 },
|
||||||
5:{ "label":"SKILL_LEVELS.legend", "dicePool":3, "reroll":2}
|
4: { "label": "SKILL_LEVELS.master", "dicePool": 2, "reroll": 2 },
|
||||||
|
5: { "label": "SKILL_LEVELS.legend", "dicePool": 3, "reroll": 2 }
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.DifficultyLevels = {
|
VERMINE.DifficultyLevels = {
|
||||||
1:{ "label":"DIFFICULTY_LEVELS.obvious", "difficulty":3},
|
1: { "label": "DIFFICULTY_LEVELS.obvious", "difficulty": 3 },
|
||||||
2:{ "label":"DIFFICULTY_LEVELS.easy", "difficulty":5},
|
2: { "label": "DIFFICULTY_LEVELS.easy", "difficulty": 5 },
|
||||||
3:{ "label":"DIFFICULTY_LEVELS.hard", "difficulty":7},
|
3: { "label": "DIFFICULTY_LEVELS.hard", "difficulty": 7 },
|
||||||
4:{ "label":"DIFFICULTY_LEVELS.very_hard", "difficulty":9},
|
4: { "label": "DIFFICULTY_LEVELS.very_hard", "difficulty": 9 },
|
||||||
5:{ "label":"DIFFICULTY_LEVELS.impossible", "difficulty":10}
|
5: { "label": "DIFFICULTY_LEVELS.impossible", "difficulty": 10 }
|
||||||
},
|
},
|
||||||
|
|
||||||
VERMINE.ThreatLevels = {
|
VERMINE.ThreatLevels = {
|
||||||
1:{ "label":"THREAT_LEVELS.minor", "attack":3, "vigor":1, "minorWound":1, "majorWound":1, "deadlyWound":1},
|
1: { "label": "THREAT_LEVELS.minor", "attack": 3, "vigor": 1, "minorWound": 1, "majorWound": 1, "deadlyWound": 1 },
|
||||||
2:{ "label":"THREAT_LEVELS.serious", "attack":4, "vigor":2, "minorWound":2, "majorWound":1, "deadlyWound":1},
|
2: { "label": "THREAT_LEVELS.serious", "attack": 4, "vigor": 2, "minorWound": 2, "majorWound": 1, "deadlyWound": 1 },
|
||||||
3:{ "label":"THREAT_LEVELS.major", "attack":5, "vigor":3, "minorWound":2, "majorWound":1, "deadlyWound":1},
|
3: { "label": "THREAT_LEVELS.major", "attack": 5, "vigor": 3, "minorWound": 2, "majorWound": 1, "deadlyWound": 1 },
|
||||||
4:{ "label":"THREAT_LEVELS.deadly", "attack":6, "vigor":4, "minorWound":2, "majorWound":2, "deadlyWound":2},
|
4: { "label": "THREAT_LEVELS.deadly", "attack": 6, "vigor": 4, "minorWound": 2, "majorWound": 2, "deadlyWound": 2 },
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.ExperienceLevels = {
|
VERMINE.ExperienceLevels = {
|
||||||
1:{ "label":"SKILL_LEVELS.beginner", "action":3, "specialties":4, "rerolls":0, "contact":"7"},
|
1: { "label": "SKILL_LEVELS.beginner", "action": 3, "specialties": 4, "rerolls": 0, "contact": "7" },
|
||||||
2:{ "label":"SKILL_LEVELS.proficient", "action":3, "specialties":5, "rerolls":0, "contact":"5 ou 7"},
|
2: { "label": "SKILL_LEVELS.proficient", "action": 3, "specialties": 5, "rerolls": 0, "contact": "5 ou 7" },
|
||||||
3:{ "label":"SKILL_LEVELS.expert", "action":4, "specialties":6, "rerolls":1, "contact":"5,7 ou 9"},
|
3: { "label": "SKILL_LEVELS.expert", "action": 4, "specialties": 6, "rerolls": 1, "contact": "5,7 ou 9" },
|
||||||
4:{ "label":"SKILL_LEVELS.master", "action":4, "specialties":6, "rerolls":2, "contact":"3,5,7 ou 9"},
|
4: { "label": "SKILL_LEVELS.master", "action": 4, "specialties": 6, "rerolls": 2, "contact": "3,5,7 ou 9" },
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.RoleLevels = {
|
VERMINE.RoleLevels = {
|
||||||
1:{ "label":"ROLE_LEVELS.minor", "reaction":3, "reaction_bonus":0, "pools":0, "gear":9, "gear_hindrance":0, "protection":1},
|
1: { "label": "ROLE_LEVELS.minor", "reaction": 3, "reaction_bonus": 0, "pools": 0, "gear": 9, "gear_hindrance": 0, "protection": 1 },
|
||||||
2:{ "label":"ROLE_LEVELS.secondary", "reaction":3,"reaction_bonus":1, "pools":1, "gear":9,"gear_hindrance":1, "protection":2},
|
2: { "label": "ROLE_LEVELS.secondary", "reaction": 3, "reaction_bonus": 1, "pools": 1, "gear": 9, "gear_hindrance": 1, "protection": 2 },
|
||||||
3:{ "label":"ROLE_LEVELS.important", "reaction":3, "reaction_bonus":2, "pools":2, "gear":9,"gear_hindrance":2, "protection":3},
|
3: { "label": "ROLE_LEVELS.important", "reaction": 3, "reaction_bonus": 2, "pools": 2, "gear": 9, "gear_hindrance": 2, "protection": 3 },
|
||||||
4:{ "label":"ROLE_LEVELS.major", "reaction":4, "reaction_bonus":2, "pools":4, "gear":10, "gear_hindrance":2, "protection":3},
|
4: { "label": "ROLE_LEVELS.major", "reaction": 4, "reaction_bonus": 2, "pools": 4, "gear": 10, "gear_hindrance": 2, "protection": 3 },
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.PatternLevels = {
|
VERMINE.PatternLevels = {
|
||||||
1:{ "label":"PATTERN_LEVELS.insect", "attack":2, "damage":0, "minorWound":0, "majorWound":0, "deadlyWound":1},
|
1: { "label": "PATTERN_LEVELS.insect", "attack": 2, "damage": 0, "minorWound": 0, "majorWound": 0, "deadlyWound": 1 },
|
||||||
2:{ "label":"PATTERN_LEVELS.rat", "attack":3, "damage":1, "minorWound":0, "majorWound":1, "deadlyWound":1},
|
2: { "label": "PATTERN_LEVELS.rat", "attack": 3, "damage": 1, "minorWound": 0, "majorWound": 1, "deadlyWound": 1 },
|
||||||
3:{ "label":"PATTERN_LEVELS.dog", "attack":4, "damage":3, "minorWound":1, "majorWound":1, "deadlyWound":1},
|
3: { "label": "PATTERN_LEVELS.dog", "attack": 4, "damage": 3, "minorWound": 1, "majorWound": 1, "deadlyWound": 1 },
|
||||||
4:{ "label":"PATTERN_LEVELS.bear", "attack":6, "damage":6, "minorWound":2, "majorWound":2, "deadlyWound":2},
|
4: { "label": "PATTERN_LEVELS.bear", "attack": 6, "damage": 6, "minorWound": 2, "majorWound": 2, "deadlyWound": 2 },
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.SizeLevels = {
|
VERMINE.SizeLevels = {
|
||||||
1:{ "attack":2, "vigor":1, "minorWound":0, "majorWound":0, "deadlyWound":1},
|
1: { "attack": 2, "vigor": 1, "minorWound": 0, "majorWound": 0, "deadlyWound": 1 },
|
||||||
2:{ "attack":3, "vigor":2, "minorWound":0, "majorWound":1, "deadlyWound":1},
|
2: { "attack": 3, "vigor": 2, "minorWound": 0, "majorWound": 1, "deadlyWound": 1 },
|
||||||
3:{ "attack":4, "vigor":3, "minorWound":1, "majorWound":1, "deadlyWound":1}
|
3: { "attack": 4, "vigor": 3, "minorWound": 1, "majorWound": 1, "deadlyWound": 1 }
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.PackLevels = {
|
VERMINE.PackLevels = {
|
||||||
1:{ "attack":1, "damage":1, "minorWound":0, "majorWound":0, "deadlyWound":1},
|
1: { "attack": 1, "damage": 1, "minorWound": 0, "majorWound": 0, "deadlyWound": 1 },
|
||||||
2:{ "attack":2, "damage":2, "minorWound":2, "majorWound":2, "deadlyWound":2},
|
2: { "attack": 2, "damage": 2, "minorWound": 2, "majorWound": 2, "deadlyWound": 2 },
|
||||||
3:{ "attack":5, "damage":5, "minorWound":3, "majorWound":3, "deadlyWound":3}
|
3: { "attack": 5, "damage": 5, "minorWound": 3, "majorWound": 3, "deadlyWound": 3 }
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.abilityCategories = {
|
VERMINE.abilityCategories = {
|
||||||
"physical": {
|
"physical": {
|
||||||
"label":"VERMINE.ability_category.physical"
|
"label": "VERMINE.ability_category.physical"
|
||||||
},
|
},
|
||||||
"manual": {
|
"manual": {
|
||||||
"label":"VERMINE.ability_category.manual"
|
"label": "VERMINE.ability_category.manual"
|
||||||
},
|
},
|
||||||
"mental": {
|
"mental": {
|
||||||
"label":"VERMINE.ability_category.mental"
|
"label": "VERMINE.ability_category.mental"
|
||||||
},
|
},
|
||||||
"social": {
|
"social": {
|
||||||
"label":"VERMINE.ability_category.social"
|
"label": "VERMINE.ability_category.social"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,64 +96,66 @@ VERMINE.abilities = {
|
|||||||
|
|
||||||
VERMINE.skillCategories = {
|
VERMINE.skillCategories = {
|
||||||
"man": {
|
"man": {
|
||||||
"label":"VERMINE.skill_category.man"
|
"label": "VERMINE.skill_category.man"
|
||||||
},
|
},
|
||||||
"animal": {
|
"animal": {
|
||||||
"label":"VERMINE.skill_category.animal"
|
"label": "VERMINE.skill_category.animal"
|
||||||
},
|
},
|
||||||
"tool": {
|
"tool": {
|
||||||
"label":"VERMINE.skill_category.tool"
|
"label": "VERMINE.skill_category.tool"
|
||||||
},
|
},
|
||||||
"weapon": {
|
"weapon": {
|
||||||
"label":"VERMINE.skill_category.weapon"
|
"label": "VERMINE.skill_category.weapon"
|
||||||
},
|
},
|
||||||
"survival": {
|
"survival": {
|
||||||
"label":"VERMINE.skill_category.survival"
|
"label": "VERMINE.skill_category.survival"
|
||||||
},
|
},
|
||||||
"world": {
|
"world": {
|
||||||
"label":"VERMINE.skill_category.world"
|
"label": "VERMINE.skill_category.world"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.sexes = {"male": "VERMINE.sexes.male", "female": "VERMINE.sexes.female"};
|
VERMINE.sexes = { "male": "VERMINE.sexes.male", "female": "VERMINE.sexes.female" };
|
||||||
|
|
||||||
VERMINE.totems = {
|
VERMINE.totems = {
|
||||||
"human":"TOTEMS.human.name",
|
"human": "TOTEMS.human.name",
|
||||||
"predator": "TOTEMS.predator.name" ,
|
"predator": "TOTEMS.predator.name",
|
||||||
"scavenger": "TOTEMS.scavenger.name" ,
|
"scavenger": "TOTEMS.scavenger.name",
|
||||||
"symbiote": "TOTEMS.symbiote.name" ,
|
"symbiote": "TOTEMS.symbiote.name",
|
||||||
"parasite": "TOTEMS.parasite.name" ,
|
"parasite": "TOTEMS.parasite.name",
|
||||||
"builder": "TOTEMS.builder.name" ,
|
"builder": "TOTEMS.builder.name",
|
||||||
"horde": "TOTEMS.horde.name" ,
|
"horde": "TOTEMS.horde.name",
|
||||||
"hive": "TOTEMS.hive.name" ,
|
"hive": "TOTEMS.hive.name",
|
||||||
"loner": "TOTEMS.loner.name",
|
"loner": "TOTEMS.loner.name",
|
||||||
"adapted": "TOTEMS.adapted.name"
|
"adapted": "TOTEMS.adapted.name"
|
||||||
}
|
}
|
||||||
VERMINE.totem_opposites = {
|
VERMINE.totem_opposites = {
|
||||||
"human":"TOTEMS.adapted.name",
|
"human": "TOTEMS.adapted.name",
|
||||||
"predator": "TOTEMS.scavenger.name" ,
|
"predator": "TOTEMS.scavenger.name",
|
||||||
"scavenger": "TOTEMS.predator.name" ,
|
"scavenger": "TOTEMS.predator.name",
|
||||||
"symbiote": "TOTEMS.parasite.name" ,
|
"symbiote": "TOTEMS.parasite.name",
|
||||||
"parasite": "TOTEMS.symbiote.name" ,
|
"parasite": "TOTEMS.symbiote.name",
|
||||||
"builder": "TOTEMS.horde.name" ,
|
"builder": "TOTEMS.horde.name",
|
||||||
"horde": "TOTEMS.builder.name" ,
|
"horde": "TOTEMS.builder.name",
|
||||||
"hive": "TOTEMS.loner.name" ,
|
"hive": "TOTEMS.loner.name",
|
||||||
"loner": "TOTEMS.hive.name",
|
"loner": "TOTEMS.hive.name",
|
||||||
"adapted": "TOTEMS.human.name"
|
"adapted": "TOTEMS.human.name"
|
||||||
}
|
}
|
||||||
|
|
||||||
VERMINE.origins = {"aon":"Aon",
|
VERMINE.origins = {
|
||||||
"avhorae": "Avhorae" ,
|
"aon": "Aon",
|
||||||
"babel": "Babel",
|
"avhorae": "Avhorae",
|
||||||
"soleil_noir": "Empire du Soleil Noir",
|
"babel": "Babel",
|
||||||
"fakhar": "Fakhar",
|
"soleil_noir": "Empire du Soleil Noir",
|
||||||
"horde": "Horde",
|
"fakhar": "Fakhar",
|
||||||
"khashan": "Khashan",
|
"horde": "Horde",
|
||||||
"ool": "Ool",
|
"khashan": "Khashan",
|
||||||
"shattered_kingdoms": "Royaumes divisés",
|
"ool": "Ool",
|
||||||
"saeth": "Saeth",
|
"shattered_kingdoms": "Royaumes divisés",
|
||||||
"tegee": "Tégée (Thalos)",
|
"saeth": "Saeth",
|
||||||
"tuuhle": "Tuuhle",
|
"tegee": "Tégée (Thalos)",
|
||||||
"vaelor": "Vaelor",
|
"tuuhle": "Tuuhle",
|
||||||
"valdheim": "Valdheim"
|
"vaelor": "Vaelor",
|
||||||
|
"valdheim": "Valdheim"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
import { VermineUtils } from "./roll.mjs";
|
||||||
export class CombatResultDialog extends Dialog {
|
export class CombatResultDialog extends Dialog {
|
||||||
|
|
||||||
constructor(dialogData, options) {
|
constructor(dialogData, options) {
|
||||||
@@ -34,8 +34,48 @@ export class CombatResultDialog extends Dialog {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
export class RollDialog extends Dialog {
|
||||||
|
static async create(rollData) {
|
||||||
|
|
||||||
|
let options = { classes: ["vermine-roll"], width: 420, height: 'fit-content', 'z-index': 99999 };
|
||||||
|
let html = await renderTemplate('systems/vermine2047/templates/roll.hbs', rollData);
|
||||||
|
|
||||||
|
return new RollDialog(actor, rollData, html, options);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
constructor(data, html, options, close = undefined) {
|
||||||
|
let conf = {
|
||||||
|
title: "",
|
||||||
|
content: html,
|
||||||
|
buttons: {
|
||||||
|
roll: {
|
||||||
|
icon: '<i class="fas fa-check"></i>',
|
||||||
|
label: "Lancer !",
|
||||||
|
callback: () => { this.roll(data.actorId, data.label, data.NoD, data.Reroll) }
|
||||||
|
},
|
||||||
|
cancel: {
|
||||||
|
icon: '<i class="fas fa-times"></i>',
|
||||||
|
label: "Annuler",
|
||||||
|
callback: () => { this.close() }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
close: close
|
||||||
|
}
|
||||||
|
|
||||||
|
super(conf, options);
|
||||||
|
|
||||||
|
this.data = data;
|
||||||
|
|
||||||
|
}
|
||||||
|
roll() {
|
||||||
|
VermineUtils.roll(actorId, label, NoD, Reroll = 0, params = {})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
export const getRollBox = async function (data) {
|
export const getRollBox = async function (data) {
|
||||||
|
console.log(data)
|
||||||
|
let actor = await game.actors.get(data.actorId)
|
||||||
let html = await renderTemplate('systems/vermine2047/templates/roll.hbs', data);
|
let html = await renderTemplate('systems/vermine2047/templates/roll.hbs', data);
|
||||||
let dial = new Dialog({
|
let dial = new Dialog({
|
||||||
title: game.i18n.localize("ROLLS.tool"),
|
title: game.i18n.localize("ROLLS.tool"),
|
||||||
@@ -43,7 +83,7 @@ export const getRollBox = async function (data) {
|
|||||||
buttons: {
|
buttons: {
|
||||||
roll: {
|
roll: {
|
||||||
label: game.i18n.localize('ROLLS.roll_dice'),
|
label: game.i18n.localize('ROLLS.roll_dice'),
|
||||||
callback: (html) => {
|
callback: async (html) => {
|
||||||
let form = html.find('#dice-pool-form');
|
let form = html.find('#dice-pool-form');
|
||||||
if (!form[0].checkValidity()) {
|
if (!form[0].checkValidity()) {
|
||||||
throw "Invalid Data";
|
throw "Invalid Data";
|
||||||
@@ -67,6 +107,18 @@ export const getRollBox = async function (data) {
|
|||||||
// réserves
|
// réserves
|
||||||
if (formData.self_control > 0) {
|
if (formData.self_control > 0) {
|
||||||
NoD += parseInt(formData.self_control, 10);
|
NoD += parseInt(formData.self_control, 10);
|
||||||
|
let newSelfControl = actor.system.attributes.self_control.value - parseInt(formData.self_control);
|
||||||
|
if (newSelfControl < 0) {
|
||||||
|
return async () => {
|
||||||
|
await ui.notifications.notify(`vous ne disposez pas d'assez de sang-froid`);
|
||||||
|
dial.render(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
await actor.update({
|
||||||
|
"system.attributes.self_control.value": newSelfControl
|
||||||
|
})
|
||||||
}
|
}
|
||||||
if (formData.group > 0) {
|
if (formData.group > 0) {
|
||||||
NoD += parseInt(formData.group, 10);
|
NoD += parseInt(formData.group, 10);
|
||||||
@@ -83,7 +135,9 @@ export const getRollBox = async function (data) {
|
|||||||
}
|
}
|
||||||
if (formData.abilityScore == 0 || !formData.abilityScore) {
|
if (formData.abilityScore == 0 || !formData.abilityScore) {
|
||||||
ui.notifications.notify(`veuillez saisir une caractéristique`);
|
ui.notifications.notify(`veuillez saisir une caractéristique`);
|
||||||
} else return game.vermine2047.VermineRoll.roll(data.actorId, data.label, NoD, Reroll, data);
|
dial.render(true);
|
||||||
|
} else
|
||||||
|
return VermineUtils.roll(data.actorId, data.label, NoD, Reroll, data);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
close: {
|
close: {
|
||||||
|
|||||||
+46
-47
@@ -1,11 +1,11 @@
|
|||||||
import { VERMINE } from "./config.mjs";
|
import { VERMINE } from "./config.mjs";
|
||||||
import { getActorSkillScore,updateActorSkillScore } from "./functions.mjs";
|
import { getActorSkillScore, updateActorSkillScore } from "./functions.mjs";
|
||||||
|
|
||||||
export class VermineFight {
|
export class VermineFight {
|
||||||
|
|
||||||
async performTest(enemyAchievement, enemyConservation, skillKey, skill, params, actor) {
|
async performTest(enemyAchievement, enemyConservation, skillKey, skill, params, actor) {
|
||||||
const dicePool = (params.spleen != undefined || params.purpose != undefined) ? '5' : '4';
|
const dicePool = (params.spleen != undefined || params.purpose != undefined) ? '5' : '4';
|
||||||
const r = new Roll(dicePool +`d6`);
|
const r = new Roll(dicePool + `d6`);
|
||||||
let diceString = '';
|
let diceString = '';
|
||||||
let dicePoolHint = '';
|
let dicePoolHint = '';
|
||||||
let discardedRoll = false;
|
let discardedRoll = false;
|
||||||
@@ -15,16 +15,16 @@ export class VermineFight {
|
|||||||
|
|
||||||
|
|
||||||
r.roll(); // dice are rolled
|
r.roll(); // dice are rolled
|
||||||
if (params.usure != undefined){
|
if (params.usure != undefined) {
|
||||||
currentSkillScore += params.usure;
|
currentSkillScore += params.usure;
|
||||||
bonus += params.usure;
|
bonus += params.usure;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.specialization != undefined){
|
if (params.specialization != undefined) {
|
||||||
currentSkillScore += 2;
|
currentSkillScore += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.trait != undefined){
|
if (params.trait != undefined) {
|
||||||
currentSkillScore += params.trait;
|
currentSkillScore += params.trait;
|
||||||
bonus += params.trait;
|
bonus += params.trait;
|
||||||
}
|
}
|
||||||
@@ -32,16 +32,16 @@ export class VermineFight {
|
|||||||
bonusText += bonus;
|
bonusText += bonus;
|
||||||
|
|
||||||
let targetText = game.i18n.format('VERMINE.Selected') + ' : ' + game.i18n.format(skillKey) + " " + skill + bonusText;
|
let targetText = game.i18n.format('VERMINE.Selected') + ' : ' + game.i18n.format(skillKey) + " " + skill + bonusText;
|
||||||
if (params.specialization != undefined){
|
if (params.specialization != undefined) {
|
||||||
targetText += " (S)";
|
targetText += " (S)";
|
||||||
}
|
}
|
||||||
// tri par ordre croissant
|
// tri par ordre croissant
|
||||||
r.terms[0].results.sort((a,b) => a.result - b.result );
|
r.terms[0].results.sort((a, b) => a.result - b.result);
|
||||||
|
|
||||||
if (params.purpose != undefined){
|
if (params.purpose != undefined) {
|
||||||
discardedRoll = r.terms[0].results.shift();
|
discardedRoll = r.terms[0].results.shift();
|
||||||
dicePoolHint = ' - ' + game.i18n.format('VERMINE.PurposeTrait');
|
dicePoolHint = ' - ' + game.i18n.format('VERMINE.PurposeTrait');
|
||||||
} else if (params.spleen != undefined){
|
} else if (params.spleen != undefined) {
|
||||||
discardedRoll = r.terms[0].results.pop();
|
discardedRoll = r.terms[0].results.pop();
|
||||||
dicePoolHint = ' - ' + game.i18n.format('VERMINE.SpleenTrait');
|
dicePoolHint = ' - ' + game.i18n.format('VERMINE.SpleenTrait');
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ export class VermineFight {
|
|||||||
|
|
||||||
for (let i = 0; i < r.terms[0].results.length; i++) {
|
for (let i = 0; i < r.terms[0].results.length; i++) {
|
||||||
let result = r.terms[0].results[i].result;
|
let result = r.terms[0].results[i].result;
|
||||||
diceString += '<li class="roll die d6 die-'+ i +'">' + result + '</li>';
|
diceString += '<li class="roll die d6 die-' + i + '">' + result + '</li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
let hintText = game.i18n.format('VERMINE.ConfrontationHint');
|
let hintText = game.i18n.format('VERMINE.ConfrontationHint');
|
||||||
@@ -142,20 +142,20 @@ export class VermineFight {
|
|||||||
|
|
||||||
// sélection du dé actif
|
// sélection du dé actif
|
||||||
html.on("click", '.confrontation .die.d6', event => {
|
html.on("click", '.confrontation .die.d6', event => {
|
||||||
const diceResult = parseInt($(event.target).html(),10);
|
const diceResult = parseInt($(event.target).html(), 10);
|
||||||
html.find('.confrontation .die.d6').removeClass('active');
|
html.find('.confrontation .die.d6').removeClass('active');
|
||||||
$(event.target).addClass('active');
|
$(event.target).addClass('active');
|
||||||
});
|
});
|
||||||
|
|
||||||
// sélection des dés d'accomplissement
|
// sélection des dés d'accomplissement
|
||||||
html.on("click", '.confrontation .add-to-achievement', event => {
|
html.on("click", '.confrontation .add-to-achievement', event => {
|
||||||
const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(),10);
|
const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(), 10);
|
||||||
html.find('.confrontation .die.d6.active').removeClass('min').addClass('max');
|
html.find('.confrontation .die.d6.active').removeClass('min').addClass('max');
|
||||||
});
|
});
|
||||||
|
|
||||||
// sélection des dés de conservation
|
// sélection des dés de conservation
|
||||||
html.on("click", '.confrontation .add-to-conservation', event => {
|
html.on("click", '.confrontation .add-to-conservation', event => {
|
||||||
const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(),10);
|
const diceResult = parseInt(html.find('.confrontation .die.d6.active').html(), 10);
|
||||||
html.find('.confrontation .die.d6.active').removeClass('max').addClass('min');
|
html.find('.confrontation .die.d6.active').removeClass('max').addClass('min');
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -172,10 +172,10 @@ export class VermineFight {
|
|||||||
let conservationDice = 0;
|
let conservationDice = 0;
|
||||||
let achievementBasis = 0;
|
let achievementBasis = 0;
|
||||||
let conservationBasis = 0;
|
let conservationBasis = 0;
|
||||||
html.find('.confrontation .die.d6.max').each(function(index){
|
html.find('.confrontation .die.d6.max').each(function (index) {
|
||||||
achievementDice += parseInt($(this).html(), 10);
|
achievementDice += parseInt($(this).html(), 10);
|
||||||
});
|
});
|
||||||
html.find('.confrontation .die.d6.min').each(function(index){
|
html.find('.confrontation .die.d6.min').each(function (index) {
|
||||||
conservationDice += parseInt($(this).html(), 10);
|
conservationDice += parseInt($(this).html(), 10);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -189,8 +189,8 @@ export class VermineFight {
|
|||||||
html.find('td.conservation-result').html(conservationBasis + conservationDice);
|
html.find('td.conservation-result').html(conservationBasis + conservationDice);
|
||||||
|
|
||||||
// calcul des marges
|
// calcul des marges
|
||||||
const achievementMargin = achievementBasis + achievementDice - parseInt(html.find('td.adv-achievement-result').html(),10);
|
const achievementMargin = achievementBasis + achievementDice - parseInt(html.find('td.adv-achievement-result').html(), 10);
|
||||||
const conservationMargin = conservationBasis + conservationDice - parseInt(html.find('td.adv-conservation-result').html(),10);
|
const conservationMargin = conservationBasis + conservationDice - parseInt(html.find('td.adv-conservation-result').html(), 10);
|
||||||
html.find('td.achievement-margin').html(achievementMargin);
|
html.find('td.achievement-margin').html(achievementMargin);
|
||||||
html.find('td.conservation-margin').html(conservationMargin);
|
html.find('td.conservation-margin').html(conservationMargin);
|
||||||
|
|
||||||
@@ -217,11 +217,11 @@ export class VermineFight {
|
|||||||
// get the actor
|
// get the actor
|
||||||
try {
|
try {
|
||||||
actor = game.user.character;
|
actor = game.user.character;
|
||||||
} catch(e){
|
} catch (e) {
|
||||||
throw("Aucun personnage défini !");
|
throw ("Aucun personnage défini !");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor == null && externalData.speakerId != undefined && externalData.speakerId != null){
|
if (actor == null && externalData.speakerId != undefined && externalData.speakerId != null) {
|
||||||
// on récupère le speakerId, et de là l'objet actor
|
// on récupère le speakerId, et de là l'objet actor
|
||||||
actor = game.actors.get(externalData.speakerId);
|
actor = game.actors.get(externalData.speakerId);
|
||||||
VermineFight.previousValues['speakerName'] = actor.name;
|
VermineFight.previousValues['speakerName'] = actor.name;
|
||||||
@@ -232,7 +232,7 @@ export class VermineFight {
|
|||||||
|
|
||||||
// get the data
|
// get the data
|
||||||
let charData = (externalData) => {
|
let charData = (externalData) => {
|
||||||
let o = Object.assign({ _template: VermineFight.rollerTemplate }, {...VermineFight.previousValues, ...externalData});
|
let o = Object.assign({ _template: VermineFight.rollerTemplate }, { ...VermineFight.previousValues, ...externalData });
|
||||||
return o;
|
return o;
|
||||||
};
|
};
|
||||||
let data = charData(externalData);
|
let data = charData(externalData);
|
||||||
@@ -257,7 +257,7 @@ export class VermineFight {
|
|||||||
switch (e.name) {
|
switch (e.name) {
|
||||||
case "skill":
|
case "skill":
|
||||||
case "cephalic":
|
case "cephalic":
|
||||||
if (e.value !== ''){
|
if (e.value !== '') {
|
||||||
skillKey = e.value;
|
skillKey = e.value;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -291,7 +291,7 @@ export class VermineFight {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
// prise en compte de l'usure sur la feuille de perso
|
// prise en compte de l'usure sur la feuille de perso
|
||||||
if (params.usure != undefined){
|
if (params.usure != undefined) {
|
||||||
const newSpentScore = getActorSkillScore(actor, skillKey, 'spent') + params.usure;
|
const newSpentScore = getActorSkillScore(actor, skillKey, 'spent') + params.usure;
|
||||||
console.log(newSpentScore);
|
console.log(newSpentScore);
|
||||||
updateActorSkillScore(actor, skillKey, 'spent', newSpentScore);
|
updateActorSkillScore(actor, skillKey, 'spent', newSpentScore);
|
||||||
@@ -309,7 +309,7 @@ export class VermineFight {
|
|||||||
h.on("change", 'select[name="skill"]', event => {
|
h.on("change", 'select[name="skill"]', event => {
|
||||||
const skillLabel = $(event.target).val();
|
const skillLabel = $(event.target).val();
|
||||||
const currentSkillScore = getActorSkillScore(actor, skillLabel) - getActorSkillScore(actor, skillLabel, 'spent');
|
const currentSkillScore = getActorSkillScore(actor, skillLabel) - getActorSkillScore(actor, skillLabel, 'spent');
|
||||||
if (parseInt(currentSkillScore,10) >= 0){
|
if (parseInt(currentSkillScore, 10) >= 0) {
|
||||||
h.find('input#skillScore').val(currentSkillScore);
|
h.find('input#skillScore').val(currentSkillScore);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -321,7 +321,7 @@ export class VermineFight {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class VermineCombat extends Combat {
|
export class VermineCombat extends Combat {
|
||||||
_encounterCheck(){
|
_encounterCheck() {
|
||||||
console.log('encounter combat object', this);
|
console.log('encounter combat object', this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,7 +338,7 @@ export class VermineCombat extends Combat {
|
|||||||
}*/
|
}*/
|
||||||
const combatant = this.combatants.get(ids[0]);
|
const combatant = this.combatants.get(ids[0]);
|
||||||
let token = canvas.scene.tokens.get(combatant.tokenId);
|
let token = canvas.scene.tokens.get(combatant.tokenId);
|
||||||
combatant.type = game.actors.get( combatant.actorId)?.type;
|
combatant.type = game.actors.get(combatant.actorId)?.type;
|
||||||
combatant.disposition = token.disposition;
|
combatant.disposition = token.disposition;
|
||||||
let enemies = [];
|
let enemies = [];
|
||||||
|
|
||||||
@@ -346,7 +346,7 @@ export class VermineCombat extends Combat {
|
|||||||
let token = canvas.scene.tokens.get(cbt.tokenId);
|
let token = canvas.scene.tokens.get(cbt.tokenId);
|
||||||
let enemy = token.actor;
|
let enemy = token.actor;
|
||||||
const isEnemy = (token.disposition == -1) ? true : false;
|
const isEnemy = (token.disposition == -1) ? true : false;
|
||||||
if (isEnemy){
|
if (isEnemy) {
|
||||||
enemies.push({
|
enemies.push({
|
||||||
id: enemy.id,
|
id: enemy.id,
|
||||||
name: enemy.name,
|
name: enemy.name,
|
||||||
@@ -363,7 +363,7 @@ export class VermineCombat extends Combat {
|
|||||||
return (token.disposition == 1 && cbt.id != combatant.id) ? true : false;
|
return (token.disposition == 1 && cbt.id != combatant.id) ? true : false;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (combatant.type != 'character'){
|
if (combatant.type != 'character') {
|
||||||
let warningDialogHTML = await renderTemplate('systems/vermine2047/templates/dialogs/warning.html', {
|
let warningDialogHTML = await renderTemplate('systems/vermine2047/templates/dialogs/warning.html', {
|
||||||
warningText: "Seuls les PJs peuvent initier des confrontations. Relancer l'opération au tour du PJ actif."
|
warningText: "Seuls les PJs peuvent initier des confrontations. Relancer l'opération au tour du PJ actif."
|
||||||
});
|
});
|
||||||
@@ -381,7 +381,7 @@ export class VermineCombat extends Combat {
|
|||||||
VermineFight.ui({
|
VermineFight.ui({
|
||||||
speakerId: combatant.actorId,
|
speakerId: combatant.actorId,
|
||||||
speakerWeapons: fightingActor.items.filter(item => item.type == 'weapon'),
|
speakerWeapons: fightingActor.items.filter(item => item.type == 'weapon'),
|
||||||
speakerExperience:fightingActor.system.attributes.experience.value,
|
speakerExperience: fightingActor.system.attributes.experience.value,
|
||||||
speakerEffects: token.actor.effects,
|
speakerEffects: token.actor.effects,
|
||||||
adversaries: enemies,
|
adversaries: enemies,
|
||||||
allies: allies
|
allies: allies
|
||||||
@@ -445,10 +445,10 @@ export class VermineCombatTracker extends CombatTracker {
|
|||||||
|
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
get template() {
|
get template() {
|
||||||
return "systems/gods-system/templates/combat/tracker.hbs";
|
return "systems/vermine2047/templates/combat-tracker.hbs";
|
||||||
}
|
}
|
||||||
|
|
||||||
async getData(options) {
|
async getData(options) {
|
||||||
const context = await super.getData(options);
|
const context = await super.getData(options);
|
||||||
|
|
||||||
if (!context.hasCombat) {
|
if (!context.hasCombat) {
|
||||||
@@ -462,33 +462,32 @@ async getData(options) {
|
|||||||
context.turns[i].isCreature = combatant.actor.type == "creature";
|
context.turns[i].isCreature = combatant.actor.type == "creature";
|
||||||
}
|
}
|
||||||
return context;
|
return context;
|
||||||
}
|
}
|
||||||
|
|
||||||
activateListeners(html) {
|
activateListeners(html) {
|
||||||
super.activateListeners(html);
|
super.activateListeners(html);
|
||||||
|
|
||||||
html.find(".status").click(this._setStatut.bind(this));
|
html.find("[data-attitude]").click(this._setStatut.bind(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description Use to put an attitude to an actor
|
* @description Use to put an attitude to an actor
|
||||||
* @param {*} event
|
* @param {*} event
|
||||||
*/
|
*/
|
||||||
async _setStatut(event) {
|
async _setStatut(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
const btn = event.currentTarget;
|
const btn = event.currentTarget;
|
||||||
|
const attitude = btn.dataset.attitude;
|
||||||
const li = btn.closest(".combatant");
|
const li = btn.closest(".combatant");
|
||||||
const combat = this.viewed;
|
const combat = this.viewed;
|
||||||
const combatant = combat.combatants.get(li.dataset.combatantId);
|
const combatant = combat.combatants.get(li.dataset.combatantId);
|
||||||
|
let flag = combatant.getFlag("world", "attitude");
|
||||||
|
if (flag == attitude) {
|
||||||
|
return await combatant.setFlag("world", "attitude", null);
|
||||||
|
} else {
|
||||||
|
return await combatant.setFlag("world", "attitude", attitude);
|
||||||
|
}
|
||||||
|
|
||||||
if ($(btn).hasClass('offensive'))
|
}
|
||||||
await combatant.setFlag("world", "attitude", "offensive");
|
|
||||||
else if ($(btn).hasClass('active'))
|
|
||||||
await combatant.setFlag("world", "attitude", "active");
|
|
||||||
else if ($(btn).hasClass('passive'))
|
|
||||||
await combatant.setFlag("world", "attitude", "passive");
|
|
||||||
else
|
|
||||||
await combatant.setFlag("world", "attitude", null);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
* Pre-loaded templates are compiled and cached for fast access when rendering
|
* Pre-loaded templates are compiled and cached for fast access when rendering
|
||||||
* @return {Promise}
|
* @return {Promise}
|
||||||
*/
|
*/
|
||||||
export const preloadHandlebarsTemplates = async function() {
|
export const preloadHandlebarsTemplates = async function () {
|
||||||
return loadTemplates([
|
return loadTemplates([
|
||||||
|
|
||||||
|
|
||||||
@@ -76,23 +76,23 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
Handlebars.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
|
Handlebars.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
|
||||||
Handlebars.registerHelper('lower', e => e.toLocaleLowerCase());
|
Handlebars.registerHelper('lower', e => e.toLocaleLowerCase());
|
||||||
|
|
||||||
Handlebars.registerHelper('toLowerCase', function(str) {
|
Handlebars.registerHelper('toLowerCase', function (str) {
|
||||||
return str.toLowerCase();
|
return str.toLowerCase();
|
||||||
});
|
});
|
||||||
|
|
||||||
// search translation with variables
|
// search translation with variables
|
||||||
Handlebars.registerHelper('smarttl', function (arrayLabel,objectLabel, options) {
|
Handlebars.registerHelper('smarttl', function (arrayLabel, objectLabel, options) {
|
||||||
return game.i18n.localize(arrayLabel +"."+objectLabel+".name");
|
return game.i18n.localize(arrayLabel + "." + objectLabel + ".name");
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper('smarttlk', function (arrayLabel,objectLabel, key) {
|
Handlebars.registerHelper('smarttlk', function (arrayLabel, objectLabel, key) {
|
||||||
return game.i18n.localize(arrayLabel +"."+objectLabel+"."+key);
|
return game.i18n.localize(arrayLabel + "." + objectLabel + "." + key);
|
||||||
});
|
});
|
||||||
|
|
||||||
Handlebars.registerHelper('smartcfg', function (configLabel, objectLabel) {
|
Handlebars.registerHelper('smartcfg', function (configLabel, objectLabel) {
|
||||||
let text = "";
|
let text = "";
|
||||||
text = game.i18n.localize(CONFIG.VERMINE[configLabel][objectLabel]);
|
text = game.i18n.localize(CONFIG.VERMINE[configLabel][objectLabel]);
|
||||||
if (text == null){
|
if (text == null) {
|
||||||
text = CONFIG.VERMINE[configLabel][objectLabel];
|
text = CONFIG.VERMINE[configLabel][objectLabel];
|
||||||
}
|
}
|
||||||
return text;
|
return text;
|
||||||
@@ -104,7 +104,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 4)
|
if (level < 1 || level > 4)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.ThreatLevels[level];
|
let levelData = CONFIG.VERMINE.ThreatLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -116,7 +116,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 4)
|
if (level < 1 || level > 4)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.ExperienceLevels[level];
|
let levelData = CONFIG.VERMINE.ExperienceLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -128,7 +128,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 4)
|
if (level < 1 || level > 4)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.RoleLevels[level];
|
let levelData = CONFIG.VERMINE.RoleLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -140,7 +140,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 4)
|
if (level < 1 || level > 4)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.PatternLevels[level];
|
let levelData = CONFIG.VERMINE.PatternLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -152,7 +152,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 4)
|
if (level < 1 || level > 4)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.SizeLevels[level];
|
let levelData = CONFIG.VERMINE.SizeLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -164,7 +164,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 0 || level > 3)
|
if (level < 0 || level > 3)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.PackLevels[level];
|
let levelData = CONFIG.VERMINE.PackLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -177,7 +177,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 5)
|
if (level < 1 || level > 5)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.SkillLevels[level];
|
let levelData = CONFIG.VERMINE.SkillLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -189,7 +189,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 5)
|
if (level < 1 || level > 5)
|
||||||
return "";
|
return "";
|
||||||
let levelData = CONFIG.VERMINE.DifficultyLevels[level];
|
let levelData = CONFIG.VERMINE.DifficultyLevels[level];
|
||||||
if (property == 'label'){
|
if (property == 'label') {
|
||||||
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
return (levelData !== undefined) ? game.i18n.localize(levelData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (levelData !== undefined) ? levelData[property] : "";
|
return (levelData !== undefined) ? levelData[property] : "";
|
||||||
@@ -202,7 +202,7 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
if (level < 1 || level > 3)
|
if (level < 1 || level > 3)
|
||||||
return "";
|
return "";
|
||||||
let ageData = CONFIG.VERMINE.AgeTypes[level];
|
let ageData = CONFIG.VERMINE.AgeTypes[level];
|
||||||
if (property == 'name'){
|
if (property == 'name') {
|
||||||
return (ageData !== undefined) ? game.i18n.localize(ageData[property]) : "";
|
return (ageData !== undefined) ? game.i18n.localize(ageData[property]) : "";
|
||||||
} else {
|
} else {
|
||||||
return (ageData !== undefined) ? ageData[property] : "";
|
return (ageData !== undefined) ? ageData[property] : "";
|
||||||
@@ -217,21 +217,47 @@ export const registerHandlebarsHelpers = function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Handlebars.registerHelper('range', function() {
|
Handlebars.registerHelper('range', function () {
|
||||||
var args = Array.prototype.slice.call(arguments),
|
var args = Array.prototype.slice.call(arguments),
|
||||||
rangeArgs = args.slice(0, -1),
|
rangeArgs = args.slice(0, -1),
|
||||||
options = args[args.length - 1];
|
options = args[args.length - 1];
|
||||||
|
|
||||||
return range.apply(null, rangeArgs)
|
return range.apply(null, rangeArgs)
|
||||||
.map(function(num) { return options.fn(num); })
|
.map(function (num) { return options.fn(num); })
|
||||||
.join('');
|
.join('');
|
||||||
});
|
});
|
||||||
|
|
||||||
// return age type information
|
// return age type information
|
||||||
Handlebars.registerHelper('ife', function(arg1, arg2, options) {
|
Handlebars.registerHelper('ife', function (arg1, arg2, options) {
|
||||||
return (arg1 == arg2) ? options.fn(this) : options.inverse(this);
|
return (arg1 == arg2) ? options.fn(this) : options.inverse(this);
|
||||||
});
|
});
|
||||||
|
Handlebars.registerHelper('ifgt', function (a, b, options) {
|
||||||
|
if (a > b) { return options.fn(this); }
|
||||||
|
return options.inverse(this);
|
||||||
|
});
|
||||||
|
Handlebars.registerHelper('iflt', function (a, b, options) {
|
||||||
|
if (a < b) { return options.fn(this); }
|
||||||
|
return options.inverse(this);
|
||||||
|
});
|
||||||
|
Handlebars.registerHelper('ifgteq', function (a, b, options) {
|
||||||
|
if (a >= b) { return options.fn(this); }
|
||||||
|
return options.inverse(this);
|
||||||
|
});
|
||||||
|
Handlebars.registerHelper('iflteq', function (a, b, options) {
|
||||||
|
if (a <= b) { return options.fn(this); }
|
||||||
|
return options.inverse(this);
|
||||||
|
});
|
||||||
|
|
||||||
|
Handlebars.registerHelper('repeat', function (times, start, block) {
|
||||||
|
var accum = '';
|
||||||
|
if (!start) { start = 0; }
|
||||||
|
for (var i = start; i < times + start; ++i) {
|
||||||
|
block.data.index = i;
|
||||||
|
block.data.first = i === start;
|
||||||
|
block.data.last = i === (times + start - 1);
|
||||||
|
accum += block.fn(this);
|
||||||
|
}
|
||||||
|
return accum;
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
+46
-7
@@ -1,12 +1,10 @@
|
|||||||
export class VermineRoll {
|
export class VermineUtils {
|
||||||
|
|
||||||
static roll(actorId, label, NoD, Reroll = 0, params = {}){
|
static roll(actorId, label, NoD, Reroll = 0, params = {}) {
|
||||||
const actor = game.actors.get(actorId);
|
const actor = game.actors.get(actorId);
|
||||||
let formula = '' + (parseInt(NoD,10) + parseInt(Reroll,10)) + "d10";
|
let formula = '' + NoD + "d10";
|
||||||
if (Reroll > 0 && params.difficulty != undefined){
|
|
||||||
formula += 'kh' + NoD;
|
formula += (params.difficulty != undefined) ? "cs>=" + params.difficulty : "cs>=7";
|
||||||
}
|
|
||||||
formula += (params.difficulty != undefined) ? "cs>" + params.difficulty : "cs>7";
|
|
||||||
let roll = new Roll(formula, actor.getRollData());
|
let roll = new Roll(formula, actor.getRollData());
|
||||||
roll.toMessage({
|
roll.toMessage({
|
||||||
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
speaker: ChatMessage.getSpeaker({ actor: actor }),
|
||||||
@@ -16,6 +14,47 @@ export class VermineRoll {
|
|||||||
return roll;
|
return roll;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async showDiceSoNice(roll, rollMode) {
|
||||||
|
if (game.modules.get("dice-so-nice")?.active) {
|
||||||
|
if (game.dice3d) {
|
||||||
|
let whisper = null;
|
||||||
|
let blind = false;
|
||||||
|
rollMode = rollMode ?? game.settings.get("core", "rollMode");
|
||||||
|
switch (rollMode) {
|
||||||
|
case "blindroll": //GM only
|
||||||
|
blind = true;
|
||||||
|
case "gmroll": //GM + rolling player
|
||||||
|
whisper = this.getUsers(user => user.isGM);
|
||||||
|
break;
|
||||||
|
case "roll": //everybody
|
||||||
|
whisper = this.getUsers(user => user.active);
|
||||||
|
break;
|
||||||
|
case "selfroll":
|
||||||
|
whisper = [game.user.id];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
await game.dice3d.showForRoll(roll, game.user, true, whisper, blind);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* -------------------------------------------- */
|
||||||
|
static async chatListeners(html) {
|
||||||
|
|
||||||
|
html.on("click", '.roll-dice-bonus', event => {
|
||||||
|
let rollData = this.getRollDataFromMessage(event)
|
||||||
|
|
||||||
|
let msgId = VermineRoll.findChatMessageId(event.currentTarget)
|
||||||
|
nocUtility.removeChatMessageId(msgId)
|
||||||
|
|
||||||
|
let nbDice = $(event.target).data('nb-dice')
|
||||||
|
console.log(">>>>>", nbDice)
|
||||||
|
this.rollBonus(rollData, nbDice)
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,20 @@ export const registerSettings = function () {
|
|||||||
},
|
},
|
||||||
default: 'e',
|
default: 'e',
|
||||||
onChange: value => {
|
onChange: value => {
|
||||||
// console.log(value);
|
let el = document.querySelector('.game-mode');
|
||||||
|
el.id = 'game-mode-' + game.settings.get('vermine2047', 'game-mode')
|
||||||
|
switch (game.settings.get('vermine2047', 'game-mode')) {
|
||||||
|
case '1':
|
||||||
|
el.innerText = 'mode survie';
|
||||||
|
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
el.innerText = 'mode cauchemard'
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
el.innerText = 'mode apocalypse'
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+23
-4
@@ -12,7 +12,7 @@ import { VermineCreatureSheet } from "./sheets/creature-sheet.mjs";
|
|||||||
import { VermineItem } from "./documents/item.mjs";
|
import { VermineItem } from "./documents/item.mjs";
|
||||||
import { VermineItemSheet } from "./sheets/item-sheet.mjs";
|
import { VermineItemSheet } from "./sheets/item-sheet.mjs";
|
||||||
|
|
||||||
import { VermineRoll } from "./system/roll.mjs";
|
import { VermineUtils } from "./system/roll.mjs";
|
||||||
import { VermineCombat, VermineCombatTracker } from "./system/fight.mjs";
|
import { VermineCombat, VermineCombatTracker } from "./system/fight.mjs";
|
||||||
|
|
||||||
// Import helper/utility classes and constants.
|
// Import helper/utility classes and constants.
|
||||||
@@ -23,20 +23,21 @@ import { VERMINE } from "./system/config.mjs";
|
|||||||
/* Init Hook */
|
/* Init Hook */
|
||||||
/* -------------------------------------------- */
|
/* -------------------------------------------- */
|
||||||
|
|
||||||
Hooks.once('init', async function() {
|
Hooks.once('init', async function () {
|
||||||
|
|
||||||
// Add utility classes to the global game object so that they're more easily
|
// Add utility classes to the global game object so that they're more easily
|
||||||
// accessible in global contexts.
|
// accessible in global contexts.
|
||||||
game.vermine2047 = {
|
game.vermine2047 = {
|
||||||
VermineActor,
|
VermineActor,
|
||||||
VermineItem,
|
VermineItem,
|
||||||
VermineRoll,
|
VermineUtils,
|
||||||
VermineCombat
|
VermineCombat
|
||||||
};
|
};
|
||||||
|
|
||||||
// Add custom constants for configuration.
|
// Add custom constants for configuration.
|
||||||
CONFIG.VERMINE = VERMINE;
|
CONFIG.VERMINE = VERMINE;
|
||||||
|
CONFIG.VERMINE.model = game.system.model
|
||||||
|
console.log('__________________', CONFIG.VERMINE)
|
||||||
/**
|
/**
|
||||||
* Set an initiative formula for the system
|
* Set an initiative formula for the system
|
||||||
* @type {String}
|
* @type {String}
|
||||||
@@ -79,6 +80,24 @@ Hooks.once('init', async function() {
|
|||||||
registerHooks(); // register Hooks
|
registerHooks(); // register Hooks
|
||||||
registerSettings(); // register Vermine Settings
|
registerSettings(); // register Vermine Settings
|
||||||
|
|
||||||
|
//afficher le mode de jeu
|
||||||
|
let mode = game.settings.get('vermine2047', 'game-mode');
|
||||||
|
let el = document.createElement('SPAN');
|
||||||
|
switch (mode) {
|
||||||
|
case '1':
|
||||||
|
el.innerText = 'mode survie';
|
||||||
|
break;
|
||||||
|
case '2':
|
||||||
|
el.innerText = 'mode cauchemard';
|
||||||
|
break;
|
||||||
|
case '3':
|
||||||
|
el.innerText = 'mode apocalypse';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
el.classList.add('game-mode');
|
||||||
|
el.id = 'game-mode-' + mode;
|
||||||
|
document.querySelector('#ui-left').prepend(el);
|
||||||
// Preload Handlebars templates.
|
// Preload Handlebars templates.
|
||||||
return preloadHandlebarsTemplates();
|
return preloadHandlebarsTemplates();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
Generated
+5887
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"name": "vermine2047",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "vermine 2047 for foundry",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"launch Foundry11": "cd C:/Program Files/Foundry Virtual Tabletop_V11/resources/app && node main.js",
|
||||||
|
"watch": "gulp watch",
|
||||||
|
"buildStyle": "gulp buildStyles"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"devDependencies": {
|
||||||
|
"@typhonjs-fvtt/eslint-config-foundry.js": "^0.8.0",
|
||||||
|
"browser-sync": "^2.27.11",
|
||||||
|
"gulp": "^4.0.2",
|
||||||
|
"gulp-sass": "^5.1.0",
|
||||||
|
"sass": "^1.55.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1 +1 @@
|
|||||||
MANIFEST-000127
|
MANIFEST-000149
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
2023/09/07-17:43:25.272832 7f3e00bf0640 Recovering log #125
|
2024/04/21-11:00:14.926 40b8 Recovering log #147
|
||||||
2023/09/07-17:43:25.289734 7f3e00bf0640 Delete type=0 #125
|
2024/04/21-11:00:14.930 40b8 Delete type=0 #147
|
||||||
2023/09/07-17:43:25.289773 7f3e00bf0640 Delete type=3 #123
|
2024/04/21-11:00:14.930 40b8 Delete type=3 #145
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2023/09/07-17:42:45.351570 7f3e00bf0640 Recovering log #121
|
2024/04/21-08:39:21.586 3594 Recovering log #144
|
||||||
2023/09/07-17:42:45.359683 7f3e00bf0640 Delete type=0 #121
|
2024/04/21-08:39:21.591 3594 Delete type=0 #144
|
||||||
2023/09/07-17:42:45.359723 7f3e00bf0640 Delete type=3 #119
|
2024/04/21-08:39:21.591 3594 Delete type=3 #143
|
||||||
2023/09/07-17:43:21.919681 7f3df7cfb640 Level-0 table #126: started
|
2024/04/21-10:20:47.336 5c50 Level-0 table #148: started
|
||||||
2023/09/07-17:43:21.919705 7f3df7cfb640 Level-0 table #126: 0 bytes OK
|
2024/04/21-10:20:47.336 5c50 Level-0 table #148: 0 bytes OK
|
||||||
2023/09/07-17:43:21.925140 7f3df7cfb640 Delete type=0 #124
|
2024/04/21-10:20:47.337 5c50 Delete type=0 #146
|
||||||
2023/09/07-17:43:21.932544 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.355 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000127
|
MANIFEST-000149
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
2023/09/07-17:43:25.309925 7f3e01bf2640 Recovering log #125
|
2024/04/21-11:00:14.993 40b8 Recovering log #147
|
||||||
2023/09/07-17:43:25.325289 7f3e01bf2640 Delete type=0 #125
|
2024/04/21-11:00:14.999 40b8 Delete type=0 #147
|
||||||
2023/09/07-17:43:25.325377 7f3e01bf2640 Delete type=3 #123
|
2024/04/21-11:00:14.999 40b8 Delete type=3 #145
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2023/09/07-17:42:45.379151 7f3e01bf2640 Recovering log #121
|
2024/04/21-08:39:21.654 3594 Recovering log #144
|
||||||
2023/09/07-17:42:45.393418 7f3e01bf2640 Delete type=0 #121
|
2024/04/21-08:39:21.658 3594 Delete type=0 #144
|
||||||
2023/09/07-17:42:45.393457 7f3e01bf2640 Delete type=3 #119
|
2024/04/21-08:39:21.658 3594 Delete type=3 #143
|
||||||
2023/09/07-17:43:21.937228 7f3df7cfb640 Level-0 table #126: started
|
2024/04/21-10:20:47.365 5c50 Level-0 table #148: started
|
||||||
2023/09/07-17:43:21.937306 7f3df7cfb640 Level-0 table #126: 0 bytes OK
|
2024/04/21-10:20:47.365 5c50 Level-0 table #148: 0 bytes OK
|
||||||
2023/09/07-17:43:21.941263 7f3df7cfb640 Delete type=0 #124
|
2024/04/21-10:20:47.367 5c50 Delete type=0 #146
|
||||||
2023/09/07-17:43:21.945982 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.367 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000111
|
MANIFEST-000133
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
2023/09/07-17:43:25.291517 7f3e013f1640 Recovering log #109
|
2024/04/21-11:00:14.944 40b8 Recovering log #131
|
||||||
2023/09/07-17:43:25.305979 7f3e013f1640 Delete type=0 #109
|
2024/04/21-11:00:14.950 40b8 Delete type=0 #131
|
||||||
2023/09/07-17:43:25.306018 7f3e013f1640 Delete type=3 #107
|
2024/04/21-11:00:14.950 40b8 Delete type=3 #129
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2023/09/07-17:42:45.361812 7f3e023f3640 Recovering log #105
|
2024/04/21-08:39:21.607 3594 Recovering log #128
|
||||||
2023/09/07-17:42:45.375049 7f3e023f3640 Delete type=3 #103
|
2024/04/21-08:39:21.613 3594 Delete type=0 #128
|
||||||
2023/09/07-17:42:45.375081 7f3e023f3640 Delete type=0 #105
|
2024/04/21-08:39:21.613 3594 Delete type=3 #127
|
||||||
2023/09/07-17:43:21.928733 7f3df7cfb640 Level-0 table #110: started
|
2024/04/21-10:20:47.362 5c50 Level-0 table #132: started
|
||||||
2023/09/07-17:43:21.928798 7f3df7cfb640 Level-0 table #110: 0 bytes OK
|
2024/04/21-10:20:47.362 5c50 Level-0 table #132: 0 bytes OK
|
||||||
2023/09/07-17:43:21.932413 7f3df7cfb640 Delete type=0 #108
|
2024/04/21-10:20:47.363 5c50 Delete type=0 #130
|
||||||
2023/09/07-17:43:21.932652 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.364 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000125
|
MANIFEST-000147
|
||||||
|
|||||||
+3
-3
@@ -1,3 +1,3 @@
|
|||||||
2023/09/07-17:43:25.308285 7f3e00bf0640 Recovering log #123
|
2024/04/21-11:00:14.982 56d0 Recovering log #145
|
||||||
2023/09/07-17:43:25.322724 7f3e00bf0640 Delete type=3 #121
|
2024/04/21-11:00:14.987 56d0 Delete type=0 #145
|
||||||
2023/09/07-17:43:25.322771 7f3e00bf0640 Delete type=0 #123
|
2024/04/21-11:00:14.987 56d0 Delete type=3 #143
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2023/09/07-17:42:45.376908 7f3e013f1640 Recovering log #119
|
2024/04/21-08:39:21.641 5300 Recovering log #142
|
||||||
2023/09/07-17:42:45.390868 7f3e013f1640 Delete type=0 #119
|
2024/04/21-08:39:21.646 5300 Delete type=0 #142
|
||||||
2023/09/07-17:42:45.390911 7f3e013f1640 Delete type=3 #117
|
2024/04/21-08:39:21.647 5300 Delete type=3 #141
|
||||||
2023/09/07-17:43:21.941413 7f3df7cfb640 Level-0 table #124: started
|
2024/04/21-10:20:47.358 5c50 Level-0 table #146: started
|
||||||
2023/09/07-17:43:21.941481 7f3df7cfb640 Level-0 table #124: 0 bytes OK
|
2024/04/21-10:20:47.358 5c50 Level-0 table #146: 0 bytes OK
|
||||||
2023/09/07-17:43:21.945682 7f3df7cfb640 Delete type=0 #122
|
2024/04/21-10:20:47.360 5c50 Delete type=0 #144
|
||||||
2023/09/07-17:43:21.946023 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.364 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
-1
@@ -1 +1 @@
|
|||||||
MANIFEST-000018
|
MANIFEST-000043
|
||||||
|
|||||||
+3
-3
@@ -1,3 +1,3 @@
|
|||||||
2023/09/07-17:43:25.262013 7f3e013f1640 Recovering log #16
|
2024/04/21-11:00:14.957 56d0 Recovering log #41
|
||||||
2023/09/07-17:43:25.270615 7f3e013f1640 Delete type=3 #14
|
2024/04/21-11:00:14.962 56d0 Delete type=0 #41
|
||||||
2023/09/07-17:43:25.270709 7f3e013f1640 Delete type=0 #16
|
2024/04/21-11:00:14.962 56d0 Delete type=3 #39
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
2023/09/07-17:42:45.340397 7f3e013f1640 Recovering log #12
|
2024/04/21-08:39:21.618 5300 Recovering log #38
|
||||||
2023/09/07-17:42:45.348853 7f3e013f1640 Delete type=0 #12
|
2024/04/21-08:39:21.623 5300 Delete type=0 #38
|
||||||
2023/09/07-17:42:45.348874 7f3e013f1640 Delete type=3 #10
|
2024/04/21-08:39:21.623 5300 Delete type=3 #37
|
||||||
2023/09/07-17:43:21.915992 7f3df7cfb640 Level-0 table #17: started
|
2024/04/21-10:20:47.360 5c50 Level-0 table #42: started
|
||||||
2023/09/07-17:43:21.916004 7f3df7cfb640 Level-0 table #17: 0 bytes OK
|
2024/04/21-10:20:47.360 5c50 Level-0 table #42: 0 bytes OK
|
||||||
2023/09/07-17:43:21.919638 7f3df7cfb640 Delete type=0 #15
|
2024/04/21-10:20:47.362 5c50 Delete type=0 #40
|
||||||
2023/09/07-17:43:21.925330 7f3df7cfb640 Manual compaction at level-0 from '!items!10vhNURxl8FOwfy0' @ 72057594037927935 : 1 .. '!items!vX832Z4LpasxLIIx' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.364 5c50 Manual compaction at level-0 from '!items!10vhNURxl8FOwfy0' @ 72057594037927935 : 1 .. '!items!vX832Z4LpasxLIIx' @ 0 : 0; will stop at (end)
|
||||||
2023/09/07-17:43:21.932584 7f3df7cfb640 Manual compaction at level-1 from '!items!10vhNURxl8FOwfy0' @ 72057594037927935 : 1 .. '!items!vX832Z4LpasxLIIx' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.364 5c50 Manual compaction at level-1 from '!items!10vhNURxl8FOwfy0' @ 72057594037927935 : 1 .. '!items!vX832Z4LpasxLIIx' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000018
|
MANIFEST-000040
|
||||||
|
|||||||
+3
-3
@@ -1,3 +1,3 @@
|
|||||||
2023/09/07-17:43:25.262019 7f3e023f3640 Recovering log #16
|
2024/04/21-11:00:14.969 40b8 Recovering log #38
|
||||||
2023/09/07-17:43:25.273130 7f3e023f3640 Delete type=3 #14
|
2024/04/21-11:00:14.975 40b8 Delete type=0 #38
|
||||||
2023/09/07-17:43:25.273157 7f3e023f3640 Delete type=0 #16
|
2024/04/21-11:00:14.975 40b8 Delete type=3 #36
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
2023/09/07-17:42:45.340398 7f3e01bf2640 Recovering log #12
|
2024/04/21-08:39:21.629 3594 Recovering log #35
|
||||||
2023/09/07-17:42:45.348853 7f3e01bf2640 Delete type=0 #12
|
2024/04/21-08:39:21.634 3594 Delete type=0 #35
|
||||||
2023/09/07-17:42:45.348878 7f3e01bf2640 Delete type=3 #10
|
2024/04/21-08:39:21.634 3594 Delete type=3 #34
|
||||||
2023/09/07-17:43:21.901412 7f3df7cfb640 Level-0 table #17: started
|
2024/04/21-10:20:47.356 5c50 Level-0 table #39: started
|
||||||
2023/09/07-17:43:21.901429 7f3df7cfb640 Level-0 table #17: 0 bytes OK
|
2024/04/21-10:20:47.356 5c50 Level-0 table #39: 0 bytes OK
|
||||||
2023/09/07-17:43:21.905137 7f3df7cfb640 Delete type=0 #15
|
2024/04/21-10:20:47.358 5c50 Delete type=0 #37
|
||||||
2023/09/07-17:43:21.915980 7f3df7cfb640 Manual compaction at level-0 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.364 5c50 Manual compaction at level-0 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end)
|
||||||
2023/09/07-17:43:21.919676 7f3df7cfb640 Manual compaction at level-1 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.364 5c50 Manual compaction at level-1 from '!tables!UxgGMRs0kTplpTbe' @ 72057594037927935 : 1 .. '!tables.results!dXo0EN9ieo1tSnRY.ymnitiW2yAuk75M3' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
MANIFEST-000125
|
MANIFEST-000147
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
2023/09/07-17:43:25.274840 7f3e01bf2640 Recovering log #123
|
2024/04/21-11:00:14.935 56d0 Recovering log #145
|
||||||
2023/09/07-17:43:25.292451 7f3e01bf2640 Delete type=3 #121
|
2024/04/21-11:00:14.939 56d0 Delete type=0 #145
|
||||||
2023/09/07-17:43:25.292504 7f3e01bf2640 Delete type=0 #123
|
2024/04/21-11:00:14.939 56d0 Delete type=3 #143
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
2023/09/07-17:42:45.351565 7f3e023f3640 Recovering log #119
|
2024/04/21-08:39:21.598 5300 Recovering log #142
|
||||||
2023/09/07-17:42:45.359682 7f3e023f3640 Delete type=0 #119
|
2024/04/21-08:39:21.602 5300 Delete type=0 #142
|
||||||
2023/09/07-17:42:45.359722 7f3e023f3640 Delete type=3 #117
|
2024/04/21-08:39:21.602 5300 Delete type=3 #141
|
||||||
2023/09/07-17:43:21.925366 7f3df7cfb640 Level-0 table #124: started
|
2024/04/21-10:20:47.353 5c50 Level-0 table #146: started
|
||||||
2023/09/07-17:43:21.925434 7f3df7cfb640 Level-0 table #124: 0 bytes OK
|
2024/04/21-10:20:47.353 5c50 Level-0 table #146: 0 bytes OK
|
||||||
2023/09/07-17:43:21.928599 7f3df7cfb640 Delete type=0 #122
|
2024/04/21-10:20:47.354 5c50 Delete type=0 #144
|
||||||
2023/09/07-17:43:21.932611 7f3df7cfb640 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
2024/04/21-10:20:47.355 5c50 Manual compaction at level-0 from 'undefined' @ 72057594037927935 : 1 .. 'undefined' @ 0 : 0; will stop at (end)
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,544 @@
|
|||||||
|
@font-face {
|
||||||
|
font-family: "DistressBlack";
|
||||||
|
src: url("../assets/fonts/dcc_sharp_distress_black_by_dccanim.otf");
|
||||||
|
}
|
||||||
|
|
||||||
|
.sans-font {
|
||||||
|
font-family: "DistressBlack", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Change shadow colors and Foundry general font color!! */
|
||||||
|
.app {
|
||||||
|
box-shadow: 0 0 20px #7e4444;
|
||||||
|
/* Change the color code here for a nice shadow color! */
|
||||||
|
color: #dfdfdf;
|
||||||
|
/* Text color for window titles and menu all across Foundry */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Character and Item Name Titles Text style! */
|
||||||
|
.sheet .charname input {
|
||||||
|
color: #191813;
|
||||||
|
font-family: "DistressBlack", sans-serif;
|
||||||
|
font-size: 30px;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* custom styles */
|
||||||
|
body.system-vermine2047 img#logo {
|
||||||
|
content: url("/systems/vermine2047/assets/images/ui/logo_vermine_foundry.webp");
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Customize the chat roll area! */
|
||||||
|
#chat-form textarea {
|
||||||
|
background: url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat;
|
||||||
|
/*font-family: monospace;
|
||||||
|
font-size: 14px;
|
||||||
|
color: black; */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Customize the chat history area! */
|
||||||
|
#chat-log .message {
|
||||||
|
background: url(/systems/vermine2047/assets/images/ui/box_background.webp) repeat;
|
||||||
|
/*color: #191813; */
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.unstyled {
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.unstyled li {
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.padding-with-frieze {
|
||||||
|
margin-left: 18% !important;
|
||||||
|
margin-right: 10% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.padding-with-frieze li {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.w-full {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mx-auto {
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
/* Sheet Structure */
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
.system-vermine2047 .sheet .window-content {
|
||||||
|
background: url(/systems/vermine2047/assets/images/ui/box_background.webp);
|
||||||
|
padding: 0;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .dialog .window-content {
|
||||||
|
background: url(/systems/vermine2047/assets/images/ui/fond_chat_box.webp);
|
||||||
|
padding: 0.5rem;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.window-content .row.smb {
|
||||||
|
margin-bottom: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.window-content .row.mdb {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.window-content .row.lgb {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet form .form {
|
||||||
|
display: grid;
|
||||||
|
/*grid:
|
||||||
|
"sidebar header" 75px
|
||||||
|
"sidebar nav" minmax(min-content, max-content)
|
||||||
|
"sidebar content" 1fr/230px 1fr;*/
|
||||||
|
grid-template-columns: minmax(230px, 1fr) 3fr;
|
||||||
|
grid-template-rows: 1fr;
|
||||||
|
align-items: flex-start;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form aside {
|
||||||
|
grid-row: span 1 / span 1;
|
||||||
|
background-image: url(/systems/vermine2047/assets/images/ui/barre_laterale.webp);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: 12% 50%;
|
||||||
|
background-size: 400%;
|
||||||
|
height: 100%;
|
||||||
|
box-shadow: -20px 0px 100px #000000b5 inset
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form main {
|
||||||
|
box-shadow: 10px 0px 100px #000000b5 inset;
|
||||||
|
padding-left: 1rem;
|
||||||
|
grid-row: span 1 / span 1;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form aside .image-wrapper {
|
||||||
|
margin: 1rem auto 3rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form aside .image-wrapper img {
|
||||||
|
width: 170px;
|
||||||
|
height: 145px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form aside .paper {
|
||||||
|
margin-top: 1rem;
|
||||||
|
height: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form aside .second-paper {
|
||||||
|
margin-top: 4rem;
|
||||||
|
height: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form h3 {
|
||||||
|
font-family: "DistressBlack", sans-serif;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
color: #4e564c;
|
||||||
|
font-size: 1.7rem;
|
||||||
|
border-bottom: none;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form h4,
|
||||||
|
.item.sheet .form h4 {
|
||||||
|
font-family: "DistressBlack", sans-serif;
|
||||||
|
font-size: 1.4em;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin: 0 0 0.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form .characteristics h4 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
margin-top: 0 0.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet .form .tab.totem h4,
|
||||||
|
.actor.sheet .form .tab.equipment h4,
|
||||||
|
.actor.sheet .form .tab.stories h4 {
|
||||||
|
margin-top: 0.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .char-header {
|
||||||
|
font-family: "DistressBlack", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .char-header section {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .char-header h1.char-name,
|
||||||
|
.system-vermine2047 .char-vermine2047 {
|
||||||
|
border-bottom: none;
|
||||||
|
line-height: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .char-vermine2047 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form input[type=text],
|
||||||
|
.system-vermine2047 .sheet.actor form input[type=number] {
|
||||||
|
width: calc(100% - 2px);
|
||||||
|
height: calc(100% - 2px);
|
||||||
|
background: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 1px 0;
|
||||||
|
color: #333;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
|
||||||
|
&.hexa {
|
||||||
|
clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
|
||||||
|
background: radial-gradient(circle, rgba(255, 255, 255, 0.425) 0%, rgba(0, 0, 0, 0.288) 100%);
|
||||||
|
height: unset;
|
||||||
|
max-width: 1.5rem;
|
||||||
|
aspect-ratio: 1/1;
|
||||||
|
color: black
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form input[type=text]:hover:not(:disabled),
|
||||||
|
.system-vermine2047 .sheet.actor form input[type=text]:focus,
|
||||||
|
.system-vermine2047 .sheet.actor form select:hover:not(:disabled),
|
||||||
|
.system-vermine2047 .sheet.actor form select:focus,
|
||||||
|
.system-vermine2047 .sheet.actor form input[type=number]:hover:not(:disabled),
|
||||||
|
.system-vermine2047 .sheet.actor form input[type=number]:focus,
|
||||||
|
.system-vermine2047 .sheet.actor form textarea:hover:not(:disabled),
|
||||||
|
.system-vermine2047 .sheet.actor form textarea:focus {
|
||||||
|
box-shadow: 0 0 10px #005a3c inset;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form select {
|
||||||
|
font-size: 0.6rem;
|
||||||
|
border: none;
|
||||||
|
appearance: none;
|
||||||
|
min-width: fit-content;
|
||||||
|
max-width: fit-content;
|
||||||
|
padding: 0 0.2rem;
|
||||||
|
margin: 0 0.2rem;
|
||||||
|
cursor: help;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form label {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form .mce-panel span {
|
||||||
|
display: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form.editable .rollable:hover,
|
||||||
|
.system-vermine2047 .sheet.actor form.editable a:hover {
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0 5px 5px #1fa832;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form .sheet-tabs {
|
||||||
|
font-weight: 500;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row {
|
||||||
|
line-height: 24px;
|
||||||
|
padding-top: 3px;
|
||||||
|
font-size: 2rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row:last-of-type {
|
||||||
|
padding-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form .sheet-tabs>.list-row.active {
|
||||||
|
color: #000;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form .tab {
|
||||||
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form .tag-legacy {
|
||||||
|
float: left;
|
||||||
|
margin: 0 2px 2px 0;
|
||||||
|
padding: 0 3px;
|
||||||
|
font-size: var(--font-size-10);
|
||||||
|
line-height: 16px;
|
||||||
|
border: 1px solid #999;
|
||||||
|
border-radius: 3px;
|
||||||
|
white-space: normal;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
/* Actor Sheet */
|
||||||
|
/* ---------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor,
|
||||||
|
.system-vermine2047 .sheet.actor .window-content {
|
||||||
|
min-width: 690px;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sidebar {
|
||||||
|
width: 230px;
|
||||||
|
min-height: 518px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .floatright {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-upper {
|
||||||
|
height: 268px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-upper .sheet-header {
|
||||||
|
height: 48px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-upper .sheet-profile,
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-upper .sheet-showcase {
|
||||||
|
height: 220px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-content {
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-sidebar {
|
||||||
|
height: calc(100% - 48px);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-sidebar>* {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-sidebar .sidebar-summary {
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper {
|
||||||
|
height: 220px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor.npc-sheet .sheet-upper .sheet-showcase {
|
||||||
|
height: 172px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor.npc-sheet .sheet-lower {
|
||||||
|
height: calc(100% - 220px - 32px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-navigation {
|
||||||
|
border-top: 1px solid var(--secondary-background);
|
||||||
|
border-bottom: 1px solid var(--primary-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs>.list-row {
|
||||||
|
border-radius: 5px 5px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .sheet-navigation .sheet-tabs>.list-row.active {
|
||||||
|
border: 1px solid #666;
|
||||||
|
border-bottom: none;
|
||||||
|
/* box-shadow: 0 0 10px inset #ff6400;
|
||||||
|
*/
|
||||||
|
background: var(--primary-background);
|
||||||
|
color: #fff;
|
||||||
|
text-shadow: none;
|
||||||
|
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0 0 10px #00005a;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.actor.sheet nav.sheet-navigation {
|
||||||
|
display: inline-flex;
|
||||||
|
justify-content: space-around;
|
||||||
|
align-items: center;
|
||||||
|
height: 54px;
|
||||||
|
background: url(../assets/images/ui/barre_haut.webp) no-repeat right top;
|
||||||
|
background-size: 100% 100%;
|
||||||
|
width: 100%;
|
||||||
|
position: relative;
|
||||||
|
padding-right: 4rem;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet nav.sheet-navigation.tabs .item {
|
||||||
|
height: 2.4rem;
|
||||||
|
display: inline-block;
|
||||||
|
z-index: 1;
|
||||||
|
transition: all 0.1s ease-out;
|
||||||
|
color: #606060;
|
||||||
|
box-shadow: 0px 0px 0px rgba(0, 0, 0, 0.404);
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet nav.sheet-navigation.tabs .item:hover,
|
||||||
|
.actor.sheet nav.sheet-navigation.tabs .item.active {
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0 5px 5px #1fa832;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.actor.sheet nav.sheet-navigation.tabs .item:hover {
|
||||||
|
text-shadow: 0 5px 5px #1e52259a;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor form nav.sheet-navigation.sheet-tabs {
|
||||||
|
height: 54px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet.actor .ability {
|
||||||
|
padding-right: 0.6rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
border-bottom: 1px solid rgba(170, 170, 152, 0.664);
|
||||||
|
box-shadow: 0px 0px 15px rgba(128, 128, 128, 0) inset;
|
||||||
|
transition: 0.2s;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
box-shadow: 0px 0px 15px gray inset;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
min-width: fit-content;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
max-width: fit-content;
|
||||||
|
margin: 0 1rem;
|
||||||
|
|
||||||
|
flex: 0.5;
|
||||||
|
|
||||||
|
&.hexa {
|
||||||
|
text-align: center;
|
||||||
|
clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
|
||||||
|
background: radial-gradient(circle, rgba(255, 255, 255, 0.425) 0%, rgba(0, 0, 0, 0.288) 100%);
|
||||||
|
max-height: 1.2rem;
|
||||||
|
max-width: 1.2rem;
|
||||||
|
aspect-ratio: 1/1;
|
||||||
|
color: black;
|
||||||
|
vertical-align: bottom;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
div.specialties {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.skill-dots {
|
||||||
|
height: 100%;
|
||||||
|
align-self: center;
|
||||||
|
flex: 1.5;
|
||||||
|
|
||||||
|
&>div {
|
||||||
|
|
||||||
|
max-width: 0.7rem;
|
||||||
|
height: 0.7rem;
|
||||||
|
aspect-ratio: 1/1;
|
||||||
|
border-radius: 50%;
|
||||||
|
font-weight: 700;
|
||||||
|
text-align: center;
|
||||||
|
padding-bottom: 0.2rem;
|
||||||
|
font-style: oblique;
|
||||||
|
align-self: flex-start;
|
||||||
|
|
||||||
|
|
||||||
|
&.dice-pool-dot {
|
||||||
|
background: radial-gradient(circle, rgba(94, 90, 77, 1) 25%, rgba(0, 0, 0, 1) 100%);
|
||||||
|
max-width: 0.7rem;
|
||||||
|
aspect-ratio: 1/1;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.dice-reroll-dot {
|
||||||
|
background: radial-gradient(circle, rgb(187, 182, 165) 25%, rgba(0, 0, 0, 1) 100%);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.vermine2047.sheet.actor input[type="radio"] {
|
||||||
|
&::after {
|
||||||
|
content: " ";
|
||||||
|
display: block;
|
||||||
|
width: 0.8rem;
|
||||||
|
height: 0.8rem;
|
||||||
|
background: radial-gradient(circle, rgba(217, 214, 204, 1) 0%, rgba(217, 214, 204, 1) 40%, rgb(85, 85, 85) 60%);
|
||||||
|
border-radius: 50%;
|
||||||
|
;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
&.checked {
|
||||||
|
&::after {
|
||||||
|
content: " ";
|
||||||
|
display: block;
|
||||||
|
width: 0.8rem;
|
||||||
|
height: 0.8rem;
|
||||||
|
background: radial-gradient(circle, rgb(75, 74, 74) 0%, rgb(27, 39, 28) 60%);
|
||||||
|
border-radius: 50%;
|
||||||
|
;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+539
@@ -0,0 +1,539 @@
|
|||||||
|
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap");
|
||||||
|
|
||||||
|
/* Global styles */
|
||||||
|
.window-app {
|
||||||
|
font-family: "Roboto", sans-serif;
|
||||||
|
box-shadow: 0px 0px 30px rgb(69, 78, 44);
|
||||||
|
}
|
||||||
|
|
||||||
|
.rollable:hover,
|
||||||
|
.rollable:focus {
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0 0 10px red;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid,
|
||||||
|
.grid-2col {
|
||||||
|
display: grid;
|
||||||
|
grid-column: span 2/span 2;
|
||||||
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||||
|
gap: 10px;
|
||||||
|
margin: 5px 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-3col {
|
||||||
|
grid-column: span 3/span 3;
|
||||||
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-4col {
|
||||||
|
grid-column: span 4/span 4;
|
||||||
|
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-5col {
|
||||||
|
grid-column: span 5/span 5;
|
||||||
|
grid-template-columns: repeat(5, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-6col {
|
||||||
|
grid-column: span 6/span 6;
|
||||||
|
grid-template-columns: repeat(6, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-7col {
|
||||||
|
grid-column: span 7/span 7;
|
||||||
|
grid-template-columns: repeat(7, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-8col {
|
||||||
|
grid-column: span 8/span 8;
|
||||||
|
grid-template-columns: repeat(8, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-9col {
|
||||||
|
grid-column: span 9/span 9;
|
||||||
|
grid-template-columns: repeat(9, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-10col {
|
||||||
|
grid-column: span 10/span 10;
|
||||||
|
grid-template-columns: repeat(10, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-11col {
|
||||||
|
grid-column: span 11/span 11;
|
||||||
|
grid-template-columns: repeat(11, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-12col {
|
||||||
|
grid-column: span 12/span 12;
|
||||||
|
grid-template-columns: repeat(12, minmax(0, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-2 {
|
||||||
|
grid-column-start: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-3 {
|
||||||
|
grid-column-start: 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-4 {
|
||||||
|
grid-column-start: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-5 {
|
||||||
|
grid-column-start: 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-6 {
|
||||||
|
grid-column-start: 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-7 {
|
||||||
|
grid-column-start: 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-8 {
|
||||||
|
grid-column-start: 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-9 {
|
||||||
|
grid-column-start: 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-10 {
|
||||||
|
grid-column-start: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-11 {
|
||||||
|
grid-column-start: 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-start-12 {
|
||||||
|
grid-column-start: 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-2 {
|
||||||
|
grid-column-end: span 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-3 {
|
||||||
|
grid-column-end: span 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-4 {
|
||||||
|
grid-column-end: span 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-5 {
|
||||||
|
grid-column-end: span 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-6 {
|
||||||
|
grid-column-end: span 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-7 {
|
||||||
|
grid-column-end: span 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-8 {
|
||||||
|
grid-column-end: span 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-9 {
|
||||||
|
grid-column-end: span 9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-10 {
|
||||||
|
grid-column-end: span 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-11 {
|
||||||
|
grid-column-end: span 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid-span-12 {
|
||||||
|
grid-column-end: span 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-group-center,
|
||||||
|
.flex-group-left,
|
||||||
|
.flex-group-right {
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-group-left {
|
||||||
|
-webkit-box-pack: start;
|
||||||
|
-ms-flex-pack: start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-group-right {
|
||||||
|
-webkit-box-pack: end;
|
||||||
|
-ms-flex-pack: end;
|
||||||
|
justify-content: flex-end;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-align-left {
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-align-right {
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gap-xs {
|
||||||
|
gap: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gap-sm {
|
||||||
|
gap: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gap-md {
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gap-lg {
|
||||||
|
gap: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flexshrink {
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-ms-flex: 0;
|
||||||
|
flex: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flex-between {
|
||||||
|
-webkit-box-pack: justify;
|
||||||
|
-ms-flex-pack: justify;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.flexlarge {
|
||||||
|
-webkit-box-flex: 2;
|
||||||
|
-ms-flex: 2;
|
||||||
|
flex: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-left {
|
||||||
|
-webkit-box-pack: start;
|
||||||
|
-ms-flex-pack: start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-right {
|
||||||
|
-webkit-box-pack: end;
|
||||||
|
-ms-flex-pack: end;
|
||||||
|
justify-content: flex-end;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-center {
|
||||||
|
-webkit-box-pack: center;
|
||||||
|
-ms-flex-pack: center;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .item-form {
|
||||||
|
font-family: "Roboto", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-header {
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-ms-flex: 0 auto;
|
||||||
|
flex: 0 auto;
|
||||||
|
overflow: hidden;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-orient: horizontal;
|
||||||
|
-webkit-box-direction: normal;
|
||||||
|
-ms-flex-direction: row;
|
||||||
|
flex-direction: row;
|
||||||
|
-ms-flex-wrap: wrap;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
-webkit-box-pack: start;
|
||||||
|
-ms-flex-pack: start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-header .profile-img {
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-ms-flex: 0 0 100px;
|
||||||
|
flex: 0 0 100px;
|
||||||
|
height: 100px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-header .header-fields {
|
||||||
|
-webkit-box-flex: 1;
|
||||||
|
-ms-flex: 1;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-header h1.charname {
|
||||||
|
height: 50px;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 5px 0;
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-header h1.charname input {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-tabs {
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-ms-flex: 0;
|
||||||
|
flex: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-body .tab,
|
||||||
|
.system-vermine2047 .sheet-body .tab .editor {
|
||||||
|
height: 100%;
|
||||||
|
min-width: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .sheet-body .tab .editor {
|
||||||
|
min-height: 75px;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
|
||||||
|
min-width: 100%;
|
||||||
|
|
||||||
|
|
||||||
|
.editor-content {
|
||||||
|
min-width: 100%;
|
||||||
|
min-height: 3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 editor:hover .editor-edit {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .tox {
|
||||||
|
min-height: 25vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .tox .tox-editor-container {
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .tox .tox-edit-area {
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .resource-label {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-header {
|
||||||
|
height: 28px;
|
||||||
|
margin: 2px 0;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
background: rgba(0, 0, 0, 0.05);
|
||||||
|
border: 2px groove #eeede0;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-header>* {
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-header .item-name {
|
||||||
|
font-weight: bold;
|
||||||
|
padding-left: 5px;
|
||||||
|
text-align: left;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
overflow-y: auto;
|
||||||
|
scrollbar-width: thin;
|
||||||
|
color: #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item-list {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item-name {
|
||||||
|
-webkit-box-flex: 2;
|
||||||
|
-ms-flex: 2;
|
||||||
|
flex: 2;
|
||||||
|
margin: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 13px;
|
||||||
|
text-align: left;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item-name h3,
|
||||||
|
.system-vermine2047 .items-list .item-name h4 {
|
||||||
|
margin: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item-controls {
|
||||||
|
display: -webkit-box;
|
||||||
|
display: -ms-flexbox;
|
||||||
|
display: flex;
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-webkit-box-pack: end;
|
||||||
|
-ms-flex-pack: end;
|
||||||
|
justify-content: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item-controls a {
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item {
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 2px;
|
||||||
|
border-bottom: 1px solid #c9c7b8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item .item-name {
|
||||||
|
color: #191813;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item .item-name .item-image {
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-ms-flex: 0 0 30px;
|
||||||
|
flex: 0 0 30px;
|
||||||
|
height: 30px;
|
||||||
|
background-size: 30px;
|
||||||
|
border: none;
|
||||||
|
margin-right: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .item-prop {
|
||||||
|
text-align: center;
|
||||||
|
border-left: 1px solid #c9c7b8;
|
||||||
|
border-right: 1px solid #c9c7b8;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .items-header {
|
||||||
|
height: 28px;
|
||||||
|
margin: 2px 0;
|
||||||
|
padding: 0;
|
||||||
|
-webkit-box-align: center;
|
||||||
|
-ms-flex-align: center;
|
||||||
|
align-items: center;
|
||||||
|
background: rgba(0, 0, 0, 0.05);
|
||||||
|
border: 2px groove #eeede0;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .items-header>* {
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .items-list .items-header .item-name {
|
||||||
|
padding-left: 5px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .item-formula {
|
||||||
|
-webkit-box-flex: 0;
|
||||||
|
-ms-flex: 0 0 200px;
|
||||||
|
flex: 0 0 200px;
|
||||||
|
padding: 0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .effects .item .effect-source,
|
||||||
|
.system-vermine2047 .effects .item .effect-duration,
|
||||||
|
.system-vermine2047 .effects .item .effect-controls {
|
||||||
|
text-align: center;
|
||||||
|
border-left: 1px solid #c9c7b8;
|
||||||
|
border-right: 1px solid #c9c7b8;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-vermine2047 .effects .item .effect-controls {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.chat-message .message-header {
|
||||||
|
line-height: 20px;
|
||||||
|
color: white;
|
||||||
|
text-shadow: 0px 0px 5px black;
|
||||||
|
background: #1918135e
|
||||||
|
}
|
||||||
|
|
||||||
|
span.game-mode {
|
||||||
|
font-family: "DistressBlack",
|
||||||
|
sans-serif;
|
||||||
|
|
||||||
|
position: absolute;
|
||||||
|
margin-left: auto;
|
||||||
|
color: transparent;
|
||||||
|
top: 1rem;
|
||||||
|
z-index: 900;
|
||||||
|
width: 55%;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-weight: 900;
|
||||||
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.767) 0%, rgba(0, 0, 0, 0.61) 17%, rgba(0, 0, 0, 0.548) 19%, rgba(222, 255, 221, 0.575) 24%, rgba(255, 255, 255, 0.637) 43%, rgba(0, 0, 0, 0.486) 47%, rgba(254, 255, 254, 0.466) 50%, rgba(0, 0, 0, 0.699) 63%, rgba(134, 160, 137, 0.479) 64%, rgba(213, 248, 210, 0.493) 100%);
|
||||||
|
background-clip: text;
|
||||||
|
|
||||||
|
&#game-mode-1 {
|
||||||
|
color: rgba(235, 218, 143, 0.8);
|
||||||
|
}
|
||||||
|
|
||||||
|
&#game-mode-2 {
|
||||||
|
color: rgb(131, 248, 131);
|
||||||
|
}
|
||||||
|
|
||||||
|
&#game-mode-3 {
|
||||||
|
color: rgba(245, 124, 124, 0.8);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
@import "./base_work.scss";
|
||||||
|
@import "./style.scss";
|
||||||
+6
-1
@@ -18,7 +18,6 @@
|
|||||||
"module/vermine2047.mjs"
|
"module/vermine2047.mjs"
|
||||||
],
|
],
|
||||||
"styles": [
|
"styles": [
|
||||||
"css/style.css",
|
|
||||||
"css/vermine2047.css"
|
"css/vermine2047.css"
|
||||||
],
|
],
|
||||||
"languages": [
|
"languages": [
|
||||||
@@ -27,6 +26,12 @@
|
|||||||
"name": "English",
|
"name": "English",
|
||||||
"path": "lang/en.json",
|
"path": "lang/en.json",
|
||||||
"flags": {}
|
"flags": {}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"lang": "fr",
|
||||||
|
"name": "Français",
|
||||||
|
"path": "lang/fr.json",
|
||||||
|
"flags": {}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packs": [
|
"packs": [
|
||||||
|
|||||||
+129
-80
@@ -1,30 +1,37 @@
|
|||||||
{
|
{
|
||||||
"Actor": {
|
"Actor": {
|
||||||
"types": ["character", "npc", "group", "creature"],
|
"types": [
|
||||||
|
"character",
|
||||||
|
"npc",
|
||||||
|
"group",
|
||||||
|
"creature"
|
||||||
|
],
|
||||||
"templates": {
|
"templates": {
|
||||||
"base": {
|
"base": {
|
||||||
"minorWound": {
|
"minorWound": {
|
||||||
"threshold":1,
|
"threshold": 1,
|
||||||
"value": 4,
|
"value": 0,
|
||||||
"min": 1,
|
"min": 0,
|
||||||
"max": 5
|
"max": 5
|
||||||
},
|
},
|
||||||
"majorWound": {
|
"majorWound": {
|
||||||
"threshold":4,
|
"threshold": 4,
|
||||||
"value": 3,
|
"value": 0,
|
||||||
"min": 1,
|
"min": 0,
|
||||||
"max": 4
|
"max": 4
|
||||||
},
|
},
|
||||||
"deadlyWound": {
|
"deadlyWound": {
|
||||||
"threshold":8,
|
"threshold": 8,
|
||||||
"value": 2,
|
"value": 0,
|
||||||
"min": 1,
|
"min": 0,
|
||||||
"max": 2
|
"max": 2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"character": {
|
"character": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
|
"base"
|
||||||
|
],
|
||||||
"identity": {
|
"identity": {
|
||||||
"height": 0,
|
"height": 0,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
@@ -45,11 +52,11 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"xp": {
|
"xp": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"max":10
|
"max": 10
|
||||||
},
|
},
|
||||||
"reputation": {
|
"reputation": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"max":10
|
"max": 10
|
||||||
},
|
},
|
||||||
"self_control": {
|
"self_control": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
@@ -64,49 +71,49 @@
|
|||||||
},
|
},
|
||||||
"abilities": {
|
"abilities": {
|
||||||
"vigor": {
|
"vigor": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "physical"
|
"category": "physical"
|
||||||
},
|
},
|
||||||
"health": {
|
"health": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "physical"
|
"category": "physical"
|
||||||
},
|
},
|
||||||
"precision": {
|
"precision": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "manual"
|
"category": "manual"
|
||||||
},
|
},
|
||||||
"reflexes": {
|
"reflexes": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "manual"
|
"category": "manual"
|
||||||
},
|
},
|
||||||
"knowledge": {
|
"knowledge": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "mental"
|
"category": "mental"
|
||||||
},
|
},
|
||||||
"perception": {
|
"perception": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "mental"
|
"category": "mental"
|
||||||
},
|
},
|
||||||
"will": {
|
"will": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "social"
|
"category": "social"
|
||||||
},
|
},
|
||||||
"empathy": {
|
"empathy": {
|
||||||
"value": 0,
|
"value": 1,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "social"
|
"category": "social"
|
||||||
@@ -118,215 +125,217 @@
|
|||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "man",
|
"category": "man",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"civilization": {
|
"civilization": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "man",
|
"category": "man",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"psychology": {
|
"psychology": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "man",
|
"category": "man",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"rumors": {
|
"rumors": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "man",
|
"category": "man",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"healing": {
|
"healing": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "man",
|
"category": "man",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"animalism": {
|
"animalism": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "animal",
|
"category": "animal",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"dissection": {
|
"dissection": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "animal",
|
"category": "animal",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"wildlife": {
|
"wildlife": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "animal",
|
"category": "animal",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"repulsion": {
|
"repulsion": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "animal",
|
"category": "animal",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"tracks": {
|
"tracks": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "animal",
|
"category": "animal",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"crafting": {
|
"crafting": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "tool",
|
"category": "tool",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"diy": {
|
"diy": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "tool",
|
"category": "tool",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"mecanical": {
|
"mecanical": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "tool",
|
"category": "tool",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"piloting": {
|
"piloting": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "tool",
|
"category": "tool",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"technology": {
|
"technology": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "tool",
|
"category": "tool",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"firearms": {
|
"firearms": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "weapon",
|
"category": "weapon",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"archery": {
|
"archery": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "weapon",
|
"category": "weapon",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"armory": {
|
"armory": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "weapon",
|
"category": "weapon",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"throwing": {
|
"throwing": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "weapon",
|
"category": "weapon",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"melee": {
|
"melee": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "weapon",
|
"category": "weapon",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"alertness": {
|
"alertness": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "survival",
|
"category": "survival",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"atletics": {
|
"atletics": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "survival",
|
"category": "survival",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"food": {
|
"food": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "survival",
|
"category": "survival",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"stealth": {
|
"stealth": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "survival",
|
"category": "survival",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"close": {
|
"close": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "survival",
|
"category": "survival",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"environment": {
|
"environment": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "world",
|
"category": "world",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"flora": {
|
"flora": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "world",
|
"category": "world",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
},
|
},
|
||||||
"road": {
|
"road": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "world",
|
"category": "world",
|
||||||
"rarity":0
|
"rarity": 0
|
||||||
},
|
},
|
||||||
"toxics": {
|
"toxics": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "world",
|
"category": "world",
|
||||||
"rarity":2
|
"rarity": 2
|
||||||
},
|
},
|
||||||
"ruins": {
|
"ruins": {
|
||||||
"value": 0,
|
"value": 0,
|
||||||
"min": 0,
|
"min": 0,
|
||||||
"max": 5,
|
"max": 5,
|
||||||
"category": "world",
|
"category": "world",
|
||||||
"rarity":1
|
"rarity": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"npc": {
|
"npc": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
|
"base"
|
||||||
|
],
|
||||||
"age": 15,
|
"age": 15,
|
||||||
"skills": "",
|
"skills": "",
|
||||||
"threat": {
|
"threat": {
|
||||||
@@ -346,7 +355,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
|
"base"
|
||||||
|
],
|
||||||
"identity": {
|
"identity": {
|
||||||
"totem": "",
|
"totem": "",
|
||||||
"profile": "",
|
"profile": "",
|
||||||
@@ -381,7 +392,9 @@
|
|||||||
"encounters": []
|
"encounters": []
|
||||||
},
|
},
|
||||||
"creature": {
|
"creature": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
|
"base"
|
||||||
|
],
|
||||||
"skills": "",
|
"skills": "",
|
||||||
"modes": {
|
"modes": {
|
||||||
"survival": true,
|
"survival": true,
|
||||||
@@ -411,12 +424,25 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Item": {
|
"Item": {
|
||||||
"types": ["item", "weapon", "defense", "vehicle", "ability", "specialty", "background", "trauma", "evolution", "rumor", "target", "rite"],
|
"types": [
|
||||||
|
"item",
|
||||||
|
"weapon",
|
||||||
|
"defense",
|
||||||
|
"vehicle",
|
||||||
|
"ability",
|
||||||
|
"specialty",
|
||||||
|
"background",
|
||||||
|
"trauma",
|
||||||
|
"evolution",
|
||||||
|
"rumor",
|
||||||
|
"target",
|
||||||
|
"rite"
|
||||||
|
],
|
||||||
"templates": {
|
"templates": {
|
||||||
"base": {
|
"base": {
|
||||||
"description": "",
|
"description": "",
|
||||||
"rarity":3,
|
"rarity": 3,
|
||||||
"reliability":3,
|
"reliability": 3,
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"weight": 0,
|
"weight": 0,
|
||||||
"traits": []
|
"traits": []
|
||||||
@@ -426,27 +452,35 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"item": {
|
"item": {
|
||||||
"templates": ["base"]
|
"templates": [
|
||||||
|
"base"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"weapon": {
|
"weapon": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
"min_range":0,
|
"base"
|
||||||
"max_range":0,
|
],
|
||||||
"damage":0,
|
"min_range": 0,
|
||||||
"ammo":0
|
"max_range": 0,
|
||||||
|
"damage": 0,
|
||||||
|
"ammo": 0
|
||||||
},
|
},
|
||||||
"defense": {
|
"defense": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
"level":0,
|
"base"
|
||||||
"mobility":3
|
],
|
||||||
|
"level": 0,
|
||||||
|
"mobility": 3
|
||||||
},
|
},
|
||||||
"ability": {
|
"ability": {
|
||||||
"templates": ["list"],
|
"templates": [
|
||||||
|
"list"
|
||||||
|
],
|
||||||
"type": "",
|
"type": "",
|
||||||
"totem": "",
|
"totem": "",
|
||||||
"learn": {
|
"learn": {
|
||||||
"threshold":5,
|
"threshold": 5,
|
||||||
"hindrance":0
|
"hindrance": 0
|
||||||
},
|
},
|
||||||
"level": {
|
"level": {
|
||||||
"value": 1,
|
"value": 1,
|
||||||
@@ -456,29 +490,40 @@
|
|||||||
"effects": []
|
"effects": []
|
||||||
},
|
},
|
||||||
"specialty": {
|
"specialty": {
|
||||||
"templates": ["list"]
|
"name": "",
|
||||||
|
"skill": ""
|
||||||
},
|
},
|
||||||
"vehicle": {
|
"vehicle": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
"mobility":3
|
"base"
|
||||||
|
],
|
||||||
|
"mobility": 3
|
||||||
},
|
},
|
||||||
"rite": {
|
"rite": {
|
||||||
"templates": ["base"],
|
"templates": [
|
||||||
|
"base"
|
||||||
|
],
|
||||||
"rituel": "",
|
"rituel": "",
|
||||||
"transe": "",
|
"transe": "",
|
||||||
"ability": "",
|
"ability": "",
|
||||||
"effect": ""
|
"effect": ""
|
||||||
},
|
},
|
||||||
"background": {
|
"background": {
|
||||||
"templates": ["list"],
|
"templates": [
|
||||||
"cost":1
|
"list"
|
||||||
|
],
|
||||||
|
"cost": 1
|
||||||
},
|
},
|
||||||
"trauma": {
|
"trauma": {
|
||||||
"templates": ["list"],
|
"templates": [
|
||||||
|
"list"
|
||||||
|
],
|
||||||
"type": ""
|
"type": ""
|
||||||
},
|
},
|
||||||
"evolution": {
|
"evolution": {
|
||||||
"templates": ["list"],
|
"templates": [
|
||||||
|
"list"
|
||||||
|
],
|
||||||
"level": {
|
"level": {
|
||||||
"value": 1,
|
"value": 1,
|
||||||
"min": 1,
|
"min": 1,
|
||||||
@@ -486,11 +531,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rumor": {
|
"rumor": {
|
||||||
"templates": ["list"]
|
"templates": [
|
||||||
|
"list"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"target": {
|
"target": {
|
||||||
"templates": ["list"],
|
"templates": [
|
||||||
"level":"minor"
|
"list"
|
||||||
|
],
|
||||||
|
"level": "minor"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
<form class="{{cssClass}} {{actor.type}} flexcol form" autocomplete="off">
|
<form class="{{cssClass}} {{actor.type}} flexcol form" autocomplete="off">
|
||||||
|
|
||||||
<div class="form">
|
<div class="form">
|
||||||
<aside>
|
<aside>
|
||||||
<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 -->
|
<!--ID -->
|
||||||
{{> "systems/vermine2047/templates/actor/character/character-id.hbs"}}
|
{{> "systems/vermine2047/templates/actor/character/character-id.hbs"}}
|
||||||
@@ -12,27 +15,33 @@
|
|||||||
{{> "systems/vermine2047/templates/actor/character/character-header.hbs"}}
|
{{> "systems/vermine2047/templates/actor/character/character-header.hbs"}}
|
||||||
|
|
||||||
<!-- SHEET NAVIGATION -->
|
<!-- SHEET NAVIGATION -->
|
||||||
<nav class="sheet-navigation sheet-tabs tabs flex-group-end" data-group="primary">
|
<nav class="sheet-navigation sheet-tabs tabs flex-group-center"
|
||||||
<a class="item" data-tab="character" title="{{localize "VERMINE.tab_character_label"}}">
|
data-group="primary">
|
||||||
|
<a class="item" data-tab="character"
|
||||||
|
data-tooltip="{{localize "VERMINE.tabs.abilities"}}">
|
||||||
<i class="fas fa-address-card"></i>
|
<i class="fas fa-address-card"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="item" data-tab="totem" title="{{localize "VERMINE.tab_totem_label"}}">
|
<a class="item" data-tab="totem"
|
||||||
|
data-tooltip="{{localize "VERMINE.tabs.totem"}}">
|
||||||
<i class="fas fa-star"></i>
|
<i class="fas fa-star"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="item" data-tab="equipment" title="{{localize "VERMINE.tab_equipment_label"}}">
|
<a class="item" data-tab="equipment"
|
||||||
|
data-tooltip="{{localize "VERMINE.tabs.equipment"}}">
|
||||||
<i class="fas fa-hammer"></i>
|
<i class="fas fa-hammer"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="item" data-tab="stories" title="{{localize "VERMINE.tab_stories_label"}}">
|
<a class="item" data-tab="stories"
|
||||||
<i class="fas fa-hand-paper"></i>
|
data-tooltip="{{localize "VERMINE.tabs.stories"}}">
|
||||||
|
<i class="fas fa-book-open-reader"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="item" data-tab="combat" title="{{localize "VERMINE.tab_combat_label"}}">
|
<a class="item" data-tab="combat"
|
||||||
|
data-tooltip="{{localize "VERMINE.tabs.combat"}}">
|
||||||
<i class="fas fa-medal"></i>
|
<i class="fas fa-medal"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!--a class="manage-tabs" data-action="manage-tabs" title="{{localize "VERMINE.tab_options"}}">
|
<!--a class="manage-tabs" data-action="manage-tabs" data-tooltip="{{localize "VERMINE.tab_options"}}">
|
||||||
<i class="fas fa-fw fa-ellipsis-v"></i>
|
<i class="fas fa-fw fa-ellipsis-v"></i>
|
||||||
</a-->
|
</a-->
|
||||||
</nav>
|
</nav>
|
||||||
@@ -40,13 +49,16 @@
|
|||||||
<!-- BODY -->
|
<!-- BODY -->
|
||||||
<section class="sheet-body">
|
<section class="sheet-body">
|
||||||
<section class="sheet-content">
|
<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 -->
|
<!-- Character -->
|
||||||
{{> "systems/vermine2047/templates/actor/character/character-features.hbs"}}
|
{{>
|
||||||
|
"systems/vermine2047/templates/actor/character/character-features.hbs"}}
|
||||||
</div>
|
</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>
|
<h3>{{ localize 'IDENTITY.totem'}}</h3>
|
||||||
{{> "systems/vermine2047/templates/actor/character/character-totem.hbs"}}
|
{{>
|
||||||
|
"systems/vermine2047/templates/actor/character/character-totem.hbs"}}
|
||||||
</div>
|
</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>
|
<h3>{{ localize 'VERMINE.equipment'}}</h3>
|
||||||
@@ -56,12 +68,14 @@
|
|||||||
<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>
|
<h3>{{ localize 'VERMINE.combat'}}</h3>
|
||||||
<!-- effects -->
|
<!-- effects -->
|
||||||
{{> "systems/vermine2047/templates/actor/character/character-combat.hbs"}}
|
{{>
|
||||||
|
"systems/vermine2047/templates/actor/character/character-combat.hbs"}}
|
||||||
</div>
|
</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>
|
<h3>{{ localize 'VERMINE.stories'}}</h3>
|
||||||
{{> "systems/vermine2047/templates/actor/character/character-stories.hbs"}}
|
{{>
|
||||||
|
"systems/vermine2047/templates/actor/character/character-stories.hbs"}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
@@ -69,4 +83,3 @@
|
|||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
@@ -2,38 +2,78 @@
|
|||||||
<div>
|
<div>
|
||||||
<h4 class="align-center">{{ localize "VERMINE.self_control"}}</h4>
|
<h4 class="align-center">{{ localize "VERMINE.self_control"}}</h4>
|
||||||
<p class="align-center">
|
<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 }}" /> / {{ system.attributes.self_control.max }}
|
<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 }}" /> / {{
|
||||||
|
system.attributes.self_control.max }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h4 class="align-center">{{ localize "VERMINE.effort"}}</h4>
|
<h4 class="align-center">{{ localize "VERMINE.effort"}}</h4>
|
||||||
<p class="align-center">
|
<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 }}" /> / {{ system.attributes.effort.max }}
|
<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 }}" /> / {{
|
||||||
|
system.attributes.effort.max }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="item-name effect-name flexrow">{{ localize "VERMINE.wounds.name"}}</h4>
|
<h4 class="item-name effect-name flexrow">{{ localize
|
||||||
|
"VERMINE.wounds.name"}}</h4>
|
||||||
<ul class="unstyled">
|
<ul class="unstyled">
|
||||||
<li class="row mdb">{{ localize 'VERMINE.wounds.light'}} ({{ system.minorWound.threshold }})
|
<li class="row mdb">{{ localize 'VERMINE.wounds.light'}} <span
|
||||||
{{#range system.minorWound.max }}
|
data-tooltip="seuil">({{
|
||||||
<input type="radio" data-dtype="Number" name="system.minorWound.value" value="{{this}}" {{#ife @root.system.minorWound.value this }}checked="checked"{{/ife}} />
|
system.minorWound.threshold }})</span>
|
||||||
{{/range}}</li>
|
{{#repeat system.minorWound.max 1}}
|
||||||
<li class="row mdb">{{ localize 'VERMINE.wounds.heavy'}} ({{ system.majorWound.threshold }})
|
<input type="radio" data-dtype="Number" name="system.minorWound.value"
|
||||||
{{#range system.majorWound.max }}
|
value="{{@index}}" {{#ife @root.system.minorWound.value @index
|
||||||
<input type="radio" name="system.majorWound.value" value="{{this}}" {{#ife @root.system.majorWound.value this }}checked="checked"{{/ife}} />
|
}}checked="checked"{{/ife}} data-wound="minorWound"
|
||||||
{{/range}}
|
class="
|
||||||
|
{{#iflteq @index @root.system.minorWound.value }}
|
||||||
|
checked
|
||||||
|
{{/iflteq}}
|
||||||
|
|
||||||
|
" />
|
||||||
|
{{/repeat}}</li>
|
||||||
|
<li class="row mdb">{{ localize 'VERMINE.wounds.heavy'}} ({{
|
||||||
|
system.majorWound.threshold }})
|
||||||
|
{{#repeat system.majorWound.max 1}}
|
||||||
|
<input type="radio" name="system.majorWound.value" value="{{@index}}" {{#ife
|
||||||
|
@root.system.majorWound.value @index }}checked="checked"{{/ife}}
|
||||||
|
data-wound="majorWound"
|
||||||
|
class="
|
||||||
|
{{#iflteq @index @root.system.majorWound.value }}
|
||||||
|
checked
|
||||||
|
{{/iflteq}}
|
||||||
|
|
||||||
|
" />
|
||||||
|
{{/repeat}}
|
||||||
</li>
|
</li>
|
||||||
<li class="row mdb">{{ localize 'VERMINE.wounds.deadly'}} ({{ system.deadlyWound.threshold }})
|
<li class="row mdb">{{ localize 'VERMINE.wounds.deadly'}} ({{
|
||||||
{{#range system.deadlyWound.max }}
|
system.deadlyWound.threshold }})
|
||||||
<input type="radio" name="system.deadlyWound.value" value="{{this}}" {{#ife @root.system.deadlyWound.value this }}checked="checked"{{/ife}} />
|
{{#repeat system.deadlyWound.max 1}}
|
||||||
{{/range}}
|
|
||||||
|
<input type="radio" name="system.deadlyWound.value" value="{{@index}}"
|
||||||
|
{{#ife
|
||||||
|
@root.system.deadlyWound.value @index }}checked="checked"{{/ife}}
|
||||||
|
data-wound="deadlyWound"
|
||||||
|
class="
|
||||||
|
{{#iflteq @index @root.system.deadlyWound.value }}
|
||||||
|
checked
|
||||||
|
{{/iflteq}}
|
||||||
|
|
||||||
|
" />
|
||||||
|
{{/repeat}}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<h4 class="item-name effect-name flexrow">{{ localize "UI.effects.name"}}</h4>
|
<h4 class="item-name effect-name flexrow">{{ localize "UI.effects.name"}}</h4>
|
||||||
<ol class="items-list effects-list">
|
<ol class="items-list effects-list">
|
||||||
{{#each effects as |section sid|}}
|
{{#each effects as |section sid|}}
|
||||||
<li class="items-header flexrow" data-effect-type="{{section.type}}">
|
<li class="items-header flexrow" data-effect-type="{{section.type}}">
|
||||||
<p class="item-name effect-name flexrow">{{#if (eq section.type 'temporary')}}
|
<p class="item-name effect-name flexrow">{{#if (eq section.type
|
||||||
|
'temporary')}}
|
||||||
{{localize "UI.effects.temporary" }}
|
{{localize "UI.effects.temporary" }}
|
||||||
{{else if (eq section.type 'passive')}}
|
{{else if (eq section.type 'passive')}}
|
||||||
{{localize "UI.effects.passive" }}
|
{{localize "UI.effects.passive" }}
|
||||||
@@ -44,7 +84,8 @@
|
|||||||
<div class="effect-source">{{localize 'UI.source'}}</div>
|
<div class="effect-source">{{localize 'UI.source'}}</div>
|
||||||
<div class="effect-source">{{localize 'UI.duration'}}</div>
|
<div class="effect-source">{{localize 'UI.duration'}}</div>
|
||||||
<div class="item-controls effect-controls flexrow">
|
<div class="item-controls effect-controls flexrow">
|
||||||
<a class="effect-control" data-action="create" title="{{localize 'UI.effect_create'}}">
|
<a class="effect-control" data-action="create"
|
||||||
|
title="{{localize 'UI.effect_create'}}">
|
||||||
<i class="fas fa-plus"></i> {{localize "UI.add"}}
|
<i class="fas fa-plus"></i> {{localize "UI.add"}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -54,18 +95,22 @@
|
|||||||
{{#each section.effects as |effect|}}
|
{{#each section.effects as |effect|}}
|
||||||
<li class="item effect flexrow" data-effect-id="{{effect.id}}">
|
<li class="item effect flexrow" data-effect-id="{{effect.id}}">
|
||||||
<div class="item-name effect-name">
|
<div class="item-name effect-name">
|
||||||
<a class="effect-control flexrow flex-group-center items-center" data-action="edit" title="{{localize 'UI.effect_edit'}}">
|
<a class="effect-control flexrow flex-group-center items-center"
|
||||||
<img class="item-image" src="{{effect.icon}}"/>
|
data-action="edit" title="{{localize 'UI.effect_edit'}}">
|
||||||
|
<img class="item-image" src="{{effect.icon}}" />
|
||||||
<span>{{effect.label}}</span>
|
<span>{{effect.label}}</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="effect-source">{{effect.sourceName}}</div>
|
<div class="effect-source">{{effect.sourceName}}</div>
|
||||||
<div class="effect-duration">{{effect.duration.label}}</div>
|
<div class="effect-duration">{{effect.duration.label}}</div>
|
||||||
<div class="item-controls effect-controls flexrow">
|
<div class="item-controls effect-controls flexrow">
|
||||||
<a class="effect-control" data-action="toggle" title="{{localize 'UI.effect_toggle'}}">
|
<a class="effect-control" data-action="toggle"
|
||||||
<i class="fas {{#if effect.disabled}}fa-check{{else}}fa-times{{/if}}"></i>
|
title="{{localize 'UI.effect_toggle'}}">
|
||||||
|
<i
|
||||||
|
class="fas {{#if effect.disabled}}fa-check{{else}}fa-times{{/if}}"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="effect-control" data-action="delete" title="{{localize 'UI.effect_delete'}}">
|
<a class="effect-control" data-action="delete"
|
||||||
|
title="{{localize 'UI.effect_delete'}}">
|
||||||
<i class="fas fa-trash"></i>
|
<i class="fas fa-trash"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -6,32 +6,67 @@
|
|||||||
<h4 class="align-center">{{ smarttl "ABILITY_CATEGORIES" ackey }}</h4>
|
<h4 class="align-center">{{ smarttl "ABILITY_CATEGORIES" ackey }}</h4>
|
||||||
{{#each @root.system.abilities as |ability key|}}
|
{{#each @root.system.abilities as |ability key|}}
|
||||||
{{#if (eq ability.category ackey) }}
|
{{#if (eq ability.category ackey) }}
|
||||||
<div class="ability flexcol flex-group-center items-center">
|
<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>
|
<label for="system.abilities.{{key}}.value"
|
||||||
<input type="number" name="system.abilities.{{key}}.value" value="{{ability.value}}" data-dtype="Number" min="1" max="5" />
|
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>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
<h3>Compétences</h3>
|
<h3>Compétences</h3>
|
||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
{{#each config.skillCategories as |skillCategory sckey|}}
|
{{#each config.skillCategories as |skillCategory sckey|}}
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<h4>{{ smarttl "SKILLS_CATEGORIES" sckey }}</h4>
|
<h4>{{ smarttl "SKILLS_CATEGORIES" sckey }}</h4>
|
||||||
{{#each @root.system.skills as |skill skey|}}
|
{{#each @root.system.skills as |skill skey|}}
|
||||||
|
|
||||||
{{#if (eq skill.category sckey) }}
|
{{#if (eq skill.category sckey) }}
|
||||||
<div class="ability flexrow flex-group-center">
|
<div class="ability flexrow ">
|
||||||
<label style="flex:60%;" for="system.skills.{{skey}}.value" class="resource-label rollable flexlarge align-left" data-type="skill" data-label="{{ skey }}">{{ smarttl "SKILLS" skey }}
|
<label for="system.skills.{{skey}}.value"
|
||||||
{{#if (eq skill.rarity 1)}}<sup>(I)</sup>{{/if}}{{#if (eq skill.rarity 2)}}<sup>(II)</sup>{{/if}}</label>
|
class="resource-label rollable flexlarge align-left" data-type="skill"
|
||||||
<span class="die d10 pool" title="pool">{{ skillLevel "dicePool" skill.value }}</span>
|
data-label="{{ skey }}">
|
||||||
<span class="die d10 reroll" title="reroll">{{ skillLevel "reroll" skill.value }}</span>
|
{{ smarttl "SKILLS" skey }}
|
||||||
<input type="number" name="system.skills.{{skey}}.value" value="{{skill.value}}" class="skill" data-dtype="Number" min="0" max="5" />
|
{{#if (eq skill.rarity 1)}}<sup>(I)</sup>{{/if}}
|
||||||
|
{{#if (eq skill.rarity 2)}}<sup>(II)</sup>{{/if}}
|
||||||
|
|
||||||
|
</label>
|
||||||
|
<div class="specialties">
|
||||||
|
{{#each @root.specialties as |spe ind|}}
|
||||||
|
{{#ife spe.system.skill skey}}
|
||||||
|
<i class="specialty"
|
||||||
|
data-tooltip="spécialité utilisable">{{spe.name}}</i>
|
||||||
|
{{/ife}}
|
||||||
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
|
<select name="system.skills.{{skey}}.value" class="skill-select">
|
||||||
|
{{#select skill.value}}
|
||||||
|
{{#each @root.config.SkillLevels as |level ind|}}
|
||||||
|
<option value="{{ind}}" title="{{localize level.label}}">
|
||||||
|
{{localize level.label}}</option>
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
<span class="hexa">{{skill.value}}</span>
|
||||||
|
<div class="skill-dots flexrow">
|
||||||
|
{{#repeat (skillLevel "dicePool" skill.value) 0}}
|
||||||
|
<div class="dice-pool-dot"
|
||||||
|
data-tooltip="{{localize "VERMINE.pool"}}"></div>
|
||||||
|
{{/repeat}}
|
||||||
|
{{#repeat (skillLevel "reroll" skill.value) 0}}
|
||||||
|
<div class="dice-reroll-dot"
|
||||||
|
data-tooltip="{{localize "VERMINE.reroll"}}">X</div>
|
||||||
|
{{/repeat}}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
@@ -3,36 +3,45 @@
|
|||||||
<section class="char-details">
|
<section class="char-details">
|
||||||
<h1 class="char-name flexrow flex-group-left w-full">
|
<h1 class="char-name flexrow flex-group-left w-full">
|
||||||
<label>{{ localize 'IDENTITY.name' }}</label>
|
<label>{{ localize 'IDENTITY.name' }}</label>
|
||||||
<input name="name" type="text" value="{{actor.name}}" placeholder="{{localize "VERMINE.CharacterNamePlaceholder"}}" />
|
<input name="name" type="text" value="{{actor.name}}"
|
||||||
|
placeholder="{{localize "VERMINE.CharacterNamePlaceholder"}}" />
|
||||||
</h1>
|
</h1>
|
||||||
<div class="profile flexrow flex-group-center">
|
<div class="profile flexrow flex-group-center">
|
||||||
<label>{{ localize 'IDENTITY.profile' }}</label>
|
<label>{{ localize 'IDENTITY.profile' }}</label>
|
||||||
<input name="system.identity.profile" type="text" value="{{system.identity.profile }}" data-dtype="String" />
|
<input name="system.identity.profile" type="text"
|
||||||
|
value="{{system.identity.profile }}" data-dtype="String" />
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow flex-group-center">
|
<div class="flexrow flex-group-center">
|
||||||
<label for="system.identity.age">{{ localize 'IDENTITY.age' }}</label>
|
<label for="system.identity.age">{{ localize 'IDENTITY.age'
|
||||||
|
}}</label>
|
||||||
<div class="flexrow row">
|
<div class="flexrow row">
|
||||||
<input type="number" name="system.identity.age" value="{{ system.identity.age }}" data-dtype="Number"/>
|
<input type="number" name="system.identity.age"
|
||||||
<span id="ageType">({{ ageType "name" system.identity.ageType }})</span>
|
value="{{ system.identity.age }}" data-dtype="Number" />
|
||||||
|
<span id="ageType">({{ ageType "name" system.identity.ageType
|
||||||
|
}})</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="char-level">
|
<section class="char-level">
|
||||||
<h1 class="char-vermine2047 flexrow flex-group-left w-full">
|
<h1 class="char-vermine2047 flexrow flex-group-left w-full">
|
||||||
<label for="system.identity.totem">{{ localize 'IDENTITY.totem' }}</label>
|
<label for="system.identity.totem">{{ localize 'IDENTITY.totem'
|
||||||
|
}}</label>
|
||||||
{{#if (eq system.identity.totem "")}}
|
{{#if (eq system.identity.totem "")}}
|
||||||
<a name="chooseTotem" class="chooseTotem">Choisissez votre totem</a>
|
<a name="chooseTotem" class="chooseTotem">Choisissez votre totem</a>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<a name="chooseTotem" class="chooseTotem">{{ smarttl "TOTEMS" system.identity.totem }}</a>
|
<a name="chooseTotem" class="chooseTotem">{{ smarttl "TOTEMS"
|
||||||
|
system.identity.totem }}</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</h1>
|
</h1>
|
||||||
<div class="reputation flexrow flex-group-center">
|
<div class="reputation flexrow flex-group-center">
|
||||||
<label>{{ localize 'VERMINE.reputation' }}</label>
|
<label>{{ localize 'VERMINE.reputation' }}</label>
|
||||||
<input name="system.attributes.reputation.value" type="text" value="{{system.attributes.reputation.value }}" data-dtype="Number" />
|
<input name="system.attributes.reputation.value" type="text"
|
||||||
</div>
|
value="{{system.attributes.reputation.value }}"
|
||||||
<div class="experience flexrow flex-group-center">
|
data-dtype="Number" />
|
||||||
|
|
||||||
<label>{{ localize 'VERMINE.experience' }}</label>
|
<label>{{ localize 'VERMINE.experience' }}</label>
|
||||||
<input name="system.details.xp.value" type="text" value="{{system.attributes.xp.value}}" data-dtype="Number" />
|
<input name="system.details.xp.value" type="text"
|
||||||
|
value="{{system.attributes.xp.value}}" data-dtype="Number" />
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
</header>
|
</header>
|
||||||
@@ -1,18 +1,25 @@
|
|||||||
<div class="image-wrapper">
|
<div class="image-wrapper">
|
||||||
<img class="profile-img" src="{{actor.img}}" data-edit="img" title="{{actor.name}}" height="100" width="100"/>
|
<img class="profile-img" src="{{actor.img}}" data-edit="img"
|
||||||
|
title="{{actor.name}}" height="100" width="100" />
|
||||||
</div>
|
</div>
|
||||||
<ul class="padding-with-frieze unstyled paper">
|
<ul class="padding-with-frieze unstyled paper">
|
||||||
{{#if system.identity.totem }}
|
{{#if system.identity.totem }}
|
||||||
<li class="row lgb">
|
<li class="row lgb">
|
||||||
<div class="flexcol flex-group-center items-center w-full">
|
<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" />
|
<img
|
||||||
|
src="/systems/vermine2047/assets/images/ui/totems/{{ system.identity.totem }}.webp"
|
||||||
|
alt="{{ smarttl 'TOTEMS' system.identity.totem 'name' }}" width="80"
|
||||||
|
height="80"
|
||||||
|
data-tooltip="{{localize system.identity.totem}}" />
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{#if system.identity.theme}}
|
{{#if system.identity.theme}}
|
||||||
<li>
|
<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>
|
<label for="system.identity.theme"
|
||||||
|
class="resource-label flexlarge align-left"><h4>{{ localize
|
||||||
|
"IDENTITY.theme"}}</h4></label>
|
||||||
<p>{{{ system.identity.theme }}}</p>
|
<p>{{{ system.identity.theme }}}</p>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -20,7 +27,9 @@
|
|||||||
{{#if system.identity.instincts}}
|
{{#if system.identity.instincts}}
|
||||||
<li>
|
<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.instincts" class="resource-label flexlarge align-left">{{ localize "IDENTITY.instincts"}}</label>
|
<label for="system.identity.instincts"
|
||||||
|
class="resource-label flexlarge align-left"><h4>{{ localize
|
||||||
|
"IDENTITY.instincts"}}</h4></label>
|
||||||
<p>{{{ system.identity.instincts }}}</p>
|
<p>{{{ system.identity.instincts }}}</p>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -28,7 +37,9 @@
|
|||||||
{{#if system.identity.prohibits}}
|
{{#if system.identity.prohibits}}
|
||||||
<li>
|
<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.prohibits" class="resource-label flexlarge align-left">{{ localize "IDENTITY.prohibits"}}</label>
|
<label for="system.identity.prohibits"
|
||||||
|
class="resource-label flexlarge align-left"><h4>{{ localize
|
||||||
|
"IDENTITY.prohibits"}}</h4></label>
|
||||||
<p>{{{ system.identity.prohibits }}}</p>
|
<p>{{{ system.identity.prohibits }}}</p>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -36,19 +47,21 @@
|
|||||||
{{#if system.identity.objectives}}
|
{{#if system.identity.objectives}}
|
||||||
<li>
|
<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.objectives" class="resource-label flexlarge align-left">{{ localize "IDENTITY.objectives"}}</label>
|
<label for="system.identity.objectives"
|
||||||
|
class="resource-label flexlarge align-left"><h4>{{ localize
|
||||||
|
"IDENTITY.objectives"}}</h4></label>
|
||||||
<p>{{{ system.identity.objectives }}}</p>
|
<p>{{{ system.identity.objectives }}}</p>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</ul>
|
|
||||||
{{#if system.identity.relations}}
|
{{#if system.identity.relations}}
|
||||||
<ul class="padding-with-frieze unstyled second-paper">
|
|
||||||
<li>
|
<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.relations" class="resource-label flexlarge align-left">{{ localize "IDENTITY.relations"}}</label>
|
<label for="system.identity.relations"
|
||||||
|
class="resource-label flexlarge align-left"><h4>{{ localize
|
||||||
|
"IDENTITY.relations"}}</h4></label>
|
||||||
{{{ system.identity.relations }}}
|
{{{ system.identity.relations }}}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
@@ -1,24 +1,30 @@
|
|||||||
<section class="flexrow flex-group-left flex-align-left gap-md">
|
<section class="flexrow flex-group-left flex-align-left gap-md">
|
||||||
<div>
|
<div>
|
||||||
<h4>{{ localize 'IDENTITY.theme'}}</h4>
|
<h4>{{ localize 'IDENTITY.theme'}}</h4>
|
||||||
<textarea name="system.identity.theme">{{ system.identity.theme }}</textarea>
|
<textarea
|
||||||
|
name="system.identity.theme">{{ system.identity.theme }}</textarea>
|
||||||
<h4>{{ localize 'IDENTITY.objectives'}}</h4>
|
<h4>{{ localize 'IDENTITY.objectives'}}</h4>
|
||||||
<textarea name="system.identity.objectives">{{ system.identity.objectives }}</textarea>
|
<textarea
|
||||||
|
name="system.identity.objectives">{{ system.identity.objectives }}</textarea>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h4>{{ localize 'IDENTITY.instincts'}}</h4>
|
<h4>{{ localize 'IDENTITY.instincts'}}</h4>
|
||||||
<textarea name="system.identity.instincts">{{ system.identity.instincts }}</textarea>
|
<textarea
|
||||||
|
name="system.identity.instincts">{{ system.identity.instincts }}</textarea>
|
||||||
<h4>{{ localize 'IDENTITY.prohibits'}}</h4>
|
<h4>{{ localize 'IDENTITY.prohibits'}}</h4>
|
||||||
<textarea name="system.identity.prohibits">{{ system.identity.prohibits }}</textarea>
|
<textarea
|
||||||
|
name="system.identity.prohibits">{{ system.identity.prohibits }}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section class="flexcol flex-group-left flex-align-left">
|
<section class="flexcol ">
|
||||||
<div>
|
<div>
|
||||||
<h4>{{ localize 'IDENTITY.notes'}}</h4>
|
<h4>{{ localize 'IDENTITY.notes'}}</h4>
|
||||||
{{editor system.identity.biography target="system.identity.biography" button=true owner=owner editable=editable}}
|
{{editor system.identity.biography target="system.identity.biography"
|
||||||
|
button=true owner=owner editable=editable}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h4>{{ localize 'IDENTITY.relations'}}</h4>
|
<h4>{{ localize 'IDENTITY.relations'}}</h4>
|
||||||
{{editor system.identity.relations target="system.identity.relations" button=true owner=owner editable=editable}}
|
{{editor system.identity.relations target="system.identity.relations"
|
||||||
|
button=true owner=owner editable=editable}}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
@@ -1,30 +1,40 @@
|
|||||||
|
{{#if system.identity.totem}}
|
||||||
|
|
||||||
<h4 class="align-center">
|
<h4 class="align-center">
|
||||||
{{ smarttl 'TOTEMS' system.identity.totem 'name' }}
|
{{ smarttl 'TOTEMS' system.identity.totem 'name' }}
|
||||||
</h4>
|
</h4>
|
||||||
<p style="font-size:80%;">{{ smarttlk "TOTEMS" system.identity.totem "description"}}</p>
|
<p style="font-size:80%;">{{ smarttlk "TOTEMS" system.identity.totem
|
||||||
<div class="grid grid-2col">
|
"description"}}</p>
|
||||||
<div class="">
|
<div class="grid grid-2col">
|
||||||
<div class="item-name"><strong>Principes</strong><br />{{ smarttlk "TOTEMS" system.identity.totem "instincts"}}</div>
|
<div class>
|
||||||
|
<div class="item-name"><strong>Principes</strong><br />{{ smarttlk "TOTEMS"
|
||||||
|
system.identity.totem "instincts"}}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="">
|
<div class>
|
||||||
<div class="item-name"><strong>Interdits</strong><br />{{ smarttlk "TOTEMS" system.identity.totem "bans"}}</div>
|
<div class="item-name"><strong>Interdits</strong><br />{{ smarttlk "TOTEMS"
|
||||||
|
system.identity.totem "bans"}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="grid grid-2col">
|
<div class="grid grid-2col">
|
||||||
<div>
|
<div>
|
||||||
<h4>
|
<h4>
|
||||||
<span>{{ localize 'ITEMS.abilities'}}</span>
|
<span>{{ localize 'ITEMS.abilities'}}</span>
|
||||||
<a class="item-control item-create" title="Create item" data-type="ability"><i class="fas fa-plus"></i></a>
|
<a class="item-control item-create" title="Create item"
|
||||||
|
data-type="ability"><i class="fas fa-plus"></i></a>
|
||||||
</h4>
|
</h4>
|
||||||
<ol class="list-item">
|
<ol class="list-item">
|
||||||
{{#each abilities as |item id|}}
|
{{#each abilities as |item id|}}
|
||||||
<li class="item flexrow" data-item-id="{{item._id}}">
|
<li class="item flexrow" data-item-id="{{item._id}}">
|
||||||
<div class="item-name" style="flex:4;">
|
<div class="item-name" style="flex:4;">
|
||||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="item-controls flexrow">
|
<div class="item-controls flexrow">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<i class="fas fa-circle-question"
|
||||||
|
data-tooltip="{{item.system.description}}"></i>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i
|
||||||
|
class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
@@ -33,7 +43,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<h4>
|
<h4>
|
||||||
<span>{{ localize 'ITEMS.specialties'}}</span>
|
<span>{{ localize 'ITEMS.specialties'}}</span>
|
||||||
<a class="item-control item-create" title="Create item" data-type="specialty"><i class="fas fa-plus"></i></a>
|
<a class="item-control item-create" title="Create item"
|
||||||
|
data-type="specialty"><i class="fas fa-plus"></i></a>
|
||||||
</h4>
|
</h4>
|
||||||
<ol class="list-item">
|
<ol class="list-item">
|
||||||
{{#each specialties as |item id|}}
|
{{#each specialties as |item id|}}
|
||||||
@@ -42,7 +53,10 @@
|
|||||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-controls flexrow">
|
<div class="item-controls flexrow">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<i class="fas fa-circle-question"
|
||||||
|
data-tooltip="{{item.system.description}}"></i>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i
|
||||||
|
class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
@@ -51,7 +65,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<h4>
|
<h4>
|
||||||
<span>{{ localize 'ITEMS.backgrounds'}}</span>
|
<span>{{ localize 'ITEMS.backgrounds'}}</span>
|
||||||
<a class="item-control item-create" title="Create item" data-type="background"><i class="fas fa-plus"></i></a>
|
<a class="item-control item-create" title="Create item"
|
||||||
|
data-type="background"><i class="fas fa-plus"></i></a>
|
||||||
</h4>
|
</h4>
|
||||||
<ol class="list-item">
|
<ol class="list-item">
|
||||||
{{#each backgrounds as |item id|}}
|
{{#each backgrounds as |item id|}}
|
||||||
@@ -60,7 +75,10 @@
|
|||||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-controls flexrow">
|
<div class="item-controls flexrow">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<i class="fas fa-circle-question"
|
||||||
|
data-tooltip="{{item.system.description}}"></i>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i
|
||||||
|
class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
@@ -69,7 +87,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<h4>
|
<h4>
|
||||||
<span>{{ localize 'ITEMS.traumas'}}</span>
|
<span>{{ localize 'ITEMS.traumas'}}</span>
|
||||||
<a class="item-control item-create" title="Create item" data-type="trauma"><i class="fas fa-plus"></i></a>
|
<a class="item-control item-create" title="Create item"
|
||||||
|
data-type="trauma"><i class="fas fa-plus"></i></a>
|
||||||
</h4>
|
</h4>
|
||||||
<ol class="list-item">
|
<ol class="list-item">
|
||||||
{{#each traumas as |item id|}}
|
{{#each traumas as |item id|}}
|
||||||
@@ -78,7 +97,10 @@
|
|||||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-controls flexrow">
|
<div class="item-controls flexrow">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<i class="fas fa-circle-question"
|
||||||
|
data-tooltip="{{item.system.description}}"></i>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i
|
||||||
|
class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
@@ -87,7 +109,8 @@
|
|||||||
<div>
|
<div>
|
||||||
<h4>
|
<h4>
|
||||||
<span>{{ localize 'ITEMS.evolutions'}}</span>
|
<span>{{ localize 'ITEMS.evolutions'}}</span>
|
||||||
<a class="item-control item-create" title="Create item" data-type="evolution"><i class="fas fa-plus"></i></a>
|
<a class="item-control item-create" title="Create item"
|
||||||
|
data-type="evolution"><i class="fas fa-plus"></i></a>
|
||||||
</h4>
|
</h4>
|
||||||
<ol class="list-item">
|
<ol class="list-item">
|
||||||
{{#each evolutions as |item id|}}
|
{{#each evolutions as |item id|}}
|
||||||
@@ -96,11 +119,18 @@
|
|||||||
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
<a class="item-control item-edit" title="Edit Item">{{item.name}}</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-controls flexrow">
|
<div class="item-controls flexrow">
|
||||||
<a class="item-control item-delete" title="Delete Item"><i class="fas fa-trash"></i></a>
|
<i class="fas fa-circle-question"
|
||||||
|
data-tooltip="{{item.system.description}}"></i>
|
||||||
|
<a class="item-control item-delete" title="Delete Item"><i
|
||||||
|
class="fas fa-trash"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{else}}
|
||||||
|
|
||||||
|
<h3>choisissez un totem</h3>
|
||||||
|
|
||||||
|
{{/if}}
|
||||||
|
|||||||
@@ -2,30 +2,67 @@
|
|||||||
<div>
|
<div>
|
||||||
<h4 class="align-center">{{ localize "VERMINE.self_control"}}</h4>
|
<h4 class="align-center">{{ localize "VERMINE.self_control"}}</h4>
|
||||||
<p class="align-center">
|
<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 }}" /> / {{ system.attributes.self_control.max }}
|
<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 }}" /> / {{
|
||||||
|
system.attributes.self_control.max }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<h4 class="align-center">{{ localize "VERMINE.effort"}}</h4>
|
<h4 class="align-center">{{ localize "VERMINE.effort"}}</h4>
|
||||||
<p class="align-center">
|
<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 }}" /> / {{ system.attributes.effort.max }}
|
<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 }}" /> / {{
|
||||||
|
system.attributes.effort.max }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<h4 class="item-name effect-name flexrow">{{ localize "VERMINE.wounds.name"}}</h4>
|
<h4 class="item-name effect-name flexrow">{{ localize
|
||||||
|
"VERMINE.wounds.name"}}</h4>
|
||||||
<ul class="unstyled">
|
<ul class="unstyled">
|
||||||
<li class="row mdb">{{ localize 'VERMINE.wounds.light'}} ({{ system.minorWound.threshold }})
|
<li class="row mdb">{{ localize 'VERMINE.wounds.light'}} <span
|
||||||
|
data-tooltip="seuil">({{
|
||||||
|
system.minorWound.threshold }})</span>
|
||||||
{{#range system.minorWound.max }}
|
{{#range system.minorWound.max }}
|
||||||
<input type="radio" data-dtype="Number" name="system.minorWound.value" value="{{this}}" {{#ife @root.system.minorWound.value this }}checked="checked"{{/ife}} />
|
<input type="radio" data-dtype="Number" name="system.minorWound.value"
|
||||||
|
value="{{this}}" {{#ife @root.system.minorWound.value this
|
||||||
|
}}checked="checked"{{/ife}} data-wound="minorWound"
|
||||||
|
class="
|
||||||
|
{{#iflteq this @root.system.minorWound.value }}
|
||||||
|
checked
|
||||||
|
{{/iflteq}}
|
||||||
|
|
||||||
|
" />
|
||||||
{{/range}}</li>
|
{{/range}}</li>
|
||||||
<li class="row mdb">{{ localize 'VERMINE.wounds.heavy'}} ({{ system.majorWound.threshold }})
|
<li class="row mdb">{{ localize 'VERMINE.wounds.heavy'}} ({{
|
||||||
|
system.majorWound.threshold }})
|
||||||
{{#range system.majorWound.max }}
|
{{#range system.majorWound.max }}
|
||||||
<input type="radio" name="system.majorWound.value" value="{{this}}" {{#ife @root.system.majorWound.value this }}checked="checked"{{/ife}} />
|
<input type="radio" name="system.majorWound.value" value="{{this}}" {{#ife
|
||||||
|
@root.system.majorWound.value this }}checked="checked"{{/ife}}
|
||||||
|
data-wound="majorWound"
|
||||||
|
class="
|
||||||
|
{{#iflteq this @root.system.majorWound.value }}
|
||||||
|
checked
|
||||||
|
{{/iflteq}}
|
||||||
|
|
||||||
|
" />
|
||||||
{{/range}}
|
{{/range}}
|
||||||
</li>
|
</li>
|
||||||
<li class="row mdb">{{ localize 'VERMINE.wounds.deadly'}} ({{ system.deadlyWound.threshold }})
|
<li class="row mdb">{{ localize 'VERMINE.wounds.deadly'}} ({{
|
||||||
|
system.deadlyWound.threshold }})
|
||||||
{{#range system.deadlyWound.max }}
|
{{#range system.deadlyWound.max }}
|
||||||
<input type="radio" name="system.deadlyWound.value" value="{{this}}" {{#ife @root.system.deadlyWound.value this }}checked="checked"{{/ife}} />
|
<input type="radio" name="system.deadlyWound.value" value="{{this}}" {{#ife
|
||||||
|
@root.system.deadlyWound.value this }}checked="checked"{{/ife}}
|
||||||
|
data-wound="deadlyWound"
|
||||||
|
class="
|
||||||
|
{{#iflteq this @root.system.deadlyWound.value }}
|
||||||
|
checked
|
||||||
|
{{/iflteq}}
|
||||||
|
|
||||||
|
" />
|
||||||
{{/range}}
|
{{/range}}
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -33,7 +70,8 @@
|
|||||||
<ol class="items-list effects-list">
|
<ol class="items-list effects-list">
|
||||||
{{#each effects as |section sid|}}
|
{{#each effects as |section sid|}}
|
||||||
<li class="items-header flexrow" data-effect-type="{{section.type}}">
|
<li class="items-header flexrow" data-effect-type="{{section.type}}">
|
||||||
<p class="item-name effect-name flexrow">{{#if (eq section.type 'temporary')}}
|
<p class="item-name effect-name flexrow">{{#if (eq section.type
|
||||||
|
'temporary')}}
|
||||||
{{localize "UI.effects.temporary" }}
|
{{localize "UI.effects.temporary" }}
|
||||||
{{else if (eq section.type 'passive')}}
|
{{else if (eq section.type 'passive')}}
|
||||||
{{localize "UI.effects.passive" }}
|
{{localize "UI.effects.passive" }}
|
||||||
@@ -44,7 +82,8 @@
|
|||||||
<div class="effect-source">{{localize 'UI.source'}}</div>
|
<div class="effect-source">{{localize 'UI.source'}}</div>
|
||||||
<div class="effect-source">{{localize 'UI.duration'}}</div>
|
<div class="effect-source">{{localize 'UI.duration'}}</div>
|
||||||
<div class="item-controls effect-controls flexrow">
|
<div class="item-controls effect-controls flexrow">
|
||||||
<a class="effect-control" data-action="create" title="{{localize 'UI.effect_create'}}">
|
<a class="effect-control" data-action="create"
|
||||||
|
title="{{localize 'UI.effect_create'}}">
|
||||||
<i class="fas fa-plus"></i> {{localize "UI.add"}}
|
<i class="fas fa-plus"></i> {{localize "UI.add"}}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -54,18 +93,22 @@
|
|||||||
{{#each section.effects as |effect|}}
|
{{#each section.effects as |effect|}}
|
||||||
<li class="item effect flexrow" data-effect-id="{{effect.id}}">
|
<li class="item effect flexrow" data-effect-id="{{effect.id}}">
|
||||||
<div class="item-name effect-name">
|
<div class="item-name effect-name">
|
||||||
<a class="effect-control flexrow flex-group-center items-center" data-action="edit" title="{{localize 'UI.effect_edit'}}">
|
<a class="effect-control flexrow flex-group-center items-center"
|
||||||
<img class="item-image" src="{{effect.icon}}"/>
|
data-action="edit" title="{{localize 'UI.effect_edit'}}">
|
||||||
|
<img class="item-image" src="{{effect.icon}}" />
|
||||||
<span>{{effect.label}}</span>
|
<span>{{effect.label}}</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="effect-source">{{effect.sourceName}}</div>
|
<div class="effect-source">{{effect.sourceName}}</div>
|
||||||
<div class="effect-duration">{{effect.duration.label}}</div>
|
<div class="effect-duration">{{effect.duration.label}}</div>
|
||||||
<div class="item-controls effect-controls flexrow">
|
<div class="item-controls effect-controls flexrow">
|
||||||
<a class="effect-control" data-action="toggle" title="{{localize 'UI.effect_toggle'}}">
|
<a class="effect-control" data-action="toggle"
|
||||||
<i class="fas {{#if effect.disabled}}fa-check{{else}}fa-times{{/if}}"></i>
|
title="{{localize 'UI.effect_toggle'}}">
|
||||||
|
<i
|
||||||
|
class="fas {{#if effect.disabled}}fa-check{{else}}fa-times{{/if}}"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="effect-control" data-action="delete" title="{{localize 'UI.effect_delete'}}">
|
<a class="effect-control" data-action="delete"
|
||||||
|
title="{{localize 'UI.effect_delete'}}">
|
||||||
<i class="fas fa-trash"></i>
|
<i class="fas fa-trash"></i>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<section class="{{cssClass}} directory flexcol" id="{{cssId}}" data-tab="{{tabName}}">
|
<section class="{{cssClass}} directory flexcol" id="{{cssId}}"
|
||||||
|
data-tab="{{tabName}}">
|
||||||
<header class="combat-tracker-header">
|
<header class="combat-tracker-header">
|
||||||
{{#if user.isGM}}
|
{{#if user.isGM}}
|
||||||
<nav class="encounters flexrow" aria-label="COMBAT.NavLabel">
|
<nav class="encounters flexrow" aria-label="COMBAT.NavLabel">
|
||||||
@@ -6,17 +7,24 @@
|
|||||||
<i class="fas fa-plus"></i>
|
<i class="fas fa-plus"></i>
|
||||||
</a>
|
</a>
|
||||||
{{#if combatCount}}
|
{{#if combatCount}}
|
||||||
<a class="combat-button combat-cycle" data-tooltip="COMBAT.EncounterPrevious"
|
<a class="combat-button combat-cycle"
|
||||||
{{#if previousId}}data-document-id="{{previousId}}"{{else}}disabled{{/if}}>
|
data-tooltip="COMBAT.EncounterPrevious"
|
||||||
|
{{#if
|
||||||
|
previousId}}data-document-id="{{previousId}}"{{else}}disabled{{/if}}>
|
||||||
<i class="fas fa-caret-left"></i>
|
<i class="fas fa-caret-left"></i>
|
||||||
</a>
|
</a>
|
||||||
<h4 class="encounter">{{localize "COMBAT.Encounter"}} {{currentIndex}} / {{combatCount}}</h4>
|
<h4 class="encounter">{{localize "COMBAT.Encounter"}}
|
||||||
<a class="combat-button combat-cycle" data-tooltip="COMBAT.EncounterNext"
|
{{currentIndex}} / {{combatCount}}</h4>
|
||||||
{{#if nextId}}data-document-id="{{nextId}}"{{else}}disabled{{/if}}>
|
<a class="combat-button combat-cycle"
|
||||||
|
data-tooltip="COMBAT.EncounterNext"
|
||||||
|
{{#if
|
||||||
|
nextId}}data-document-id="{{nextId}}"{{else}}disabled{{/if}}>
|
||||||
<i class="fas fa-caret-right"></i>
|
<i class="fas fa-caret-right"></i>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<a class="combat-button combat-control" data-tooltip="COMBAT.Delete" data-control="endCombat" {{#unless combatCount}}disabled{{/unless}}>
|
<a class="combat-button combat-control" data-tooltip="COMBAT.Delete"
|
||||||
|
data-control="endCombat" {{#unless
|
||||||
|
combatCount}}disabled{{/unless}}>
|
||||||
<i class="fas fa-trash"></i>
|
<i class="fas fa-trash"></i>
|
||||||
</a>
|
</a>
|
||||||
</nav>
|
</nav>
|
||||||
@@ -24,34 +32,44 @@
|
|||||||
|
|
||||||
<div class="encounter-controls flexrow {{#if hasCombat}}combat{{/if}}">
|
<div class="encounter-controls flexrow {{#if hasCombat}}combat{{/if}}">
|
||||||
{{#if user.isGM}}
|
{{#if user.isGM}}
|
||||||
<a class="combat-button combat-control" data-tooltip="COMBAT.RollAll" data-control="rollAll" {{#unless turns}}disabled{{/unless}}>
|
<a class="combat-button combat-control"
|
||||||
|
data-tooltip="COMBAT.RollAll" data-control="rollAll" {{#unless
|
||||||
|
turns}}disabled{{/unless}}>
|
||||||
<i class="fas fa-users"></i>
|
<i class="fas fa-users"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="combat-button combat-control" data-tooltip="COMBAT.RollNPC" data-control="rollNPC" {{#unless turns}}disabled{{/unless}}>
|
<a class="combat-button combat-control"
|
||||||
|
data-tooltip="COMBAT.RollNPC" data-control="rollNPC" {{#unless
|
||||||
|
turns}}disabled{{/unless}}>
|
||||||
<i class="fas fa-users-cog"></i>
|
<i class="fas fa-users-cog"></i>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if combatCount}}
|
{{#if combatCount}}
|
||||||
{{#if combat.round}}
|
{{#if combat.round}}
|
||||||
<h3 class="encounter-title noborder">{{localize 'COMBAT.Round'}} {{combat.round}}</h3>
|
<h3 class="encounter-title noborder">{{localize 'COMBAT.Round'}}
|
||||||
|
{{combat.round}}</h3>
|
||||||
{{else}}
|
{{else}}
|
||||||
<h3 class="encounter-title noborder">{{localize 'COMBAT.NotStarted'}}</h3>
|
<h3 class="encounter-title noborder">{{localize
|
||||||
|
'COMBAT.NotStarted'}}</h3>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{else}}
|
{{else}}
|
||||||
<h3 class="encounter-title noborder">{{localize "COMBAT.None"}}</h3>
|
<h3 class="encounter-title noborder">{{localize "COMBAT.None"}}</h3>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if user.isGM}}
|
{{#if user.isGM}}
|
||||||
<a class="combat-button combat-control" data-tooltip="COMBAT.InitiativeReset" data-control="resetAll"
|
<a class="combat-button combat-control"
|
||||||
|
data-tooltip="COMBAT.InitiativeReset" data-control="resetAll"
|
||||||
{{#unless hasCombat}}disabled{{/unless}}>
|
{{#unless hasCombat}}disabled{{/unless}}>
|
||||||
<i class="fas fa-undo"></i>
|
<i class="fas fa-undo"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="combat-button combat-control" data-tooltip="{{labels.scope}}"
|
<a class="combat-button combat-control"
|
||||||
data-control="toggleSceneLink" {{#unless hasCombat}}disabled{{/unless}}>
|
data-tooltip="{{labels.scope}}"
|
||||||
|
data-control="toggleSceneLink" {{#unless
|
||||||
|
hasCombat}}disabled{{/unless}}>
|
||||||
<i class="fas fa-{{#unless linked}}un{{/unless}}link"></i>
|
<i class="fas fa-{{#unless linked}}un{{/unless}}link"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="combat-button combat-settings" data-tooltip="COMBAT.Settings" data-control="trackerSettings">
|
<a class="combat-button combat-settings"
|
||||||
|
data-tooltip="COMBAT.Settings" data-control="trackerSettings">
|
||||||
<i class="fas fa-cog"></i>
|
<i class="fas fa-cog"></i>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
@@ -60,34 +78,60 @@
|
|||||||
|
|
||||||
<ol id="combat-tracker" class="directory-list">
|
<ol id="combat-tracker" class="directory-list">
|
||||||
{{#each turns}}
|
{{#each turns}}
|
||||||
<li class="combatant actor directory-item flexrow {{this.css}}" data-combatant-id="{{this.id}}">
|
<li class="combatant actor directory-item flexrow {{this.css}}"
|
||||||
<img class="token-image" data-src="{{this.img}}" alt="{{this.name}}"/>
|
data-combatant-id="{{this.id}}">
|
||||||
|
<img class="token-image" data-src="{{this.img}}"
|
||||||
|
alt="{{this.name}}" />
|
||||||
<div class="token-name flexcol">
|
<div class="token-name flexcol">
|
||||||
<h4 class="{{getCombatTrackerColor this.isPlayer this.isNpc}}">{{this.name}}</h4>
|
<h4
|
||||||
|
class="{{getCombatTrackerColor this.isPlayer this.isNpc}}">{{this.name}}</h4>
|
||||||
<div class="combatant-controls flexrow">
|
<div class="combatant-controls flexrow">
|
||||||
<a class="combatant-control {{#if this.hidden}}active{{/if}}" data-tooltip="COMBAT.ToggleVis" data-control="toggleHidden">
|
<a
|
||||||
|
class="combatant-control {{#if this.hidden}}active{{/if}}"
|
||||||
|
data-tooltip="COMBAT.ToggleVis"
|
||||||
|
data-control="toggleHidden">
|
||||||
<i class="fas fa-eye-slash"></i>
|
<i class="fas fa-eye-slash"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="combatant-control {{#if this.defeated}}active{{/if}}" data-tooltip="COMBAT.ToggleDead" data-control="toggleDefeated">
|
<a
|
||||||
|
class="combatant-control {{#if this.defeated}}active{{/if}}"
|
||||||
|
data-tooltip="COMBAT.ToggleDead"
|
||||||
|
data-control="toggleDefeated">
|
||||||
<i class="fas fa-skull"></i>
|
<i class="fas fa-skull"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="combatant-control offensive status" {{#if (eq this.attitude "offensive")}} data-tooltip="{{localize 'ATTITUDES.offensive.name'}}" {{else}} data-tooltip="{{localize 'ATTITUDES.offensive.name'}}" {{/if}}>
|
<a class="combatant-control offensive status"
|
||||||
<i {{#if (eq this.attitude "offensive")}} class="fas fa-fist-raised" style="color:white" {{else}} class="fas fa-fist-raised" style="color:gray" {{/if}}></i>
|
data-tooltip="{{localize 'ATTITUDES.offensive.name'}}"
|
||||||
|
data-attitude="offensive">
|
||||||
|
<i
|
||||||
|
class="fas fa-fist-raised"
|
||||||
|
style="{{#if (eq this.attitude "offensive")}}color:white
|
||||||
|
{{else}}color:gray {{/if}}"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="combatant-control active status" {{#if (eq this.attitude "active")}} data-tooltip="{{localize 'ATTITUDES.active.name'}}" {{else}} data-tooltip="{{localize 'ATTITUDES.active.name'}}" {{/if}}>
|
<a class="combatant-control active status"
|
||||||
<i {{#if (eq this.attitude "active")}} class="fas fa-bow-arrow" style="color:white" {{else}} class="fas fa-bow-arrow" style="color:gray" {{/if}}></i>
|
data-tooltip="{{localize 'ATTITUDES.active.name'}}"
|
||||||
|
data-attitude="active">
|
||||||
|
<i
|
||||||
|
class="fas fa-bow-arrow"
|
||||||
|
style="{{#if (eq this.attitude "active")}}color:white
|
||||||
|
{{else}} color:gray
|
||||||
|
{{/if}}"></i>
|
||||||
</a>
|
</a>
|
||||||
<a class="combatant-control passive status" {{#if (eq this.attitude "passive")}} data-tooltip="{{localize 'ATTITUDES.passive.name'}}" {{else}} data-tooltip="{{localize 'ATTITUDES.passive.name'}}" {{/if}}>
|
<a class="combatant-control passive status"
|
||||||
<i {{#if (eq this.attitude "passive")}} class="fas fa-shield-cross" style="color:white" {{else}} class="fas fa-shield-cross" style="color:gray" {{/if}}></i>
|
data-tooltip="{{localize 'ATTITUDES.passive.name'}}"
|
||||||
|
data-attitude="passive">
|
||||||
|
<i class="fas fa-shield-quartered"
|
||||||
|
style="{{#if (eq this.attitude "passive")}}color:white
|
||||||
|
{{else}} color:gray{{/if}}"></i>
|
||||||
</a>
|
</a>
|
||||||
{{#if this.canPing}}
|
{{#if this.canPing}}
|
||||||
<a class="combatant-control" data-tooltip="COMBAT.PingCombatant" data-control="pingCombatant">
|
<a class="combatant-control"
|
||||||
|
data-tooltip="COMBAT.PingCombatant"
|
||||||
|
data-control="alertPingCombatant">
|
||||||
<i class="fa-solid fa-bullseye-arrow"></i>
|
<i class="fa-solid fa-bullseye-arrow"></i>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="token-effects">
|
<div class="token-effects">
|
||||||
{{#each this.effects}}
|
{{#each this.effects}}
|
||||||
<img class="token-effect" src="{{this}}"/>
|
<img class="token-effect" src="{{this}}" />
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -103,29 +147,42 @@
|
|||||||
{{#if this.hasRolled}}
|
{{#if this.hasRolled}}
|
||||||
<span class="initiative">{{this.initiative}}</span>
|
<span class="initiative">{{this.initiative}}</span>
|
||||||
{{else if this.owner}}
|
{{else if this.owner}}
|
||||||
<a class="combatant-control roll" data-tooltip="COMBAT.InitiativeRoll" data-control="rollInitiative"></a>
|
<a class="combatant-control roll"
|
||||||
|
data-tooltip="COMBAT.InitiativeRoll"
|
||||||
|
data-control="rollInitiative"></a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<nav id="combat-controls" class="directory-footer flexrow" data-tooltip-direction="UP">
|
<nav id="combat-controls" class="directory-footer flexrow"
|
||||||
|
data-tooltip-direction="UP">
|
||||||
{{#if hasCombat}}
|
{{#if hasCombat}}
|
||||||
{{#if user.isGM}}
|
{{#if user.isGM}}
|
||||||
{{#if round}}
|
{{#if round}}
|
||||||
<a class="combat-control" data-tooltip="COMBAT.RoundPrev" data-control="previousRound"><i class="fas fa-step-backward"></i></a>
|
<a class="combat-control" data-tooltip="COMBAT.RoundPrev"
|
||||||
<a class="combat-control" data-tooltip="COMBAT.TurnPrev" data-control="previousTurn"><i class="fas fa-arrow-left"></i></a>
|
data-control="previousRound"><i
|
||||||
<a class="combat-control center" data-control="endCombat">{{localize 'COMBAT.End'}}</a>
|
class="fas fa-step-backward"></i></a>
|
||||||
<a class="combat-control" data-tooltip="COMBAT.TurnNext" data-control="nextTurn"><i class="fas fa-arrow-right"></i></a>
|
<a class="combat-control" data-tooltip="COMBAT.TurnPrev"
|
||||||
<a class="combat-control" data-tooltip="COMBAT.RoundNext" data-control="nextRound"><i class="fas fa-step-forward"></i></a>
|
data-control="previousTurn"><i class="fas fa-arrow-left"></i></a>
|
||||||
|
<a class="combat-control center" data-control="endCombat">{{localize
|
||||||
|
'COMBAT.End'}}</a>
|
||||||
|
<a class="combat-control" data-tooltip="COMBAT.TurnNext"
|
||||||
|
data-control="nextTurn"><i class="fas fa-arrow-right"></i></a>
|
||||||
|
<a class="combat-control" data-tooltip="COMBAT.RoundNext"
|
||||||
|
data-control="nextRound"><i class="fas fa-step-forward"></i></a>
|
||||||
{{else}}
|
{{else}}
|
||||||
<a class="combat-control center" data-control="startCombat">{{localize 'COMBAT.Begin'}}</a>
|
<a class="combat-control center" data-control="startCombat">{{localize
|
||||||
|
'COMBAT.Begin'}}</a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{else if control}}
|
{{else if control}}
|
||||||
<a class="combat-control" data-tooltip="COMBAT.TurnPrev" data-control="previousTurn"><i class="fas fa-arrow-left"></i></a>
|
<a class="combat-control" data-tooltip="COMBAT.TurnPrev"
|
||||||
<a class="combat-control center" data-control="nextTurn">{{localize 'COMBAT.TurnEnd'}}</a>
|
data-control="previousTurn"><i class="fas fa-arrow-left"></i></a>
|
||||||
<a class="combat-control" data-tooltip="COMBAT.TurnNext" data-control="nextTurn"><i class="fas fa-arrow-right"></i></a>
|
<a class="combat-control center" data-control="nextTurn">{{localize
|
||||||
|
'COMBAT.TurnEnd'}}</a>
|
||||||
|
<a class="combat-control" data-tooltip="COMBAT.TurnNext"
|
||||||
|
data-control="nextTurn"><i class="fas fa-arrow-right"></i></a>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
@@ -1,29 +1,41 @@
|
|||||||
<form class="{{cssClass}}" autocomplete="off">
|
<form
|
||||||
|
class="{{cssClass}}"
|
||||||
|
autocomplete="off"
|
||||||
|
>
|
||||||
<header class="sheet-header">
|
<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}}"
|
||||||
|
/>
|
||||||
|
{{log this}}
|
||||||
<div class="header-fields">
|
<div class="header-fields">
|
||||||
<h1 class="charname"><input name="name" type="text" value="{{item.name}}" placeholder="Name"/></h1>
|
<h1 class="charname"><input
|
||||||
|
name="name"
|
||||||
|
type="text"
|
||||||
|
value="{{item.name}}"
|
||||||
|
placeholder="Name"
|
||||||
|
/></h1>
|
||||||
|
<select
|
||||||
|
name="system.skill"
|
||||||
|
class="skill-select"
|
||||||
|
>
|
||||||
|
{{#select system.skill}}
|
||||||
|
{{#each @root.config.skillCategories as |skillCategory sckey|}}
|
||||||
|
|
||||||
|
<optgroup label="{{ smarttlk 'SKILLS_CATEGORIES' sckey 'name' }}">
|
||||||
|
{{#each @root.config.model.Actor.character.skills as |skill key|}}
|
||||||
|
{{#ife skill.category sckey}}
|
||||||
|
<option value="{{key}}">{{ smarttlk 'SKILLS' key 'name' }}</option>
|
||||||
|
{{/ife}}
|
||||||
|
</optgroup>
|
||||||
|
{{/each}}
|
||||||
|
{{/each}}
|
||||||
|
{{/select}}
|
||||||
|
</select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
{{!-- Sheet Tab Navigation --}}
|
|
||||||
<nav class="sheet-tabs tabs" data-group="primary">
|
|
||||||
<a class="item" data-tab="description">Description</a>
|
|
||||||
<a class="item" data-tab="attributes">Attributes</a>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
{{!-- Sheet Body --}}
|
|
||||||
<section class="sheet-body">
|
|
||||||
|
|
||||||
{{!-- Description Tab --}}
|
|
||||||
<div class="tab" data-group="primary" data-tab="description">
|
|
||||||
{{editor system.description target="system.description" rollData=rollData button=true owner=owner editable=editable}}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{{!-- Attributes Tab --}}
|
|
||||||
<div class="tab attributes" data-group="primary" data-tab="attributes">
|
|
||||||
{{!-- As you add new fields, add them in here! --}}
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
+63
-30
@@ -1,23 +1,37 @@
|
|||||||
<form id="dice-pool-form" class="ecryme-dv-form" data-actor-id="{{ speakerId }}">
|
<form id="dice-pool-form" class="ecryme-dv-form"
|
||||||
|
data-actor-id="{{ speakerId }}">
|
||||||
<input type="hidden" name="label" id="label" value="{{ label }}" />
|
<input type="hidden" name="label" id="label" value="{{ label }}" />
|
||||||
<input type="hidden" name="rollType" id="rollType" value="{{ rollType }}" />
|
<input type="hidden" name="rollType" id="rollType" value="{{ rollType }}" />
|
||||||
<input type="hidden" name="abilityScore" id="abilityScore" value="{{ abilityScore }}" />
|
<input type="hidden" name="abilityScore" id="abilityScore"
|
||||||
<input type="hidden" name="skillScore" id="skillScore" value="{{ skillScore }}" />
|
value="{{ abilityScore }}" />
|
||||||
|
<input type="hidden" name="skillScore" id="skillScore"
|
||||||
|
value="{{ skillScore }}" />
|
||||||
<div class="dice-pool flexcol">
|
<div class="dice-pool flexcol">
|
||||||
<div class="flexrow row lgb flex-group-center">
|
<div class="flexrow row lgb flex-group-center">
|
||||||
<span>Type de jet <strong>{{#if (eq rollType 'skill')}}{{ localize 'VERMINE.skill_title' }}{{else}}{{ localize 'VERMINE.ability' }}{{/if}}</strong></span>
|
<span>Type de jet <strong>{{#if (eq rollType 'skill')}}{{ localize
|
||||||
<span>{{#if (eq rollType 'skill')}}{{ localize 'VERMINE.skill_title' }}{{else}}{{ localize 'VERMINE.ability' }}{{/if}}
|
'VERMINE.skill_title' }}{{else}}{{ localize 'VERMINE.ability'
|
||||||
<strong>{{#if (eq rollType 'skill')}}{{ smarttl "SKILLS" label }}{{else}}{{ smarttl "ABILITIES" label }}{{/if}}</strong> </span>
|
}}{{/if}}</strong></span>
|
||||||
|
<span>{{#if (eq rollType 'skill')}}{{ localize 'VERMINE.skill_title'
|
||||||
|
}}{{else}}{{ localize 'VERMINE.ability' }}{{/if}}
|
||||||
|
<strong>{{#if (eq rollType 'skill')}}{{ smarttl "SKILLS" label
|
||||||
|
}}{{else}}{{ smarttl "ABILITIES" label }}{{/if}}</strong> </span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow row mdb">
|
<div class="flexrow row mdb">
|
||||||
<label class="label" style="flex: 60%;">{{localize 'VERMINE.difficulty'}}</label>
|
<label class="label" style="flex: 60%;">{{localize
|
||||||
<select class="info-value" style="max-width: 40%;" data-dtype="String" type="number" name="difficulty" id="difficulty" min="3" max="10">
|
'VERMINE.difficulty'}}</label>
|
||||||
|
<select class="info-value" style="max-width: 40%;" data-dtype="String"
|
||||||
|
type="number" name="difficulty" id="difficulty" min="3" max="10">
|
||||||
{{#select difficulty }}
|
{{#select difficulty }}
|
||||||
<option value="{{ diffLevel 'difficulty' 1}}">{{ diffLevel 'label' 1}} - {{ diffLevel 'difficulty' 1}}</option>
|
<option value="{{ diffLevel 'difficulty' 1}}">{{ diffLevel 'label' 1}} -
|
||||||
<option value="{{ diffLevel 'difficulty' 1}}">{{ diffLevel 'label' 2}} - {{ diffLevel 'difficulty' 2}}</option>
|
{{ diffLevel 'difficulty' 1}}</option>
|
||||||
<option value="{{ diffLevel 'difficulty' 1}}" selected>{{ diffLevel 'label' 3}} - {{ diffLevel 'difficulty' 3}}</option>
|
<option value="{{ diffLevel 'difficulty' 2}}">{{ diffLevel 'label' 2}} -
|
||||||
<option value="{{ diffLevel 'difficulty' 1}}">{{ diffLevel 'label' 4}} - {{ diffLevel 'difficulty' 4}}</option>
|
{{ diffLevel 'difficulty' 2}}</option>
|
||||||
<option value="{{ diffLevel 'difficulty' 1}}">{{ diffLevel 'label' 5}} - {{ diffLevel 'difficulty' 5}}</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>
|
||||||
{{/select}}
|
{{/select}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
@@ -25,48 +39,67 @@
|
|||||||
<input style="text-align: center;" class="numeric-entry" type="number" name="difficulty" value="7" id="difficulty" min="3" max="10">
|
<input style="text-align: center;" class="numeric-entry" type="number" name="difficulty" value="7" id="difficulty" min="3" max="10">
|
||||||
</div-->
|
</div-->
|
||||||
<div class="flexrow row mdb">
|
<div class="flexrow row mdb">
|
||||||
<label class="label" style="flex: 60%;">{{localize 'VERMINE.ability'}}</label>
|
<label class="label" style="flex: 60%;">{{localize
|
||||||
<select class="info-value" style="max-width: 40%;" data-dtype="String" type="number" name="ability" id="ability" min="1" max="5">
|
'VERMINE.ability'}}</label>
|
||||||
{{#if (eq rollType 'skill')}}<option>-- Choisissez une caractéristique --</option>{{/if}}
|
<select class="info-value" style="max-width: 40%;" data-dtype="String"
|
||||||
|
type="number" name="ability" id="ability" min="1" max="5">
|
||||||
|
{{#if (eq rollType 'skill')}}<option>-- Choisissez une caractéristique
|
||||||
|
--</option>{{/if}}
|
||||||
{{#each abilities as |ability key| }}
|
{{#each abilities as |ability key| }}
|
||||||
<option value="{{ key }}" {{#if (eq key @root.label)}}selected{{/if}}> {{ smarttl "ABILITIES" key }} - {{ ability.value }}</option>
|
<option value="{{ key }}" {{#if (eq key @root.label)}}selected{{/if}}>
|
||||||
|
{{ smarttl "ABILITIES" key }} - {{ ability.value }}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
{{#if (eq rollType 'skill')}}
|
{{#if (eq rollType 'skill')}}
|
||||||
<div class="flexrow row mdb">
|
<div class="flexrow row mdb">
|
||||||
<label class="label" style="flex: 60%;">{{localize 'VERMINE.skill_title'}}</label>
|
<label class="label" style="flex: 60%;">{{localize
|
||||||
<select class="info-value" style="max-width: 40%;" data-dtype="String" type="number" name="skill" id="skill" min="1" max="5">
|
'VERMINE.skill_title'}}</label>
|
||||||
|
<select class="info-value" style="max-width: 40%;" data-dtype="String"
|
||||||
|
type="number" name="skill" id="skill" min="1" max="5">
|
||||||
{{#each skills as |skill key| }}
|
{{#each skills as |skill key| }}
|
||||||
<option value="{{ key }}" {{#if (eq key @root.label)}}selected{{/if}}> {{ smarttl "SKILLS" key }} - {{ skill.value }}</option>
|
<option value="{{ key }}" {{#if (eq key @root.label)}}selected{{/if}}>
|
||||||
|
{{ smarttl "SKILLS" key }} - {{ skill.value }}</option>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow row lgb">
|
<div class="flexrow row lgb">
|
||||||
<span id="skillLevel">{{#if (ne skillScore 0)}}{{ skillLevel 'label' skillScore }}{{/if}}</span>
|
<span id="skillLevel">{{#if (ne skillScore 0)}}{{ skillLevel 'label'
|
||||||
<span>{{localize 'VERMINE.bonus'}} : <em id="skillDicePool">{{#if (ne skillScore 0)}}{{ skillLevel 'dicePool' skillScore }}{{else}}0{{/if}}</em></span>
|
skillScore }}{{/if}}</span>
|
||||||
<span>{{localize 'VERMINE.reroll'}} : <em id="skillReroll">{{#if (ne skillScore 0)}}{{ skillLevel 'reroll' skillScore }}{{else}}0{{/if}}</em></span>
|
<span>{{localize 'VERMINE.bonus'}} : <em id="skillDicePool">{{#if (ne
|
||||||
|
skillScore 0)}}{{ skillLevel 'dicePool' skillScore
|
||||||
|
}}{{else}}0{{/if}}</em></span>
|
||||||
|
<span>{{localize 'VERMINE.reroll'}} : <em id="skillReroll">{{#if (ne
|
||||||
|
skillScore 0)}}{{ skillLevel 'reroll' skillScore
|
||||||
|
}}{{else}}0{{/if}}</em></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow row smb">
|
<div class="flexrow row smb">
|
||||||
<label class="label">{{localize 'VERMINE.specialty'}} (+1D)</label>
|
<label class="label">{{localize 'VERMINE.specialty'}} (+1D)</label>
|
||||||
<input type="checkbox" name="usingSpecialization" id="usingSpecialization" value="1" {{#if specialty}}checked{{/if}}>
|
<input type="checkbox" name="usingSpecialization" id="usingSpecialization"
|
||||||
|
value="1" {{#if specialty}}checked{{/if}}>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<div class="flexrow row smb">
|
<div class="flexrow row smb">
|
||||||
<label class="label">{{localize 'VERMINE.help'}} (+1D)</label>
|
<label class="label">{{localize 'VERMINE.help'}} (+1D)</label>
|
||||||
<input type="checkbox" name="helped" id="helped" value="1" {{#if help}}checked{{/if}}>
|
<input type="checkbox" name="helped" id="helped" value="1" {{#if
|
||||||
|
help}}checked{{/if}}>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow row mdb">
|
<div class="flexrow row mdb">
|
||||||
<label class="label">{{localize 'VERMINE.tooling'}} (+1D)</label>
|
<label class="label">{{localize 'VERMINE.tooling'}} (+1D)</label>
|
||||||
<input type="checkbox" name="usingTools" id="usingTools" value="1" {{#if help}}checked{{/if}}>
|
<input type="checkbox" name="usingTools" id="usingTools" value="1" {{#if
|
||||||
|
help}}checked{{/if}}>
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow row mdb">
|
<div class="flexrow row mdb">
|
||||||
<label class="label" style="flex: 80%;">{{localize 'VERMINE.self_control'}}</label>
|
<label class="label" style="flex: 80%;">{{localize
|
||||||
<input type="number" class="numeric-entry" style="text-align: center;" name="self_control" id="self_control" min="0" max="5" value="0">
|
'VERMINE.self_control'}}</label>
|
||||||
|
<input type="number" class="numeric-entry" style="text-align: center;"
|
||||||
|
name="self_control" id="self_control" min="0" max="5" value="0">
|
||||||
</div>
|
</div>
|
||||||
<div class="flexrow row mdb">
|
<div class="flexrow row mdb">
|
||||||
<label class="label" style="flex: 80%;">{{localize 'VERMINE.group'}}</label>
|
<label class="label" style="flex: 80%;">{{localize
|
||||||
<input type="number" class="numeric-entry" style="text-align: center;" name="group" id="group" min="0" max="" value="0">
|
'VERMINE.group'}}</label>
|
||||||
|
<input type="number" class="numeric-entry" style="text-align: center;"
|
||||||
|
name="group" id="group" min="0" max value="0">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p><input type="hidden" name="speakerId" value="{{ speakerId }}" />
|
<p><input type="hidden" name="speakerId" value="{{ speakerId }}" />
|
||||||
|
|||||||
Reference in New Issue
Block a user