diff --git a/admin.html b/admin.html
index b1ab10f..ff2d09b 100644
--- a/admin.html
+++ b/admin.html
@@ -902,6 +902,7 @@
+
|
@@ -962,6 +963,43 @@
document.getElementById('monsterModal').classList.add('active');
}
+ function cloneMonster(id) {
+ const monster = monsters.find(m => m.id === id);
+ if (!monster) return;
+
+ // Generate unique key suffix
+ let suffix = '_copy';
+ let newKey = monster.key + suffix;
+ let counter = 1;
+ while (monsters.some(m => m.key === newKey)) {
+ newKey = monster.key + suffix + counter;
+ counter++;
+ }
+
+ document.getElementById('monsterModalTitle').textContent = 'Clone Monster';
+ document.getElementById('monsterId').value = ''; // Empty = create new
+ document.getElementById('monsterName').value = monster.name + ' (Copy)';
+ document.getElementById('monsterKey').value = newKey;
+ document.getElementById('monsterMinLevel').value = monster.min_level;
+ document.getElementById('monsterMaxLevel').value = monster.max_level;
+ document.getElementById('monsterHp').value = monster.base_hp;
+ document.getElementById('monsterAtk').value = monster.base_atk;
+ document.getElementById('monsterDef').value = monster.base_def;
+ document.getElementById('monsterXp').value = monster.base_xp;
+ document.getElementById('monsterWeight').value = monster.spawn_weight || 100;
+ document.getElementById('monsterEnabled').checked = false; // Disabled by default
+
+ // Parse and copy dialogues
+ const dialogues = monster.dialogues ? JSON.parse(monster.dialogues) : {};
+ document.getElementById('dialogueAnnoyed').value = (dialogues.annoyed || []).join('\n');
+ document.getElementById('dialogueFrustrated').value = (dialogues.frustrated || []).join('\n');
+ document.getElementById('dialogueDesperate').value = (dialogues.desperate || []).join('\n');
+ document.getElementById('dialoguePhilosophical').value = (dialogues.philosophical || []).join('\n');
+ document.getElementById('dialogueExistential').value = (dialogues.existential || []).join('\n');
+
+ document.getElementById('monsterModal').classList.add('active');
+ }
+
document.getElementById('addMonsterBtn').addEventListener('click', () => {
document.getElementById('monsterModalTitle').textContent = 'Add Monster';
document.getElementById('monsterForm').reset();