This repository has been archived on 2020-04-21. You can view files and clone it, but cannot push or open issues or pull requests.
ludum-dare-46/docs/assets/js/player/lifeFunctions.js

116 lines
2.6 KiB
JavaScript

let breath = 180;
let fullBreathTimer = 0;
let noBreathTimer = 0;
let pressure = 50;
let heartBeat = false;
var breathMode = {
inhale: 0,
exhale: 1
};
let currentBreathMode = breathMode.exhale;
let eyeDryness = 0;
let justBlinked = false;
function updateLife() {
if(keyDown[k.x]) {
if (breath === 0) {
soundAssets.inhale.play();
currentBreathMode = breathMode.inhale;
}
else if (breath === constants.lifeFuncs.breath.fullBreath) {
soundAssets.exhale.play();
currentBreathMode = breathMode.exhale;
}
}
breathe();
if(keyPress[k.c]) {
heartbeat();
}
pressure-=0.1;
if(pressure<=0){
pressure = 0;
}
eyeDryness++;
if(keyPress[k.z]) {
blink();
}
};
function breathe() {
switch (currentBreathMode) {
case breathMode.inhale:
breath += 1;
if(breath >= constants.lifeFuncs.breath.fullBreath) {
breath = constants.lifeFuncs.breath.fullBreath;
fullBreathTimer++;
if(fullBreathTimer >= 600) {
//cough and lose breath or something
handleCough();
}
} else {
fullBreathTimer = 0;
}
break;
case breathMode.exhale:
breath -= 2;
if(breath <= 0) {
breath = 0;
noBreathTimer++;
if(noBreathTimer >= 300) {
//cough and lose breath or something
handleCough();
}
} else {
noBreathTimer = 0;
}
break;
}
};
// Tracker for if we are currently coughing
let _nextCoughAllowedTime = 0;
/**
* Handle player coughing without spamming the sound buffer
*/
function handleCough() {
// Only cough if we are past the cough time
if (getCurrentTimeSeconds() >= _nextCoughAllowedTime) {
console.log("[LifeFunctions] Coughing")
// Set the next allowed cough time
_nextCoughAllowedTime = getCurrentTimeSeconds() + constants.lifeFuncs.breath.cough_interval_secs;
// Play the cough audio
soundAssets.cough.play();
}
}
function heartbeat() {
pressure+=10;
if(pressure>=100){
pressure = 100;
}
heartBeat = true;
// Play the heartbeat sound
soundAssets.heartbeat.play();
};
function blink() {
eyeDryness = 0;
justBlinked = true;
}