114 lines
4.7 KiB
HTML
114 lines
4.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<title>PokéRogue</title>
|
|
<meta name="description" content="A Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, and reaching Pokémon stats you never thought possible." />
|
|
<meta name="theme-color" content="#da3838" />
|
|
<meta property="og:title" content="PokéRogue" />
|
|
<meta property="og:type" content="website" />
|
|
<meta property="og:description" content="A Pokémon fangame heavily inspired by the roguelite genre. Battle endlessly while gathering stacking items, exploring many different biomes, and reaching Pokémon stats you never thought possible." />
|
|
<meta property="og:image" content="https://pokerogue.net/logo512.png" />
|
|
<link rel="apple-touch-icon" href="./logo512.png" />
|
|
<link rel="shortcut icon" type="image/png" href="./logo512.png" />
|
|
<link rel="canonical" href="https://pokerogue.net" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
|
|
<style type="text/css">
|
|
@font-face {
|
|
font-family: 'emerald';
|
|
src: url('./fonts/pokemon-emerald-pro.ttf') format('truetype');
|
|
}
|
|
@font-face {
|
|
font-family: 'vonwaon';
|
|
src: url('./fonts/VonwaonBitmap-16px.ttf') format('truetype');
|
|
size-adjust: 66.7%;
|
|
}
|
|
|
|
@font-face {
|
|
font-family: 'pkmnems';
|
|
src: url('./fonts/pkmnems.ttf') format('truetype');
|
|
}
|
|
</style>
|
|
<link rel="stylesheet" type="text/css" href="./index.css" />
|
|
<link rel="manifest" href="./manifest.webmanifest">
|
|
<script>
|
|
if ("serviceWorker" in navigator) {
|
|
window.addEventListener("load", function () {
|
|
navigator.serviceWorker.register("./service-worker.js").then(
|
|
function (registration) {
|
|
console.log("ServiceWorker registration successful");
|
|
},
|
|
function (err) {
|
|
console.log("ServiceWorker registration failed: ", err);
|
|
},
|
|
);
|
|
});
|
|
}
|
|
|
|
window.addEventListener('beforeinstallprompt', e => {
|
|
// Prevent invasive install prompt (users are still able to install as an app)
|
|
e.preventDefault();
|
|
});
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div id="app"></div>
|
|
<div id="touchControls">
|
|
<div id="dpad" class="unselectable">
|
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72">
|
|
<path id="dpadUp" data-key="UP" d="M48,5.8C48,2.5,45.4,0,42,0H29.9C26.6,0,24,2.4,24,5.8V24h24V5.8z" />
|
|
<path id="dpadRight" data-key="RIGHT" d="M66.2,24H48v24h18.2c3.3,0,5.8-2.7,5.8-6V29.9C72,26.5,69.5,24,66.2,24z" />
|
|
<path id="dpadDown" data-key="DOWN" d="M24,66.3c0,3.3,2.6,5.7,5.9,5.7H42c3.3,0,6-2.4,6-5.7V48H24V66.3z" />
|
|
<path id="dpadLeft" data-key="LEFT" d="M5.7,24C2.4,24,0,26.5,0,29.9V42c0,3.3,2.3,6,5.7,6H24V24H5.7z" />
|
|
<rect id="dpadCenter" x="24" y="24" width="24" height="24" />
|
|
</svg>
|
|
</div>
|
|
|
|
<div id="apad" class="unselectable">
|
|
<div id="apadAction" class="apadCircBtn apadBtn" data-key="ACTION">
|
|
<text id="apadLabelAction" class="apadLabel">A</text>
|
|
</div>
|
|
<div id="apadCancel" class="apadCircBtn apadBtn" data-key="CANCEL">
|
|
<text id="apadLabelCancel" class="apadLabel">B</text>
|
|
</div>
|
|
<div class="apadBtnContainer apadRectBtnContainer">
|
|
<div id="apadCycleShiny" class="apadSqBtn apadBtn" data-key="CYCLE_SHINY">
|
|
<text class="apadLabel apadLabelSmall">R</text>
|
|
</div>
|
|
<div id="apadCycleVariant" class="apadSqBtn apadBtn" data-key="V">
|
|
<text class="apadLabel apadLabelSmall">V</text>
|
|
</div>
|
|
<div id="apadStats" class="apadRectBtn apadBtn apadBattle" data-key="STATS">
|
|
<text class="apadLabel apadLabelSmall">C</text>
|
|
</div>
|
|
<div id="apadMenu" class="apadRectBtn apadBtn" data-key="MENU">
|
|
<text class="apadLabel apadLabelSmall">Menu</text>
|
|
</div>
|
|
</div>
|
|
<div class="apadBtnContainer apadSqBtnContainer">
|
|
<div id="apadCycleForm" class="apadSqBtn apadBtn" data-key="CYCLE_FORM">
|
|
<text class="apadLabel apadLabelSmall">F</text>
|
|
</div>
|
|
<div id="apadCycleGender" class="apadSqBtn apadBtn" data-key="CYCLE_GENDER">
|
|
<text class="apadLabel apadLabelSmall">G</text>
|
|
</div>
|
|
<div id="apadCycleAbility" class="apadSqBtn apadBtn" data-key="CYCLE_ABILITY">
|
|
<text class="apadLabel apadLabelSmall">E</text>
|
|
</div>
|
|
<div id="apadCycleNature" class="apadSqBtn apadBtn" data-key="CYCLE_NATURE">
|
|
<text class="apadLabel apadLabelSmall">N</text>
|
|
</div>
|
|
<div id="apadInfo" class="apadRectBtn apadBtn apadBattle" data-key="V">
|
|
<text class="apadLabel apadLabelSmall">V</text>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script type="module" src="./src/main.ts"></script>
|
|
<script src="./src/touch-controls.ts" type="module"></script>
|
|
<script src="./src/debug.js" type="module"></script>
|
|
</body>
|
|
|
|
</html> |