SocialCreditScoreGame/assets/js/main.js

193 lines
5.9 KiB
JavaScript
Raw Normal View History

2021-10-09 16:57:51 +02:00
var audio, audiostate;
var d = Math.random();
// choose random bgm to start
2021-10-09 16:57:51 +02:00
if (d < 0.50) {
audiostate = "mix";
}
else {
audiostate = "maobgm";
}
//handles bgm files to create a continous bgm
2021-10-09 16:57:51 +02:00
function audiosegm() {
if (audiostate != "mix") {
audio = new Audio('../assets/music/main.mp3');
2021-10-09 16:57:51 +02:00
audiostate = "mix";
}
else {
audio = new Audio('../assets/music/maobgm.mp3');
2021-10-09 16:57:51 +02:00
audiostate = "maobgm";
}
audio.play();
audio.onended = audiosegm;
}
// plays a sound effect
2021-10-09 16:57:51 +02:00
function sef(filename) {
new Audio("../assets/music/" + filename + ".mp3").play();
2021-10-09 16:57:51 +02:00
}
$("#playBegin").click(function () {
try {// this might fail, expecially on safari
2021-10-09 19:34:40 +02:00
document.getElementsByTagName("html")[0].requestFullscreen();
} catch (e) { }
2021-10-09 16:57:51 +02:00
audiosegm();
$(this).fadeOut();
});
var data = {}, cQuestion = {}, indexeslist = [], indexesProgress = 0, total = 100;
var file = "data_en.yaml";
switch(getParam("lang")) {
case "it":
file = "data_it.yaml";
break;
}
2024-04-23 10:09:39 +02:00
$.ajax({
type: 'GET',
url: "../"+file,
2024-04-23 10:09:39 +02:00
complete: function (r) {
data = jsyaml.load(r.responseText);
total = data["initialScore"];
document.title = data["title"];
$("#gameTitle").html(data["title"]);
$(".playAgain").html(data["playAgain"]);
$("#looseTitle").html(data["loose"]["title"]);
$("#looseDescription").html(data["loose"]["description"]);
$("#winTitle").html(data["win"]["title"]);
$("#winSubtitle").html(data["win"]["subtitle"]);
$("#winDescription").html(data["win"]["description"]);
$("#scoreDisplay").html(data["socialCreditScore"]+": " + total);
2024-04-23 10:09:39 +02:00
for (var i = 0; i < data["questions"].length; i++) {
indexeslist.push(i);
}
$("#progress").html("1 "+data["of"]+" " + indexeslist.length);
2024-04-23 10:09:39 +02:00
shuffle(indexeslist);
displayQuestion();
2021-10-09 16:57:51 +02:00
}
});
function displayQuestion() {
$("html, body").scrollTop(0);
if (total < 1) {
audio.pause();
audio = new Audio('../assets/music/anthem.mp3');
2021-10-09 16:57:51 +02:00
audio.play();
$("#loose").show();
}
else {
if (total < 2000) sef("pullup");
2021-10-09 16:57:51 +02:00
var index = 0;
2021-11-19 09:04:27 +01:00
// sends comrad Dwayne to help (or calls him back)
if (total > 4000) { // comes when low score
2021-11-19 09:04:27 +01:00
$("#rock-approves").hide();
$("#rock-disapproves").hide();
2021-11-19 09:04:27 +01:00
}
else {
2021-11-19 09:04:27 +01:00
$("#rock-approves-video").get(0).currentTime = 0;
$("#rock-approves").show();
}
2021-11-19 09:04:27 +01:00
// **************************************
2021-11-20 03:51:09 +01:00
// sends comrad baby cha-cha to help (or calls him back)
if (indexesProgress != 0) // comes when first question
$("#bbchacha").hide();
2021-11-20 03:51:09 +01:00
else
$("#bbchacha").show();
// **************************************
2021-11-19 09:04:27 +01:00
2021-10-09 16:57:51 +02:00
if (indexesProgress < indexeslist.length) {
index = indexeslist[indexesProgress];
indexesProgress++;
}
else {
audio.pause();
sef("applause");
audio = new Audio('../assets/music/march_vol_charged.mp3');
audio.play();
$("#win").show();
2021-10-09 16:57:51 +02:00
}
cQuestion = data["questions"][index];
$("[data-ans=1]").html(data["questions"][index]["answers"][0]["text"]);
$("[data-ans=2]").html(data["questions"][index]["answers"][1]["text"]);
if (data["questions"][index]["answers"][2]) $("[data-ans=3]").html(data["questions"][index]["answers"][2]["text"]);
else $("[data-ans=3]").html("");
if (data["questions"][index]["answers"][3]) $("[data-ans=4]").html(data["questions"][index]["answers"][3]["text"]);
else $("[data-ans=4]").html("");
$("#questionTitle").html(data["questions"][index]["title"]);
}
}
2021-11-19 09:04:27 +01:00
// comrad Dwaynes feedback *************************
$(".ans").mouseenter(function () {
try {
var res = cQuestion["answers"][$(this).attr("data-ans") - 1]["effect"];
2021-11-19 09:04:27 +01:00
if ((total <= 4000) && (res < 0)) {
$("#rock-approves").hide();
$("#rock-disapproves").show();
$("#rock-disapproves-video").get(0).currentTime = 0;
$("#rock-disapproves-video").get(0).play();
}
} catch (e) {
if (e instanceof TypeError) return true;
else throw e;
2021-11-19 09:04:27 +01:00
}
});
$(".ans").mouseleave(function () {
try {
var res = cQuestion["answers"][$(this).attr("data-ans") - 1]["effect"];
2021-11-19 09:04:27 +01:00
if ((total <= 4000) && (res < 0)) {
$("#rock-disapproves").hide();
$("#rock-approves").show();
$("#rock-approves-video").get(0).currentTime = 0;
$("#rock-approves-video").get(0).play();
}
} catch (e) {
if (e instanceof TypeError) return true;
else throw e;
2021-11-19 09:04:27 +01:00
}
});
// ***8888888************************************8
2021-10-09 16:57:51 +02:00
$(".ans").click(function () {
$("#progress").html(indexesProgress + 1 + " " + data["of"] + " " + indexeslist.length);
2021-10-09 16:57:51 +02:00
var res = cQuestion["answers"][$(this).attr("data-ans") - 1]["effect"];
total += res;
$("#scoreDisplay").html(data["socialCreditScore"] + ": " + total);
2021-10-09 16:57:51 +02:00
var d = Math.random();
if (d < 0.10) {
d = Math.random();
if (d < 0.30) {
$("#mao").fadeIn();
$("#mao").fadeOut();
sef("mao");
}
else if (d < 0.60) {
$("#xi").fadeIn();
$("#xi").fadeOut();
}
else {
$("#square").fadeIn();
$("#square").fadeOut();
}
}
if (res < 0) {
$("#wrong").fadeIn();
sef("wrong");
if (res < -1000) {
sef("boo");
}
$("#wrong").fadeOut();
}
else {
sef("correct");
$("#correct").fadeIn();
if (res > 1000) {
sef("applause");
}
}
displayQuestion();
$("#correct").fadeOut();
2021-10-09 19:34:40 +02:00
});
$('.fadeOutVideo').on('ended', function () {
$(this).parent().fadeOut();
2021-11-21 18:38:27 +01:00
})