From 9ec66517a99794dbb4fce9df6fe23180e479894d Mon Sep 17 00:00:00 2001 From: MaksSlyzar Date: Sat, 18 Apr 2026 15:27:57 +0300 Subject: [PATCH] Added Mobile version DungonScreen, DungeonFinish --- .../components/DungeonScreen.css | 436 ++++++++++++++++++ .../tabs/components/DungeonFinish.css | 70 +++ 2 files changed, 506 insertions(+) diff --git a/client/src/views/GameInterface/components/DungeonScreen.css b/client/src/views/GameInterface/components/DungeonScreen.css index 8dc10cd..401a82d 100644 --- a/client/src/views/GameInterface/components/DungeonScreen.css +++ b/client/src/views/GameInterface/components/DungeonScreen.css @@ -420,3 +420,439 @@ opacity: 0.4; font-size: 0.6rem; } + +.dungeon-active-screen { + display: flex; + flex-direction: column; + height: 100vh; + background: radial-gradient(circle at center, #0a1118 0%, #05080c 100%); + padding: 30px; + gap: 25px; + font-family: "Space Mono", monospace; + color: #e0e6ed; + box-sizing: border-box; + overflow: hidden; +} + +.dungeon-header { + display: flex; + justify-content: space-between; + align-items: flex-end; + border-bottom: 1px solid rgba(0, 212, 255, 0.3); + padding-bottom: 15px; + position: relative; + flex-shrink: 0; +} + +.dungeon-header::after { + content: ""; + position: absolute; + bottom: -1px; + left: 0; + width: 60px; + height: 3px; + background: #00d4ff; + box-shadow: 0 0 15px #00d4ff; +} + +.progress-text { + font-size: 0.75rem; + letter-spacing: 2px; + color: #00d4ff; + font-weight: bold; +} + +.progress-bar { + width: 250px; + height: 6px; + background: rgba(255, 255, 255, 0.05); + margin-top: 8px; + border-radius: 3px; + overflow: hidden; +} + +.progress-bar .fill { + height: 100%; + background: linear-gradient(90deg, #00d4ff, #0088ff); + box-shadow: 0 0 10px rgba(0, 212, 255, 0.5); + transition: width 0.5s ease-in-out; +} + +.dungeon-title-area { + text-align: right; +} + +.dungeon-name { + font-family: "Orbitron", sans-serif; + font-size: 1.4rem; + font-weight: 900; + letter-spacing: 1px; + text-transform: uppercase; + color: #fff; +} + +.dungeon-status-tag { + font-size: 0.7rem; + color: #ff4444; + animation: blink 1.5s infinite; +} + +.battle-layout { + display: grid; + grid-template-columns: 1.2fr 1fr; + flex: 1; + gap: 30px; + min-height: 0; +} + +.enemy-display { + position: relative; + height: 100%; + min-height: 0; +} + +.enemy-card { + background: linear-gradient( + 180deg, + rgba(255, 68, 68, 0.08) 0%, + rgba(0, 0, 0, 0) 100% + ); + border: 1px solid rgba(255, 68, 68, 0.2); + border-radius: 4px; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1); + position: relative; + overflow: hidden; +} + +.enemy-card.defeated { + filter: grayscale(1) brightness(0.5); + border-color: rgba(160, 172, 186, 0.2); + background: rgba(0, 0, 0, 0.4); +} + +.threat-tag { + color: #ff4444; + font-family: "Orbitron", sans-serif; + font-size: 0.8rem; + letter-spacing: 4px; + margin-bottom: 30px; + text-shadow: 0 0 10px rgba(255, 68, 68, 0.5); +} + +.enemy-icon { + font-size: 6rem; + color: #fff; + margin-bottom: 25px; + filter: drop-shadow(0 0 20px rgba(255, 255, 255, 0.2)); +} + +.enemy-name { + font-family: "Orbitron", sans-serif; + font-size: 1.8rem; + margin: 0 0 20px 0; + color: #fff; + text-transform: uppercase; +} + +.enemy-hp-container { + width: 60%; + margin-bottom: 30px; +} + +.hp-label { + font-size: 0.6rem; + color: #a0acba; + margin-bottom: 6px; + text-align: center; + letter-spacing: 1px; +} + +.hp-bar-mini { + height: 8px; + background: rgba(0, 0, 0, 0.5); + border: 1px solid rgba(255, 255, 255, 0.1); + padding: 2px; +} + +.hp-fill-mini { + height: 100%; + background: #ff4444; + box-shadow: 0 0 15px rgba(255, 68, 68, 0.6); + transition: width 0.3s ease-out; +} + +.combat-log-wrapper { + display: flex; + flex-direction: column; + background: rgba(0, 0, 0, 0.3); + border: 1px solid rgba(26, 38, 56, 0.8); + min-height: 0; + max-height: 100%; + overflow: hidden; +} + +.log-header { + background: rgba(26, 38, 56, 0.5); + padding: 10px 15px; + font-size: 0.7rem; + font-weight: bold; + letter-spacing: 1px; + color: #00d4ff; + border-bottom: 1px solid rgba(26, 38, 56, 0.8); + flex-shrink: 0; +} + +.combat-log { + flex: 1; + padding: 20px; + font-size: 0.8rem; + display: flex; + flex-direction: column; + gap: 10px; + overflow-y: auto; + scrollbar-width: thin; + min-height: 0; +} + +.log-entry { + line-height: 1.4; + color: #a0acba; + word-break: break-all; +} + +.log-arrow { + color: #00d4ff; + margin-right: 8px; + font-weight: bold; +} + +.dungeon-controls { + display: flex; + gap: 20px; + height: 70px; + flex-shrink: 0; +} + +.ctrl-btn { + flex: 1; + border: none; + font-family: "Orbitron", sans-serif; + font-weight: 900; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + gap: 12px; + font-size: 1rem; + letter-spacing: 2px; + clip-path: polygon(10px 0%, 100% 0%, calc(100% - 10px) 100%, 0% 100%); + transition: all 0.2s; +} + +.ctrl-btn.combat { + background: #ff4444; + color: #000; +} +.ctrl-btn.loot { + background: #ffaa00; + color: #000; +} +.ctrl-btn.next { + background: #00d4ff; + color: #000; +} + +.environment-panel { + background: rgba(0, 20, 40, 0.6); + border: 1px solid rgba(0, 255, 255, 0.2); + padding: 12px; + display: flex; + flex-direction: column; + flex-shrink: 0; +} + +.env-info { + display: flex; + align-items: center; + gap: 12px; +} + +@media screen and (max-width: 768px) { + .dungeon-active-screen { + padding: 15px; + gap: 15px; + height: 100%; + overflow-y: auto; + } + + .dungeon-header { + flex-direction: column; + align-items: flex-start; + gap: 10px; + } + + .progress-bar { + width: 100%; + } + + .dungeon-title-area { + text-align: left; + width: 100%; + } + + .battle-layout { + grid-template-columns: 1fr; + display: flex; + flex-direction: column; + gap: 15px; + flex: none; + } + + .enemy-display { + min-height: 300px; + } + + .enemy-icon { + font-size: 4rem; + } + + .enemy-name { + font-size: 1.3rem; + } + + .combat-log-wrapper { + min-width: 100%; + max-height: 250px; + } + + .dungeon-controls { + height: 60px; + position: sticky; + bottom: 0; + background: #05080c; + padding-top: 10px; + margin-top: auto; + } + + .ctrl-btn { + font-size: 0.8rem; + letter-spacing: 1px; + } +} + +@media screen and (max-width: 480px) { + .enemy-display { + min-height: 260px; + } + + .enemy-hp-container { + width: 90%; + } + + .ctrl-btn { + gap: 5px; + font-size: 0.75rem; + } +} + +.enemy-info-footer { + display: flex; + align-items: center; + justify-content: space-between; + width: 90%; + margin-top: auto; + padding-bottom: 15px; + gap: 10px; +} + +.card-id { + opacity: 0.4; + font-size: 0.6rem; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 150px; +} + +.enemy-info-footer span:first-child { + white-space: nowrap;/ +} + + +@media screen and (max-width: 768px) { + .enemy-display { + min-height: 220px; + flex: 0 0 auto; + } + + .enemy-card { + padding: 10px; + } + + .enemy-icon { + font-size: 3rem; + margin-bottom: 10px; + } + + .enemy-name { + font-size: 1.1rem; + margin-bottom: 10px; + } + + .threat-tag { + margin-bottom: 10px; + font-size: 0.65rem; + letter-spacing: 2px; + } + + .enemy-hp-container { + margin-bottom: 15px; + } + + .combat-log-wrapper { + max-height: 180px; + } + + .log-header { + padding: 6px 12px; + font-size: 0.6rem; + } + + .combat-log { + padding: 10px; + gap: 4px; + } + + .log-entry { + font-size: 0.7rem; + line-height: 1.2; + } + + .log-arrow { + margin-right: 4px; + } + + .enemy-info-footer { + padding-bottom: 10px; + font-size: 0.6rem; + } +} + +@media screen and (max-width: 400px) { + .enemy-display { + min-height: 190px; + } + + .enemy-icon { + font-size: 2.5rem; + } + + .combat-log-wrapper { + max-height: 150px; + } +} diff --git a/client/src/views/GameInterface/tabs/components/DungeonFinish.css b/client/src/views/GameInterface/tabs/components/DungeonFinish.css index 0471d1a..2e5855a 100644 --- a/client/src/views/GameInterface/tabs/components/DungeonFinish.css +++ b/client/src/views/GameInterface/tabs/components/DungeonFinish.css @@ -115,3 +115,73 @@ background: rgba(0, 212, 255, 0.1); box-shadow: inset 0 0 15px rgba(0, 212, 255, 0.3); } + +@media screen and (max-width: 768px) { + .dungeon-summary-overlay { + padding: 15px; + } + + .summary-card { + width: 100%; + max-width: 400px; + padding: 25px 20px; + box-sizing: border-box; + } + + .summary-title { + font-size: 1.1rem; + letter-spacing: 2px; + text-align: center; + } + + .summary-line { + margin-bottom: 20px; + } + + .reward-stats { + grid-template-columns: 1fr; + gap: 10px; + margin-bottom: 20px; + } + + .stat-box { + padding: 10px; + } + + .stat-value { + font-size: 1rem; + } + + .loot-grid { + grid-template-columns: repeat(auto-fill, minmax(60px, 1fr)); + gap: 10px; + max-height: 200px; + } + + .loot-item-slot { + width: 60px; + height: 60px; + } + + .summary-btn { + margin-top: 25px; + padding: 12px; + font-size: 0.8rem; + letter-spacing: 1px; + } +} + +@media screen and (max-width: 380px) { + .summary-card { + padding: 20px 15px; + } + + .loot-grid { + grid-template-columns: repeat(4, 1fr); + } + + .loot-item-slot { + width: 55px; + height: 55px; + } +}