150 lines
6.4 KiB
HTML
150 lines
6.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<title>PokéRogue</title>
|
|
<meta name="title" content="PokéRogue" />
|
|
<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 name="keywords" content="pokerogue, pokemon, roguelite" />
|
|
<meta name="news_keywords" content="pokerogue, pokemon, roguelite" />
|
|
<meta name="distribution" content="Global">
|
|
<meta http-equiv="audience" content="General">
|
|
<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" />
|
|
<meta property="og:url" content="https://pokerogue.net" />
|
|
<meta property="og:site_name" content="PokéRogue" />
|
|
<meta property="twitter:title" content="PokéRogue" />
|
|
<meta property="twitter: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="twitter:image" content="https://pokerogue.net/logo512.png" />
|
|
<meta property="twitter:card" content="summary" />
|
|
<meta property="twitter:url" content="https://pokerogue.net" />
|
|
<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: '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 class="left">
|
|
<div id="control-group-dpad" class="control-group control-group-dpad">
|
|
<div id="dpad" data-control-key="DPAD">
|
|
<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>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div id="control-group-action" class="control-group">
|
|
<div id="apadAction" class="apad-button apad-circle" data-key="ACTION">
|
|
<span class="apad-label">A</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="control-group-cancel" class="control-group">
|
|
<div id="apadCancel" class="apad-button apad-circle" data-key="CANCEL">
|
|
<span class="apad-label">B</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="control-group-extra-1" class="control-group control-group-extra">
|
|
<!-- buttons to navigate settings tabs -->
|
|
<div id="apadPreviousTab" class="apad-button apad-square apad-small" data-key="CYCLE_FORM">
|
|
<span class="apad-label">F</span>
|
|
</div>
|
|
<div id="apadNextTab" class="apad-button apad-square apad-small" data-key="CYCLE_SHINY">
|
|
<span class="apad-label">R</span>
|
|
</div>
|
|
<!-- buttons to open filter menu in starter select -->
|
|
<div id="apadOpenFilters" class="apad-button apad-rectangle apad-small" data-key="STATS">
|
|
<span class="apad-label">C</span>
|
|
</div>
|
|
<!-- main menu button -->
|
|
<div id="apadMenu" class="apad-button apad-rectangle apad-small" data-key="MENU">
|
|
<span class="apad-label">Menu</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="control-group-extra-2" class="control-group control-group-extra">
|
|
<!-- buttons to cycle through pokemon characteristics in starter select -->
|
|
<div id="apadCycleForm" class="apad-button apad-square apad-small" data-key="CYCLE_FORM">
|
|
<span class="apad-label">F</span>
|
|
</div>
|
|
<div id="apadCycleGender" class="apad-button apad-square apad-small" data-key="CYCLE_GENDER">
|
|
<span class="apad-label">G</span>
|
|
</div>
|
|
<div id="apadCycleShiny" class="apad-button apad-square apad-small" data-key="CYCLE_SHINY">
|
|
<span class="apad-label">R</span>
|
|
</div>
|
|
<div id="apadCycleAbility" class="apad-button apad-square apad-small" data-key="CYCLE_ABILITY">
|
|
<span class="apad-label">E</span>
|
|
</div>
|
|
<div id="apadCycleNature" class="apad-button apad-square apad-small" data-key="CYCLE_NATURE">
|
|
<span class="apad-label">N</span>
|
|
</div>
|
|
<div id="apadCycleVariant" class="apad-button apad-square apad-small" data-key="V">
|
|
<span class="apad-label">V</span>
|
|
</div>
|
|
<!-- buttons to display battle-specific information -->
|
|
<div id="apadInfo" class="apad-button apad-rectangle apad-small" data-key="V">
|
|
<span class="apad-label">V</span>
|
|
</div>
|
|
<div id="apadStats" class="apad-button apad-rectangle apad-small" data-key="STATS">
|
|
<span class="apad-label">C</span>
|
|
</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> |