reaper-arcade-hub 1.1.3 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/styles.css +2 -3
- package/index.html +0 -1
- package/js/app.js +5 -25
- package/main/css/styles.css +2 -3
- package/main/index.html +0 -1
- package/main/js/app.js +5 -25
- package/package.json +3 -4
- package/verify/css/styles.css +2 -3
package/css/styles.css
CHANGED
|
@@ -937,12 +937,11 @@ body {
|
|
|
937
937
|
.game-player-modal {
|
|
938
938
|
display: none;
|
|
939
939
|
position: fixed;
|
|
940
|
-
|
|
941
|
-
left: 0;
|
|
940
|
+
inset: 0;
|
|
942
941
|
width: 100vw;
|
|
943
942
|
height: 100vh;
|
|
944
943
|
background: #000;
|
|
945
|
-
z-index:
|
|
944
|
+
z-index: 99999;
|
|
946
945
|
flex-direction: column;
|
|
947
946
|
}
|
|
948
947
|
|
package/index.html
CHANGED
|
@@ -228,7 +228,6 @@
|
|
|
228
228
|
|
|
229
229
|
<div class="filter-pills">
|
|
230
230
|
<button class="filter-btn active" data-cat="all">ALL</button>
|
|
231
|
-
<button class="filter-btn" data-cat="top" style="color: #00ffaa; border-color: rgba(0, 255, 170, 0.4); background: rgba(0, 255, 170, 0.1);">🔥 TOP PLAYS</button>
|
|
232
231
|
<button class="filter-btn" data-cat="featured">FEATURED</button>
|
|
233
232
|
<button class="filter-btn" data-cat="favorites">FAVORITES</button>
|
|
234
233
|
<button class="filter-btn" data-cat="fnf">FNF (50+)</button>
|
package/js/app.js
CHANGED
|
@@ -1636,22 +1636,15 @@ class ReaperHubApp {
|
|
|
1636
1636
|
return;
|
|
1637
1637
|
}
|
|
1638
1638
|
|
|
1639
|
-
const plays = this.gamePlays || JSON.parse(localStorage.getItem('reaper_game_plays') || '{}');
|
|
1640
|
-
|
|
1641
1639
|
grid.innerHTML = this.filteredGames.map(game => {
|
|
1642
1640
|
const isFav = this.favorites.map(String).includes(String(game.id));
|
|
1643
1641
|
const coverUrl = game.cover || `https://placehold.co/400x250/041022/ffffff?text=${encodeURIComponent(game.name)}`;
|
|
1644
|
-
const playCount = this.getGamePlayCount(game.id, plays);
|
|
1645
|
-
const playCountStr = this.formatPlayCount(playCount);
|
|
1646
1642
|
|
|
1647
1643
|
return `
|
|
1648
1644
|
<div class="game-card" onclick="app.launchGame('${game.id}')">
|
|
1649
1645
|
<div class="game-thumb-container">
|
|
1650
1646
|
<img class="game-thumb" src="${coverUrl}" alt="${game.name}" loading="lazy" onerror="this.onerror=null; this.src='https://placehold.co/400x250/041022/ffffff?text=${encodeURIComponent(game.name)}';" />
|
|
1651
1647
|
${game.featured ? '<span class="game-badge-featured">FEATURED</span>' : ''}
|
|
1652
|
-
<span class="game-badge-plays" style="position: absolute; bottom: 8px; left: 8px; background: rgba(2, 8, 20, 0.85); backdrop-filter: blur(4px); border: 1px solid rgba(0, 210, 255, 0.4); color: #00d2ff; padding: 2px 7px; border-radius: 12px; font-size: 0.68rem; font-weight: 800; font-family: var(--font-mono); display: flex; align-items: center; gap: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.6);">
|
|
1653
|
-
🔥 ${playCountStr} Plays
|
|
1654
|
-
</span>
|
|
1655
1648
|
</div>
|
|
1656
1649
|
<div class="game-info">
|
|
1657
1650
|
<div class="game-title" title="${game.name}">${game.name}</div>
|
|
@@ -1661,7 +1654,7 @@ class ReaperHubApp {
|
|
|
1661
1654
|
${isFav ? '★ SAVED' : '☆ FAV'}
|
|
1662
1655
|
</button>
|
|
1663
1656
|
</div>
|
|
1664
|
-
<button class="btn-card-play">PLAY GAME</button>
|
|
1657
|
+
<button class="btn-card-play" onclick="event.stopPropagation(); app.launchGame('${game.id}')">PLAY GAME</button>
|
|
1665
1658
|
</div>
|
|
1666
1659
|
</div>
|
|
1667
1660
|
`;
|
|
@@ -1900,11 +1893,6 @@ class ReaperHubApp {
|
|
|
1900
1893
|
this.currentGame = game;
|
|
1901
1894
|
this.recordRecentlyPlayed(game);
|
|
1902
1895
|
|
|
1903
|
-
// Increment play counter in Firebase & local cache
|
|
1904
|
-
if (window.reaperFirebase) {
|
|
1905
|
-
window.reaperFirebase.incrementGamePlays(game.id, game.name);
|
|
1906
|
-
}
|
|
1907
|
-
|
|
1908
1896
|
if (window.reaperSFX) window.reaperSFX.playLaunch();
|
|
1909
1897
|
if (window.reaperStarfield) {
|
|
1910
1898
|
window.reaperStarfield.setWarpSpeed(true);
|
|
@@ -1917,8 +1905,8 @@ class ReaperHubApp {
|
|
|
1917
1905
|
const statusBadge = document.getElementById('player-status-badge');
|
|
1918
1906
|
|
|
1919
1907
|
if (modal && iframe) {
|
|
1920
|
-
nameEl.textContent = game.name;
|
|
1921
|
-
if (statusBadge) statusBadge.textContent = '
|
|
1908
|
+
if (nameEl) nameEl.textContent = game.name;
|
|
1909
|
+
if (statusBadge) statusBadge.textContent = 'CONNECTING...';
|
|
1922
1910
|
|
|
1923
1911
|
modal.style.display = 'flex';
|
|
1924
1912
|
document.body.style.overflow = 'hidden';
|
|
@@ -1930,6 +1918,7 @@ class ReaperHubApp {
|
|
|
1930
1918
|
|
|
1931
1919
|
const filename = game.url.split('/').pop();
|
|
1932
1920
|
iframe.removeAttribute('srcdoc');
|
|
1921
|
+
iframe.src = `https://fastly.jsdelivr.net/gh/gn-math/html@main/${filename}`;
|
|
1933
1922
|
|
|
1934
1923
|
try {
|
|
1935
1924
|
const res = await fetch(`https://raw.githubusercontent.com/gn-math/html/main/${filename}`);
|
|
@@ -1945,16 +1934,7 @@ class ReaperHubApp {
|
|
|
1945
1934
|
console.warn("Direct fetch fallback:", err);
|
|
1946
1935
|
}
|
|
1947
1936
|
|
|
1948
|
-
|
|
1949
|
-
try {
|
|
1950
|
-
const fallbackRes = await fetch(`https://raw.githubusercontent.com/gn-math/html/main/${filename}`);
|
|
1951
|
-
const fallbackHtml = await fallbackRes.text();
|
|
1952
|
-
iframe.srcdoc = this.cleanAndOptimizeGameHTML(fallbackHtml);
|
|
1953
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE';
|
|
1954
|
-
} catch(e) {
|
|
1955
|
-
iframe.src = `https://fastly.jsdelivr.net/gh/gn-math/html@main/${filename}`;
|
|
1956
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE';
|
|
1957
|
-
}
|
|
1937
|
+
if (statusBadge) statusBadge.textContent = 'ONLINE (CDN)';
|
|
1958
1938
|
}
|
|
1959
1939
|
}
|
|
1960
1940
|
|
package/main/css/styles.css
CHANGED
|
@@ -937,12 +937,11 @@ body {
|
|
|
937
937
|
.game-player-modal {
|
|
938
938
|
display: none;
|
|
939
939
|
position: fixed;
|
|
940
|
-
|
|
941
|
-
left: 0;
|
|
940
|
+
inset: 0;
|
|
942
941
|
width: 100vw;
|
|
943
942
|
height: 100vh;
|
|
944
943
|
background: #000;
|
|
945
|
-
z-index:
|
|
944
|
+
z-index: 99999;
|
|
946
945
|
flex-direction: column;
|
|
947
946
|
}
|
|
948
947
|
|
package/main/index.html
CHANGED
|
@@ -228,7 +228,6 @@
|
|
|
228
228
|
|
|
229
229
|
<div class="filter-pills">
|
|
230
230
|
<button class="filter-btn active" data-cat="all">ALL</button>
|
|
231
|
-
<button class="filter-btn" data-cat="top" style="color: #00ffaa; border-color: rgba(0, 255, 170, 0.4); background: rgba(0, 255, 170, 0.1);">🔥 TOP PLAYS</button>
|
|
232
231
|
<button class="filter-btn" data-cat="featured">FEATURED</button>
|
|
233
232
|
<button class="filter-btn" data-cat="favorites">FAVORITES</button>
|
|
234
233
|
<button class="filter-btn" data-cat="fnf">FNF (50+)</button>
|
package/main/js/app.js
CHANGED
|
@@ -1636,22 +1636,15 @@ class ReaperHubApp {
|
|
|
1636
1636
|
return;
|
|
1637
1637
|
}
|
|
1638
1638
|
|
|
1639
|
-
const plays = this.gamePlays || JSON.parse(localStorage.getItem('reaper_game_plays') || '{}');
|
|
1640
|
-
|
|
1641
1639
|
grid.innerHTML = this.filteredGames.map(game => {
|
|
1642
1640
|
const isFav = this.favorites.map(String).includes(String(game.id));
|
|
1643
1641
|
const coverUrl = game.cover || `https://placehold.co/400x250/041022/ffffff?text=${encodeURIComponent(game.name)}`;
|
|
1644
|
-
const playCount = this.getGamePlayCount(game.id, plays);
|
|
1645
|
-
const playCountStr = this.formatPlayCount(playCount);
|
|
1646
1642
|
|
|
1647
1643
|
return `
|
|
1648
1644
|
<div class="game-card" onclick="app.launchGame('${game.id}')">
|
|
1649
1645
|
<div class="game-thumb-container">
|
|
1650
1646
|
<img class="game-thumb" src="${coverUrl}" alt="${game.name}" loading="lazy" onerror="this.onerror=null; this.src='https://placehold.co/400x250/041022/ffffff?text=${encodeURIComponent(game.name)}';" />
|
|
1651
1647
|
${game.featured ? '<span class="game-badge-featured">FEATURED</span>' : ''}
|
|
1652
|
-
<span class="game-badge-plays" style="position: absolute; bottom: 8px; left: 8px; background: rgba(2, 8, 20, 0.85); backdrop-filter: blur(4px); border: 1px solid rgba(0, 210, 255, 0.4); color: #00d2ff; padding: 2px 7px; border-radius: 12px; font-size: 0.68rem; font-weight: 800; font-family: var(--font-mono); display: flex; align-items: center; gap: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.6);">
|
|
1653
|
-
🔥 ${playCountStr} Plays
|
|
1654
|
-
</span>
|
|
1655
1648
|
</div>
|
|
1656
1649
|
<div class="game-info">
|
|
1657
1650
|
<div class="game-title" title="${game.name}">${game.name}</div>
|
|
@@ -1661,7 +1654,7 @@ class ReaperHubApp {
|
|
|
1661
1654
|
${isFav ? '★ SAVED' : '☆ FAV'}
|
|
1662
1655
|
</button>
|
|
1663
1656
|
</div>
|
|
1664
|
-
<button class="btn-card-play">PLAY GAME</button>
|
|
1657
|
+
<button class="btn-card-play" onclick="event.stopPropagation(); app.launchGame('${game.id}')">PLAY GAME</button>
|
|
1665
1658
|
</div>
|
|
1666
1659
|
</div>
|
|
1667
1660
|
`;
|
|
@@ -1900,11 +1893,6 @@ class ReaperHubApp {
|
|
|
1900
1893
|
this.currentGame = game;
|
|
1901
1894
|
this.recordRecentlyPlayed(game);
|
|
1902
1895
|
|
|
1903
|
-
// Increment play counter in Firebase & local cache
|
|
1904
|
-
if (window.reaperFirebase) {
|
|
1905
|
-
window.reaperFirebase.incrementGamePlays(game.id, game.name);
|
|
1906
|
-
}
|
|
1907
|
-
|
|
1908
1896
|
if (window.reaperSFX) window.reaperSFX.playLaunch();
|
|
1909
1897
|
if (window.reaperStarfield) {
|
|
1910
1898
|
window.reaperStarfield.setWarpSpeed(true);
|
|
@@ -1917,8 +1905,8 @@ class ReaperHubApp {
|
|
|
1917
1905
|
const statusBadge = document.getElementById('player-status-badge');
|
|
1918
1906
|
|
|
1919
1907
|
if (modal && iframe) {
|
|
1920
|
-
nameEl.textContent = game.name;
|
|
1921
|
-
if (statusBadge) statusBadge.textContent = '
|
|
1908
|
+
if (nameEl) nameEl.textContent = game.name;
|
|
1909
|
+
if (statusBadge) statusBadge.textContent = 'CONNECTING...';
|
|
1922
1910
|
|
|
1923
1911
|
modal.style.display = 'flex';
|
|
1924
1912
|
document.body.style.overflow = 'hidden';
|
|
@@ -1930,6 +1918,7 @@ class ReaperHubApp {
|
|
|
1930
1918
|
|
|
1931
1919
|
const filename = game.url.split('/').pop();
|
|
1932
1920
|
iframe.removeAttribute('srcdoc');
|
|
1921
|
+
iframe.src = `https://fastly.jsdelivr.net/gh/gn-math/html@main/${filename}`;
|
|
1933
1922
|
|
|
1934
1923
|
try {
|
|
1935
1924
|
const res = await fetch(`https://raw.githubusercontent.com/gn-math/html/main/${filename}`);
|
|
@@ -1945,16 +1934,7 @@ class ReaperHubApp {
|
|
|
1945
1934
|
console.warn("Direct fetch fallback:", err);
|
|
1946
1935
|
}
|
|
1947
1936
|
|
|
1948
|
-
|
|
1949
|
-
try {
|
|
1950
|
-
const fallbackRes = await fetch(`https://raw.githubusercontent.com/gn-math/html/main/${filename}`);
|
|
1951
|
-
const fallbackHtml = await fallbackRes.text();
|
|
1952
|
-
iframe.srcdoc = this.cleanAndOptimizeGameHTML(fallbackHtml);
|
|
1953
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE';
|
|
1954
|
-
} catch(e) {
|
|
1955
|
-
iframe.src = `https://fastly.jsdelivr.net/gh/gn-math/html@main/${filename}`;
|
|
1956
|
-
if (statusBadge) statusBadge.textContent = 'ONLINE';
|
|
1957
|
-
}
|
|
1937
|
+
if (statusBadge) statusBadge.textContent = 'ONLINE (CDN)';
|
|
1958
1938
|
}
|
|
1959
1939
|
}
|
|
1960
1940
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reaper-arcade-hub",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "Reaper Hub - 788 High-Speed HTML5 Games,
|
|
3
|
+
"version": "1.1.4",
|
|
4
|
+
"description": "Reaper Hub - 788 High-Speed HTML5 Games, Clean Game Player, Fixed Recently Played Launcher, Sleek Cyber Orbit Loader, AI Name Privacy Filter, Potato PC Performance Mode, Realtime Chat, Private DMs & Playtime Leaderboard",
|
|
5
5
|
"main": "main/index.html",
|
|
6
6
|
"unpkg": "main/index.html",
|
|
7
7
|
"jsdelivr": "main/index.html",
|
|
@@ -16,8 +16,7 @@
|
|
|
16
16
|
"arcade",
|
|
17
17
|
"performance",
|
|
18
18
|
"leaderboard",
|
|
19
|
-
"dms"
|
|
20
|
-
"topplays"
|
|
19
|
+
"dms"
|
|
21
20
|
],
|
|
22
21
|
"author": "asfsaf",
|
|
23
22
|
"license": "MIT",
|
package/verify/css/styles.css
CHANGED
|
@@ -937,12 +937,11 @@ body {
|
|
|
937
937
|
.game-player-modal {
|
|
938
938
|
display: none;
|
|
939
939
|
position: fixed;
|
|
940
|
-
|
|
941
|
-
left: 0;
|
|
940
|
+
inset: 0;
|
|
942
941
|
width: 100vw;
|
|
943
942
|
height: 100vh;
|
|
944
943
|
background: #000;
|
|
945
|
-
z-index:
|
|
944
|
+
z-index: 99999;
|
|
946
945
|
flex-direction: column;
|
|
947
946
|
}
|
|
948
947
|
|