/** * Macro d'import des compétences depuis competences.json * Crée un dossier "Compétences" et y importe toutes les compétences */ async function importCompetences() { // Charger le fichier JSON const response = await fetch('systems/fvtt-hamalron/assets/data/competences.json'); const competencesData = await response.json(); ui.notifications.info("Début de l'import des compétences..."); // Créer ou récupérer le dossier pour les compétences let competencesFolder = game.folders.find(f => f.name === "Compétences" && f.type === "Item"); if (!competencesFolder) { competencesFolder = await Folder.create({ name: "Compétences", type: "Item", color: "#4169e1", sorting: "a" }); console.log("Dossier 'Compétences' créé"); } else { console.log("Dossier 'Compétences' existant trouvé"); } // Compteurs pour le résumé let importCount = 0; let updateCount = 0; let errorCount = 0; ui.notifications.info(`Début de l'import de ${competencesData.length} compétences...`); // Parcourir toutes les compétences for (const competenceJson of competencesData) { try { // Préparer les données de la compétence selon le modèle const itemData = { name: competenceJson.name, type: 'competence', system: { description: competenceJson.description, type: competenceJson.type, carteSymbole: competenceJson.carteSymbole, niveau: 'inexperimente', // Valeur par défaut } }; // Ajouter les champs optionnels s'ils existent if (competenceJson.faction) { itemData.system.faction = competenceJson.faction; } if (competenceJson.peuple) { itemData.system.peuple = competenceJson.peuple; } // Vérifier si la compétence existe déjà const existing = game.items.find(i => i.name === competenceJson.name && i.type === 'competence'); if (existing) { // Mettre à jour la compétence existante await existing.update(itemData); updateCount++; console.log(`Compétence mise à jour: ${competenceJson.name}`); } else { // Créer une nouvelle compétence dans le dossier await Item.create({ ...itemData, folder: competencesFolder.id }); importCount++; console.log(`✓ Créé: ${competenceJson.name}`); } } catch (error) { errorCount++; console.error(`Erreur lors de l'import de ${competenceJson.name}:`, error); } } // Afficher le résumé const message = `
Compétences créées: ${importCount}
Compétences mises à jour: ${updateCount}
Erreurs: ${errorCount}
`; ChatMessage.create({ user: game.user.id, content: message }); ui.notifications.info(`Import terminé: ${importCount} créées, ${updateCount} mises à jour, ${errorCount} erreurs.`); console.log('=== Résumé de l\'import ==='); console.log(`Compétences créées: ${importCount}`); console.log(`Compétences mises à jour: ${updateCount}`); console.log(`Erreurs: ${errorCount}`); } // Exécuter l'import importCompetences();