1112 lines
36 KiB
HTML
1112 lines
36 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<title>Araldia</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
<link href="https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap" rel="stylesheet">
|
|
<link href="https://fonts.googleapis.com/css2?family=New+Tegomin&display=swap" rel="stylesheet">
|
|
<link href="https://unpkg.com/nes.css@2.3.0/css/nes.min.css" rel="stylesheet" />
|
|
<link rel="stylesheet" type="text/css" href="https://csshake.surge.sh/csshake.min.css">
|
|
|
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
|
|
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
|
|
<style>
|
|
#levels {
|
|
font-size: 27px;
|
|
}
|
|
|
|
footer {
|
|
position: fixed;
|
|
left: 0;
|
|
bottom: 0;
|
|
width: 100%;
|
|
text-align: center;
|
|
}
|
|
|
|
header {
|
|
position: fixed;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
text-align: center;
|
|
}
|
|
|
|
body {
|
|
background-color: black;
|
|
/*cursor: url('data:image/x-icon;base64,AAACAAEAICAAAAoAAQCoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP94Ek3/AAAA/wAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3gSTf94Ek3/AAAA/wAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/eBJN/6Yfbv94Ek3/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP94Ek3/ph9u/6Yfbv94Ek3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3gSTf+mH27/xDGH/6Yfbv94Ek3/eBJN/3gSTf94Ek3/eBJN/3gSTf94Ek3/eBJN/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/eBJN/6Yfbv/EMYf/xDGH/6Yfbv+mH27/ph9u/6Yfbv+mH27/ph9u/3gSTf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP94Ek3/ph9u/8Qxh//HRJD/xDGH/8Qxh//EMYf/xDGH/6Yfbv94Ek3/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3gSTf+mH27/xDGH/8dEkP/WZaf/x0SQ/8Qxh/+mH27/eBJN/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/eBJN/6Yfbv/EMYf/x0SQ/8dEkP/EMYf/ph9u/3gSTf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP94Ek3/ph9u/8Qxh//HRJD/xDGH/6Yfbv94Ek3/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3gSTf+mH27/xDGH/8Qxh/+mH27/eBJN/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/eBJN/6Yfbv/EMYf/ph9u/3gSTf8AAAD/AAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP94Ek3/ph9u/6Yfbv94Ek3/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/3gSTf+mH27/eBJN/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/eBJN/3gSTf8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP94Ek3/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////////////////////////////////////////////v////5////+P////h////4P///+AAP//gAH//4AD//+AB///gA///4Af//+AP///gH///4D///+B////g////4f///+P////n////7/////////////8='), auto;
|
|
*/
|
|
-webkit-touch-callout: none; /* iOS Safari */
|
|
-webkit-user-select: none; /* Safari */
|
|
-khtml-user-select: none; /* Konqueror HTML */
|
|
-moz-user-select: none; /* Old versions of Firefox */
|
|
-ms-user-select: none; /* Internet Explorer/Edge */
|
|
user-select: none; /* Non-prefixed version, currently
|
|
supported by Chrome, Edge, Opera and Firefox */
|
|
}
|
|
|
|
*{
|
|
background-color: black;
|
|
color: white;
|
|
/*
|
|
font-family: 'New Tegomin', serif;
|
|
*/
|
|
font-family: 'Press Start 2P', cursive;
|
|
}
|
|
|
|
button {
|
|
background-color: white;
|
|
color: black;
|
|
border: 2px solid #5555;
|
|
}
|
|
|
|
button:hover {
|
|
background-color: #5555;
|
|
color: white;
|
|
}
|
|
|
|
@keyframes slideleft {
|
|
from {
|
|
background-position: 0%;
|
|
}
|
|
|
|
to {
|
|
background-position: 90000%;
|
|
}
|
|
}
|
|
|
|
@-webkit-keyframes slideleft {
|
|
from {
|
|
background-position: 0%;
|
|
}
|
|
|
|
to {
|
|
background-position: 90000%;
|
|
}
|
|
}
|
|
|
|
.mtW {
|
|
width: 500px;
|
|
}
|
|
|
|
#masthead {
|
|
background-image: url('https://wallpx.com/image/2020/11/synthwave-cityscape-neon-8-bit.jpg');
|
|
background-repeat: repeat-x;
|
|
animation: slideleft 6000s infinite linear;
|
|
-webkit-animation: slideleft 6000s infinite linear;
|
|
width: 900px;
|
|
height: 500px;
|
|
}
|
|
|
|
|
|
|
|
.mc {
|
|
width: 18em;
|
|
height: 8em;
|
|
margin: 1em auto;
|
|
overflow: hidden;
|
|
background: white;
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.marquee {
|
|
top: 6em;
|
|
position: relative;
|
|
box-sizing: border-box;
|
|
animation: marquee 15s linear infinite;
|
|
}
|
|
#error{
|
|
position:absolute;
|
|
top:100px;
|
|
left:90px;
|
|
width:800px;
|
|
height:500px;
|
|
background-color:red;
|
|
display:none;
|
|
z-index:99;
|
|
}
|
|
#beginSect {
|
|
display: none;
|
|
}
|
|
#tooTpk {
|
|
position: absolute;
|
|
z-index: 9;
|
|
display:none;
|
|
}
|
|
#splash{
|
|
position: absolute;
|
|
top:0;
|
|
bottom:0;
|
|
z-index: 99999;
|
|
height:100vh;
|
|
width:100vw;
|
|
}
|
|
#splashImg{
|
|
display:none;
|
|
}
|
|
</style>
|
|
<body>
|
|
<div id="splash">
|
|
<center>
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<h1 id="clicktobeg">Clicca per iniziare</h1>
|
|
<img src="mdglogo.png" id="splashImg" />
|
|
</center>
|
|
</div>
|
|
<div class="nes-container is-rounded is-dark" id="tooTpk" >
|
|
<p id="tooltT">Good morning. Thou hast had a good night's sleep, I hope.</p>
|
|
</div>
|
|
<div class="nes-container with-title is-centered" id="error">
|
|
<p class="title" style="background-color: black;">Errore!</p>
|
|
<p id="errorData"></p>
|
|
<button type="button" class="nes-btn " onclick="error();">Chiudi</button><br />
|
|
<i>Controlla la console per più informazioni</i>
|
|
</div>
|
|
<script>
|
|
function error(){
|
|
$(this).parent().hide();
|
|
if(deadlyError){
|
|
location.reload();
|
|
}
|
|
}
|
|
</script>
|
|
<header>
|
|
<h1>Araldia</h1>
|
|
<i>Presidente, abbiamo bisogno del suo aiuto!</i>
|
|
<center>
|
|
<div id="levels"></div>
|
|
</center>
|
|
</header>
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<br />
|
|
<div id="content">
|
|
<center>
|
|
<div id="mainMenu">
|
|
<div id="masthead"></div>
|
|
<br />
|
|
<input type="text" placeholder="Nome" id="username" class="nes-input is-dark" style="width:300px"><br />
|
|
<button id="begin" class="nes-btn">All'ufficio</button>
|
|
</div>
|
|
<div id="beginSect">
|
|
<br />
|
|
<marquee width="60%" direction="up" height="400px;" scrolldelay="400" id="mq">
|
|
</marquee>
|
|
</div>
|
|
<div id="gameField">
|
|
|
|
</div>
|
|
</center>
|
|
</div>
|
|
<footer>
|
|
<h5><span style="display:inline-block;transform: rotate(180deg);">©</span> 2021, Mattia Mascarello, Diego
|
|
Scanavino, Giacomo Roggero</h5>
|
|
</footer>
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|
|
<script>
|
|
var gameVars = {};
|
|
|
|
var audio = null;
|
|
|
|
var bool = false;
|
|
addEventListener("click", function () {
|
|
$("#clicktobeg").hide();
|
|
document.getElementsByTagName("body")[0].requestFullscreen();
|
|
if (bool) return false;
|
|
if (!bool) bool = true;
|
|
$("#splashImg").show();
|
|
initSplash(0,function ok() {
|
|
audio = new Audio('music/beepintro.mp3');
|
|
audio.play();
|
|
setTimeout(function () {
|
|
$("#splash").fadeOut();
|
|
audio.src= 'music/Rolemusic - The Black Kitty.mp3';
|
|
audio.loop=true;
|
|
audio.play();
|
|
}, 3000);
|
|
});
|
|
|
|
});
|
|
function deAudio(time = 10) {
|
|
try {
|
|
console.log(audio.volume);
|
|
if (audio.volume > 0) {
|
|
audio.volume -= 0.01;
|
|
setTimeout(deAudio, 10 * time);
|
|
}
|
|
|
|
} catch (error) {
|
|
audio.volume = 0;
|
|
}
|
|
}
|
|
var text, parser, xmlDoc;
|
|
text = `<?xml version="1.0" encoding="utf-8"?>
|
|
<Araldia>
|
|
<values>
|
|
<value>
|
|
<name>health</name>
|
|
<title>Salute</title>
|
|
<description>Il livello di salute della popolazione. Un indicatore importante</description>
|
|
<min>0</min>
|
|
<max>100</max>
|
|
<default>100</default>
|
|
<colorZones>
|
|
<colorZone>
|
|
<min>0</min>
|
|
<max>30</max>
|
|
<color>red</color>
|
|
<description>Beh, che dire...</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>31</min>
|
|
<max>50</max>
|
|
<color>orange</color>
|
|
<description>Dai...</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>51</min>
|
|
<max>60</max>
|
|
<color>yellow</color>
|
|
<description>Non male</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>61</min>
|
|
<max>100</max>
|
|
<color>green</color>
|
|
<description>Ok</description>
|
|
</colorZone>
|
|
</colorZones>
|
|
<triggers>
|
|
<if is="0">
|
|
<goto scene="healthGameOver" />
|
|
</if>
|
|
</triggers>
|
|
</value>
|
|
<value>
|
|
<name>school</name>
|
|
<title>Scuola</title>
|
|
<description>Il tuo consenso da parte della popolazione. Un indicatore importante</description>
|
|
<min>0</min>
|
|
<max>100</max>
|
|
<default>100</default>
|
|
<colorZones>
|
|
<colorZone>
|
|
<min>0</min>
|
|
<max>30</max>
|
|
<color>red</color>
|
|
<description>Beh, che dire...</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>31</min>
|
|
<max>50</max>
|
|
<color>orange</color>
|
|
<description>Dai...</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>51</min>
|
|
<max>60</max>
|
|
<color>yellow</color>
|
|
<description>Non male</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>61</min>
|
|
<max>100</max>
|
|
<color>green</color>
|
|
<description>Ok</description>
|
|
</colorZone>
|
|
</colorZones>
|
|
<triggers>
|
|
<if is="0">
|
|
<goto scene="consensusGameOver" />
|
|
</if>
|
|
</triggers>
|
|
</value>
|
|
<value>
|
|
<name>consensus</name>
|
|
<title>Consenso</title>
|
|
<description>Il tuo consenso da parte della popolazione. Un indicatore importante</description>
|
|
<min>0</min>
|
|
<max>100</max>
|
|
<default>100</default>
|
|
<colorZones>
|
|
<colorZone>
|
|
<min>0</min>
|
|
<max>30</max>
|
|
<color>red</color>
|
|
<description>Beh, che dire...</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>31</min>
|
|
<max>50</max>
|
|
<color>orange</color>
|
|
<description>Dai...</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>51</min>
|
|
<max>60</max>
|
|
<color>yellow</color>
|
|
<description>Non male</description>
|
|
</colorZone>
|
|
<colorZone>
|
|
<min>61</min>
|
|
<max>100</max>
|
|
<color>green</color>
|
|
<description>Ok</description>
|
|
</colorZone>
|
|
</colorZones>
|
|
<triggers>
|
|
<if is="0">
|
|
<goto scene="consensusGameOver" />
|
|
</if>
|
|
<if lessThan="50">
|
|
<goto scene="consensusWarn" />
|
|
</if>
|
|
</triggers>
|
|
</value>
|
|
</values>
|
|
<sections>
|
|
<events>
|
|
<event frames="3" chance="10">
|
|
<!--
|
|
Ogni 3 schermate sorteggia, chance è la percentuale di probabilità che questo evento accada
|
|
-->
|
|
<if who="checkpoints" what="virusDeveloped" is="true" />
|
|
<name>new_variant</name>
|
|
<title>Nuova variante</title>
|
|
<description>
|
|
Il corriere della Pera annuncia l'arrivo di una nuova variante di
|
|
<print who="virus" what="name" />
|
|
. La nuova variante è
|
|
<sectionGroup atLeastOne="true" chance="100">
|
|
<!--
|
|
uno e uno soltanto di questi eventi avverrà sicuramente
|
|
-->
|
|
<section chance="10">
|
|
più letale del 10%
|
|
<set who="virus" what="lethal" delta="+10" />
|
|
</section>
|
|
<section chance="10">
|
|
meno letale del 10%
|
|
<set who="virus" what="lethal" delta="-10" />
|
|
</section>
|
|
</sectionGroup>
|
|
</description>
|
|
<set who="checkpoints" what="virusMutated" to="true" />
|
|
<choices>
|
|
<choice>
|
|
<title>Ho capito</title>
|
|
<effects>
|
|
<goto question="next" />
|
|
</effects>
|
|
</choice>
|
|
</choices>
|
|
</event>
|
|
<event frames="20" chance="45">
|
|
<if who="levels" what="consensus" lessThan="25" />
|
|
<name>crisi_di_governo</name>
|
|
<title>Crisi di governo</title>
|
|
<description>
|
|
|
|
<sectionGroup atLeastOne="true" chance="100">
|
|
<section chance="40">
|
|
A causa del
|
|
<print what="virusName" />
|
|
, il partito
|
|
<print who="parties" what="rand" />
|
|
ha deciso di innescare una crisi di governo.
|
|
Per fortuna i tuoi alleati ti sostengono e ne esci quasi illeso.
|
|
<set who="levels" what="consensus" delta="-5" />
|
|
</section>
|
|
<section chance="50">
|
|
A causa del
|
|
<print what="virusName" />
|
|
, il partito
|
|
<print who="parties" what="rand" />
|
|
ha deciso di innescare una crisi di governo.
|
|
Il tuo governo subisce un reimpasto.
|
|
<set who="levels" what="consensus" delta="-10" />
|
|
</section>
|
|
<section chance="10">
|
|
A causa della tua gestione del
|
|
<print what="virusName" />
|
|
, l'esercito tenta un colpo di stato.
|
|
<goto scene="coup" />
|
|
</section>
|
|
</sectionGroup>
|
|
</description>
|
|
<choices>
|
|
<choice>
|
|
<title>Ok</title>
|
|
<effects>
|
|
<goto question="next" />
|
|
</effects>
|
|
</choice>
|
|
</choices>
|
|
</event>
|
|
</events>
|
|
<scenes>
|
|
<scene>
|
|
<name>fondi_europei_scuola_yesno</name>
|
|
<title>Detto fatto</title>
|
|
<description>
|
|
<if who="checkpoints" what="consensus" lessThan="50">
|
|
I tuoi alleati di governo ti guardano con disappunto.
|
|
<set who="levels" what="school" delta="+5" />
|
|
<set who="levels" what="consensus" delta="-5" />
|
|
</if>
|
|
<else>
|
|
I docenti di tutte le scuole ti sorridono.
|
|
<set who="levels" what="school" delta="+10" />
|
|
<set who="levels" what="consensus" delta="+10" />
|
|
</else>
|
|
</description>
|
|
<set who="checkpoints" what="virusMutated" to="true" />
|
|
<choices>
|
|
<choice>
|
|
<title>Ok</title>
|
|
<effects>
|
|
<goto question="next" />
|
|
</effects>
|
|
</choice>
|
|
</choices>
|
|
</scene>
|
|
<scene>
|
|
<name>coup</name>
|
|
<title>Fuoco alle polveri</title>
|
|
<description>
|
|
Mentre vieni bersagliato dall'artiglieria ti rinchiudi nel tuo ufficio.
|
|
Dopo esserti barricato per alcuni minuti, una coltre di fumo di odore pungente riempie l'ufficio.
|
|
</description>
|
|
<gameOver />
|
|
</scene>
|
|
</scenes>
|
|
<questions>
|
|
<question>
|
|
<if who="checkpoints" what="virusDeveloped" is="false" />
|
|
<name>fondi_europei_scuola</name>
|
|
<title>Fondi Europei per la scuola</title>
|
|
<description>
|
|
L'unione Europea offre dei fondi per la scuola a patto di integrare i programmi scolastici con quelli degli altri stati
|
|
<if who="levels" what="consensus" lessThan="50">
|
|
I tuoi alleati di governo ti guardano con disappunto.
|
|
</if>
|
|
</description>
|
|
<set who="checkpoints" what="virusMutated" to="true" />
|
|
<choices>
|
|
<choice>
|
|
<title>Certo</title>
|
|
<effects>
|
|
<goto scene="fondi_europei_scuola_yesno" />
|
|
</effects>
|
|
</choice>
|
|
<choice>
|
|
<title>Per niente!</title>
|
|
<effects>
|
|
<goto scene="fondi_europei_scuola_yesno" />
|
|
</effects>
|
|
</choice>
|
|
</choices>
|
|
</question>
|
|
</questions>
|
|
</sections>
|
|
<viruses>
|
|
<virus>
|
|
<name>eys</name>
|
|
<title>eys-1</title>
|
|
<description>Descrizione</description>
|
|
<stats>
|
|
<transmissionSpeed>1</transmissionSpeed>
|
|
<lethality>1</lethality>
|
|
<hospitalizationRate>1</hospitalizationRate>
|
|
</stats>
|
|
<infoboxes>
|
|
<infobox>
|
|
<title>Infobox1</title>
|
|
<description>Testo</description>
|
|
</infobox>
|
|
</infoboxes>
|
|
</virus>
|
|
</viruses>
|
|
<parties>
|
|
<party>
|
|
<name>partito_giallo</name>
|
|
<title>Partito Giallo</title>
|
|
<secretary>Domenico Sansovino</secretary>
|
|
<description>Un partito di centro moderato</description>
|
|
<motto>Viva la libertàaaaa iaaaaaaaa</motto>
|
|
</party>
|
|
<party>
|
|
<name>no_al_5g</name>
|
|
<title>No al 5G</title>
|
|
<secretary>Giovanna Vogheri</secretary>
|
|
<description>Un partito il cui interesse esclusivo è bandire il 5G, quale emissario di Satana,</description>
|
|
<motto>Uniti nella nostra APERTURA MENTALE</motto>
|
|
</party>
|
|
<party>
|
|
<name>partito_anarchico</name>
|
|
<title>Partito anarchico</title>
|
|
<secretary>Carlo Massimo</secretary>
|
|
<description>Fanno quello che vogliono</description>
|
|
<motto>Siamo anarchici ma non quando votiamo</motto>
|
|
</party>
|
|
<party>
|
|
<name>il_popolo_delle_mamme</name>
|
|
<title>Il popolo delle mamme</title>
|
|
<secretary>Silvia Pavesini</secretary>
|
|
<description>Anche questi fanno quello che vogliono </description>
|
|
<motto>I bambiniiiiiiiii</motto>
|
|
</party>
|
|
<party>
|
|
<name>laser</name>
|
|
<title>Laser a cinqui euri</title>
|
|
<secretary>Aieie Brasorx</secretary>
|
|
<description>Usano i laser in parlamento per accecare l'opposizione</description>
|
|
<motto>Solo a cinqui euri, beli i laser</motto>
|
|
</party>
|
|
<party>
|
|
<name>totocalcio</name>
|
|
<title>Totocalcio</title>
|
|
<secretary>Toto Rinaldi</secretary>
|
|
<description>Scommettono sulla loro vittoria, per ora hanno solo perso</description>
|
|
<motto>Scommetti sul tuo futuro (nel frattempo organizziamo i brogli)</motto>
|
|
</party>
|
|
<party>
|
|
<name>forza_vecchia</name>
|
|
<title>Forza Vecchia</title>
|
|
<secretary>Federico VII di Salerno</secretary>
|
|
<description>Medievisti puri</description>
|
|
<motto>Si stava meglio quando si stava peggio</motto>
|
|
</party>
|
|
<party>
|
|
<name>Ikea</name>
|
|
<title>Sveglia dell' IKEA</title>
|
|
<secretary>Äntligen Färgglad</secretary>
|
|
<description>Nessuno capisce quello che dicono</description>
|
|
<motto>När är det bäst att besöka oss?</motto>
|
|
</party>
|
|
<party>
|
|
<name>sedia girevole</name>
|
|
<title>Sedia Girevole</title>
|
|
<secretary>Francesco Eppson</secretary>
|
|
<description>Girano tutto il giorno in parlamento sulle poltrone</description>
|
|
<motto>Uiiiiiiiii haha</motto>
|
|
</party>
|
|
<party>
|
|
<name>basta_powerpoint</name>
|
|
<title>Basta PowePoint</title>
|
|
<secretary>Stefano Mansioni</secretary>
|
|
<description>Odiano PowePoint</description>
|
|
<motto>BASTA POWERPOINT BASTAAAAAAAAAA: Usate Prezi por favor</motto>
|
|
</party>
|
|
</parties>
|
|
<misc>
|
|
<welcomeMessage scrollDelay="400" duration="10" direction="up">
|
|
Testo di prova
|
|
</welcomeMessage>
|
|
</misc>
|
|
</Araldia>
|
|
`;
|
|
var deadlyError=false;
|
|
function chunkString(str, length) {
|
|
return str.match(new RegExp('.{1,' + length + '}', 'g'));
|
|
}
|
|
function brLine(lines){
|
|
lines=lines.trim().replace("\n");
|
|
var g=lines;
|
|
try{
|
|
lines= chunkString(lines,80).join("<br />");
|
|
}
|
|
catch(e){
|
|
lines=g;
|
|
}
|
|
return lines;
|
|
}
|
|
function gvRead(who, what) {
|
|
try {
|
|
return gameVars[who][what];
|
|
}
|
|
catch (e) {
|
|
return false;
|
|
}
|
|
}
|
|
function randomInteger(min, max) {
|
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
}
|
|
|
|
function print(who, what) {
|
|
return gvRead(who, what) ? gvRead(who, what) : "";
|
|
}
|
|
function set(who, what, delta = null, to = null) {
|
|
if (gameVars[who] == undefined) gameVars[who] = {};
|
|
if (delta != null) {
|
|
if (gameVars[who][what] == undefined) gameVars[who][what] = 0;
|
|
gameVars[who][what] += parseInt(delta);
|
|
}
|
|
else {
|
|
gameVars[who][what] = to;
|
|
}
|
|
if(who=="levels"){
|
|
if(parseInt(gvRead(who,what))>100){
|
|
gameVars[who][what] = 100;
|
|
}
|
|
else if(parseInt(gvRead(who,what))<0){
|
|
gameVars[who][what] = 100;
|
|
}
|
|
}
|
|
else if(who=="virus" && what=="letality" || what=="hospitalizationRate" || what=="transmissionSpeed"){
|
|
if(parseInt(gvRead(who,what))>100){
|
|
gameVars[who][what] = 100;
|
|
}
|
|
else if(parseInt(gvRead(who,what))<0){
|
|
gameVars[who][what] = 100;
|
|
}
|
|
}
|
|
}
|
|
function createXPathFromElement(elm) {
|
|
var allNodes = document.getElementsByTagName('*');
|
|
for (var segs = []; elm && elm.nodeType == 1; elm = elm.parentNode) {
|
|
if (elm.hasAttribute('id')) {
|
|
var uniqueIdCount = 0;
|
|
for (var n = 0; n < allNodes.length; n++) {
|
|
if (allNodes[n].hasAttribute('id') && allNodes[n].id == elm.id) uniqueIdCount++;
|
|
if (uniqueIdCount > 1) break;
|
|
};
|
|
if (uniqueIdCount == 1) {
|
|
segs.unshift('id("' + elm.getAttribute('id') + '")');
|
|
return segs.join('/');
|
|
} else {
|
|
segs.unshift(elm.localName.toLowerCase() + '[@id="' + elm.getAttribute('id') + '"]');
|
|
}
|
|
} else if (elm.hasAttribute('class')) {
|
|
segs.unshift(elm.localName.toLowerCase() + '[@class="' + elm.getAttribute('class') + '"]');
|
|
} else {
|
|
for (i = 1, sib = elm.previousSibling; sib; sib = sib.previousSibling) {
|
|
if (sib.localName == elm.localName) i++;
|
|
};
|
|
segs.unshift(elm.localName.toLowerCase() + '[' + i + ']');
|
|
};
|
|
};
|
|
return segs.length ? '/' + segs.join('/') : null;
|
|
};
|
|
|
|
function cTagRecursive(tag, iteration = (-1)) {
|
|
iteration++;
|
|
if (iteration == 0) {
|
|
/*cleanup*/
|
|
var l = tag.getElementsByTagName("sectionGroup");
|
|
for (var it = 0; it < l.length; it++) {
|
|
l[it].made=false;
|
|
}
|
|
}
|
|
html = "";
|
|
var currentTag = null, quitDo = false;
|
|
for (var i = 0; tag.childNodes.length; i++) {
|
|
currentTag = tag.childNodes[i];
|
|
if (currentTag == undefined) return html;
|
|
if (currentTag.nodeName == "#comment") continue;
|
|
if (currentTag.nodeName == "#text") {
|
|
var p = currentTag.parentNode;
|
|
while (p != null && p.nodeName != "description" && p.nodeName != "title" && p.nodeName != "section") {
|
|
p = p.parentNode;
|
|
}
|
|
if (p == null) continue;
|
|
switch (p.nodeName) {
|
|
case "description":
|
|
html += brLine(currentTag.textContent)+"<br />";
|
|
break;
|
|
case "title":
|
|
if (p.parentNode.nodeName=="choice") continue;
|
|
html += "<h3>" + currentTag.textContent + "</h3><br />";
|
|
break;
|
|
case "section":
|
|
html += currentTag.textContent+"<br />";
|
|
break;
|
|
}
|
|
|
|
}
|
|
else if (currentTag.nodeName == "if" || currentTag.nodeName == "elseif") {
|
|
if (currentTag.parentNode.nodeName == "event" || currentTag.parentNode.nodeName == "question" || currentTag.parentNode.nodeName == "scene"&& currentTag.childNodes.length == 0) {
|
|
quitDo = true;
|
|
}
|
|
else if (currentTag.parentNode.nodeName == "triggers") {
|
|
currentTag.setAttribute("who", "levels");
|
|
currentTag.setAttribute("what", currentTag.parentNode.parentNode.getElementsByTagName("name")[0].textContent);
|
|
}
|
|
if (currentTag.hasAttribute("is")) {
|
|
if (currentTag.attributes["is"].value == gvRead(currentTag.attributes["who"].value, currentTag.attributes["what"].value)) {
|
|
html += cTagRecursive(currentTag, iteration);
|
|
|
|
}
|
|
else if (quitDo) {
|
|
return false;
|
|
}
|
|
}
|
|
else if (currentTag.hasAttribute("lessThan")) {
|
|
if (currentTag.attributes["lessThan"].value < gvRead(currentTag.attributes["who"].value, currentTag.attributes["what"].value)) {
|
|
|
|
html += cTagRecursive(currentTag, iteration);
|
|
|
|
}
|
|
else if (quitDo) {
|
|
return false;
|
|
}
|
|
}
|
|
else if (currentTag.hasAttribute("moreThan")) {
|
|
if (currentTag.attributes["moreThan"].value > gvRead(currentTag.attributes["who"].value, currentTag.attributes["what"].value)) {
|
|
html += cTagRecursive(currentTag, iteration);
|
|
|
|
}
|
|
else if (quitDo) {
|
|
return false;
|
|
}
|
|
|
|
}
|
|
else if (currentTag.hasAttribute("lessOrEqual")) {
|
|
if (currentTag.attributes["lessOrEqual"].value <= gvRead(currentTag.attributes["who"].value, currentTag.attributes["what"].value)) {
|
|
html += cTagRecursive(currentTag, iteration);
|
|
|
|
}
|
|
else if (quitDo) {
|
|
return false;
|
|
}
|
|
}
|
|
else if (currentTag.hasAttribute("moreOrEqual")) {
|
|
if (currentTag.attributes["moreOrEqual"].value >= gvRead(currentTag.attributes["who"].value, currentTag.attributes["what"].value)) {
|
|
html += cTagRecursive(currentTag, iteration);
|
|
|
|
}
|
|
else if (quitDo) {
|
|
return false;
|
|
}
|
|
}
|
|
else if (quitDo) {
|
|
return false;
|
|
}
|
|
}
|
|
else if (currentTag.nodeName == "section") {
|
|
if (currentTag.parentNode.made) continue;
|
|
var doForce = false;
|
|
if (currentTag.parentNode.nodeName == "sectionGroup" && currentTag.parentNode.attributes["atLeastOne"].value == "true") {
|
|
var c = currentTag.nextSibling;
|
|
while (c != null && c.nodeName != "section") {
|
|
c = c.nextSibling;
|
|
}
|
|
if (c == null) {
|
|
doForce = true;
|
|
}
|
|
}
|
|
if (currentTag.attributes["chance"].value < randomInteger(0, 99) || doForce) {
|
|
currentTag.parentNode.made = true;
|
|
html += cTagRecursive(currentTag, iteration);
|
|
}
|
|
}
|
|
else if (currentTag.nodeName == "sectionGroup") {
|
|
if (currentTag.hasAttribute("chance") || currentTag.attributes["chance"].value < randomInteger(0, 99)) {
|
|
html += cTagRecursive(currentTag, iteration);
|
|
}
|
|
}
|
|
else if (currentTag.nodeName == "set") {
|
|
if (currentTag.hasAttribute("delta")) set(currentTag.attributes["who"].value, currentTag.attributes["what"].value, currentTag.attributes["delta"].value, null);
|
|
else set(currentTag.attributes["who"].value, currentTag.attributes["what"].value, null, currentTag.attributes["to"].value);
|
|
}
|
|
else if (currentTag.nodeName == "print") {
|
|
html += print(currentTag.attributes["who"].value, currentTag.attributes["what"].value);
|
|
}
|
|
else if (currentTag.nodeName == "goto") {
|
|
if (currentTag.hasAttribute("scene")) {
|
|
if (currentTag.parentNode.nodeName == "effects") {
|
|
var v= "&arr;";
|
|
|
|
try{
|
|
var t=currentTag.parentNode.parentNode.getElementsByTagName("title")[0];
|
|
v=t.textContent;
|
|
}
|
|
catch(e){
|
|
|
|
}
|
|
html += " <button type=\"button\" class=\"nes-btn is-primary\" onclick=\"goto('scene','" + currentTag.attributes["scene"].value + "');\">"+v+"</button>";
|
|
continue;
|
|
}
|
|
var child = window.cats.getElementsByTagName("scenes")[0].children;
|
|
for (var i = 0; i < child.length; i++) {
|
|
if (child[i].getElementsByTagName("name")[0].textContent == currentTag.attributes["scene"].value) {
|
|
console.log(child[i]);
|
|
html += cTagRecursive(child[i], iteration);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if (currentTag.hasAttribute("question")) {
|
|
if (currentTag.parentNode.nodeName == "effects") {
|
|
var v= "&arr;";
|
|
|
|
try{
|
|
var t=currentTag.parentNode.parentNode.getElementsByTagName("title")[0];
|
|
v=t.textContent;
|
|
}
|
|
catch(e){
|
|
|
|
}
|
|
html += " <button type=\"button\" class=\"nes-btn is-primary\" onclick=\"goto('question','" + currentTag.attributes["question"].value + "');\">"+v+"</button>";
|
|
continue;
|
|
}
|
|
var child = window.cats.getElementsByTagName("questions")[0].childNodes;
|
|
for (var i = 0; i < child.length; i++) {
|
|
if (child[i].getElementsByTagName("name") == currentTag.attributes["question"].value) {
|
|
html = "";
|
|
html += cTagRecursive(child[i], iteration);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
else if (currentTag.hasAttribute("event")) {
|
|
if (currentTag.hasAttribute("scene")) {
|
|
if (currentTag.parentNode.nodeName == "effects") {
|
|
var v= "&arr;";
|
|
|
|
try{
|
|
var t=currentTag.parentNode.parentNode.getElementsByTagName("title")[0];
|
|
v=t.textContent;
|
|
}
|
|
catch(e){
|
|
|
|
}
|
|
html += " <button type=\"button\" class=\"nes-btn is-primary\" onclick=\"goto('event','" + currentTag.attributes["event"].value + "');\">"+v+"</button>";
|
|
continue;
|
|
}
|
|
var child = window.cats.getElementsByTagName("events")[0].childNodes;
|
|
for (var i = 0; i < child.length; i++) {
|
|
if (child[i].getElementsByTagName("name") == currentTag.attributes["event"].value) {
|
|
html = "";
|
|
html += cTagRecursive(child[i], iteration);
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
html += cTagRecursive(currentTag, iteration);
|
|
}
|
|
}
|
|
|
|
return html;
|
|
}
|
|
|
|
|
|
|
|
var i = 0, childrenEl = null, tHtml = "";
|
|
parser = new DOMParser();
|
|
xmlDoc = parser.parseFromString(text, "text/xml");
|
|
var cats = xmlDoc.children[0];
|
|
var values = cats.getElementsByTagName("values")[0];
|
|
tHtml = `
|
|
<table>
|
|
`;
|
|
for (i = 0; i < values.childElementCount; i++) {
|
|
childrenEl = values.children[i];
|
|
console.log(childrenEl);
|
|
tHtml += `<tr id="` + childrenEl.getElementsByTagName("name")[0].textContent + `" onmouseover="ttvy(this)" onmouseout="ttvn(this)" data-desc="` + childrenEl.getElementsByTagName("description")[0].textContent + `"><td>` + childrenEl.getElementsByTagName("title")[0].textContent + `</td><td class="mtW"> <progress class="nes-progress is-success" style=" width:400px;" min="` + childrenEl.getElementsByTagName("min")[0].textContent + `" max="` + childrenEl.getElementsByTagName("max")[0].textContent + `" value="` + childrenEl.getElementsByTagName("default")[0].textContent + `" ></progress></td><td>` + childrenEl.getElementsByTagName("default")[0].textContent + `/` + childrenEl.getElementsByTagName("max")[0].textContent + `</td></tr>`;
|
|
}
|
|
console.log(tHtml);
|
|
tHtml += "</table>";
|
|
$("#levels").hide();
|
|
document.getElementById("levels").innerHTML = tHtml;
|
|
|
|
$("#begin").click(function () {
|
|
if ($("#username").val().length == 0) return false;
|
|
setTimeout(function () { deAudio(6); }, 100);
|
|
$("#mainMenu").fadeOut();
|
|
$("#beginSect").fadeIn();
|
|
$("#mq").attr("scrolldelay",cats.getElementsByTagName("misc")[0].getElementsByTagName("welcomeMessage")[0].attributes["scrollDelay"].value);
|
|
$("#mq").attr("direction",cats.getElementsByTagName("misc")[0].getElementsByTagName("welcomeMessage")[0].attributes["direction"].value);
|
|
$("#mq").html(cats.getElementsByTagName("misc")[0].getElementsByTagName("welcomeMessage")[0].textContent);
|
|
setTimeout(function(){
|
|
$("#beginSect").fadeOut();
|
|
$("#levels").fadeIn();
|
|
Q();
|
|
audio.src="music/Rolemusic - The White Frame.mp3";
|
|
setTimeout(function(){
|
|
|
|
for(var i=0;i<1;i+=0.001){
|
|
audio.volume=i;
|
|
}
|
|
audio.volume=1;
|
|
audio.play();
|
|
},6000)
|
|
},cats.getElementsByTagName("misc")[0].getElementsByTagName("welcomeMessage")[0].attributes["duration"].value*1000);
|
|
})
|
|
|
|
function randEl(category){
|
|
return cats.getElementsByTagName(category)[0].children[randomInteger(0,cats.getElementsByTagName(category)[0].childElementCount-1)];
|
|
}
|
|
function getEl(category,name){
|
|
if(category=="questions" && name=="next") return Q();
|
|
var ets= cats.getElementsByTagName(category)[0].getElementsByTagName("name");
|
|
for(var i=0;i<ets.length;i++){
|
|
if(ets[i].textContent==name){
|
|
return setField(ets[i].parentNode);
|
|
}
|
|
}
|
|
}
|
|
function setField(h){
|
|
var res=cTagRecursive(h);
|
|
deadlyError=true;
|
|
if(res===false) throw "No available resources";
|
|
var tml="<br /><br /><br /><br />"+res;
|
|
$("#gameField").hide();
|
|
$("#gameField").html(tml);
|
|
$("#gameField").show();
|
|
}
|
|
function Q(){
|
|
var h=randEl("questions");
|
|
setField(h);
|
|
}
|
|
window.onerror = function(message, source, lineno, colno, error) {
|
|
$("#errorData").html(`
|
|
<div class="nes-table-responsive">
|
|
<table class="nes-table is-bordered is-centered" style="height:300px;width:700px;">
|
|
<tr>
|
|
<td>Message</td>
|
|
<td>`+message+`</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Source</td>
|
|
<td>`+source+`</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Line and column</td>
|
|
<td>`+lineno+`:`+colno+`</td>
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
<td>Error</td>
|
|
<td>`+error+`</td>
|
|
</tr>
|
|
|
|
</table>
|
|
</div>
|
|
`);
|
|
$("#error").show();
|
|
}
|
|
|
|
function dragElement(elmnt) {
|
|
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
|
|
if (document.getElementById(elmnt.id + "header")) {
|
|
// if present, the header is where you move the DIV from:
|
|
document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
|
|
} else {
|
|
// otherwise, move the DIV from anywhere inside the DIV:
|
|
elmnt.onmousedown = dragMouseDown;
|
|
}
|
|
|
|
function dragMouseDown(e) {
|
|
e = e || window.event;
|
|
e.preventDefault();
|
|
// get the mouse cursor position at startup:
|
|
pos3 = e.clientX;
|
|
pos4 = e.clientY;
|
|
document.onmouseup = closeDragElement;
|
|
// call a function whenever the cursor moves:
|
|
document.onmousemove = elementDrag;
|
|
}
|
|
|
|
function elementDrag(e) {
|
|
e = e || window.event;
|
|
e.preventDefault();
|
|
// calculate the new cursor position:
|
|
pos1 = pos3 - e.clientX;
|
|
pos2 = pos4 - e.clientY;
|
|
pos3 = e.clientX;
|
|
pos4 = e.clientY;
|
|
// set the element's new position:
|
|
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
|
|
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
|
|
}
|
|
|
|
function closeDragElement() {
|
|
// stop moving when mouse button is released:
|
|
document.onmouseup = null;
|
|
document.onmousemove = null;
|
|
}
|
|
}
|
|
dragElement(document.getElementById("error"));
|
|
function goto(cat,name){
|
|
getEl(cat+"s",name);
|
|
}
|
|
|
|
|
|
|
|
|
|
var tooltipvisible=false,text="Mayor Tom, There is something wrong!";
|
|
function ttvy(a){
|
|
tooltipvisible=true;
|
|
text=a.attributes["data-desc"].value;
|
|
}
|
|
function ttvn(a){
|
|
tooltipvisible=false;
|
|
}
|
|
//Make the DIV element draggagle:
|
|
tooltipel(document.getElementById("tooTpk"));
|
|
|
|
function tooltipel(elmnt) {
|
|
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
|
|
|
|
document.onmousemove = elementDrag;
|
|
|
|
|
|
function elementDrag(e) {
|
|
e = e || window.event;
|
|
e.preventDefault();
|
|
elmnt.style.display=tooltipvisible?"block":"none";
|
|
document.getElementById("tooltT").innerHTML=text;
|
|
pos3 = e.clientX;
|
|
pos4 = e.clientY;
|
|
// set the element's new position:
|
|
elmnt.style.top = (pos4) + "px";
|
|
elmnt.style.left = (pos3) + "px";
|
|
}
|
|
|
|
|
|
}
|
|
function initSplash(i=0,callback){
|
|
if(i<80){
|
|
setTimeout(function(){
|
|
$("#splashImg").css("width",i+"%");
|
|
initSplash(i+1,callback);
|
|
},100);
|
|
}
|
|
else{
|
|
callback();
|
|
}
|
|
}
|
|
</script> |