@ -2413,9 +2413,11 @@
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
border: 3px solid #e94560;
border: 3px solid #e94560;
border-radius: 20px;
border-radius: 20px;
padding: 25px 30 px;
padding: 20px 24 px;
max-width: 480px;
max-width: 480px;
width: 95%;
width: 95%;
max-height: 90vh;
overflow-y: auto;
color: white;
color: white;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
box-shadow: 0 0 40px rgba(233, 69, 96, 0.4);
box-shadow: 0 0 40px rgba(233, 69, 96, 0.4);
@ -2495,12 +2497,12 @@
}
}
.combat-log {
.combat-log {
background: rgba(0, 0, 0, 0.5);
background: rgba(0, 0, 0, 0.5);
border-radius: 10 px;
padding: 12px 15 px;
height: 10 0px;
border-radius: 8 px;
padding: 8px 12 px;
height: 7 0px;
overflow-y: auto;
overflow-y: auto;
margin-bottom: 18 px;
font-size: 13 px;
margin-bottom: 12 px;
font-size: 12 px;
border: 1px solid #333;
border: 1px solid #333;
}
}
.combat-log-entry {
.combat-log-entry {
@ -2533,37 +2535,49 @@
.combat-skills {
.combat-skills {
display: grid;
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-columns: repeat(2, 1fr);
gap: 10 px;
margin-bottom: 12 px;
gap: 8 px;
margin-bottom: 10 px;
}
}
.skill-btn {
.skill-btn {
background: linear-gradient(135deg, #0f3460 0%, #16213e 100%);
background: linear-gradient(135deg, #0f3460 0%, #16213e 100%);
border: 2px solid #e94560;
border: 2px solid #e94560;
color: white;
color: white;
padding: 14px 10 px;
padding: 8px 6 px;
border-radius: 10px;
border-radius: 10px;
cursor: pointer;
cursor: pointer;
transition: all 0.2s;
transition: all 0.2s;
text-align: center;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 70px;
}
}
.skill-btn:hover:not(:disabled) {
.skill-btn:hover:not(:disabled) {
background: linear-gradient(135deg, #e94560 0%, #c73e54 100%);
background: linear-gradient(135deg, #e94560 0%, #c73e54 100%);
transform: scale(1.03);
box-shadow: 0 0 15px rgba(233, 69, 96, 0.4);
transform: scale(1.02 );
box-shadow: 0 0 12 px rgba(233, 69, 96, 0.4);
}
}
.skill-btn:disabled {
.skill-btn:disabled {
opacity: 0.4;
opacity: 0.4;
cursor: not-allowed;
cursor: not-allowed;
transform: none;
transform: none;
}
}
.skill-btn .skill-icon-wrapper {
margin-bottom: 3px;
}
.skill-btn .skill-icon-wrapper img {
width: 28px;
height: 28px;
}
.skill-btn .skill-name {
.skill-btn .skill-name {
font-weight: bold;
font-weight: bold;
display: block;
font-size: 13px;
margin-bottom: 3px;
font-size: 11px ;
margin-bottom: 2 px;
line-height: 1.2 ;
}
}
.skill-btn .skill-cost {
.skill-btn .skill-cost {
font-size: 11 px;
font-size: 10 px;
color: #4ecdc4;
color: #4ecdc4;
}
}
.skill-btn .skill-cost.free {
.skill-btn .skill-cost.free {
@ -2585,11 +2599,12 @@
background: #333;
background: #333;
border: 2px solid #555;
border: 2px solid #555;
color: #aaa;
color: #aaa;
padding: 12 px;
padding: 10 px;
border-radius: 8px;
border-radius: 8px;
cursor: pointer;
cursor: pointer;
font-size: 14 px;
font-size: 13 px;
transition: all 0.2s;
transition: all 0.2s;
margin-top: 8px;
}
}
.combat-flee-btn:hover {
.combat-flee-btn:hover {
background: #444;
background: #444;
@ -14745,14 +14760,15 @@
if (baseSkill.type === 'utility') return;
if (baseSkill.type === 'utility') return;
const displayName = skillInfo?.displayName || hardcodedSkill?.name || dbSkill?.name || skillId;
const displayName = skillInfo?.displayName || hardcodedSkill?.name || dbSkill?.name || skillId;
const iconHtml = renderSkillIcon(skillId, 'class', playerStats.class, 20 );
const iconHtml = renderSkillIcon(skillId, 'class', playerStats.class, 28 );
const mpCost = hardcodedSkill?.mpCost || dbSkill?.mpCost || 0;
const mpCost = hardcodedSkill?.mpCost || dbSkill?.mpCost || 0;
const btn = document.createElement('button');
const btn = document.createElement('button');
btn.className = 'skill-btn';
btn.className = 'skill-btn';
btn.dataset.skillId = skillId;
btn.dataset.skillId = skillId;
btn.innerHTML = `
btn.innerHTML = `
< span class = "skill-name" > ${iconHtml} ${displayName}< / span >
< span class = "skill-icon-wrapper" > ${iconHtml}< / span >
< span class = "skill-name" > ${displayName}< / span >
< span class = "skill-cost ${mpCost === 0 ? 'free' : ''}" > ${mpCost > 0 ? mpCost + ' MP' : 'Free'}< / span >
< span class = "skill-cost ${mpCost === 0 ? 'free' : ''}" > ${mpCost > 0 ? mpCost + ' MP' : 'Free'}< / span >
`;
`;
btn.onclick = () => executePlayerSkill(skillId);
btn.onclick = () => executePlayerSkill(skillId);
@ -14767,7 +14783,8 @@
btn.dataset.skillId = 'admin_banish';
btn.dataset.skillId = 'admin_banish';
btn.style.borderColor = '#ff6b35';
btn.style.borderColor = '#ff6b35';
btn.innerHTML = `
btn.innerHTML = `
< span class = "skill-name" > ${adminSkill.icon} ${adminSkill.name}< / span >
< span class = "skill-icon-wrapper" style = "font-size: 24px;" > ${adminSkill.icon}< / span >
< span class = "skill-name" > ${adminSkill.name}< / span >
< span class = "skill-cost free" > Admin< / span >
< span class = "skill-cost free" > Admin< / span >
`;
`;
btn.onclick = () => executePlayerSkill('admin_banish');
btn.onclick = () => executePlayerSkill('admin_banish');