diff --git a/src/_includes/bio.njk b/src/_includes/bio.njk index f524403a..a74444a4 100644 --- a/src/_includes/bio.njk +++ b/src/_includes/bio.njk @@ -3,14 +3,12 @@ layout: layouts/base.njk ---
-

{{ name }}

{{ role }}

-
{% if location or country %}
@@ -18,7 +16,6 @@ layout: layouts/base.njk {{ location }}{% if location and country %}, {% endif %}{{ country }}
{% endif %} - {% if email %}
✉️ @@ -26,7 +23,6 @@ layout: layouts/base.njk
{% endif %} - {% if website %}
🔗 @@ -34,7 +30,6 @@ layout: layouts/base.njk
{% endif %}
-

Connect

@@ -62,7 +57,6 @@ layout: layouts/base.njk
-
{% if bio %}
@@ -74,7 +68,6 @@ layout: layouts/base.njk
{% endif %} - {% if languages is defined and languages is not null %}

@@ -86,22 +79,18 @@ layout: layouts/base.njk

{% endif %} -

Mini-Game

Catch the skill tiles before they fall! Collect enough to win XP.

-
- + diff --git a/src/_includes/skills-list.njk b/src/_includes/skills-list.njk index 2bd945b3..33b3dd26 100644 --- a/src/_includes/skills-list.njk +++ b/src/_includes/skills-list.njk @@ -1,7 +1,7 @@
{% for skill in skills %} - {{ skill }} + {{ skill }} {% endfor %}
diff --git a/src/_includes/system-log.njk b/src/_includes/system-log.njk index e3f0365a..720f737b 100644 --- a/src/_includes/system-log.njk +++ b/src/_includes/system-log.njk @@ -1,4 +1,4 @@ -
- - - + + +
@@ -18,10 +18,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/_includes/system-override.njk b/src/_includes/system-override.njk index 4c9d9d3a..6eca67c3 100644 --- a/src/_includes/system-override.njk +++ b/src/_includes/system-override.njk @@ -5,89 +5,39 @@
- - - - - - + + + + +
- - - - - - - + + + + + + +
-
- -
- - + +
+ +
+ + +
-
- - + +
-

Press 'D' to toggle

+

Press 'D' to toggle

diff --git a/src/assets/js/ui-bindings.js b/src/assets/js/ui-bindings.js new file mode 100644 index 00000000..38e6c611 --- /dev/null +++ b/src/assets/js/ui-bindings.js @@ -0,0 +1,50 @@ +// skipcq: JS-0357 +/* global scrollToRandomUser, handleLevelClick, toggleTheme, closeMatrix, reopenConsole, minimizeConsole, maximizeConsole, closeConsole, triggerSecretUnlock, triggerForceSurge, addExperience, XP_SPACE_INVADERS_WIN, _XP_CODE_BREAKER_WIN, _XP_DEV_DUEL_PLAY, playSound, triggerMagicXP, toggleScreenshotMode, jumpToLevel, startSelfDestruct, CodeBreaker, handleFooterDotClick, SpaceInvaders, startDuelFromCard, createFloatingXP */ + +// Fixes #627 - Centralized UI bindings - Refactored to reduce complexity +document.addEventListener('click', (e) => { + const btn = e.target.closest('[data-action]'); + if (!btn) return; + + const handlers = { + 'scroll-to-random': () => scrollToRandomUser?.(), + 'level-click': () => handleLevelClick?.(), + 'toggle-theme': () => toggleTheme?.(), + 'close-matrix': () => closeMatrix?.(), + 'reopen-console': () => reopenConsole?.(), + 'minimize-console': () => minimizeConsole?.(), + 'maximize-console': () => maximizeConsole?.(), + 'close-console': () => closeConsole?.(), + 'secret-unlock': () => triggerSecretUnlock?.(btn.dataset.code), + 'force-surge': () => triggerForceSurge?.(), + 'xp-invader': () => { addExperience(XP_SPACE_INVADERS_WIN); playSound?.('levelUp'); }, + 'xp-breaker': () => { addExperience(_XP_CODE_BREAKER_WIN); playSound?.('levelUp'); }, + 'xp-duel': () => { addExperience(_XP_DEV_DUEL_PLAY); playSound?.('click'); }, + 'xp-skill': () => { addExperience(5); playSound?.('click'); }, + 'xp-optimize': () => { addExperience(15); playSound?.('restore'); }, + 'magic-xp': () => { triggerMagicXP?.(); playSound?.('levelUp'); }, + 'screenshot-mode': () => toggleScreenshotMode?.(), + 'jump-level': () => jumpToLevel?.(), + 'self-destruct': () => startSelfDestruct?.(), + 'reset-storage': () => { localStorage.clear(); location.reload(); }, + 'launch-codebreaker': () => CodeBreaker?.launch(window.PROFILE_SKILLS, window.PROFILE_NAME), + 'footer-dot': () => handleFooterDotClick?.(), + 'launch-invaders': () => SpaceInvaders?.launch(), + 'launch-breaker-arcade': () => CodeBreaker?.launch(null, 'Arcade Mode'), + 'duel-from-card': () => startDuelFromCard?.(btn.closest('.user-card')), + }; + + const handler = handlers[btn.dataset.action]; + if (handler) handler(); +}); + +document.addEventListener('mouseover', (e) => { + const el = e.target.closest('[data-action="floating-xp"]'); + if (el) createFloatingXP?.(e); +}); + +document.addEventListener('DOMContentLoaded', () => { + document.querySelectorAll('.floating-xp-trigger').forEach((el) => { + el.addEventListener('mouseenter', (ev) => createFloatingXP?.(ev)); + }); +}); diff --git a/src/games.njk b/src/games.njk index 1105d0a3..3574e992 100644 --- a/src/games.njk +++ b/src/games.njk @@ -45,7 +45,7 @@ seo:
Trigger: click the footer ❤️ five times
- @@ -56,7 +56,7 @@ seo:
⌨️

Code Breaker

Catch falling tech skills before they hit the ground. Uses generic skills here — visit any profile page for that developer's own skill set. Earn +{{ _XP_CODE_BREAKER_WIN or 100 }} XP on win.

- @@ -114,7 +114,6 @@ seo: