diff --git a/android-chrome-192x192.png b/android-chrome-192x192.png index f468a4c..42d2c29 100644 Binary files a/android-chrome-192x192.png and b/android-chrome-192x192.png differ diff --git a/android-chrome-512x512.png b/android-chrome-512x512.png index 5038748..72561c1 100644 Binary files a/android-chrome-512x512.png and b/android-chrome-512x512.png differ diff --git a/apple-touch-icon.png b/apple-touch-icon.png index 9b28677..19b58f8 100644 Binary files a/apple-touch-icon.png and b/apple-touch-icon.png differ diff --git a/favicon-16x16.png b/favicon-16x16.png index 416172f..b37a9f7 100644 Binary files a/favicon-16x16.png and b/favicon-16x16.png differ diff --git a/favicon-32x32.png b/favicon-32x32.png index ffaab42..7203908 100644 Binary files a/favicon-32x32.png and b/favicon-32x32.png differ diff --git a/favicon.ico b/favicon.ico index 6407a42..01d8a73 100644 Binary files a/favicon.ico and b/favicon.ico differ diff --git a/index.html b/index.html index 33738b1..145a96a 100644 --- a/index.html +++ b/index.html @@ -82,7 +82,7 @@ right: 0; background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06)); - z-index: 9999; + z-index: 20000; background-size: 100% 3px, 3px 100%; pointer-events: none; } @@ -168,6 +168,17 @@ color: #1a1a1a !important; /* Dark text inside the bar so it's readable */ } + /* --- High-Visibility Button Flash --- */ + @keyframes quickFlash { + 0% { background-color: transparent; } + 50% { background-color: var(--pip-color); color: #000; } + 100% { background-color: transparent; } + } + .btn-flash { + animation: quickFlash 0.3s ease-in-out 2; + } + + /* --- Modals --- */ .overlay { position: fixed; @@ -175,10 +186,13 @@ left: 0; width: 100vw; height: 100vh; - background: rgba(0, 0, 0, 0.85); + /* Replaced flat black with theme-aware vignette */ + background: radial-gradient(circle at center, transparent 40%, var(--vignette-shadow) 120%); + backdrop-filter: blur(2px); /* Adds a premium subtle blur to the map behind */ z-index: 9000; } + .start-modal, .cards-modal, .win-content, @@ -666,7 +680,7 @@ border: 1px solid var(--pip-color); padding: 16px; position: fixed; - z-index: 9999; + z-index: 30000; left: 50%; bottom: 30px; transform: translateX(-50%); @@ -829,7 +843,7 @@ right: 260px; bottom: 0; height: 150px; - background: var(--pip-panel); + background: var(--pip-panel) !important; border-top: 3px solid var(--pip-color); box-sizing: border-box; display: flex; @@ -1117,9 +1131,15 @@ /* --- MOBILE MODAL FIXES (BOOT, REBOOT, HELP, PATCH NOTES) --- */ @media screen and (max-width: 950px) { + + /* ISOLATED MOBILE HEIGHT FIX */ + body, .overlay { + height: 100dvh !important; + } .start-modal, #confirm-restart-modal .content, + .cards-modal, .win-content, .help-modal-content, @@ -1244,10 +1264,9 @@ bottom: 0; } + /* --- NEW: Hide brackets completely on mobile --- */ .map-brackets { - left: 145px; - right: 145px; - bottom: 20px; + display: none !important; } /* Force bottom buttons to stay scrollable but anchored to bottom */ @@ -1289,15 +1308,19 @@ margin-top: 4px; } - .turn-info { - font-size: 12px; - margin-bottom: 2px; - } - - /* HIDE NON-ESSENTIALS TO SAVE VERTICAL SPACE */ + /* HIDE DIRECTIVES COMPLETELY ON MOBILE */ + .turn-info, .turn-info-message { display: none !important; } + + /* PULL REINFORCEMENTS UP TO FILL THE GAP */ + .metric-box[style*="margin-top: 20px;"] { + margin-top: 0 !important; + } + + /* HIDE NON-ESSENTIALS TO SAVE VERTICAL SPACE */ + .player-panel>div:first-child>div:nth-of-type(3) { display: none !important; @@ -1322,19 +1345,16 @@ padding-top: 5px; } + /* HIDE TURBO CONTAINER COMPLETELY ON MOBILE */ .turbo-container { - padding: 2px; - margin-top: 4px; - } - - .turbo-container label { - font-size: 9px; + display: none !important; } .pip-nav span { cursor: pointer; } + /* Make all tabs clickable */ /* New Rules for Inventory */ @@ -1514,18 +1534,7 @@ } /* Admin/Dev Menu Unified Buttons */ - #dev-modal button { - width: 100%; - margin-bottom: 10px; - padding: 10px; - background-color: var(--pip-dark, #1a1a1a); - color: var(--pip-color); - border: 1px solid var(--pip-color); - font-family: inherit; - font-size: 16px; - cursor: pointer; - text-transform: uppercase; - } + #dev-modal button:hover { background-color: var(--pip-color); color: var(--pip-dark, #1a1a1a); @@ -1916,6 +1925,27 @@ font-weight: bold; } + /* --- UPDATED LEVELING SYSTEM UI --- */ + #leveling-ui-container { + margin-top: 10px; + padding-top: 10px; + border-top: 1px solid rgba(0, 255, 0, 0.2); + } + + + .perk-choice-btn { + background: rgba(0, 255, 0, 0.1) !important; + border: 1px solid #00ff00 !important; + padding: 15px !important; + margin: 10px 0 !important; + text-align: left !important; + transition: all 0.2s !important; + } + .perk-choice-btn:hover { + background: rgba(0, 255, 0, 0.3) !important; + box-shadow: 0 0 15px rgba(0, 255, 0, 0.5) !important; + transform: scale(1.02); + } @@ -1934,21 +1964,21 @@
+ +
+
[ SYSTEM ALERT ]
+
TERMINAL ORIENTATION UNSTABLE.

PLEASE ROTATE DEVICE TO
LANDSCAPE MODE TO INITIATE.
+
+
-
-
[ SYSTEM ALERT ]
-
TERMINAL ORIENTATION UNSTABLE.

PLEASE ROTATE DEVICE TO
LANDSCAPE MODE TO INITIATE.
-
-
- -
+

Wasteland Conquest

A RobCo Industries - Strategic Simulation (v2.2)

+ Strategic Simulation

@@ -2335,6 +2365,12 @@
+ + +
@@ -3346,71 +3396,6 @@
- ${bhHTML} @@ -13567,6 +14468,23 @@ document.getElementById('help-os-screen').addEventListener('click', function(e) }); } + // --- NEW: AUTO-RESUME FULL SCREEN ON MOBILE TAP --- + document.body.addEventListener('click', () => { + // Check if it's a mobile screen in landscape + if (window.innerWidth <= 950 && window.innerWidth > window.innerHeight) { + let startModal = document.getElementById('start-modal'); + // Only trigger if the game has actually started (modal is hidden) + if (startModal && startModal.style.display === 'none') { + // Check if we accidentally dropped out of full screen + if (!document.fullscreenElement && !document.webkitFullscreenElement) { + let elem = document.documentElement; + if (elem.requestFullscreen) { elem.requestFullscreen().catch(e => {}); } + else if (elem.webkitRequestFullscreen) { elem.webkitRequestFullscreen().catch(e => {}); } + } + } + } + }); + // Then boot the game! Gamestate.init();