-
我方
-
HP {{ gameState.hp }} | MP {{ gameState.mp }} | 药草 {{ gameState.player.potions }}
+
+
+
+
+
+
我方
+
HP {{ gameState.hp }} | MP {{ gameState.mp }} | 药草 {{ gameState.player.potions }}
+
+
+
敌方
+
HP {{ gameState.battle.enemyHp }} / {{ gameState.battle.enemyMaxHp }}
+
-
-
敌方
-
HP {{ gameState.battle.enemyHp }} / {{ gameState.battle.enemyMaxHp }}
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
{{ gameState.battle.victory ? '战斗胜利' : '战斗失败' }}
+
+
-
-
{{ gameState.battle.victory ? '战斗胜利' : '战斗失败' }}
-
+
-
-
@@ -50,19 +250,33 @@ const runAction = (action: 'attack' | 'skill' | 'defend' | 'item') => {
.battle-overlay {
position: fixed;
inset: 0;
- background: rgba(6, 10, 14, 0.78);
- display: grid;
- place-items: center;
z-index: 50;
+ background: radial-gradient(circle at center, rgba(14, 21, 28, 0.86), rgba(5, 9, 12, 0.95));
padding: 14px;
}
-.battle-card {
- width: min(760px, 100%);
+.battle-stage {
+ width: min(1060px, 100%);
+ height: 100%;
+ margin: 0 auto;
+ display: grid;
+ grid-template-rows: minmax(260px, 58vh) auto;
+ gap: 10px;
+}
+
+.battle-viewport {
+ border: 1px solid #3b556a;
border-radius: 12px;
- border: 1px solid #365064;
- background: linear-gradient(180deg, #12202a, #0f1921);
- padding: 14px;
+ overflow: hidden;
+ box-shadow: 0 20px 45px rgba(0, 0, 0, 0.35);
+ background: #101a22;
+}
+
+.battle-hud {
+ border: 1px solid #304758;
+ border-radius: 12px;
+ background: linear-gradient(180deg, #13212c, #0f1a23);
+ padding: 12px;
}
.battle-head h2 {
@@ -71,22 +285,23 @@ const runAction = (action: 'attack' | 'skill' | 'defend' | 'item') => {
}
.battle-head p {
- margin: 6px 0 0;
- color: #9cc0d6;
+ margin: 4px 0 0;
+ color: #9ec1d8;
+ font-size: 13px;
}
.bars {
- margin-top: 12px;
+ margin-top: 10px;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
}
.bars > div {
- border: 1px solid #2f4555;
+ border: 1px solid #304758;
border-radius: 8px;
- padding: 10px;
- background: #172632;
+ padding: 8px 10px;
+ background: #162734;
}
.bars p {
@@ -95,18 +310,18 @@ const runAction = (action: 'attack' | 'skill' | 'defend' | 'item') => {
}
.actions {
- margin-top: 12px;
+ margin-top: 10px;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 8px;
}
button {
- border: 1px solid #42627a;
+ border: 1px solid #44657e;
border-radius: 8px;
- background: #203646;
+ background: #1e3546;
color: #d7e0e6;
- padding: 10px;
+ padding: 9px 10px;
cursor: pointer;
}
@@ -116,7 +331,7 @@ button:disabled {
}
.result {
- margin-top: 12px;
+ margin-top: 10px;
display: flex;
align-items: center;
justify-content: space-between;
@@ -127,20 +342,24 @@ button:disabled {
}
.log {
- margin: 12px 0 0;
- border: 1px solid #2f4555;
+ margin: 10px 0 0;
+ border: 1px solid #304758;
border-radius: 8px;
- background: #111d27;
+ background: #0f1b24;
padding: 10px 12px;
list-style: none;
display: grid;
- gap: 6px;
- max-height: 150px;
+ gap: 5px;
+ max-height: 140px;
overflow: auto;
- font-size: 13px;
+ font-size: 12px;
}
-@media (max-width: 720px) {
+@media (max-width: 900px) {
+ .battle-stage {
+ grid-template-rows: minmax(230px, 48vh) auto;
+ }
+
.bars {
grid-template-columns: 1fr;
}