var gameVars = { "player": { "name": "", "actionN": 0 } }; var audio = null; var bool = false; addEventListener("click", function () { $("#clicktobeg").hide(); document.documentElement.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 = ` health Salute Coff.. coff.. Una popolazione in salute potrebbe essere utile 0 100 100 economy Economia Potresti voler guardare questo indicatore ogni tanto 0 100 100 consensus Consenso Il tuo consenso da parte della popolazione. Se vuoi fare qualcosa davvero ti può essere d'aiuto 0 100 100 security Sicurezza Sono al sicuro in parlamento. Vero? 0 100 100 drogaStay Scandalo di Governo
Viene condannato in primo grado
Viene assolto in primo grado
Ok
drogaGo Scandalo di Governo
Viene condannato in primo grado
Viene assolto in primo grado
Ok
scandolaStay Scandalo di Governo
Viene condannato in primo grado
Viene assolto in primo grado
Ok
randVacc Vaccino
Il vaccino fallisce e muoino 50'000 persone
Il vaccino risulta particolarmente efficace
Ok
scandolaGo Scandalo di Governo
Viene condannato in primo grado
Viene assolto in primo grado
Ok
randVesc Vescovo di Napoly
Il reato viene scoperto dal giornalista Aldo Giacomi, che ti accusa pubblicamente
Il reato viene insabbiato con successo e il vescovo contribuisce alla tua propaganda
Ok
misureRestrittive Misure restrittive Considerata l'attuale situazione epidemiologica, è necessario rafforzare le misure restrittive? No CrostaSconcordia Nave incagliata La nave Crosta Discordia è rimasta incagliata a largo dell'isola del Ciglio, con a capo il Comandante Scattino. Lo scafo ha imbarcato acqua e la nave potrebbe affondare
Che cosa fai?
Fai sì che la nave venga rimossa e le sue parti riutilizzate No, costa troppo rimuoverla, meglio lasciarla lì
Partitini Riforma elettorale Un gruppo di alcuni senatori e deputati ha proposto una riforma costituzionale al sistema elettorale, che sfavorirebbe i partiti di piccole dimensioni
Come desideri procedere?
Ti dichiari favorevole Meglio osteggiare la riforma, d'altronde alcuni partiti che fanno parte della tua allenaza sono piuttosto ridotti
Sindacati Sindacati Il Presidente del Sindacato dei Lavoratori Part-Time, Sergio Costa, ti chiede un incontro per stabilire un punto di accordo sulle condizioni lavorative di coloro che rappresenta Che dialogo inutile, sarebbe tempo sprecato Va bene, incontriamoci! Sparatoria in centro a Mylano Sparatoria in centro a Mylano Un poliziotto fuori servizio di nome Giorgio Sinodi ha utilizzato la sua pistola d'ordiananza per uccidere la moglie che lo aveva precedentemente tradito.
Cosa fai?
Niente, non sono affari miei Ti esponi pubblicamente a favore del poliziotto
antipandemia1 Antipandemia Il Ministro della Salute ti chiede di stanziare fondi per la prevenzione della malattia. Accetti la richiesta, nonostante il costo Rifiuti la richiesta, per poter utilizzare il denaro diversamente Autostrade Autostrade Il Ministro dei Trasporti ti chiede di stanziare fondi per la manutenzione delle autostrade. Accetti la richiesta, nonostante il costo Rifiuti la richiesta, per poter utilizzare il denaro diversamente Cesaropapismo Cesaropapismo La Chiesa Assiomatica si propone di procacciarti il supporto della popolazione, pur di impedire la ricerca sulle cellule embrionali.
Cosa decidi di fare?
Accetti la proposta Beh ecco...
cesaropapismo Cesaropapismo La Chiesa Assiomatica si propone di procacciarti il supporto della popolazione, pur di impedire la ricerca sulle cellule embrionali.
Cosa decidi di fare?
Accetti la proposta Beh ecco...
crocifissi Crocifissi nelle scuole Un gruppo crescente di persone ti chiede di considerare se tenere o rimuovere i crocifissi nelle scuole. Ci penso immediatamente Certo ! (Magari il prossimo governo se ne occuperà) crocifissi Crocifissi nelle scuole Un gruppo crescente di persone ti chiede di considerare se tenere o rimuovere i crocifissi nelle scuole. Ci penso immediatamente Certo ! (Magari il prossimo governo se ne occuperà) desertificazione Desertificazione La regione della Sciglia si sta progressivimanente desertificando
Cosa fai?
Non ci possiamo fare nulla Facciamo qualcosa!
droga Caso di droga nella tua alleanza di Parlamento Il tuo ministro dell'interno Giovanni Foresta è sotto inchiesta per aver favorito, grazie alla sua influenza, la distribuzione di droga sul suolo Araldico
Come desideri procedere?
Rimane in ufficio finchè condannato, sempre che sia colpevole Fuori dal mio governo
esercito Nuove forze armate? Il Generale Padruolo ti propone di finanziare delle attività funzionali al rafforzamento dell'esercito Araldico
Cosa fai?
Accetti e concedi il finanzimento Rifiuti senza dilungarti troppo sulle motivazioni
fallimento Fallimento di Jovani S.p.A. Elettrotecnica Jovani S.p.A., una grande realtà industriale con sede a Drato, sta spostando tutti i suoi impianti produttivi in Bangladesh.
I sindacati esercitano una forte pressione per impedire che ciò accada.
Impedisci lo spostamento con incentivi statali Ah perchè in Araldia si lavora anche?
femministe1 Movimento femminista Il partito %randPartyName%, sostenitore dei diritti delle donne, chiede uguaglianza tra gli stipendi di colleghi di differente sesso.
Il Ministro del Lavoro Giorgio Crispi lascia a te la scelta finale.
Accogli con gioia la richiesta e prendi provvedimenti Ritieni che sia una condizione già in atto
fuggitivo Fuggitivo proveniente dalla Francia Un noto criminale è riuscito a fuggire da un carcere di massima sicurezza in Francia, recandosi in Araldia. La Francia ti chiede di cercarlo all'interno tuoi confini.
Cosa fai?
Porti avanti una ricerca nelle regioni limitrofe al confine Decidi che non ne vale il costo
giornalista Giornalista ficcanaso Il giornalista Girolamo Preti ha scritto un articolo sulla tua attuale gestione del Paese
Cosa fai?
Accetti le critiche e lo inviti a discuterne meglio di fronte ad una tazza di Caffé Ti dimostri fortemente irritato dalle sue affermazioni ed eviti il dialogo Lo attacchi pubblicamente e lo fai licenziare grazie alla tua influenza
hello.joke Is there anybody in there? Out of the corner of my eye I turned to look but it was gone I cannot put my finger on it now The child is grown The dream is gone I have become comfortably numb What? Cosa? inParlamento In parlamento %randPartyName%, segretario di %randPartySecretary%, critica l'operato del tuo governo riguardo alla scuola. Haha, un paritino al 4% Cos'è la scuola? Non è vero milva Stabilimento MIlva Uno stabilimento della Milva locato a Traranto sta causando un aumento consistente dei casi di cancro in tutta la popolazione la circostante.
Cosa fai?
Proponi la chiusura dello stabilimento Insisti sulla necessità di mantenere operativo lo stabilimento Istituisci un commissario che si occupi della questione
manifestazione Manifestazione di fronte a Palazzo Thigi Un gruppo di persone sta generando scompiglio di fronte alla sede della Presidenza del Consiglio, in protesta per le attuali condizioni lavorative.
Che cosa fai?
Disperdi i manifestanti Accetti che una delegazione venga a discutere all'interno del Palazzo
misureSanitarie Misure sanitarie Il Ministro della Salute ti chiede di stanziare fondi per misure sanitarie più stringenti
Cosa decidi?
Accetti la richiesta, nonostante il costo Ritieni che sia una condizione già in atto
Monsatero Monastero Il Phapa ti propone la ristrutturazione di un antico monastero situato sugli Appendini. Uhmm.... Acconsenti e concedi il denaro Declini, invitando il Phapa ad attuare il rinnovamento del monastero con i propri fondi open Open Source Il ministro per la trasformazione digitale propone di imporre l'utilizzo di software open source per tutti gli enti pubblici Cambiate tutto subito No, è troppo complicato Procediamo con un cambiamento graduale ostruzionismo Ostruzionismo in parlamento Il partito %randPartyName% si oppone alla messa in atto di misure restrittive da parte del tuo governo. %randPartySecretary%, in un'intervista radiofonica ha dichiarato «%playerName% è un incompetente autoritario e deve essere fermato il prima possibile» Come pensi di reagire a quest'accusa Cerca di negoziare con %randPartyName% Prenditi gioco di %randPartySecretary% in diretta televisiva in un programma di Phazio petroliera Petroliera incagliata Un nave che trasportava petrolio ha riportato una faglia nello scafo dopo essersi scontrata ed incagliata nella costa amalfitana, cominciando a riversare il suo contenuto nel mare.
Cosa fai?
Ottieni che la nave venga riparata Non prendi altre contromisure
ponte Crollo ponte Gianni Il Ponte Gianni è crollato da un mese ormai. I cittadini ti chiedono di trovare il colpevole Come desideri procedere? Attui un procedimento volto a trovare i reali responsabili, anche se costoso Fuori dal mio governo randomChemistryTrivia Acido perclorico Qual è di questi? HClO3 HClO4 HClO2 Riciclaggio Riciclaggio Il Ministro dell'economia Fabrizio Briziti chiede di aiutarlo a riciclare del denaro proveniente dallo spaccio di droga.
Come ti comporti?
Accetti la richiesta, consapevole dell'incentivo al commercio di droga Rifiuti la richiesta e denunci il Ministro
riforma Riforma L'Europa ti chiede una serie di riforme sul piano economico
Come desideri procedere?
Si è vero, sono necessarie, ma non tutti potrebbero comprenderne l'efficacia No, non servono Basta, fuori dall'Europa
scandola Scandalo di governo Il tuo ministro dell'interno, Giovanni Giorgio è sotto inchiesta per corruzione e abuso d'ufficio.
Come desideri procedere?
Rimane in ufficio finchè condannato Fuori dal mio governo
terremoto Terremoto nelle SMarche Terremoto nelle SMarche
Come desideri procedere?
Ti rechi personalmente sul luogo e prometti aiuto e sostegni Lo consideri uno spreco del tuo tempo e rimani in ufficio
vaccino1 Vaccino non testato Un Paese straniero ti propone di utilizzare su larga scala un vaccino non testato sulla tua popolazione.
Come ti comporti?
Ti dichiari favorevole Ti dichari sfavorevole
vescovo Vescovo di Napoly Il vescovo di Napoly è stato accusato di molestie sessuali da parte di un gruppo di giovani ragazzi. Egli ti chiede di insabbiare la questione
Come ti comporti?
Accetti la richiesta e insabbi la questione Rifiuti la richiesta e lo denunci pubblicamente, pur sapendo lo scompiglio che ciò porterebbe
partito_giallo Partito Giallo Domenico Sansovino Un partito di centro moderato Viva la libertàaaaa iaaaaaaaa no_al_5g No al 5G Giovanna Vogheri Un partito il cui interesse esclusivo è bandire il 5G, quale emissario di Satana Uniti nella nostra APERTURA MENTALE partito_anarchico Partito anarchico Carlo Massimo Fanno quello che vogliono Siamo anarchici ma non quando votiamo il_popolo_delle_mamme Il popolo delle mamme Silvia Pavesini Anche questi fanno quello che vogliono I bambiniiiiiiiii laser Laser a cinqui euri Aieie Brasorx Usano i laser in parlamento per accecare l'opposizione Solo a cinqui euri, beli i laser totocalcio Totocalcio Toto Rinaldi Scommettono sulla loro vittoria, per ora hanno solo perso Scommetti sul tuo futuro (nel frattempo organizziamo i brogli) forza_vecchia Forza Vecchia Federico VII di Salerno Medievisti puri Si stava meglio quando si stava peggio Ikea Sveglia dell' IKEA Äntligen Färgglad Nessuno capisce quello che dicono När är det bäst att besöka oss? sedia girevole Sedia Girevole Francesco Eppson Girano tutto il giorno in parlamento sulle poltrone Uiiiiiiiii haha basta_powerpoint Basta PowePoint Stefano Mansioni Odiano PowePoint BASTA POWERPOINT BASTAAAAAAAAAA: Usate Prezi por favor covvidi-21 COVIDDI-21 1 2.5 Gli scienziati dell'Accademia di Salomone hanno scoperto un nuovo coronavirus. Esso è un virus ad RNA che si trasmette per via aerea ed è potenzialmente pandemico I sintomi inziali sono solitamente tosse, febbre, mal di testa e vomito, ma le conseguenze possono essere ben più gravi. L'Istituto Nazionale di Statistica ha calcolato che questo virus ha una letalità del 1% e un Rt di 2,5. Gli esperti ti chiedono di adottare misure di sicurezza per ridurne la diffusione Secondo le ricerche condotte dall'Accademia di Salomone, questo virus è fuggito dal laboratorio di microbiologia "Matteo Koothrappali" Grazie al lavoro del team di Roberto Marconi è stato scoperto il meccanismo di azione del virus, basato sulla proteina NIKE Dopo un accurata indagine realizzata dall'Accademia di Salomone in collaborazione con i servizi segreti, si è scoperto che in realtà questo virus viene dagli armadilli È stato scoperto un vaccino! toriniese Variante toriniese Nella periferia di Torinia, abitata da molti no-mask, si è sviluppata una nuova variante del virus, ancora più contagiosa 0.9 3.5 turcomanna Variante turcomanna È stata scoperta una nuova variante del virus proveniente dalla fiera nazionale del cavallo turcomanno. È meno molto più mortale. Metti al riparo gli anziani e le categorie fragili! 1,5 10 pasquale Variante pasquale Durante le celebrazioni religiose pasquali si è diffusa una nuova variante. È molto più pericolosa delle altre e sarà difficile estirparla 3 10 falciforme Variante falciforme Questa variante si chiama così per la strana forma che assume la proteina NIKE modificata. Molto contagiosa ma con una mortalità molto più bassa. 3,5 0,5 vip Variante vip I locali mondani dell'isola della Gherba non hanno rispettato il tuo ultimo DPCM, per questo si è diffusa una nuova variante 2 2,75 Araldia, 2312 ----Stampa associata---- Il nuovo presidente si insedia, il paese attende ansioso cambiamenti dal governo
`; var lastEff = []; var deadlyError = false; function chunkString(str, length) { return str.match(new RegExp('.{1,' + length + '}', 'g')); } function brLine(lines) { return "

" + lines + "

"; } // allow for nested structured data through "|" operator function rdRead(who, how) { var v = gameVars[randomInteger(0, Object.keys(gameVars).length - 1)]; } function recurseset(who, what, delta = null, to = null) { var evalSensitive = ""; } function selBuilder(dName, arrselector) { var begin = dName, list = arrselector.split("|"); for (var i = 0; i < list.length; i++) { if (list[i] == "rand") begin += "[randomInteger(0," + begin + ".length)]"; else if (!isNaN(parseInt(list[i]))) begin += "[" + list[i] + "]"; else begin += "[\"" + list[i] + "\"]"; } return begin; } function recurseget(who, what) { //deprecated var ac = what.split("|") if (gameVars[who] == undefined) gameVars[who] = {}; var cVal = gameVars[who][what[0]]; for (var i = 1; i < ac.length; i++) { if (parseInt(ac[i])) cVal = cVal[parseInt(ac[i])]; else if (ac[i] == "rand") cVal = cVal[randomInteger(0, cVal.length)]; else cVal = cVal[ac[i]]; if (cVal === undefined) cVal = {}; } if (cVal === undefined) return null; return cVal; } function gvRead(who, what) { if (gameVars[who] == undefined) return 0; if (gameVars[who][what] == undefined) return 0; return gameVars[who][what]; } 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] = 0; gameOver(); } if (who == "levels") updateLevelGraphically(what, gameVars[who][what]) } 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; }; var lIImplCache = 0, partyIndex = 0; function implicitVreplace(text) { if (gameVars.player.actionN != lIImplCache) { lIImplCache = gameVars.player.actionN; partyIndex = randomInteger(0, gameVars.parties.length - 1); } text = "" + text.replace("%randPartyName%", gameVars.parties[partyIndex].name) + ""; text = "" + text.replace("%randPartySecretary%", gameVars.parties[partyIndex].secretary) + ""; text = text.replace("%playerName%", gameVars.player.name); return text; } 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(implicitVreplace(currentTag.textContent)) + "
"; break; case "title": if (p.parentNode.nodeName == "choice") continue; html += "

" + implicitVreplace(currentTag.textContent) + "


"; break; case "section": html += brLine(implicitVreplace(currentTag.textContent)) + "
"; 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" && /* deprecated currentTag.parentNode.attributes["atLeastOne"].value == "true"*/ 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" && currentTag.parentNode.nodeName != "effects") { 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;"; var c = currentTag.parentNode.parentNode, ic = 0; while (c != null) { c = c.previousElementSibling; if (c != null && c.nodeName == "choice") ic++; } effCompare(currentTag.parentNode, ic); try { var t = currentTag.parentNode.parentNode.getElementsByTagName("title")[0]; v = implicitVreplace(t.textContent); } catch (e) { } html += "   "; 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;"; var c = currentTag.parentNode.parentNode, ic = 0; while (c != null) { //console.log(c); c = c.previousElementSibling; if (c != null && c.nodeName == "choice") ic++; } effCompare(currentTag.parentNode, ic); try { var t = currentTag.parentNode.parentNode.getElementsByTagName("title")[0]; v = implicitVreplace(t.textContent); } catch (e) { } html += "   "; continue; } if (currentTag.attributes["question"].value == "next") { Q(); continue; } var child = window.cats.getElementsByTagName("questions")[0].childNodes; for (var i = 0; i < child.length; i++) { if (child[i].nodeName == "question") continue; if (child[i].getElementsByTagName("name")[0].textContent == 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;"; var c = currentTag.parentNode.parentNode, ic = 0; while (c != null) { c = c.previousElementSibling; if (c != null && c.nodeName == "choice") ic++; } effCompare(currentTag.parentNode, ic); try { var t = currentTag.parentNode.parentNode.getElementsByTagName("title")[0]; v = implicitVreplace(t.textContent); } catch (e) { } html += "   "; 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; } function upGrData() { virus = gameVars["virus"]; $("#vName").html(virus["title"]); //$("#vDesc").html(virus["description"]); var data = google.visualization.arrayToDataTable([ ['Categoria', 'Persone'], ['Sani', virus["people"]["healthy"]], ['Infetti', virus["people"]["infected"]], ['Immuni', virus["people"]["immune"]], ['Morti', virus["people"]["dead"]] ]); var options = { title: 'CTS', backgroundColor: { fill: 'transparent' }, color: "white", chartArea: { // leave room for y-axis labels width: '94%' }, legend: { position: 'top' }, width: '100%' }; chart.draw(data, options); } function gameOver() { audio.src = "music/end.mp3"; audio.play(); $("#beginSect2").fadeIn(); $("#mq2").html(`
        
    Game Over
        
        
        
        
    Araldia
    
    © 2021
    Mattia Mascarello
    Diego Scanavino
    Giacomo Roggero
    
    Musica: RoleMusic
    
`); } var i = 0, childrenEl = null, tHtml = "", chart = null, tick = 0, chart = null; parser = new DOMParser(); xmlDoc = parser.parseFromString(text, "text/xml"); var cats = xmlDoc.children[0]; initParties(); var values = cats.getElementsByTagName("values")[0]; tHtml = ` `; for (i = 0; i < values.childElementCount; i++) { childrenEl = values.children[i]; //console.log(childrenEl); tHtml += ``; } //console.log(tHtml); tHtml += "
` + childrenEl.getElementsByTagName("title")[0].textContent + `   ` + childrenEl.getElementsByTagName("default")[0].textContent + `
"; $("#levels").hide(); $("#musicBox").fadeIn(); document.getElementById("levels").innerHTML = tHtml; $("#begin").click(function () { set("levels", "health", null, 50); set("levels", "economy", null, 50); set("levels", "consensus", null, 50); set("levels", "security", null, 50); set("difficulty", $("#dfficultySelect").val()); 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 () { $("#levels").fadeIn(); $("#beginSect").fadeOut(); var data = google.visualization.arrayToDataTable([ ['Categoria', 'Persone'], ['Sani', 6000000], ['Infetti', 0], ['Immuni', 0], ['Morti', 0] ]); var options = { title: 'CTS', backgroundColor: { fill: 'transparent' }, color: "white", chartArea: { // leave room for y-axis labels width: '94%' }, legend: { position: 'top' }, width: '100%' }; chart = new google.visualization.PieChart(document.getElementById('cts')); chart.draw(data, options); initRandVirus(function () { $("#countV").fadeIn(); audio.src = "music/Rolemusic - The White Frame.mp3"; audio.volume = 0; Q(); setTimeout(function () { audio.volume = 1 audio.play() }, 3000); }); }, cats.getElementsByTagName("misc")[0].getElementsByTagName("welcomeMessage")[0].attributes["duration"].value * 1000); }) var randMap = {}; function randEl(category) { if (!randMap[category]) randMap[category] = [0]; if (randMap[category].length == cats.getElementsByTagName(category)[0].childElementCount) randMap[category] = [0]; if (tick % 5 == 0) return cats.getElementsByTagName(category)[0].children[0]; var imx = imx = randomInteger(0, cats.getElementsByTagName(category)[0].childElementCount - 1); while (randMap[category].indexOf(imx) > -1) { imx = randomInteger(0, cats.getElementsByTagName(category)[0].childElementCount - 1); } randMap[category].push(imx); return cats.getElementsByTagName(category)[0].children[imx]; } 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, i = 0) { var res = cTagRecursive(h); deadlyError = true; if (res === false) return Q(); var tml = "






" + res; $("#gameField").hide(); $("#gameField").html(tml); $("#gameField").show(); gameVars.player.actionN++; } function Q() { lastVircb = null; var h = randEl("questions"); if (tick % 5 == 0 && tick != 0) { $("#gameField").hide(); gameVars["virus"]["infoboxLastI"]++; $("#virusBeginOhNo").show(); var infoId = gameVars["virus"]["infoboxLastI"]; var el = cats.getElementsByTagName("viruses")[virusIndex]; try { var text = el.getElementsByTagName("infoboxes")[0].children[infoId].textContent; if (text == undefined) throw "un"; } catch (e) { $("gameField").show(); $("virusBeginOhNo").hide(); } $("#virusBeginOhNo").html("






Bollettino


" + text + "

"); } setField(h); /*if(tick%5==0 && tick!=0) */ calcvir(); tick++; } window.onerror = function (message, source, lineno, colno, error) { $("#errorData").html(`
Message `+ message + `
Source `+ source + `
Line and column `+ lineno + `:` + colno + `
Error `+ error + `
`); $("#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, ic = 0) { try { lastEff.forEach(function (a) { //([a,ic]); if (a["iC"] != ic) return false; set(a["who"], a["what"], a["delta"], a["to"]); }); } catch (e) { //console.log(e); } lastEff = []; if (cat == "question" && name == "next") { Q(); } else { 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(); } } function updateLevelGraphically(id, val) { var prog = $("#" + id).children(".mtW").children("progress"); prog.attr("value", val); $("#" + id).children("td").last().html(val); prog.removeClass("is-success"); prog.removeClass("is-warning"); prog.removeClass("is-error"); if (val > 50) { prog.addClass("is-success"); } else if (val > 25) { prog.addClass("is-warning"); } else { prog.addClass("is-error"); } } function initParties() { gameVars["parties"] = []; var pts = xmlDoc.getElementsByTagName("parties")[0].children; for (var i = 0; i < pts.length; i++) { gameVars["parties"].push({ "name": pts[i].getElementsByTagName("title")[0].textContent, "secretary": pts[i].getElementsByTagName("secretary")[0].textContent, "description": pts[i].getElementsByTagName("description")[0].textContent, "motto": pts[i].getElementsByTagName("motto")[0].textContent }); } } function effCompare(effectsTag, iC) { console.log({ "Tag": effectsTag, "iC": iC }); var elL = effectsTag.getElementsByTagName("set"); for (var i = 0; i < elL.length; i++) { var delta = null, to = null; if (elL[i].hasAttribute("delta")) delta = elL[i].attributes["delta"].value; if (elL[i].hasAttribute("to")) delta = elL[i].attributes["to"].value; lastEff.push({ "iC": iC, "who": elL[i].attributes["who"].value, "what": elL[i].attributes["what"].value, "delta": delta, "to": to }); } } function calcvir() { /* Algoritmo */ var peopleTot = 6000000, dd = 0, inffactor = (0.20 + 0.01 * randomInteger(0, 10)); var inf = gameVars["virus"]["people"]["infected"]; gameVars["virus"]["people"]["infected"] = inf * (gameVars["virus"]["Rt"] + 1); gameVars["virus"]["people"]["infected"] -= inf; gameVars["virus"]["people"]["immune"] += inf; dd = Math.floor(inf * gameVars["virus"]["lethality"] / 100); gameVars["virus"]["people"]["dead"] += dd; gameVars["virus"]["people"]["immune"] -= dd; // simulate time to healing, infection by immunes gameVars["virus"]["people"]["infected"] += gameVars["virus"]["people"]["immune"] * inffactor; gameVars["virus"]["people"]["healthy"] = peopleTot - (gameVars["virus"]["people"]["infected"] + gameVars["virus"]["people"]["dead"] + gameVars["virus"]["people"]["immune"]); if (gameVars["virus"]["people"]["healthy"] < 0) gameVars["virus"]["people"]["healthy"] = 0; if (gameVars["virus"]["people"]["infected"] < 0) gameVars["virus"]["people"]["infected"] = 0; if (gameVars["virus"]["people"]["dead"] < 0) gameVars["virus"]["people"]["dead"] = 0; if (gameVars["virus"]["people"]["immune"] < 0) gameVars["virus"]["people"]["immune"] = 0; upGrData(); } var lastVircb = null, virusIndex = 0; function initRandVirus(cb) { lastVircb = cb; setTimeout(function () { audio.src = "music/improvisation.mp3"; audio.volume = 1; audio.play() 10 }, 1000); var li = window.cats.getElementsByTagName("viruses")[0].children; var Iindex = randomInteger(0, li.length - 1); virusIndex = Iindex; var el = li[Iindex]; var title = el.getElementsByTagName("title")[0].textContent; var text = el.getElementsByTagName("infoboxes")[0].children[0].textContent; var nT = randomInteger(100, 500); gameVars["virus"] = {}; gameVars["virus"]["people"] = {}; gameVars["virus"]["people"]["dead"] = 0; gameVars["virus"]["people"]["immune"] = 0; gameVars["virus"]["people"]["infected"] = randomInteger(30, 200); gameVars["virus"]["people"]["healthy"] = 6000000; gameVars["virus"]["title"] = title; gameVars["virus"]["infoboxLastI"] = 0; // deprecated gameVars["virus"]["stepsBeforeShowDashboard"] = randomInteger(3, 10); gameVars["virus"]["dashboardShown"] = false; gameVars["virus"]["Iindex"] = Iindex; gameVars["virus"]["lethality"] = parseFloat(el.getElementsByTagName("levels")[0].getElementsByTagName("lethality")[0].textContent); gameVars["virus"]["Rt"] = parseFloat(el.getElementsByTagName("levels")[0].getElementsByTagName("Rt")[0].textContent) $("#gameField").hide(); $("#virusBeginOhNo").html("






" + title + "


" + text + "

"); } $(document).delegate(".okVir", "click", function () { $(this).closest(".closableVir").fadeOut(); if (lastVircb) lastVircb(); });