@sancti0n/nikke-utils 1.0.11 → 1.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/data/characters.js +15 -4
- package/test/index.html +1 -192
- package/test/script.js +188 -0
package/package.json
CHANGED
package/src/data/characters.js
CHANGED
|
@@ -176,6 +176,7 @@ const characters = [
|
|
|
176
176
|
{ id: 173, name: "Yuni", rarity: "SSR", burst: "II", element: "Fire", manufacturer: "Missilis Industry", class: "Defender", weapon: "Rocket Launcher", squad: "Wardress", specialties: { 1: "Buffer", 2: "Crowd Controller", 3: "Debuffer", 4: "Healer" }, treasure: "no", reEnterBurstSkill: "no", canChangeBurstStageThreeToOne: "no", cooldown: { "II": 20 }, dateAdded: "2022-11-04" },
|
|
177
177
|
{ id: 174, name: "Zwei", rarity: "SSR", burst: "I", element: "Electric", manufacturer: "Elysion", class: "Supporter", weapon: "Shotgun", squad: "School Circle", specialties: { 1: "Buffer", 2: "Cover Heal", 3: "Pierce" }, treasure: "no", reEnterBurstSkill: "no", canChangeBurstStageThreeToOne: "no", cooldown: { "I": 20 }, dateAdded: "2024-08-08" },
|
|
178
178
|
{ id: 175, name: "Chime", rarity: "SSR", burst: "II", element: "Iron", manufacturer: "Pilgrim", class: "Supporter", weapon: "Sub Machine Gun", squad: "White Knight", specialties: { 1: "Buffer" }, treasure: "no", reEnterBurstSkill: "yes", canChangeBurstStageThreeToOne: "no", cooldown: { "II": 20 }, dateAdded: "2025-10-30" },
|
|
179
|
+
{ id: 176, name: "Diesel: Winter Sweets", rarity: "SSR", burst: "III", element: "Fire", manufacturer: "Elysion", class: "Attacker", weapon: "Rocket Launcher", squad: "Infinity Rail", specialties: {}, treasure: "no", reEnterBurstSkill: "no", canChangeBurstStageThreeToOne: "no", cooldown: { "III": 40 }, dateAdded: "2025-12-04" },
|
|
179
180
|
];
|
|
180
181
|
|
|
181
182
|
export function getAllNikkes() {
|
|
@@ -186,11 +187,21 @@ export function getNikkeByName(name) {
|
|
|
186
187
|
return characters.find(char => char.name.toLowerCase() === name.toLowerCase());
|
|
187
188
|
}
|
|
188
189
|
|
|
189
|
-
export function getAllElementOfThisField(
|
|
190
|
+
export function getAllElementOfThisField(field) {
|
|
190
191
|
let t = [];
|
|
191
|
-
for (let i = 0; i <
|
|
192
|
-
if (t.indexOf(
|
|
193
|
-
t.push(
|
|
192
|
+
for (let i = 0; i < characters.length; i++) {
|
|
193
|
+
if (t.indexOf(characters[i][field]) < 0) {
|
|
194
|
+
t.push(characters[i][field]);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return t
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export function getSpecialties(specialties) {
|
|
201
|
+
let t = [];
|
|
202
|
+
for (let i = 0; i < characters.length; i++) {
|
|
203
|
+
if (Object.values(characters[i]["specialties"]).indexOf(specialties) > -1) {
|
|
204
|
+
t.push(characters[i]);
|
|
194
205
|
}
|
|
195
206
|
}
|
|
196
207
|
return t
|
package/test/index.html
CHANGED
|
@@ -27,198 +27,7 @@
|
|
|
27
27
|
<h2>CheckFullBurst</h2>
|
|
28
28
|
<p id="team-output"></p>
|
|
29
29
|
|
|
30
|
-
<script type="module">
|
|
31
|
-
|
|
32
|
-
import {
|
|
33
|
-
getAllNikkes,
|
|
34
|
-
getNikkeByName,
|
|
35
|
-
pullTen,
|
|
36
|
-
checkFullBurst
|
|
37
|
-
} from '../index.js';
|
|
38
|
-
|
|
39
|
-
let currentNikkesData = [];
|
|
40
|
-
let sortColumn = 'name'; // Tri par défaut sur 'name'
|
|
41
|
-
let sortDirection = 'asc';
|
|
42
|
-
|
|
43
|
-
// Définir les colonnes à afficher (y compris les colonnes triables)
|
|
44
|
-
const columns = ['id', 'name', 'rarity', 'burst', 'element', 'manufacturer', 'class', 'weapon', 'squad', 'specialties', 'treasure', 'reEnterBurstSkill', 'canChangeBurstStageThreeToOne', 'cooldown', 'dateAdded'];
|
|
45
|
-
|
|
46
|
-
// ----------------------------------------------------
|
|
47
|
-
// LOGIQUE DE TRI
|
|
48
|
-
// ----------------------------------------------------
|
|
49
|
-
|
|
50
|
-
function sortData(column, direction) {
|
|
51
|
-
const sortedData = [...currentNikkesData];
|
|
52
|
-
|
|
53
|
-
sortedData.sort((a, b) => {
|
|
54
|
-
let comparison = 0;
|
|
55
|
-
let aVal = a[column] || '';
|
|
56
|
-
let bVal = b[column] || '';
|
|
57
|
-
|
|
58
|
-
if (column === 'dateAdded') {
|
|
59
|
-
// 1. Traitement spécifique pour les dates
|
|
60
|
-
const aTime = new Date(aVal).getTime();
|
|
61
|
-
const bTime = new Date(bVal).getTime();
|
|
62
|
-
|
|
63
|
-
comparison = aTime - bTime;
|
|
64
|
-
|
|
65
|
-
// 2. Tri secondaire par NOM si les dates sont identiques
|
|
66
|
-
if (comparison === 0) {
|
|
67
|
-
return a.name.localeCompare(b.name);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
} else {
|
|
71
|
-
// Traitement par défaut (alphabétique pour 'name')
|
|
72
|
-
comparison = aVal.localeCompare(bVal);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return direction === 'asc' ? comparison : comparison * -1;
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
return sortedData;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Fonction appelée lors du clic sur l'en-tête
|
|
82
|
-
function sortNikkesTable(event) {
|
|
83
|
-
const newColumn = event.currentTarget.getAttribute('data-column');
|
|
84
|
-
|
|
85
|
-
if (newColumn === sortColumn) {
|
|
86
|
-
sortDirection = (sortDirection === 'asc') ? 'desc' : 'asc';
|
|
87
|
-
} else {
|
|
88
|
-
sortColumn = newColumn;
|
|
89
|
-
sortDirection = 'asc';
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Mettre à jour et re-dessiner le tableau
|
|
93
|
-
currentNikkesData = sortData(sortColumn, sortDirection);
|
|
94
|
-
renderTable(currentNikkesData, sortColumn, sortDirection);
|
|
95
|
-
}
|
|
96
|
-
// ----------------------------------------------------
|
|
97
|
-
// LOGIQUE DE RENDU DU TABLEAU
|
|
98
|
-
// ----------------------------------------------------
|
|
99
|
-
|
|
100
|
-
function renderTable(data, sortedCol, sortedDir) {
|
|
101
|
-
const container = document.getElementById('nikkes-table-container');
|
|
102
|
-
container.innerHTML = ''; // Nettoyer le conteneur
|
|
103
|
-
|
|
104
|
-
if (!data || data.length === 0) {
|
|
105
|
-
container.innerHTML = '<p>Aucune donnée de Nikke trouvée.</p>';
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
let html = '<table class="nikkes-table"><thead><tr>';
|
|
110
|
-
|
|
111
|
-
// Création de l'en-tête
|
|
112
|
-
columns.forEach(col => {
|
|
113
|
-
const headerText = col.charAt(0).toUpperCase() + col.slice(1);
|
|
114
|
-
|
|
115
|
-
let className = '';
|
|
116
|
-
if (col === sortedCol) { // Si c'est la colonne triée
|
|
117
|
-
className = `sorted-${sortedDir}`; // Applique la classe sorted-asc ou sorted-desc
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
// Ajout de l'attribut data-column pour le tri
|
|
121
|
-
html += `<th data-column="${col}" class="${className}">${headerText}</th>`;
|
|
122
|
-
});
|
|
123
|
-
html += '</tr></thead><tbody>';
|
|
124
|
-
|
|
125
|
-
// Création des lignes du tableau (inchangé)
|
|
126
|
-
data.forEach(nikke => {
|
|
127
|
-
html += '<tr>';
|
|
128
|
-
|
|
129
|
-
columns.forEach(col => {
|
|
130
|
-
let cellContent = nikke[col] || '-';
|
|
131
|
-
//console.log(cellContent)
|
|
132
|
-
if (typeof cellContent == 'object') {
|
|
133
|
-
console.log(cellContent)
|
|
134
|
-
cellContent = Object.values(cellContent).join(",<br/> ")
|
|
135
|
-
}
|
|
136
|
-
let className = '';
|
|
137
|
-
|
|
138
|
-
if (col === 'rarity') {
|
|
139
|
-
className = `rarity-${nikke[col]}`;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
html += `<td class="${className}">${cellContent}</td>`;
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
html += '</tr>';
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
html += '</tbody></table>';
|
|
149
|
-
container.innerHTML = html;
|
|
150
|
-
|
|
151
|
-
// 3. Attacher les écouteurs d'événements APRÈS l'insertion du HTML
|
|
152
|
-
// SÉLECTIONNE UNIQUEMENT LES COLONNES DEMANDÉES (name et dateAdded)
|
|
153
|
-
const headers = container.querySelectorAll('th[data-column="name"], th[data-column="dateAdded"]');
|
|
154
|
-
|
|
155
|
-
// Attache les événements de clic
|
|
156
|
-
headers.forEach(header => {
|
|
157
|
-
// Ajoute la classe cliquable pour le style (optionnel si le CSS est bien ciblé)
|
|
158
|
-
header.classList.add('sortable-header');
|
|
159
|
-
header.addEventListener('click', sortNikkesTable);
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
// Mettre à jour l'état de la console si nécessaire
|
|
163
|
-
console.log(`Tableau affiché. Tri actuel: ${sortedCol} (${sortedDir})`);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
// ----------------------------------------------------
|
|
167
|
-
// INITIALISATION
|
|
168
|
-
// ----------------------------------------------------
|
|
169
|
-
|
|
170
|
-
// Récupérer les données initiales
|
|
171
|
-
currentNikkesData = getAllNikkes();
|
|
172
|
-
|
|
173
|
-
// Trier les données initiales
|
|
174
|
-
currentNikkesData = sortData(sortColumn, sortDirection);
|
|
175
|
-
|
|
176
|
-
// Rendre le tableau initial
|
|
177
|
-
renderTable(currentNikkesData, sortColumn, sortDirection);
|
|
178
|
-
|
|
179
|
-
// ----------------------------------------------------
|
|
180
|
-
// CONSOLE LOGS (Optionnel - Pour vérifier les données)
|
|
181
|
-
// ----------------------------------------------------
|
|
182
|
-
|
|
183
|
-
const allData = getAllNikkes();
|
|
184
|
-
console.log('Toutes les Nikkes:', allData);
|
|
185
|
-
let allNikkes = "";
|
|
186
|
-
for (let i = 0; i < allData.length; i++) {
|
|
187
|
-
allNikkes += JSON.stringify(allData[i]) + "\n";
|
|
188
|
-
}
|
|
189
|
-
document.getElementById('data-output-all-nikkes').textContent = allNikkes;
|
|
190
|
-
|
|
191
|
-
const rapi = getNikkeByName('Rapi');
|
|
192
|
-
console.log('Rapi trouvée:', rapi);
|
|
193
|
-
|
|
194
|
-
console.log('Liste complète des Nikkes (Taille) :', allData.length);
|
|
195
|
-
console.log('Détails de Rapi (Objet) :', getNikkeByName('Rapi'));
|
|
196
|
-
|
|
197
|
-
document.getElementById('data-output').textContent = JSON.stringify(getNikkeByName('Helm'), null, 2);
|
|
198
|
-
|
|
199
|
-
const mesTirages = pullTen();
|
|
200
|
-
console.log('Résultats Gacha (10 pull):', mesTirages);
|
|
201
|
-
console.log('Nombre de SSR obtenus :', mesTirages.filter(r => r === 'SSR').length);
|
|
202
|
-
document.getElementById('gacha-output').textContent = mesTirages.join(', ');
|
|
203
|
-
|
|
204
|
-
const neon = getNikkeByName('Neon');
|
|
205
|
-
const anis = getNikkeByName('Anis');
|
|
206
|
-
const modernia = getNikkeByName('Modernia');
|
|
207
|
-
|
|
208
|
-
const maTeamValide = [neon, anis, modernia, rapi];
|
|
209
|
-
const teamResult = checkFullBurst(maTeamValide);
|
|
210
|
-
console.log('Analyse de l\'équipe:', teamResult.message);
|
|
211
|
-
|
|
212
|
-
const teamIncomplete = [anis, modernia, getNikkeByName('Rapi')];
|
|
213
|
-
const incompleteResult = checkFullBurst(teamIncomplete);
|
|
214
|
-
console.log('Analyse Équipe Valide :', teamResult.message);
|
|
215
|
-
// 'Full Burst Ready!'
|
|
216
|
-
console.log('Analyse Équipe Incomplète :', incompleteResult.message);
|
|
217
|
-
//'Impossible de Full Burst. Manquant : Burst I'
|
|
218
|
-
|
|
219
|
-
document.getElementById('team-output').textContent = `Valide: ${teamResult.message} | Invalide: ${incompleteResult.message}`;
|
|
220
|
-
|
|
221
|
-
</script>
|
|
30
|
+
<script type="module" src="script.js"></script>
|
|
222
31
|
</body>
|
|
223
32
|
|
|
224
33
|
</html>
|
package/test/script.js
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getAllNikkes,
|
|
3
|
+
getNikkeByName,
|
|
4
|
+
pullTen,
|
|
5
|
+
checkFullBurst
|
|
6
|
+
} from '../index.js';
|
|
7
|
+
|
|
8
|
+
let currentNikkesData = [];
|
|
9
|
+
let sortColumn = 'name'; // Tri par défaut sur 'name'
|
|
10
|
+
let sortDirection = 'asc';
|
|
11
|
+
|
|
12
|
+
// Définir les colonnes à afficher (y compris les colonnes triables)
|
|
13
|
+
const columns = ['id', 'name', 'rarity', 'burst', 'element', 'manufacturer', 'class', 'weapon', 'squad', 'specialties', 'treasure', 'reEnterBurstSkill', 'canChangeBurstStageThreeToOne', 'cooldown', 'dateAdded'];
|
|
14
|
+
|
|
15
|
+
// ----------------------------------------------------
|
|
16
|
+
// LOGIQUE DE TRI
|
|
17
|
+
// ----------------------------------------------------
|
|
18
|
+
|
|
19
|
+
function sortData(column, direction) {
|
|
20
|
+
const sortedData = [...currentNikkesData];
|
|
21
|
+
|
|
22
|
+
sortedData.sort((a, b) => {
|
|
23
|
+
let comparison = 0;
|
|
24
|
+
let aVal = a[column] || '';
|
|
25
|
+
let bVal = b[column] || '';
|
|
26
|
+
|
|
27
|
+
if (column === 'dateAdded') {
|
|
28
|
+
// 1. Traitement spécifique pour les dates
|
|
29
|
+
const aTime = new Date(aVal).getTime();
|
|
30
|
+
const bTime = new Date(bVal).getTime();
|
|
31
|
+
|
|
32
|
+
comparison = aTime - bTime;
|
|
33
|
+
|
|
34
|
+
// 2. Tri secondaire par NOM si les dates sont identiques
|
|
35
|
+
if (comparison === 0) {
|
|
36
|
+
return a.name.localeCompare(b.name);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
} else {
|
|
40
|
+
// Traitement par défaut (alphabétique pour 'name')
|
|
41
|
+
comparison = aVal.localeCompare(bVal);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return direction === 'asc' ? comparison : comparison * -1;
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
return sortedData;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Fonction appelée lors du clic sur l'en-tête
|
|
51
|
+
function sortNikkesTable(event) {
|
|
52
|
+
const newColumn = event.currentTarget.getAttribute('data-column');
|
|
53
|
+
|
|
54
|
+
if (newColumn === sortColumn) {
|
|
55
|
+
sortDirection = (sortDirection === 'asc') ? 'desc' : 'asc';
|
|
56
|
+
} else {
|
|
57
|
+
sortColumn = newColumn;
|
|
58
|
+
sortDirection = 'asc';
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Mettre à jour et re-dessiner le tableau
|
|
62
|
+
currentNikkesData = sortData(sortColumn, sortDirection);
|
|
63
|
+
renderTable(currentNikkesData, sortColumn, sortDirection);
|
|
64
|
+
}
|
|
65
|
+
// ----------------------------------------------------
|
|
66
|
+
// LOGIQUE DE RENDU DU TABLEAU
|
|
67
|
+
// ----------------------------------------------------
|
|
68
|
+
|
|
69
|
+
function renderTable(data, sortedCol, sortedDir) {
|
|
70
|
+
const container = document.getElementById('nikkes-table-container');
|
|
71
|
+
container.innerHTML = ''; // Nettoyer le conteneur
|
|
72
|
+
|
|
73
|
+
if (!data || data.length === 0) {
|
|
74
|
+
container.innerHTML = '<p>Aucune donnée de Nikke trouvée.</p>';
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
let html = '<table class="nikkes-table"><thead><tr>';
|
|
79
|
+
|
|
80
|
+
// Création de l'en-tête
|
|
81
|
+
columns.forEach(col => {
|
|
82
|
+
const headerText = col.charAt(0).toUpperCase() + col.slice(1);
|
|
83
|
+
|
|
84
|
+
let className = '';
|
|
85
|
+
if (col === sortedCol) { // Si c'est la colonne triée
|
|
86
|
+
className = `sorted-${sortedDir}`; // Applique la classe sorted-asc ou sorted-desc
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Ajout de l'attribut data-column pour le tri
|
|
90
|
+
html += `<th data-column="${col}" class="${className}">${headerText}</th>`;
|
|
91
|
+
});
|
|
92
|
+
html += '</tr></thead><tbody>';
|
|
93
|
+
|
|
94
|
+
// Création des lignes du tableau (inchangé)
|
|
95
|
+
data.forEach(nikke => {
|
|
96
|
+
html += '<tr>';
|
|
97
|
+
|
|
98
|
+
columns.forEach(col => {
|
|
99
|
+
let cellContent = nikke[col] || '-';
|
|
100
|
+
//console.log(cellContent)
|
|
101
|
+
if (typeof cellContent == 'object') {
|
|
102
|
+
console.log(cellContent)
|
|
103
|
+
cellContent = Object.values(cellContent).join(",<br/> ")
|
|
104
|
+
}
|
|
105
|
+
let className = '';
|
|
106
|
+
|
|
107
|
+
if (col === 'rarity') {
|
|
108
|
+
className = `rarity-${nikke[col]}`;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
html += `<td class="${className}">${cellContent}</td>`;
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
html += '</tr>';
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
html += '</tbody></table>';
|
|
118
|
+
container.innerHTML = html;
|
|
119
|
+
|
|
120
|
+
// 3. Attacher les écouteurs d'événements APRÈS l'insertion du HTML
|
|
121
|
+
// SÉLECTIONNE UNIQUEMENT LES COLONNES DEMANDÉES (name et dateAdded)
|
|
122
|
+
const headers = container.querySelectorAll('th[data-column="name"], th[data-column="dateAdded"]');
|
|
123
|
+
|
|
124
|
+
// Attache les événements de clic
|
|
125
|
+
headers.forEach(header => {
|
|
126
|
+
// Ajoute la classe cliquable pour le style (optionnel si le CSS est bien ciblé)
|
|
127
|
+
header.classList.add('sortable-header');
|
|
128
|
+
header.addEventListener('click', sortNikkesTable);
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// Mettre à jour l'état de la console si nécessaire
|
|
132
|
+
console.log(`Tableau affiché. Tri actuel: ${sortedCol} (${sortedDir})`);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// ----------------------------------------------------
|
|
136
|
+
// INITIALISATION
|
|
137
|
+
// ----------------------------------------------------
|
|
138
|
+
|
|
139
|
+
// Récupérer les données initiales
|
|
140
|
+
currentNikkesData = getAllNikkes();
|
|
141
|
+
|
|
142
|
+
// Trier les données initiales
|
|
143
|
+
currentNikkesData = sortData(sortColumn, sortDirection);
|
|
144
|
+
|
|
145
|
+
// Rendre le tableau initial
|
|
146
|
+
renderTable(currentNikkesData, sortColumn, sortDirection);
|
|
147
|
+
|
|
148
|
+
// ----------------------------------------------------
|
|
149
|
+
// CONSOLE LOGS (Optionnel - Pour vérifier les données)
|
|
150
|
+
// ----------------------------------------------------
|
|
151
|
+
|
|
152
|
+
const allData = getAllNikkes();
|
|
153
|
+
console.log('Toutes les Nikkes:', allData);
|
|
154
|
+
let allNikkes = "";
|
|
155
|
+
for (let i = 0; i < allData.length; i++) {
|
|
156
|
+
allNikkes += JSON.stringify(allData[i]) + "\n";
|
|
157
|
+
}
|
|
158
|
+
document.getElementById('data-output-all-nikkes').textContent = allNikkes;
|
|
159
|
+
|
|
160
|
+
const rapi = getNikkeByName('Rapi');
|
|
161
|
+
console.log('Rapi trouvée:', rapi);
|
|
162
|
+
|
|
163
|
+
console.log('Liste complète des Nikkes (Taille) :', allData.length);
|
|
164
|
+
console.log('Détails de Rapi (Objet) :', getNikkeByName('Rapi'));
|
|
165
|
+
|
|
166
|
+
document.getElementById('data-output').textContent = JSON.stringify(getNikkeByName('Helm'), null, 2);
|
|
167
|
+
|
|
168
|
+
const mesTirages = pullTen();
|
|
169
|
+
console.log('Résultats Gacha (10 pull):', mesTirages);
|
|
170
|
+
console.log('Nombre de SSR obtenus :', mesTirages.filter(r => r === 'SSR').length);
|
|
171
|
+
document.getElementById('gacha-output').textContent = mesTirages.join(', ');
|
|
172
|
+
|
|
173
|
+
const neon = getNikkeByName('Neon');
|
|
174
|
+
const anis = getNikkeByName('Anis');
|
|
175
|
+
const modernia = getNikkeByName('Modernia');
|
|
176
|
+
|
|
177
|
+
const maTeamValide = [neon, anis, modernia, rapi];
|
|
178
|
+
const teamResult = checkFullBurst(maTeamValide);
|
|
179
|
+
console.log('Analyse de l\'équipe:', teamResult.message);
|
|
180
|
+
|
|
181
|
+
const teamIncomplete = [anis, modernia, getNikkeByName('Rapi')];
|
|
182
|
+
const incompleteResult = checkFullBurst(teamIncomplete);
|
|
183
|
+
console.log('Analyse Équipe Valide :', teamResult.message);
|
|
184
|
+
// 'Full Burst Ready!'
|
|
185
|
+
console.log('Analyse Équipe Incomplète :', incompleteResult.message);
|
|
186
|
+
//'Impossible de Full Burst. Manquant : Burst I'
|
|
187
|
+
|
|
188
|
+
document.getElementById('team-output').textContent = `Valide: ${teamResult.message} | Invalide: ${incompleteResult.message}`;
|