|
<!DOCTYPE html> |
|
<html lang="zh"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
<title>战马与剑刃 - 中世纪冒险</title> |
|
<script src="https://cdn.tailwindcss.com"></script> |
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
<style> |
|
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=MedievalSharp&display=swap'); |
|
|
|
body { |
|
font-family: 'Cinzel', serif; |
|
background-color: #1a1a1a; |
|
color: #e0e0e0; |
|
overflow-x: hidden; |
|
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgogIDxkZWZzPgogICAgPHBhdHRlcm4gaWQ9InRleHR1cmUiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj4KICAgICAgPHJlY3Qgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9IiMxYzFjMWMiLz4KICAgICAgPHBhdGggZD0iTTAgMCBMNDAwIDQwMCIgc3Ryb2tlPSIjMzAzMDMwIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgPHBhdGggZD0iTTQwMCAwIEwwIDQwMCIgc3Ryb2tlPSIjMzAzMDMwIiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDwvcGF0dGVybj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCN0ZXh0dXJlKSIgb3BhY2l0eT0iMC4zIi8+Cjwvc3ZnPg=='); |
|
background-size: cover; |
|
} |
|
|
|
.medieval-font { |
|
font-family: 'MedievalSharp', cursive; |
|
} |
|
|
|
.parchment-bg { |
|
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgogIDxkZWZzPgogICAgPHBhdHRlcm4gaWQ9InRleHR1cmUiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj4KICAgICAgPHJlY3Qgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9IiNlZWQ5YjMiLz4KICAgICAgPHBhdGggZD0iTTAgMCBMNDAwIDQwMCIgc3Ryb2tlPSIjZGRjYzk5IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgPHBhdGggZD0iTTQwMCAwIEwwIDQwMCIgc3Ryb2tlPSIjZGRjYzk5IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDwvcGF0dGVybj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCN0ZXh0dXJlKSIgb3BhY2l0eT0iMC43Ii8+Cjwvc3ZnPg=='); |
|
background-size: cover; |
|
border: 8px solid transparent; |
|
border-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgogIDxkZWZzPgogICAgPHBhdHRlcm4gaWQ9ImJvcmRlciIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgogICAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0idHJhbnNwYXJlbnQiIHN0cm9rZT0iIzc1NTI0ZSIgc3Ryb2tlLXdpZHRoPSIyIi8+CiAgICA8L3BhdHRlcm4+CiAgPC9kZWZzPgogIDxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjYm9yZGVyKSIvPgo8L3N2Zz4=') 10% round; |
|
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5); |
|
position: relative; |
|
} |
|
|
|
.parchment-bg::before { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(135deg, rgba(238, 217, 179, 0.1) 0%, rgba(238, 217, 179, 0.3) 50%, rgba(238, 217, 179, 0.1) 100%); |
|
pointer-events: none; |
|
} |
|
|
|
.metal-bg { |
|
background: linear-gradient(135deg, #3a3a3a 0%, #1a1a1a 50%, #3a3a3a 100%); |
|
border: 2px solid #555; |
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.metal-bg::before { |
|
content: ""; |
|
position: absolute; |
|
top: -50%; |
|
left: -50%; |
|
width: 200%; |
|
height: 200%; |
|
background: linear-gradient(45deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.1) 100%); |
|
transform: rotate(30deg); |
|
animation: metalShine 5s infinite linear; |
|
} |
|
|
|
@keyframes metalShine { |
|
0% { transform: translateX(-100%) rotate(30deg); } |
|
100% { transform: translateX(100%) rotate(30deg); } |
|
} |
|
|
|
.health-bar { |
|
background: linear-gradient(to right, #8B0000, #FF0000); |
|
height: 20px; |
|
border-radius: 10px; |
|
box-shadow: 0 0 5px rgba(255, 0, 0, 0.7); |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.health-bar::after { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.3) 100%); |
|
mix-blend-mode: overlay; |
|
} |
|
|
|
.stamina-bar { |
|
background: linear-gradient(to right, #006400, #00FF00); |
|
height: 20px; |
|
border-radius: 10px; |
|
box-shadow: 0 0 5px rgba(0, 255, 0, 0.5); |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.stamina-bar::after { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.3) 100%); |
|
mix-blend-mode: overlay; |
|
} |
|
|
|
.map-container { |
|
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MDAgNTAwIj48cmVjdCB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCIgZmlsbD0iIzFjM2M0ZSIvPjxwYXRoIGQ9Ik0xNTAgMTUwIEMxNTAgMjAwLDIwMCAyMDAsMjAwIDE1MCBDMjAwIDEwMCwxNTAgMTAwLDE1MCAxNTAgWiIgZmlsbD0iIzQyODk0MiIvPjxwYXRoIGQ9Ik0zMDAgMzAwIEMzMDAgMzUwLDM1MCAzNTAsMzUwIDMwMCBDMzUwIDI1MCwzMDAgMjUwLDMwMCAzMDAgWiIgZmlsbD0iI2QyYjQ0ZSIvPjxwYXRoIGQ9Ik0xMDAgMzAwIEMxMDAgMzUwLDE1MCAzNTAsMTUwIDMwMCBDMTUwIDI1MCwxMDAgMjUwLDEwMCAzMDAgWiIgZmlsbD0iIzg4NTQzZSIvPjxwYXRoIGQ9Ik0yNTAgMTAwIEMyNTAgMTUwLDMwMCAxNTAsMzAwIDEwMCBDMzAwIDUwLDI1MCA1MCwyNTAgMTAwIFoiIGZpbGw9IiM4ODU0M2UiLz48L3N2Zz4='); |
|
background-size: cover; |
|
border: 4px solid #75524e; |
|
box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.5); |
|
position: relative; |
|
} |
|
|
|
.map-container::before { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(135deg, rgba(28, 60, 78, 0.1) 0%, rgba(28, 60, 78, 0.5) 50%, rgba(28, 60, 78, 0.1) 100%); |
|
pointer-events: none; |
|
} |
|
|
|
.map-marker { |
|
width: 12px; |
|
height: 12px; |
|
background-color: #ff0000; |
|
border-radius: 50%; |
|
border: 2px solid #fff; |
|
box-shadow: 0 0 5px rgba(0, 0, 0, 0.7); |
|
position: relative; |
|
z-index: 2; |
|
} |
|
|
|
.map-marker::after { |
|
content: ""; |
|
position: absolute; |
|
top: -4px; |
|
left: -4px; |
|
right: -4px; |
|
bottom: -4px; |
|
border-radius: 50%; |
|
border: 1px solid rgba(255,255,255,0.5); |
|
animation: pulse 2s infinite; |
|
} |
|
|
|
.character-portrait { |
|
border: 4px solid #75524e; |
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); |
|
background-color: #2a2a2a; |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.character-portrait::before { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.1) 100%); |
|
pointer-events: none; |
|
} |
|
|
|
.item-slot { |
|
border: 2px solid #75524e; |
|
background-color: #2a2a2a; |
|
transition: all 0.3s ease; |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.item-slot::before { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(135deg, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.05) 100%); |
|
pointer-events: none; |
|
} |
|
|
|
.item-slot:hover { |
|
transform: scale(1.05); |
|
box-shadow: 0 0 10px rgba(255, 215, 0, 0.7); |
|
} |
|
|
|
.combat-mode { |
|
animation: pulse 1.5s infinite; |
|
} |
|
|
|
@keyframes pulse { |
|
0% { box-shadow: 0 0 5px rgba(255, 0, 0, 0.5); } |
|
50% { box-shadow: 0 0 20px rgba(255, 0, 0, 0.9); } |
|
100% { box-shadow: 0 0 5px rgba(255, 0, 0, 0.5); } |
|
} |
|
|
|
.faction-banner { |
|
height: 60px; |
|
background-size: contain; |
|
background-repeat: no-repeat; |
|
background-position: center; |
|
filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.7)); |
|
position: relative; |
|
} |
|
|
|
.faction-banner::after { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.1) 100%); |
|
pointer-events: none; |
|
} |
|
|
|
.tooltip { |
|
position: relative; |
|
display: inline-block; |
|
} |
|
|
|
.tooltip .tooltiptext { |
|
visibility: hidden; |
|
width: 200px; |
|
background-color: rgba(26, 26, 26, 0.9); |
|
color: #fff; |
|
text-align: center; |
|
border-radius: 6px; |
|
padding: 5px; |
|
position: absolute; |
|
z-index: 1; |
|
bottom: 125%; |
|
left: 50%; |
|
margin-left: -100px; |
|
opacity: 0; |
|
transition: opacity 0.3s; |
|
border: 1px solid #75524e; |
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.7); |
|
font-family: 'Cinzel', serif; |
|
} |
|
|
|
.tooltip:hover .tooltiptext { |
|
visibility: visible; |
|
opacity: 1; |
|
} |
|
|
|
.modal { |
|
display: none; |
|
position: fixed; |
|
z-index: 100; |
|
left: 0; |
|
top: 0; |
|
width: 100%; |
|
height: 100%; |
|
overflow: auto; |
|
background-color: rgba(0, 0, 0, 0.8); |
|
} |
|
|
|
.modal-content { |
|
background-color: #1a1a1a; |
|
margin: 5% auto; |
|
padding: 20px; |
|
border: 4px solid #75524e; |
|
width: 80%; |
|
max-width: 800px; |
|
position: relative; |
|
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgogIDxkZWZzPgogICAgPHBhdHRlcm4gaWQ9InRleHR1cmUiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHdpZHRoPSI0MDAiIGhlaWdodD0iNDAwIj4KICAgICAgPHJlY3Qgd2lkdGg9IjQwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9IiNlZWQ5YjMiLz4KICAgICAgPHBhdGggZD0iTTAgMCBMNDAwIDQwMCIgc3Ryb2tlPSIjZGRjYzk5IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgICAgPHBhdGggZD0iTTQwMCAwIEwwIDQwMCIgc3Ryb2tlPSIjZGRjYzk5IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDwvcGF0dGVybj4KICA8L2RlZnM+CiAgPHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgZmlsbD0idXJsKCN0ZXh0dXJlKSIgb3BhY2l0eT0iMC43Ii8+Cjwvc3ZnPg=='); |
|
background-size: cover; |
|
} |
|
|
|
.close { |
|
color: #aaa; |
|
float: right; |
|
font-size: 28px; |
|
font-weight: bold; |
|
cursor: pointer; |
|
transition: all 0.3s; |
|
} |
|
|
|
.close:hover { |
|
color: #fff; |
|
transform: rotate(90deg); |
|
} |
|
|
|
.skill-progress { |
|
height: 10px; |
|
background-color: #333; |
|
border-radius: 5px; |
|
margin-top: 5px; |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.skill-progress::before { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(90deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.1) 100%); |
|
pointer-events: none; |
|
} |
|
|
|
.skill-progress-fill { |
|
height: 100%; |
|
border-radius: 5px; |
|
background: linear-gradient(to right, #8B4513, #CD853F); |
|
position: relative; |
|
overflow: hidden; |
|
} |
|
|
|
.skill-progress-fill::after { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0) 50%, rgba(255,255,255,0.3) 100%); |
|
mix-blend-mode: overlay; |
|
} |
|
|
|
.action-bar { |
|
background: linear-gradient(to bottom, rgba(26,26,26,0.9) 0%, rgba(40,40,40,0.9) 100%); |
|
box-shadow: 0 -5px 15px rgba(0,0,0,0.5); |
|
border-top: 2px solid #75524e; |
|
} |
|
|
|
.combat-scene { |
|
position: relative; |
|
width: 100%; |
|
height: 300px; |
|
background: linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%); |
|
border: 4px solid #75524e; |
|
overflow: hidden; |
|
} |
|
|
|
.combat-scene::before { |
|
content: ""; |
|
position: absolute; |
|
top: 0; |
|
left: 0; |
|
right: 0; |
|
bottom: 0; |
|
background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPgogIDxkZWZzPgogICAgPHBhdHRlcm4gaWQ9ImdyaWQiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+CiAgICAgIDxyZWN0IHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMzMzIiBzdHJva2Utd2lkdGg9IjAuNSIvPgogICAgPC9wYXR0ZXJuPgogIDwvZGVmcz4KICA8cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyaWQpIiBvcGFjaXR5PSIwLjIiLz4KPC9zdmc+') repeat; |
|
opacity: 0.3; |
|
pointer-events: none; |
|
} |
|
|
|
.combat-character { |
|
position: absolute; |
|
width: 50px; |
|
height: 50px; |
|
border-radius: 50%; |
|
display: flex; |
|
align-items: center; |
|
justify-content: center; |
|
transition: all 0.5s ease; |
|
z-index: 2; |
|
} |
|
|
|
.combat-character.player { |
|
background: linear-gradient(135deg, #006400, #00FF00); |
|
border: 2px solid #fff; |
|
box-shadow: 0 0 10px rgba(0, 255, 0, 0.7); |
|
} |
|
|
|
.combat-character.enemy { |
|
background: linear-gradient(135deg, #8B0000, #FF0000); |
|
border: 2px solid #fff; |
|
box-shadow: 0 0 10px rgba(255, 0, 0, 0.7); |
|
} |
|
|
|
.combat-character.ally { |
|
background: linear-gradient(135deg, #00008B, #0000FF); |
|
border: 2px solid #fff; |
|
box-shadow: 0 0 10px rgba(0, 0, 255, 0.7); |
|
} |
|
|
|
.damage-effect { |
|
position: absolute; |
|
width: 100%; |
|
height: 100%; |
|
background-color: rgba(255, 0, 0, 0.3); |
|
z-index: 10; |
|
opacity: 0; |
|
pointer-events: none; |
|
} |
|
|
|
.heal-effect { |
|
position: absolute; |
|
width: 100%; |
|
height: 100%; |
|
background-color: rgba(0, 255, 0, 0.3); |
|
z-index: 10; |
|
opacity: 0; |
|
pointer-events: none; |
|
} |
|
|
|
.quest-active { |
|
border-left: 4px solid #FFD700; |
|
background: linear-gradient(90deg, rgba(255,215,0,0.1) 0%, rgba(255,215,0,0) 100%); |
|
} |
|
|
|
.quest-available { |
|
border-left: 4px solid #00FF00; |
|
background: linear-gradient(90deg, rgba(0,255,0,0.1) 0%, rgba(0,255,0,0) 100%); |
|
} |
|
|
|
.quest-completed { |
|
border-left: 4px solid #00BFFF; |
|
background: linear-gradient(90deg, rgba(0,191,255,0.1) 0%, rgba(0,191,255,0) 100%); |
|
} |
|
|
|
.notification { |
|
position: fixed; |
|
top: 20px; |
|
right: 20px; |
|
padding: 15px; |
|
background: linear-gradient(135deg, #1a1a1a, #3a3a3a); |
|
border: 2px solid #75524e; |
|
border-radius: 5px; |
|
box-shadow: 0 0 15px rgba(0,0,0,0.7); |
|
transform: translateX(200%); |
|
transition: transform 0.5s ease; |
|
z-index: 1000; |
|
} |
|
|
|
.notification.show { |
|
transform: translateX(0); |
|
} |
|
|
|
.notification.success { |
|
border-left: 5px solid #00FF00; |
|
} |
|
|
|
.notification.error { |
|
border-left: 5px solid #FF0000; |
|
} |
|
|
|
.notification.warning { |
|
border-left: 5px solid #FFD700; |
|
} |
|
|
|
.notification.info { |
|
border-left: 5px solid #00BFFF; |
|
} |
|
|
|
.fade-in { |
|
animation: fadeIn 0.5s ease forwards; |
|
} |
|
|
|
@keyframes fadeIn { |
|
from { opacity: 0; } |
|
to { opacity: 1; } |
|
} |
|
|
|
.shake { |
|
animation: shake 0.5s cubic-bezier(.36,.07,.19,.97) both; |
|
} |
|
|
|
@keyframes shake { |
|
10%, 90% { transform: translate3d(-1px, 0, 0); } |
|
20%, 80% { transform: translate3d(2px, 0, 0); } |
|
30%, 50%, 70% { transform: translate3d(-4px, 0, 0); } |
|
40%, 60% { transform: translate3d(4px, 0, 0); } |
|
} |
|
</style> |
|
</head> |
|
<body class="bg-gray-900 text-gray-200"> |
|
|
|
<div id="notification" class="notification hidden"> |
|
<div class="flex items-center"> |
|
<i id="notification-icon" class="fas fa-info-circle mr-3 text-xl"></i> |
|
<div> |
|
<h4 id="notification-title" class="font-bold"></h4> |
|
<p id="notification-message" class="text-sm"></p> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="container mx-auto px-4 py-8 max-w-7xl"> |
|
|
|
<div class="text-center mb-8"> |
|
<h1 class="text-5xl font-bold medieval-font text-yellow-600 mb-2">战马与剑刃</h1> |
|
<p class="text-xl italic">征服卡拉迪亚大陆</p> |
|
<div class="mt-4 flex justify-center space-x-4"> |
|
<button id="saveBtn" class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-save mr-2"></i> 保存游戏 |
|
</button> |
|
<button id="loadBtn" class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-folder-open mr-2"></i> 加载游戏 |
|
</button> |
|
<button id="settingsBtn" class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-cog mr-2"></i> 设置 |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-4 gap-6"> |
|
|
|
<div class="lg:col-span-1 parchment-bg p-6 rounded-lg"> |
|
<div class="text-center mb-6"> |
|
<div class="character-portrait w-32 h-32 mx-auto mb-4 bg-cover bg-center" style="background-image: url('https://via.placeholder.com/200x200')"></div> |
|
<h2 class="text-2xl font-bold mb-1">艾瑞克·铁盾</h2> |
|
<p class="text-sm italic mb-2">北方战士</p> |
|
<div class="flex justify-center space-x-4"> |
|
<div class="text-center"> |
|
<p class="text-sm">等级</p> |
|
<p class="text-xl font-bold">12</p> |
|
</div> |
|
<div class="text-center"> |
|
<p class="text-sm">声望</p> |
|
<p class="text-xl font-bold">450</p> |
|
</div> |
|
<div class="text-center"> |
|
<p class="text-sm">金币</p> |
|
<p class="text-xl font-bold">12,450</p> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
<h3 class="text-lg font-bold mb-2 border-b border-gray-600 pb-1">属性</h3> |
|
<div class="space-y-2"> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span>力量</span> |
|
<span>24</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 80%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span>敏捷</span> |
|
<span>18</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 60%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span>智力</span> |
|
<span>14</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 47%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span>魅力</span> |
|
<span>16</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 53%"></div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="mb-6"> |
|
<h3 class="text-lg font-bold mb-2 border-b border-gray-600 pb-1">状态</h3> |
|
<div class="space-y-3"> |
|
<div> |
|
<div class="flex justify-between mb-1"> |
|
<span>生命值</span> |
|
<span>120/150</span> |
|
</div> |
|
<div class="health-bar" style="width: 80%"></div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between mb-1"> |
|
<span>体力</span> |
|
<span>90/120</span> |
|
</div> |
|
<div class="stamina-bar" style="width: 75%"></div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between mb-1"> |
|
<span>经验值</span> |
|
<span>1,250/2,500</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 50%"></div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div> |
|
<h3 class="text-lg font-bold mb-2 border-b border-gray-600 pb-1">派系</h3> |
|
<div class="faction-banner mb-2" style="background-image: url('https://via.placeholder.com/200x60')"></div> |
|
<p class="text-center">斯特吉亚王国</p> |
|
<p class="text-sm text-center">男爵</p> |
|
<div class="mt-2 flex justify-between"> |
|
<span>与国王关系</span> |
|
<span>45/100</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 45%"></div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="lg:col-span-2"> |
|
|
|
<div class="parchment-bg p-4 rounded-lg mb-6"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h2 class="text-2xl font-bold">卡拉迪亚大陆</h2> |
|
<div class="flex space-x-2"> |
|
<button id="zoomInBtn" class="metal-bg px-3 py-1 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-search-plus"></i> |
|
</button> |
|
<button id="zoomOutBtn" class="metal-bg px-3 py-1 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-search-minus"></i> |
|
</button> |
|
</div> |
|
</div> |
|
<div class="map-container w-full h-64 relative overflow-hidden" id="gameMap"> |
|
|
|
<div class="map-marker absolute tooltip" style="top: 30%; left: 40%;" data-location="巴尔加德"> |
|
<span class="tooltiptext">巴尔加德<br>斯特吉亚王国<br>繁荣度: 高</span> |
|
</div> |
|
<div class="map-marker absolute bg-blue-500 tooltip" style="top: 60%; left: 70%;" data-location="奥斯特港"> |
|
<span class="tooltiptext">奥斯特港<br>瓦兰迪亚王国<br>繁荣度: 非常高</span> |
|
</div> |
|
<div class="map-marker absolute bg-green-500 tooltip" style="top: 45%; left: 25%;" data-location="山贼营地"> |
|
<span class="tooltiptext">山贼营地<br>危险区域<br>任务目标</span> |
|
</div> |
|
<div class="map-marker absolute bg-yellow-500 tooltip" style="top: 20%; left: 60%;" data-location="巴旦尼亚"> |
|
<span class="tooltiptext">巴旦尼亚<br>巴旦尼亚部落<br>繁荣度: 中</span> |
|
</div> |
|
</div> |
|
<div class="mt-4 flex justify-between"> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-horse mr-2"></i> 快速旅行 |
|
</button> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-scroll mr-2"></i> 查看任务 |
|
</button> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-map mr-2"></i> 王国地图 |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="parchment-bg p-4 rounded-lg mb-6"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h2 class="text-2xl font-bold">任务日志</h2> |
|
<button id="newQuestBtn" class="metal-bg px-3 py-1 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-plus mr-1"></i> 新任务 |
|
</button> |
|
</div> |
|
<div class="space-y-3 max-h-96 overflow-y-auto pr-2"> |
|
<div class="quest-active p-3 rounded cursor-pointer hover:bg-yellow-800 hover:bg-opacity-30 transition"> |
|
<div class="flex justify-between items-center"> |
|
<h3 class="font-bold text-lg">剿灭山贼营地</h3> |
|
<span class="text-xs bg-yellow-600 px-2 py-1 rounded">进行中</span> |
|
</div> |
|
<p class="text-sm mt-1">斯特吉亚的商队正受到山贼的威胁,领主希望你清除这些威胁。</p> |
|
<div class="flex justify-between items-center mt-2"> |
|
<p class="text-xs italic text-yellow-500">剩余时间: 2天</p> |
|
<div class="flex space-x-2"> |
|
<button class="text-xs bg-gray-700 px-2 py-1 rounded hover:bg-gray-600 transition">追踪</button> |
|
<button class="text-xs bg-gray-700 px-2 py-1 rounded hover:bg-gray-600 transition">放弃</button> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="quest-available p-3 rounded cursor-pointer hover:bg-green-800 hover:bg-opacity-30 transition"> |
|
<div class="flex justify-between items-center"> |
|
<h3 class="font-bold text-lg">护送商队</h3> |
|
<span class="text-xs bg-green-600 px-2 py-1 rounded">可接取</span> |
|
</div> |
|
<p class="text-sm mt-1">护送商队安全到达奥斯特港,报酬丰厚。</p> |
|
<div class="flex justify-between items-center mt-2"> |
|
<p class="text-xs italic text-green-500">奖励: 1,200金币</p> |
|
<button class="text-xs bg-gray-700 px-2 py-1 rounded hover:bg-gray-600 transition">接受</button> |
|
</div> |
|
</div> |
|
<div class="quest-available p-3 rounded cursor-pointer hover:bg-green-800 hover:bg-opacity-30 transition"> |
|
<div class="flex justify-between items-center"> |
|
<h3 class="font-bold text-lg">参加锦标赛</h3> |
|
<span class="text-xs bg-green-600 px-2 py-1 rounded">可接取</span> |
|
</div> |
|
<p class="text-sm mt-1">巴尔加德的领主正在举办锦标赛,胜利者将获得丰厚奖励。</p> |
|
<div class="flex justify-between items-center mt-2"> |
|
<p class="text-xs italic text-green-500">奖励: 声望+25, 金币+800</p> |
|
<button class="text-xs bg-gray-700 px-2 py-1 rounded hover:bg-gray-600 transition">接受</button> |
|
</div> |
|
</div> |
|
<div class="p-3 rounded cursor-pointer opacity-70"> |
|
<div class="flex justify-between items-center"> |
|
<h3 class="font-bold text-lg">收集兽皮</h3> |
|
<span class="text-xs bg-blue-600 px-2 py-1 rounded">已完成</span> |
|
</div> |
|
<p class="text-sm mt-1">为巴尔加德的商人收集20张优质兽皮。</p> |
|
<div class="flex justify-between items-center mt-2"> |
|
<p class="text-xs italic text-blue-500">已完成 3天前</p> |
|
<button class="text-xs bg-gray-700 px-2 py-1 rounded hover:bg-gray-600 transition">详情</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="lg:col-span-1"> |
|
|
|
<div class="parchment-bg p-4 rounded-lg mb-6"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h2 class="text-2xl font-bold">装备</h2> |
|
<button id="inventoryBtn" class="metal-bg px-3 py-1 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-archive mr-1"></i> 物品栏 |
|
</button> |
|
</div> |
|
<div class="grid grid-cols-3 gap-2"> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="helm"> |
|
<i class="fas fa-helmet-battle text-2xl mb-1"></i> |
|
<p class="text-xs">诺德头盔</p> |
|
<span class="tooltiptext">诺德头盔<br>护甲: 32<br>重量: 3.5<br>价值: 450金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="armor"> |
|
<i class="fas fa-vest text-2xl mb-1"></i> |
|
<p class="text-xs">链甲</p> |
|
<span class="tooltiptext">链甲<br>护甲: 45<br>重量: 12.0<br>价值: 1,200金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="legs"> |
|
<i class="fas fa-boot text-2xl mb-1"></i> |
|
<p class="text-xs">板甲护腿</p> |
|
<span class="tooltiptext">板甲护腿<br>护甲: 28<br>重量: 7.5<br>价值: 800金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="mainhand"> |
|
<i class="fas fa-sword text-2xl mb-1"></i> |
|
<p class="text-xs">双手剑</p> |
|
<span class="tooltiptext">双手剑<br>伤害: 98<br>速度: 0.85<br>价值: 1,500金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="offhand"> |
|
<i class="fas fa-shield-alt text-2xl mb-1"></i> |
|
<p class="text-xs">圆盾</p> |
|
<span class="tooltiptext">圆盾<br>护甲: 40<br>重量: 4.0<br>价值: 600金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="ranged"> |
|
<i class="fas fa-bow-arrow text-2xl mb-1"></i> |
|
<p class="text-xs">长弓</p> |
|
<span class="tooltiptext">长弓<br>伤害: 45<br>精度: 90<br>价值: 900金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="horse"> |
|
<i class="fas fa-horse text-2xl mb-1"></i> |
|
<p class="text-xs">战马</p> |
|
<span class="tooltiptext">战马<br>速度: 42<br>生命: 120<br>价值: 2,000金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="accessory1"> |
|
<i class="fas fa-ring text-2xl mb-1"></i> |
|
<p class="text-xs">银戒指</p> |
|
<span class="tooltiptext">银戒指<br>魅力+2<br>价值: 350金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="accessory2"> |
|
<i class="fas fa-gem text-2xl mb-1"></i> |
|
<p class="text-xs">红宝石</p> |
|
<span class="tooltiptext">红宝石<br>魅力+3<br>价值: 750金币</span> |
|
</div> |
|
</div> |
|
<div class="mt-4 grid grid-cols-2 gap-2"> |
|
<button class="metal-bg py-2 rounded hover:bg-gray-700 transition flex items-center justify-center"> |
|
<i class="fas fa-store mr-2"></i> 商店 |
|
</button> |
|
<button class="metal-bg py-2 rounded hover:bg-gray-700 transition flex items-center justify-center"> |
|
<i class="fas fa-hammer mr-2"></i> 锻造 |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="parchment-bg p-4 rounded-lg"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h2 class="text-2xl font-bold">技能</h2> |
|
<button id="allSkillsBtn" class="metal-bg px-3 py-1 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-list mr-1"></i> 全部 |
|
</button> |
|
</div> |
|
<div class="space-y-3 max-h-64 overflow-y-auto pr-2"> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span class="flex items-center"> |
|
<i class="fas fa-sword mr-2 text-gray-400"></i> 单手武器 |
|
</span> |
|
<span>75</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 75%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span class="flex items-center"> |
|
<i class="fas fa-swords mr-2 text-gray-400"></i> 双手武器 |
|
</span> |
|
<span>120</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 80%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span class="flex items-center"> |
|
<i class="fas fa-bow-arrow mr-2 text-gray-400"></i> 弓箭 |
|
</span> |
|
<span>65</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 65%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span class="flex items-center"> |
|
<i class="fas fa-horse mr-2 text-gray-400"></i> 骑术 |
|
</span> |
|
<span>90</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 60%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span class="flex items-center"> |
|
<i class="fas fa-chess mr-2 text-gray-400"></i> 战术 |
|
</span> |
|
<span>50</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 50%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span class="flex items-center"> |
|
<i class="fas fa-shield-alt mr-2 text-gray-400"></i> 盾牌 |
|
</span> |
|
<span>85</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 85%"></div> |
|
</div> |
|
</div> |
|
<div> |
|
<div class="flex justify-between"> |
|
<span class="flex items-center"> |
|
<i class="fas fa-running mr-2 text-gray-400"></i> 跑动 |
|
</span> |
|
<span>70</span> |
|
</div> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 70%"></div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="action-bar fixed bottom-0 left-0 right-0 p-4 shadow-lg"> |
|
<div class="container mx-auto flex justify-between items-center"> |
|
<div class="flex space-x-4"> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-home mr-2"></i> 营地 |
|
</button> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-users mr-2"></i> 部队 |
|
</button> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-chess-king mr-2"></i> 王国 |
|
</button> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-book mr-2"></i> 日志 |
|
</button> |
|
</div> |
|
<button id="combatBtn" class="metal-bg px-6 py-3 rounded-full hover:bg-gray-700 transition flex items-center font-bold"> |
|
<i class="fas fa-swords mr-2"></i> 进入战斗 |
|
</button> |
|
<div class="flex space-x-4"> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-calendar mr-2"></i> 时间 |
|
</button> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition flex items-center"> |
|
<i class="fas fa-question mr-2"></i> 帮助 |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="combatModal" class="modal"> |
|
<div class="modal-content"> |
|
<span class="close">×</span> |
|
<h2 class="text-3xl font-bold mb-6 text-center">战斗模式</h2> |
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-6"> |
|
|
|
<div class="parchment-bg p-4 rounded-lg"> |
|
<h3 class="text-xl font-bold mb-4 border-b border-gray-600 pb-2">你的状态</h3> |
|
<div class="flex items-center mb-4"> |
|
<div class="character-portrait w-16 h-16 mr-4 bg-cover bg-center" style="background-image: url('https://via.placeholder.com/200x200')"></div> |
|
<div> |
|
<p class="font-bold">艾瑞克·铁盾</p> |
|
<div class="health-bar w-32 mt-1" style="width: 80%"></div> |
|
</div> |
|
</div> |
|
|
|
<div class="grid grid-cols-2 gap-2 mb-4"> |
|
<div class="item-slot p-2 text-center"> |
|
<i class="fas fa-sword text-xl mb-1"></i> |
|
<p class="text-xs">双手剑</p> |
|
</div> |
|
<div class="item-slot p-2 text-center"> |
|
<i class="fas fa-shield-alt text-xl mb-1"></i> |
|
<p class="text-xs">圆盾</p> |
|
</div> |
|
</div> |
|
|
|
<div class="stamina-bar w-full mb-4" style="width: 75%"></div> |
|
|
|
<div class="grid grid-cols-4 gap-2"> |
|
<button class="combat-action metal-bg p-2 rounded hover:bg-gray-700 transition" data-action="attack"> |
|
<i class="fas fa-sword"></i> 攻击 |
|
</button> |
|
<button class="combat-action metal-bg p-2 rounded hover:bg-gray-700 transition" data-action="block"> |
|
<i class="fas fa-shield-alt"></i> 格挡 |
|
</button> |
|
<button class="combat-action metal-bg p-2 rounded hover:bg-gray-700 transition" data-action="kick"> |
|
<i class="fas fa-boot"></i> 踢击 |
|
</button> |
|
<button class="combat-action metal-bg p-2 rounded hover:bg-gray-700 transition" data-action="special"> |
|
<i class="fas fa-star"></i> 特殊 |
|
</button> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="combat-scene rounded-lg flex flex-col items-center justify-center"> |
|
<div id="combatPlayer" class="combat-character player" style="top: 50%; left: 20%;"> |
|
<i class="fas fa-user text-white"></i> |
|
</div> |
|
<div id="combatEnemy1" class="combat-character enemy" style="top: 30%; left: 60%;"> |
|
<i class="fas fa-skull text-white"></i> |
|
</div> |
|
<div id="combatEnemy2" class="combat-character enemy" style="top: 50%; left: 70%;"> |
|
<i class="fas fa-sword text-white"></i> |
|
</div> |
|
<div id="combatEnemy3" class="combat-character enemy" style="top: 70%; left: 60%;"> |
|
<i class="fas fa-archery text-white"></i> |
|
</div> |
|
<div id="combatAlly1" class="combat-character ally" style="top: 40%; left: 30%;"> |
|
<i class="fas fa-user text-white"></i> |
|
</div> |
|
<div id="combatAlly2" class="combat-character ally" style="top: 60%; left: 30%;"> |
|
<i class="fas fa-user text-white"></i> |
|
</div> |
|
<div id="damageEffect" class="damage-effect"></div> |
|
<div id="healEffect" class="heal-effect"></div> |
|
</div> |
|
|
|
|
|
<div class="parchment-bg p-4 rounded-lg"> |
|
<h3 class="text-xl font-bold mb-4 border-b border-gray-600 pb-2">你的部队</h3> |
|
<div class="space-y-3 max-h-48 overflow-y-auto"> |
|
<div class="flex items-center"> |
|
<div class="w-8 h-8 bg-blue-500 rounded-full mr-2 flex items-center justify-center"> |
|
<i class="fas fa-user text-xs"></i> |
|
</div> |
|
<div class="flex-1"> |
|
<p>斯特吉亚战士 x5</p> |
|
<div class="health-bar w-full" style="width: 80%"></div> |
|
</div> |
|
</div> |
|
<div class="flex items-center"> |
|
<div class="w-8 h-8 bg-blue-500 rounded-full mr-2 flex items-center justify-center"> |
|
<i class="fas fa-user text-xs"></i> |
|
</div> |
|
<div class="flex-1"> |
|
<p>斯特吉亚弓箭手 x3</p> |
|
<div class="health-bar w-full" style="width: 90%"></div> |
|
</div> |
|
</div> |
|
<div class="flex items-center"> |
|
<div class="w-8 h-8 bg-blue-500 rounded-full mr-2 flex items-center justify-center"> |
|
<i class="fas fa-horse text-xs"></i> |
|
</div> |
|
<div class="flex-1"> |
|
<p>斯特吉亚骑兵 x2</p> |
|
<div class="health-bar w-full" style="width: 70%"></div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<div class="mt-4 grid grid-cols-2 gap-2"> |
|
<button class="combat-command metal-bg p-2 rounded hover:bg-gray-700 transition" data-command="charge"> |
|
<i class="fas fa-flag"></i> 冲锋 |
|
</button> |
|
<button class="combat-command metal-bg p-2 rounded hover:bg-gray-700 transition" data-command="hold"> |
|
<i class="fas fa-shield-alt"></i> 坚守 |
|
</button> |
|
<button class="combat-command metal-bg p-2 rounded hover:bg-gray-700 transition" data-command="follow"> |
|
<i class="fas fa-user-friends"></i> 跟随我 |
|
</button> |
|
<button class="combat-command metal-bg p-2 rounded hover:bg-gray-700 transition" data-command="retreat"> |
|
<i class="fas fa-running"></i> 撤退 |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div id="inventoryModal" class="modal"> |
|
<div class="modal-content"> |
|
<span class="close">×</span> |
|
<h2 class="text-3xl font-bold mb-6 text-center">物品栏</h2> |
|
|
|
<div class="grid grid-cols-1 md:grid-cols-4 gap-6"> |
|
|
|
<div class="parchment-bg p-4 rounded-lg"> |
|
<h3 class="text-xl font-bold mb-4 border-b border-gray-600 pb-2">装备</h3> |
|
<div class="grid grid-cols-2 gap-2"> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="helm"> |
|
<i class="fas fa-helmet-battle text-2xl mb-1"></i> |
|
<p class="text-xs">诺德头盔</p> |
|
<span class="tooltiptext">诺德头盔<br>护甲: 32<br>重量: 3.5<br>价值: 450金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="armor"> |
|
<i class="fas fa-vest text-2xl mb-1"></i> |
|
<p class="text-xs">链甲</p> |
|
<span class="tooltiptext">链甲<br>护甲: 45<br>重量: 12.0<br>价值: 1,200金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="legs"> |
|
<i class="fas fa-boot text-2xl mb-1"></i> |
|
<p class="text-xs">板甲护腿</p> |
|
<span class="tooltiptext">板甲护腿<br>护甲: 28<br>重量: 7.5<br>价值: 800金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="mainhand"> |
|
<i class="fas fa-sword text-2xl mb-1"></i> |
|
<p class="text-xs">双手剑</p> |
|
<span class="tooltiptext">双手剑<br>伤害: 98<br>速度: 0.85<br>价值: 1,500金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="offhand"> |
|
<i class="fas fa-shield-alt text-2xl mb-1"></i> |
|
<p class="text-xs">圆盾</p> |
|
<span class="tooltiptext">圆盾<br>护甲: 40<br>重量: 4.0<br>价值: 600金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="ranged"> |
|
<i class="fas fa-bow-arrow text-2xl mb-1"></i> |
|
<p class="text-xs">长弓</p> |
|
<span class="tooltiptext">长弓<br>伤害: 45<br>精度: 90<br>价值: 900金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="horse"> |
|
<i class="fas fa-horse text-2xl mb-1"></i> |
|
<p class="text-xs">战马</p> |
|
<span class="tooltiptext">战马<br>速度: 42<br>生命: 120<br>价值: 2,000金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer" data-item="accessory1"> |
|
<i class="fas fa-ring text-2xl mb-1"></i> |
|
<p class="text-xs">银戒指</p> |
|
<span class="tooltiptext">银戒指<br>魅力+2<br>价值: 350金币</span> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
|
|
<div class="md:col-span-3 parchment-bg p-4 rounded-lg"> |
|
<div class="flex justify-between items-center mb-4"> |
|
<h3 class="text-xl font-bold">物品</h3> |
|
<div class="flex space-x-2"> |
|
<button class="metal-bg px-3 py-1 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-filter mr-1"></i> 筛选 |
|
</button> |
|
<button class="metal-bg px-3 py-1 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-sort mr-1"></i> 排序 |
|
</button> |
|
</div> |
|
</div> |
|
|
|
<div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-2 max-h-96 overflow-y-auto"> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-sword text-xl mb-1"></i> |
|
<p class="text-xs">短剑</p> |
|
<span class="tooltiptext">短剑<br>伤害: 45<br>速度: 1.2<br>价值: 250金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-axe text-xl mb-1"></i> |
|
<p class="text-xs">战斧</p> |
|
<span class="tooltiptext">战斧<br>伤害: 65<br>速度: 0.9<br>价值: 400金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-mace text-xl mb-1"></i> |
|
<p class="text-xs">钉头锤</p> |
|
<span class="tooltiptext">钉头锤<br>伤害: 55<br>速度: 1.0<br>价值: 350金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-helmet-battle text-xl mb-1"></i> |
|
<p class="text-xs">皮头盔</p> |
|
<span class="tooltiptext">皮头盔<br>护甲: 15<br>重量: 1.5<br>价值: 120金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-vest text-xl mb-1"></i> |
|
<p class="text-xs">皮甲</p> |
|
<span class="tooltiptext">皮甲<br>护甲: 25<br>重量: 5.0<br>价值: 200金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-wine-bottle text-xl mb-1"></i> |
|
<p class="text-xs">治疗药水</p> |
|
<span class="tooltiptext">治疗药水<br>恢复: 50生命<br>价值: 100金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-flask text-xl mb-1"></i> |
|
<p class="text-xs">体力药水</p> |
|
<span class="tooltiptext">体力药水<br>恢复: 50体力<br>价值: 80金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-feather text-xl mb-1"></i> |
|
<p class="text-xs">羽毛</p> |
|
<span class="tooltiptext">羽毛<br>制作材料<br>价值: 5金币</span> |
|
</div> |
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-hide text-xl mb-1"></i> |
|
<p class="text-xs">兽皮</p> |
|
<span class="tooltiptext">兽皮<br>制作材料<br>价值: 15金币</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-scroll text-xl mb-1"></i> |
|
<p class="text-xs">古老卷轴</p> |
|
<span class="tooltiptext">古老卷轴<br>任务物品<br>价值: 无</span> |
|
</div> |
|
|
|
<div class="item-slot p-2 text-center tooltip cursor-pointer"> |
|
<i class="fas fa-horse text-xl mb-1"></i> |
|
<p class="text-xs">旅行马</p> |
|
<span class="tooltiptext">旅行马<br>速度: 35<br>生命: 100<br>价值: 1,200金币</span> |
|
</div> |
|
</div> |
|
|
|
<div class="mt-4 flex justify-between items-center"> |
|
<div> |
|
<p class="text-sm">负重: 45/120</p> |
|
<div class="skill-progress"> |
|
<div class="skill-progress-fill" style="width: 37.5%"></div> |
|
</div> |
|
</div> |
|
<button class="metal-bg px-4 py-2 rounded hover:bg-gray-700 transition"> |
|
<i class="fas fa-coins mr-2"></i> 出售物品 |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<script> |
|
|
|
function showNotification(type, title, message) { |
|
const notification = document.getElementById('notification'); |
|
const icon = document.getElementById('notification-icon'); |
|
const notificationTitle = document.getElementById('notification-title'); |
|
const notificationMessage = document.getElementById('notification-message'); |
|
|
|
|
|
notificationTitle.textContent = title; |
|
notificationMessage.textContent = message; |
|
|
|
|
|
notification.className = 'notification fade-in'; |
|
notification.classList.add(type); |
|
|
|
switch(type) { |
|
case 'success': |
|
icon.className = 'fas fa-check-circle mr-3 text-xl'; |
|
break; |
|
case 'error': |
|
icon.className = 'fas fa-times-circle mr-3 text-xl'; |
|
break; |
|
case 'warning': |
|
icon.className = 'fas fa-exclamation-triangle mr-3 text-xl'; |
|
break; |
|
case 'info': |
|
icon.className = 'fas fa-info-circle mr-3 text-xl'; |
|
break; |
|
} |
|
|
|
|
|
notification.classList.add('show'); |
|
|
|
|
|
setTimeout(() => { |
|
notification.classList.remove('show'); |
|
setTimeout(() => { |
|
notification.className = 'notification hidden'; |
|
}, 500); |
|
}, 3000); |
|
} |
|
|
|
|
|
const combatBtn = document.getElementById('combatBtn'); |
|
const combatModal = document.getElementById('combatModal'); |
|
const closeBtns = document.querySelectorAll('.close'); |
|
|
|
</html> |