$(document).ready(function() { // Preparing sounds var stallAlert = new Audio("./sounds/stall.mp3"); var altitudeAlert = new Audio("./sounds/altitude.mp3"); var missileAlert = new Audio("./sounds/missile.mp3"); // Appending steps in degrees and current direction for (let i = 0; i < 3; i ++) { $(".direction").append(`
N
`); separateDirections(); $(".direction").append(`
NE
`); separateDirections(); $(".direction").append(`
E
`); separateDirections(); $(".direction").append(`
SE
`); separateDirections(); $(".direction").append(`
S
`); separateDirections(); $(".direction").append(`
SW
`); separateDirections(); $(".direction").append(`
W
`); separateDirections(); $(".direction").append(`
NW
`); separateDirections(); } // Separate letters function separateDirections() { for (let i = 0; i < 3; i++) { $(".direction").append(`
 
`); } } // Append horizontal Pitch lines for (let i = 18; i > 0; i--) { $(".pitch").append(`
${i * 5}
${i * 5}
`) } $(".pitch").append(`
${0}
${0}
`) for (let i = 1; i <= 18; i++) { $(".pitch").append(`
${i * -5}
${i * -5}
`) } // Handle HUD movement function ChangeYaw(value) { let deg = value; let px = (deg * 2.22) - 273; $(".direction").css("left", `${px}px`); $("#heading-text").text(deg); } ChangeYaw(0); function ChangeRoll(value) { let deg = value * -1; let contr = value; $(".pitchroll").css("transform", `translate(-50%, -50%) rotate(${deg}deg)`); $(".pitch-number").css("transform", `rotate(${contr}deg)`); } ChangeRoll(0); function ChangePitch(value) { let deg = value; let px = (deg * 13.65) - 1115; $(".pitch").css("margin-top", `${px}px`); } ChangePitch(0); window.addEventListener('message', function (event) { if (event.data.action == "show") { $("#main").fadeIn(); $("#main").removeClass("red"); $("#main").removeClass("orange"); $("#main").removeClass("green"); $("#main").removeClass("blue"); $("#main").addClass(event.data.color); } if (event.data.action == "hide") { $("#main").fadeOut(); } if (event.data.action == "update") { $("#speed").text(event.data.speed); $("#alt").text(event.data.altitude); let alt = event.data.rawAlt; alt = (285 - ((alt / 2400) * 285)); $(".altitude-pointer").css("margin-top", `${alt}px`); if (event.data.gear == "STATIC") { $(".gear-info").hide(); } else { $(".gear-info").show(); $("#gear-state").text(event.data.gear); } if (event.data.hasWeapon == true) { if (event.data.weaponType == "missiles") { $(".gun-crosshair").hide(); $(".missile-info").show(); if (event.data.hasLock == false) { $(".missile-target").hide(); $(".missile-dist").hide(); } else { $(".missile-target").show(); $(".missile-dist").show(); $(".missile-dist").text(event.data.targetDist); } $(".missile-info").css("left", `${event.data.x_target * 100}%`); $(".missile-info").css("top", `${event.data.y_target * 100}%`); } else if (event.data.weaponType == "machinegun") { $(".missile-info").hide(); $(".gun-crosshair").show(); $(".gun-crosshair").css("left", `${event.data.x_target * 100}%`); $(".gun-crosshair").css("top", `${event.data.y_target * 100}%`); } } else { $(".missile-info").hide(); $(".gun-crosshair").hide(); } if (event.data.hasVtol == false) { $(".vtol-info").hide(); } else { $(".vtol-info").show(); $("#vtol-state").text(event.data.vtol); } ChangeYaw(event.data.yaw); ChangeRoll(event.data.roll); ChangePitch(event.data.pitch); } if (event.data.action == "stall") { if (event.data.mode == "start") { stallAlert.play(); stallAlert.loop = true; $(".stall-warn").show(); } else if (event.data.mode == "end") { stallAlert.pause(); stallAlert.currentTime = 0; $(".stall-warn").hide(); } } if (event.data.action == "altitude") { if (event.data.mode == "start") { altitudeAlert.play(); altitudeAlert.loop = true; $(".alt-warn").show(); } else if (event.data.mode == "end") { altitudeAlert.pause(); altitudeAlert.currentTime = 0; $(".alt-warn").hide(); } } if (event.data.action == "missile") { if (event.data.mode == "start") { missileAlert.play(); missileAlert.loop = true; $(".missile-warn").show(); } else if (event.data.mode == "end") { missileAlert.pause(); missileAlert.currentTime = 0; $(".missile-warn").hide(); } } }); });