Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions index.php
Original file line number Diff line number Diff line change
Expand Up @@ -2184,6 +2184,7 @@ class="joystickBase" />
</div>
<div id="layoutEnd"></div>
<div>
<div id="gameEndDate" class="notice" style="display: none;"></div>
<?php $gameIdsWithDisclaimer = [ "flow", "someday", "deepdreams", "prayers", "amillusion", "unevendream", "braingirl",
"muma", "genie", "mikan", "ultraviolet", "sheawaits", "oversomnia", "tsushin", "nostalgic", "oneshot", "if", "unaccomplished", "fog" ]; ?>
<?php if ($gameId == "2kki"): ?>
Expand Down
3 changes: 2 additions & 1 deletion lang/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Mit der Erlaubnis der Entwickler gehostet",
"originalCreation": "Originales Projekt der YNOproject Community"
"originalCreation": "Originales Projekt der YNOproject Community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/eo.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Aprovación pendiente del desarrollador/editor",
"hostedWithPermission": "Alojado con la autorización de su(s) desarrollador(es)",
"originalCreation": "Creación original por la comunidad de YNOproject"
"originalCreation": "Creación original por la comunidad de YNOproject",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "En attente d'approuvement du développeur/éditeur",
"hostedWithPermission": "Hébergé avec la permission du/des développeur(s)",
"originalCreation": "Création originale de la communauté YNOproject"
"originalCreation": "Création originale de la communauté YNOproject",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Dihost dengan izin dari para pembuat Yume 2kki",
"originalCreation": "Kreasi orisinal dari komunitas YNOproject"
"originalCreation": "Kreasi orisinal dari komunitas YNOproject",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "開発者/配信元の承認待ち",
"hostedWithPermission": "開発者の許可を得て掲載しています",
"originalCreation": "YNOprojectのコミュニティによるオリジナルの作品"
"originalCreation": "YNOprojectのコミュニティによるオリジナルの作品",
"gameEndDate": "この作品はYNOprojectで{{date}}までプレイ可能です"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "개발자/배급사의 승인 대기 중에 있습니다.",
"hostedWithPermission": "개발진들의 허가를 받아 운영하고 있습니다.",
"originalCreation": "YNOproject 커뮤니티에 의해 개발되었습니다."
"originalCreation": "YNOproject 커뮤니티에 의해 개발되었습니다.",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/pt.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hospedados com a permissão do(s) desenvolvedor(es)",
"originalCreation": "Criação original pela comunidade do YNOproject"
"originalCreation": "Criação original pela comunidade do YNOproject",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/ro.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Se așteaptă aprobarea de la dezvoltator/editor",
"hostedWithPermission": "Găzduit cu permisiunea dezvoltatorului/ilor",
"originalCreation": "Creație originală de comunitatea YNOProject"
"originalCreation": "Creație originală de comunitatea YNOProject",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Yapımcı(lar) tarafından izin alınarak kullanılmıştır",
"originalCreation": "YNOproject komünitesi tarafından orijinal yapımdır"
"originalCreation": "YNOproject komünitesi tarafından orijinal yapımdır",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/uk.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Очікується схвалення від розробника / видавця",
"hostedWithPermission": "Розміщено з дозволу розробників",
"originalCreation": "Власна розробка спільноти YNOproject"
"originalCreation": "Власна розробка спільноти YNOproject",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
3 changes: 2 additions & 1 deletion lang/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,8 @@
"disclaimer": {
"pendingApproval": "Pending approval from developer/publisher",
"hostedWithPermission": "Hosted with permission from the developer(s)",
"originalCreation": "Original creation by the YNOproject community"
"originalCreation": "Original creation by the YNOproject community",
"gameEndDate": "Available to play on YNOproject until {{date}}"
},
"modal": {
"common": {
Expand Down
61 changes: 61 additions & 0 deletions system.js
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,10 @@ const gameLogoBlendModeOverrides = {
'unevendream': 'color'
};

const gameEndDates = {
'unconscious': Date.UTC(2025, 11, 28, 5, 0)
};

const contrastRatioThreshold = 2.02;

function setSystemName(name) {
Expand Down Expand Up @@ -1142,3 +1146,60 @@ function hueToRGBA(h, a) {
}
return getColorRgba([Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), a]);
}

function displayGameEndDate() {
try {
const endDateUTC = gameEndDates[gameId];
if (!endDateUTC) return;

const endDateElement = document.getElementById('gameEndDate');
if (!endDateElement) return;
const now = new Date();

if (now.getTime() >= endDateUTC) {
endDateElement.remove();
return;
}
const localDate = new Date(endDateUTC);
const year = localDate.getFullYear();
const month = String(localDate.getMonth() + 1).padStart(2, '0');
const date = String(localDate.getDate()).padStart(2, '0');
const hours = String(localDate.getHours()).padStart(2, '0');
const minutes = String(localDate.getMinutes()).padStart(2, '0');

const locale = i18next.language === 'ja' ? 'ja-JP' : 'en-US';
const weekday = localDate.toLocaleDateString(locale, { weekday: 'short' });

const dateStr = `${year}/${month}/${date} (${weekday}) ${hours}:${minutes}`;
const translatedText = i18next.t('disclaimer.gameEndDate', { date: dateStr });

endDateElement.innerHTML = translatedText;
endDateElement.style.display = 'block';
} catch (error) {
console.error('Error displaying game end date:', error);
}
}

if (gameEndDates[gameId]) {
if (typeof i18next !== 'undefined' && i18next.isInitialized) {
displayGameEndDate();
} else {
document.addEventListener('DOMContentLoaded', function() {
let attempts = 0;
const maxAttempts = 50;
const checkI18next = setInterval(function() {
attempts++;
if (typeof i18next !== 'undefined' && i18next.isInitialized) {
clearInterval(checkI18next);
displayGameEndDate();
} else if (attempts >= maxAttempts) {
clearInterval(checkI18next);
}
}, 100);
});
}

if (typeof i18next !== 'undefined') {
i18next.on('languageChanged', displayGameEndDate);
}
}