mirror of
				https://github.com/Investigamer/cardconjurer.git
				synced 2025-11-03 23:55:01 -06:00 
			
		
		
		
	
		
			
				
	
	
		
			245 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			245 lines
		
	
	
		
			7.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html5>
 | 
						|
<html>
 | 
						|
<head>
 | 
						|
	<title>Life Counter</title>
 | 
						|
	<!-- Favicon craziness! -->
 | 
						|
	<link rel="apple-touch-icon" sizes="180x180" href="favicons/apple-touch-icon.png">
 | 
						|
	<link rel="icon" type="image/png" sizes="32x32" href="favicons/favicon-32x32.png">
 | 
						|
	<link rel="icon" type="image/png" sizes="16x16" href="favicons/favicon-16x16.png">
 | 
						|
	<link rel="manifest" href="favicons/site.webmanifest">
 | 
						|
	<link rel="mask-icon" href="favicons/safari-pinned-tab.svg" color="#64ca2f">
 | 
						|
	<link rel="shortcut icon" type="image/x-icon" href="favicons/favicon.ico">
 | 
						|
	<meta name="msapplication-TileColor" content="#00a300">
 | 
						|
	<meta name="msapplication-config" content="favicons/browserconfig.xml">
 | 
						|
	<meta name="theme-color" content="#64ca2f">
 | 
						|
	<!-- Other things -->
 | 
						|
	<meta charset="UTF-8">
 | 
						|
	<meta name="apple-mobile-web-app-title" content="LifeCounter">
 | 
						|
	<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1, maximum-scale=1, user-scalable=no">
 | 
						|
	<meta name="apple-mobile-web-app-capable" content="yes">
 | 
						|
	<meta name="mobile-web-app-capable" content="yes">
 | 
						|
	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
 | 
						|
	<!-- Here's the stuff that does things? -->
 | 
						|
	<script type='application/ld+json'>
 | 
						|
	{
 | 
						|
		"@context": "http://schema.org/",
 | 
						|
		"@type": "WebPage",
 | 
						|
		"creator": "Kyle Burton",
 | 
						|
		"dateCreated": "July 2018",
 | 
						|
		"inLanguage": {
 | 
						|
			"@type": "Language",
 | 
						|
			"name": "English"
 | 
						|
		},
 | 
						|
		"keywords": [
 | 
						|
			"MTG",
 | 
						|
			"Magic",
 | 
						|
			"card",
 | 
						|
			"custom",
 | 
						|
			"creator"
 | 
						|
		],
 | 
						|
		"typicalAgeRange": "All ages",
 | 
						|
		"description": "Card Conjurer: A free online tool that creates custom Magic: The Gathering Cards. Fast, easy, and offers a wide variety of card frames and other customizations. Planar cards, Ixalan maps, Planeswalkers, and more!",
 | 
						|
		"image": "http://cardconjurer.com/data/site/sampleCards/sample8.png",
 | 
						|
		"mainEntityOfPage": "cardconjurer.com",
 | 
						|
		"name": "Life Counter"
 | 
						|
	}
 | 
						|
	</script>
 | 
						|
</head>
 | 
						|
<body autocomplete="off">
 | 
						|
	<div id="settings" class="settings">
 | 
						|
		Number of Players:<br>
 | 
						|
		<input id="inputPlayerCount" class="input" type="number" min="2" value="4" max="16"><br>
 | 
						|
		Starting Life Total:<br>
 | 
						|
		<input id="inputStartingLife" class="input" type="number" min="0" value="40"><br>
 | 
						|
		<button id="buttonStartGame" class="input" onclick="startGame()">Game On!</button><br><br>
 | 
						|
		For an optimal experience, save this website to your home screen and open it from there.<br><a href="https://cardconjurer.com">Check out my other website, Card Conjurer, to easily create custom Magic cards!</a>
 | 
						|
	</div>
 | 
						|
	<div onclick="fullscreen()" class="hidden" id="return">CLICK ANYWHERE TO RETURN TO FULLSCREEN</div>
 | 
						|
	<div id="gridShell">
 | 
						|
		<img id="menuButton" class="menuButton" src="data/life/menuButton.png" onclick="document.getElementById('menu').classList.remove('hidden')">
 | 
						|
		<div id="menu" class="menu hidden">
 | 
						|
			<img class="menuExitButton" src="data/life/menuExitButton.png" onclick="document.getElementById('menu').classList.add('hidden')">
 | 
						|
			<div class="menuInterior">
 | 
						|
				<div class="menuOption" onclick="resetLife()">Reset Life Totals</div><br>
 | 
						|
				<div class="menuOption" onclick="location.reload()">Change Player Count</div><br>
 | 
						|
				<div class="menuOption">
 | 
						|
					Change Background:<br>
 | 
						|
					<select id="inputPlayer" onchange="updateColorSelector()"></select><br>
 | 
						|
					Color:<br>
 | 
						|
					<input type="color" class="colorInput" value="#222222" id="inputPlayerColor" onchange="updateBackgroundColor(this.value)"><br>
 | 
						|
					<button onclick="updateBackgroundColor('#222222')">Default</button><br>
 | 
						|
					Image:<br>
 | 
						|
					<input type="file" accept="image/*" onchange="loadImage(event, playerList[parseInt(document.getElementById('inputPlayer').value) - 1].image)" placeholder="Via File Upload"><br>
 | 
						|
					<input type="text" placeholder="Via URL" onchange="playerList[parseInt(document.getElementById('inputPlayer').value) - 1].image.src = this.value"><br>
 | 
						|
					<input id="inputCardArtName" onchange="inputCardArtName(this.value)" type="text" placeholder="Via Card Name"><br>
 | 
						|
					<input id="inputCardArtNameNumber" onchange="inputCardArtNameNumber(this.value)" type="number" value="1" min="1" max="1"><br><br>
 | 
						|
					Text Color:<br>
 | 
						|
					<input type="color" class="colorInput" value="#ffffff" id="inputTextColor" onchange="updateTextColor(this.value)"><br>
 | 
						|
				</div><br>
 | 
						|
				<div class="menuOption">
 | 
						|
					RNG<br>
 | 
						|
					Min <input class="smallInput" type="number" id="inputRNGMin" min="0" value="1"><br>
 | 
						|
					Max <input class="smallInput" type="number" id="inputRNGMax" min="0" value="20"><br>
 | 
						|
					<div onclick="rollRNG()" class="rng"><div class="rngNumber" id="rngOutput"><div style="font-size: 30pt; margin-top: 0.75em;">Tap Me<br>To Roll</div></div></div>
 | 
						|
				</div>
 | 
						|
			</div>
 | 
						|
		</div>
 | 
						|
		<div id="mainGrid" class="mainGrid"></div>
 | 
						|
	</div>
 | 
						|
</body>
 | 
						|
<style>
 | 
						|
	@font-face {
 | 
						|
		font-family: belerenbsc;
 | 
						|
		src: url("data/fonts/beleren-bsc.ttf");
 | 
						|
	}
 | 
						|
	.settings {
 | 
						|
		margin: 10pt;
 | 
						|
		overflow-y: auto;
 | 
						|
		touch-action: pan-y;
 | 
						|
		-webkit-overflow-scrolling: touch;
 | 
						|
		max-height: 100%;
 | 
						|
	}
 | 
						|
	* {
 | 
						|
		font-family: belerenbsc;
 | 
						|
		font-size: 24pt;
 | 
						|
		margin: 0px;
 | 
						|
	}
 | 
						|
	image, div, canvas {
 | 
						|
		user-select: none;
 | 
						|
		-webkit-user-select: none;
 | 
						|
		-moz-user-select: none;
 | 
						|
		-ms-user-select: none;
 | 
						|
	}
 | 
						|
	html, body {
 | 
						|
		position: fixed;
 | 
						|
		top: 0px;
 | 
						|
		left: 0px;
 | 
						|
		width: 100%;
 | 
						|
		height: 100%;
 | 
						|
		overflow: hidden;
 | 
						|
	}
 | 
						|
	body {
 | 
						|
		background-color: #333;
 | 
						|
		color: white;
 | 
						|
	}
 | 
						|
	body, #gridShell, .mainGrid, canvas {
 | 
						|
		touch-action: manipulation !important;
 | 
						|
	}
 | 
						|
	.mainGrid {
 | 
						|
		display: grid;
 | 
						|
		grid-template-columns: auto auto;
 | 
						|
		grid-auto-rows: 1fr;
 | 
						|
		width: 100%;
 | 
						|
		height: 100%;
 | 
						|
		align-items: center;
 | 
						|
	}
 | 
						|
	#gridShell {
 | 
						|
		display: none;
 | 
						|
	}
 | 
						|
    #gridShell:fullscreen {
 | 
						|
		display: inline-block;
 | 
						|
	}
 | 
						|
    #gridShell:-webkit-full-screen {
 | 
						|
        display: inline-block;
 | 
						|
    }
 | 
						|
	#gridShell.fullscreenUnavailable {
 | 
						|
		display: inline-block;
 | 
						|
	}
 | 
						|
	.playerBox {
 | 
						|
		border: 1px solid white;
 | 
						|
		width: auto;
 | 
						|
		height: auto;
 | 
						|
	}
 | 
						|
	.widePlayerBox {
 | 
						|
		grid-column: 1 / span 2;
 | 
						|
	}
 | 
						|
	#return {
 | 
						|
		width: 100%;
 | 
						|
		height: 100%;
 | 
						|
		color: white;
 | 
						|
		font-size: 3vw;
 | 
						|
	}
 | 
						|
	.menuButton {
 | 
						|
		position: fixed;
 | 
						|
		top: calc(50% - 7.5vw);
 | 
						|
		left: calc(50% - 7.5vw);
 | 
						|
		width: 15vw;
 | 
						|
		height: 15vw;
 | 
						|
		border: 2px solid white;
 | 
						|
	}
 | 
						|
	.menuExitButton {
 | 
						|
		position: fixed;
 | 
						|
		top: 5pt;
 | 
						|
		right: 5pt;
 | 
						|
		width: 50pt;
 | 
						|
		height: 50pt;
 | 
						|
	}
 | 
						|
	.menu {
 | 
						|
		position: fixed;
 | 
						|
		top: 0;
 | 
						|
		left: 0;
 | 
						|
		width: 100%;
 | 
						|
		height: 100%;
 | 
						|
		background-color: #000a;
 | 
						|
		text-align: center;
 | 
						|
		display: table;
 | 
						|
	}
 | 
						|
	.menuInterior {
 | 
						|
		margin: 60pt 0px 0px 0px;
 | 
						|
		padding: 10pt;
 | 
						|
		overflow-y: auto;
 | 
						|
		max-width: calc(100vw - 23pt);
 | 
						|
		height: calc(100% - 60pt);
 | 
						|
		border: 2px solid white;
 | 
						|
		touch-action: pan-y;
 | 
						|
		-webkit-overflow-scrolling: touch;
 | 
						|
	}
 | 
						|
	.menuOption {
 | 
						|
		font-size: 20pt;
 | 
						|
		background-color: #333;
 | 
						|
		border-radius: 1em;
 | 
						|
		display: inline-block;
 | 
						|
		margin-bottom: 10pt;
 | 
						|
		padding: 8pt;
 | 
						|
		max-width: calc(100% - 16pt);
 | 
						|
		overflow-x: hidden;
 | 
						|
	}
 | 
						|
	.colorInput {
 | 
						|
		border: 0px;
 | 
						|
		padding: 0px;
 | 
						|
		width: 4.5em;
 | 
						|
		height: 2em;
 | 
						|
	}
 | 
						|
	.hidden {
 | 
						|
		display: none;
 | 
						|
	}
 | 
						|
	.permaHidden {
 | 
						|
		display: none;
 | 
						|
	}
 | 
						|
	input {
 | 
						|
		width: 7.5em;
 | 
						|
	}
 | 
						|
	.smallInput {
 | 
						|
		width: 3em;
 | 
						|
	}
 | 
						|
	.rng {
 | 
						|
		margin-top: 6pt;
 | 
						|
		border: 1px solid white;
 | 
						|
		height: 5em;
 | 
						|
		min-width: 5em;
 | 
						|
		border-radius: 1em;
 | 
						|
		background-color: #222;
 | 
						|
	}
 | 
						|
	.rngNumber {
 | 
						|
		font-size: 4em;
 | 
						|
	}
 | 
						|
	a {
 | 
						|
		color: white;
 | 
						|
	}
 | 
						|
	a:hover {
 | 
						|
		color: grey;
 | 
						|
	}
 | 
						|
</style>
 | 
						|
<script src="data/life/life.js"></script>
 | 
						|
<html>
 |