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();