Add goal tree toolbox module
All checks were successful
Deploy Sokko G / deploy (push) Successful in 15s
All checks were successful
Deploy Sokko G / deploy (push) Successful in 15s
This commit is contained in:
parent
e4cbe3e087
commit
59fdcb0927
63 changed files with 4062 additions and 252 deletions
|
|
@ -36,6 +36,10 @@
|
|||
"id": "m8",
|
||||
"type": "table"
|
||||
},
|
||||
{
|
||||
"id": "mf",
|
||||
"type": "goalTree"
|
||||
},
|
||||
{
|
||||
"id": "m9",
|
||||
"type": "timer"
|
||||
|
|
@ -213,8 +217,8 @@
|
|||
}
|
||||
],
|
||||
"moduleOrder": {
|
||||
"one": ["m1", "m2", "m3", "m4", "m5", "m6", "m7", "m8", "m9", "md", "me", "ma", "mb", "mc"],
|
||||
"two": [["m1", "m2", "m3", "m4", "m5", "m6", "ma"], ["m7", "m8", "m9", "md", "me", "mb", "mc"]]
|
||||
"one": ["m1", "m2", "m3", "m4", "m5", "m6", "m7", "m8", "mf", "m9", "md", "me", "ma", "mb", "mc"],
|
||||
"two": [["m1", "m2", "m3", "m4", "m5", "m6", "ma"], ["m7", "m8", "mf", "m9", "md", "me", "mb", "mc"]]
|
||||
},
|
||||
"updatedAt": "2026-08-09T07:34:31.425Z",
|
||||
"moduleColumns": 1
|
||||
|
|
@ -1436,6 +1440,103 @@
|
|||
"3": "Valeur"
|
||||
}
|
||||
},
|
||||
"mf": {
|
||||
"lastResetAt": 1787263200000,
|
||||
"orientation": "vertical",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "goal1",
|
||||
"title": "Potion d'invincibilité",
|
||||
"icon": "flask",
|
||||
"color": "green",
|
||||
"qtyTarget": 10
|
||||
},
|
||||
{
|
||||
"id": "goal2",
|
||||
"title": "Potion de vie",
|
||||
"parentId": "goal1",
|
||||
"icon": "flask",
|
||||
"color": "red",
|
||||
"formula": "base"
|
||||
},
|
||||
{
|
||||
"id": "goal3",
|
||||
"title": "Ingredients",
|
||||
"parentId": "goal2",
|
||||
"kind": "checklist",
|
||||
"items": [
|
||||
{
|
||||
"id": "xn2okr5",
|
||||
"label": "Herbe magique",
|
||||
"formula": "base",
|
||||
"qtyTarget": 10,
|
||||
"qtyCurrent": 7
|
||||
},
|
||||
{
|
||||
"id": "xm5h5uu",
|
||||
"label": "Eau rajeunissante",
|
||||
"formula": "base",
|
||||
"qtyTarget": 10,
|
||||
"qtyCurrent": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "goal4",
|
||||
"title": "Potion de résistance",
|
||||
"parentId": "goal1",
|
||||
"icon": "flask",
|
||||
"color": "blue",
|
||||
"formula": "base"
|
||||
},
|
||||
{
|
||||
"id": "goal5",
|
||||
"title": "Ingredients supp.",
|
||||
"parentId": "goal1",
|
||||
"kind": "checklist",
|
||||
"items": [
|
||||
{
|
||||
"id": "x3mlygm",
|
||||
"label": "Poudre magique",
|
||||
"formula": "base",
|
||||
"qtyTarget": 10
|
||||
},
|
||||
{
|
||||
"id": "x1dqx6w",
|
||||
"label": "Herbe magique",
|
||||
"formula": "base*2",
|
||||
"qtyTarget": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "goal6",
|
||||
"title": "Parler a l'alchimiste",
|
||||
"collapsed": true
|
||||
},
|
||||
{
|
||||
"id": "goal7",
|
||||
"title": "Acheter une station d'alchimie",
|
||||
"parentId": "goal6",
|
||||
"formula": "base",
|
||||
"collapsed": true
|
||||
},
|
||||
{
|
||||
"id": "goal8",
|
||||
"title": "Apprendre la recette de potion d'invicibilité",
|
||||
"parentId": "goal7",
|
||||
"formula": "base",
|
||||
"collapsed": true
|
||||
},
|
||||
{
|
||||
"id": "goal9",
|
||||
"title": "S'inscrire à l'academie d'alchimie",
|
||||
"parentId": "goal6",
|
||||
"formula": "base",
|
||||
"collapsed": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"m9": {
|
||||
"activeTab": "countdown",
|
||||
"stopwatch": {
|
||||
|
|
|
|||
|
|
@ -673,6 +673,81 @@
|
|||
"example": "Lingot de champignite: 100\n Lingot de chlorophyte: 100\n Champignon luisant: 1500\nLingot de chlorophyte: 100\n Minerai de chlorophyte: 500"
|
||||
}
|
||||
},
|
||||
"goalTree": {
|
||||
"controls": [
|
||||
{
|
||||
"group": "Arbre",
|
||||
"icon": "rotate",
|
||||
"title": "Changer le mode d'affichage",
|
||||
"preview": {
|
||||
"kind": "switch",
|
||||
"icon": "rotate",
|
||||
"active": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "Arbre",
|
||||
"icon": "chevron-down",
|
||||
"title": "Déployer l'objectif",
|
||||
"preview": {
|
||||
"kind": "iconButton",
|
||||
"icon": "chevron-down"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "Objectifs",
|
||||
"icon": "edit",
|
||||
"title": "Éditer l'objectif",
|
||||
"preview": {
|
||||
"kind": "iconButton",
|
||||
"icon": "edit"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "Objectifs",
|
||||
"icon": "trash",
|
||||
"title": "Supprimer l'objectif et ces étapes",
|
||||
"preview": {
|
||||
"kind": "iconButton",
|
||||
"icon": "trash",
|
||||
"danger": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"features": [
|
||||
{
|
||||
"title": "Décomposition visuelle",
|
||||
"text": "Un objectif peut être ouvert en étapes, sous-étapes et ressources finales.",
|
||||
"details": [
|
||||
"Chaque bloc peut être sélectionné pour éditer ses quantités et son type.",
|
||||
"Les branches se replient pour garder une vue lisible quand l'arbre grandit.",
|
||||
"Le même outil peut représenter un craft, une route de farm ou un objectif long."
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Quantités liées",
|
||||
"text": "Les sous-étapes peuvent utiliser une formule basée sur la quantité du parent.",
|
||||
"details": [
|
||||
"La variable base référence la cible calculée du parent.",
|
||||
"Les feuilles suivent leur quantité actuelle, tandis que les parents affichent une progression agrégée.",
|
||||
"Les formules restent limitées aux opérations numériques simples."
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Resets optionnels",
|
||||
"text": "Un nœud peut être ponctuel, quotidien ou hebdomadaire sans imposer un reset à tout l'arbre.",
|
||||
"details": [
|
||||
"Les resets remettent seulement la quantité actuelle à zéro.",
|
||||
"Le jour hebdomadaire et l'heure de reset se règlent au niveau de l'outil.",
|
||||
"La structure de l'arbre reste inchangée après une réinitialisation."
|
||||
]
|
||||
}
|
||||
],
|
||||
"importFormat": {
|
||||
"text": "Une ligne par nœud avec indentation de deux espaces. Utilisez xN pour une quantité simple ou = base * N pour une formule.",
|
||||
"example": "- Breuvage de rage x10\n - Élixir de destruction = base * 3\n - Poudre de flamme x5\n - Sève de cèdre x7\n - Catalyseur magique x10"
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"controls": [
|
||||
{
|
||||
|
|
@ -1792,6 +1867,101 @@
|
|||
"renameTitle": "Renommer",
|
||||
"deleteTitle": "Supprimer"
|
||||
},
|
||||
"goalTree": {
|
||||
"importPlaceholder": "- Breuvage de rage x10\n - Élixir de destruction = base * 3\n - Poudre de flamme x5\n - Sève de cèdre x7\n - Catalyseur magique x10",
|
||||
"importOpenButton": "Importer du texte",
|
||||
"exportOpenButton": "Exporter en format texte",
|
||||
"importModalTitle": "Importer un arbre d'objectifs",
|
||||
"exportModalTitle": "Exporter un arbre d'objectifs",
|
||||
"importButton": "Importer le texte",
|
||||
"exportButton": "Copier le texte",
|
||||
"importSuccess": "Import d'arbre terminé.",
|
||||
"exportSuccess": "Export d'arbre copié.",
|
||||
"importError": "Format d'arbre d'objectifs invalide.",
|
||||
"editorTitle": "Édition de l'arbre d'objectifs",
|
||||
"treeTitle": "Arbre d'objectifs",
|
||||
"addRootButton": "Objectif",
|
||||
"addRootSchemaButton": "Ajouter un objectif a la racine",
|
||||
"addChildButton": "Sous-étape",
|
||||
"addChildTitle": "Ajouter une sous-étape",
|
||||
"addContentItemTitle": "Ajouter une entrée",
|
||||
"addContentItemTooltip": "Ajouter une entrée interne à cette carte.",
|
||||
"verticalViewTitle": "Afficher verticalement",
|
||||
"horizontalViewTitle": "Afficher horizontalement",
|
||||
"cardActionsLabel": "Actions de l'objectif",
|
||||
"editTitle": "Modifier",
|
||||
"baseTab": "Base",
|
||||
"contentTab": "Contenu",
|
||||
"advancedTab": "Avancé",
|
||||
"defaultRootTitle": "Nouvel objectif",
|
||||
"defaultChildTitle": "Nouvelle étape",
|
||||
"resetTimeLabel": "Heure de reset",
|
||||
"weeklyResetDayLabel": "Jour de reset",
|
||||
"titleLabel": "Titre de l'objectif",
|
||||
"listTitleLabel": "Titre de la liste",
|
||||
"kindLabel": "Type de l'objectif",
|
||||
"stepKind": "Étape",
|
||||
"textKind": "Texte",
|
||||
"checklistKind": "Checklist",
|
||||
"iconLabel": "Icône",
|
||||
"iconColorLabel": "Couleur de l'icône",
|
||||
"iconcube": "Cube",
|
||||
"iconfire": "Feu",
|
||||
"iconflask": "Fiole",
|
||||
"icongrass": "Herbe",
|
||||
"iconleaf": "Feuille",
|
||||
"iconmeat": "Viande",
|
||||
"iconpowder": "Poudre",
|
||||
"icontear": "Goutte",
|
||||
"iconball": "Boule",
|
||||
"colorgold": "Or",
|
||||
"colorcyan": "Cyan",
|
||||
"colorviolet": "Violet",
|
||||
"colorpink": "Rose",
|
||||
"colorgreen": "Vert",
|
||||
"colorgray": "Gris",
|
||||
"colorred": "Rouge",
|
||||
"colororange": "Orange",
|
||||
"coloryellow": "Jaune",
|
||||
"colorblue": "Bleu",
|
||||
"colorindigo": "Indigo",
|
||||
"targetQuantityLabel": "Cible",
|
||||
"quantitySectionTitle": "Quantité",
|
||||
"progressSectionTitle": "Progression",
|
||||
"autoProgressLabel": "Automatique",
|
||||
"manualProgressLabel": "Manuelle",
|
||||
"autoProgressTitle": "Progression automatique",
|
||||
"manualProgressTitle": "Mise à jour manuelle",
|
||||
"autoProgressHint": "Calcule la progression depuis les enfants.",
|
||||
"manualProgressHint": "Affiche une checkbox ou une quantité à mettre à jour directement.",
|
||||
"contentSectionTitle": "Contenu",
|
||||
"itemLabelLabel": "Libellé",
|
||||
"itemLabelPlaceholder": "Élément",
|
||||
"itemCheckedLabel": "État",
|
||||
"itemTotalLabel": "Total",
|
||||
"itemTotalPlaceholder": "base",
|
||||
"itemTotalHelp": "Saisissez un nombre ou une formule avec base pour référencer la cible du parent.",
|
||||
"prerequisitesSectionTitle": "Prérequis supplémentaires",
|
||||
"contentTabHint": "Le contenu se modifie dans l'onglet Contenu.",
|
||||
"stepContentUnavailable": "Les étapes n'ont pas de contenu interne.",
|
||||
"decrementItemTitle": "Retirer",
|
||||
"incrementItemTitle": "Ajouter",
|
||||
"addContentItemButton": "Ajouter une ligne",
|
||||
"formulaPlaceholder": "base * 3",
|
||||
"formulaHelp": "Utilisez base pour référencer la cible du parent.",
|
||||
"resetTypeLabel": "Type de reset",
|
||||
"noneReset": "Aucun",
|
||||
"dailyReset": "Quotidien",
|
||||
"weeklyReset": "Hebdomadaire",
|
||||
"closeButton": "Fermer",
|
||||
"deleteButton": "Supprimer la branche",
|
||||
"deleteTitle": "Supprimer",
|
||||
"reorderTitle": "Déplacer",
|
||||
"showChildrenTitle": "Afficher la branche",
|
||||
"hideChildrenTitle": "Réduire la branche",
|
||||
"emptySelection": "Sélectionnez ou créez un objectif.",
|
||||
"emptyTree": "Aucun objectif."
|
||||
},
|
||||
"table": {
|
||||
"importPlaceholder": "Collez un TSV pur ou un TSV exporté par Sokko G.",
|
||||
"importOpenButton": "Importer TSV",
|
||||
|
|
|
|||
|
|
@ -3,22 +3,22 @@
|
|||
{
|
||||
"id": "default",
|
||||
"label": "Toolbox",
|
||||
"src": "/static/img/toolbox-icons/default.svg"
|
||||
"src": "/static/icons/toolbox.svg"
|
||||
},
|
||||
{
|
||||
"id": "controller",
|
||||
"label": "Controller",
|
||||
"src": "/static/img/toolbox-icons/controller.svg"
|
||||
"src": "/static/icons/controller.svg"
|
||||
},
|
||||
{
|
||||
"id": "quest",
|
||||
"label": "Quest",
|
||||
"src": "/static/img/toolbox-icons/quest.svg"
|
||||
"src": "/static/icons/tasklist.svg"
|
||||
},
|
||||
{
|
||||
"id": "target",
|
||||
"label": "Target",
|
||||
"src": "/static/img/toolbox-icons/target.svg"
|
||||
"src": "/static/icons/diagram.svg"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue