diff --git a/audio/Click.wav b/audio/Click.wav deleted file mode 100644 index b4804be..0000000 Binary files a/audio/Click.wav and /dev/null differ diff --git a/audio/asteroid-hit-1.wav b/audio/asteroid-hit-1.wav new file mode 100644 index 0000000..49f917a Binary files /dev/null and b/audio/asteroid-hit-1.wav differ diff --git a/audio/asteroid-hit-2.wav b/audio/asteroid-hit-2.wav new file mode 100644 index 0000000..fcec3d7 Binary files /dev/null and b/audio/asteroid-hit-2.wav differ diff --git a/audio/asteroid-hit-3.wav b/audio/asteroid-hit-3.wav new file mode 100644 index 0000000..d94271a Binary files /dev/null and b/audio/asteroid-hit-3.wav differ diff --git a/audio/battlefield.wav b/audio/battlefield.wav new file mode 100644 index 0000000..4fe64a7 Binary files /dev/null and b/audio/battlefield.wav differ diff --git a/audio/beast-attack.wav b/audio/beast-attack.wav new file mode 100644 index 0000000..1d6290f Binary files /dev/null and b/audio/beast-attack.wav differ diff --git a/audio/beggar.wav b/audio/beggar.wav new file mode 100644 index 0000000..1c200b7 Binary files /dev/null and b/audio/beggar.wav differ diff --git a/audio/blast.wav b/audio/blast.wav new file mode 100644 index 0000000..5d1efb4 Binary files /dev/null and b/audio/blast.wav differ diff --git a/audio/borehole.wav b/audio/borehole.wav new file mode 100644 index 0000000..29eba64 Binary files /dev/null and b/audio/borehole.wav differ diff --git a/audio/build-armoury.wav b/audio/build-armoury.wav new file mode 100644 index 0000000..8b41a05 Binary files /dev/null and b/audio/build-armoury.wav differ diff --git a/audio/build-cart.wav b/audio/build-cart.wav new file mode 100644 index 0000000..3e1516b Binary files /dev/null and b/audio/build-cart.wav differ diff --git a/audio/build-hut.wav b/audio/build-hut.wav new file mode 100644 index 0000000..e011b33 Binary files /dev/null and b/audio/build-hut.wav differ diff --git a/audio/build-lodge.wav b/audio/build-lodge.wav new file mode 100644 index 0000000..18cfcb3 Binary files /dev/null and b/audio/build-lodge.wav differ diff --git a/audio/build-smokehouse.wav b/audio/build-smokehouse.wav new file mode 100644 index 0000000..ba48635 Binary files /dev/null and b/audio/build-smokehouse.wav differ diff --git a/audio/build-steelworks.wav b/audio/build-steelworks.wav new file mode 100644 index 0000000..4fa4345 Binary files /dev/null and b/audio/build-steelworks.wav differ diff --git a/audio/build-tannery.wav b/audio/build-tannery.wav new file mode 100644 index 0000000..4a56741 Binary files /dev/null and b/audio/build-tannery.wav differ diff --git a/audio/build-trading-post.wav b/audio/build-trading-post.wav new file mode 100644 index 0000000..7149e3c Binary files /dev/null and b/audio/build-trading-post.wav differ diff --git a/audio/build-trap.wav b/audio/build-trap.wav new file mode 100644 index 0000000..cf8ad73 Binary files /dev/null and b/audio/build-trap.wav differ diff --git a/audio/buy-alien-alloy.wav b/audio/buy-alien-alloy.wav new file mode 100644 index 0000000..a32bec6 Binary files /dev/null and b/audio/buy-alien-alloy.wav differ diff --git a/audio/buy-bayonet.wav b/audio/buy-bayonet.wav new file mode 100644 index 0000000..13014e3 Binary files /dev/null and b/audio/buy-bayonet.wav differ diff --git a/audio/buy-bolas.wav b/audio/buy-bolas.wav new file mode 100644 index 0000000..ade3c17 Binary files /dev/null and b/audio/buy-bolas.wav differ diff --git a/audio/buy-bullets.wav b/audio/buy-bullets.wav new file mode 100644 index 0000000..cdf3c81 Binary files /dev/null and b/audio/buy-bullets.wav differ diff --git a/audio/buy-coal.wav b/audio/buy-coal.wav new file mode 100644 index 0000000..7b86742 Binary files /dev/null and b/audio/buy-coal.wav differ diff --git a/audio/buy-compass.wav b/audio/buy-compass.wav new file mode 100644 index 0000000..3767e50 Binary files /dev/null and b/audio/buy-compass.wav differ diff --git a/audio/buy-energy-cell.wav b/audio/buy-energy-cell.wav new file mode 100644 index 0000000..0b53d08 Binary files /dev/null and b/audio/buy-energy-cell.wav differ diff --git a/audio/buy-grenade.wav b/audio/buy-grenade.wav new file mode 100644 index 0000000..8bc7967 Binary files /dev/null and b/audio/buy-grenade.wav differ diff --git a/audio/buy-iron.wav b/audio/buy-iron.wav new file mode 100644 index 0000000..0e05f2c Binary files /dev/null and b/audio/buy-iron.wav differ diff --git a/audio/buy-scales.wav b/audio/buy-scales.wav new file mode 100644 index 0000000..5097ea7 Binary files /dev/null and b/audio/buy-scales.wav differ diff --git a/audio/buy-steel.wav b/audio/buy-steel.wav new file mode 100644 index 0000000..93ddb6f Binary files /dev/null and b/audio/buy-steel.wav differ diff --git a/audio/buy-teeth.wav b/audio/buy-teeth.wav new file mode 100644 index 0000000..0c9d18c Binary files /dev/null and b/audio/buy-teeth.wav differ diff --git a/audio/cave.wav b/audio/cave.wav new file mode 100644 index 0000000..784cc4a Binary files /dev/null and b/audio/cave.wav differ diff --git a/audio/check-traps.wav b/audio/check-traps.wav new file mode 100644 index 0000000..7062684 Binary files /dev/null and b/audio/check-traps.wav differ diff --git a/audio/city.wav b/audio/city.wav new file mode 100644 index 0000000..0958f6b Binary files /dev/null and b/audio/city.wav differ diff --git a/audio/coalmine.wav b/audio/coalmine.wav new file mode 100644 index 0000000..f124d5f Binary files /dev/null and b/audio/coalmine.wav differ diff --git a/audio/craft-bone-spear.wav b/audio/craft-bone-spear.wav new file mode 100644 index 0000000..da295a0 Binary files /dev/null and b/audio/craft-bone-spear.wav differ diff --git a/audio/craft-cask.wav b/audio/craft-cask.wav new file mode 100644 index 0000000..f234dfb Binary files /dev/null and b/audio/craft-cask.wav differ diff --git a/audio/craft-convoy.wav b/audio/craft-convoy.wav new file mode 100644 index 0000000..e627668 Binary files /dev/null and b/audio/craft-convoy.wav differ diff --git a/audio/craft-iron-armour.wav b/audio/craft-iron-armour.wav new file mode 100644 index 0000000..e68f410 Binary files /dev/null and b/audio/craft-iron-armour.wav differ diff --git a/audio/craft-leather-armour.wav b/audio/craft-leather-armour.wav new file mode 100644 index 0000000..cbfc04f Binary files /dev/null and b/audio/craft-leather-armour.wav differ diff --git a/audio/craft-rifle.wav b/audio/craft-rifle.wav new file mode 100644 index 0000000..d976264 Binary files /dev/null and b/audio/craft-rifle.wav differ diff --git a/audio/craft-rucksack.wav b/audio/craft-rucksack.wav new file mode 100644 index 0000000..981ebd7 Binary files /dev/null and b/audio/craft-rucksack.wav differ diff --git a/audio/craft-steel-armour.wav b/audio/craft-steel-armour.wav new file mode 100644 index 0000000..c6dfcb4 Binary files /dev/null and b/audio/craft-steel-armour.wav differ diff --git a/audio/craft-steel-sword.wav b/audio/craft-steel-sword.wav new file mode 100644 index 0000000..de7268a Binary files /dev/null and b/audio/craft-steel-sword.wav differ diff --git a/audio/craft-torch.wav b/audio/craft-torch.wav new file mode 100644 index 0000000..fd97eba Binary files /dev/null and b/audio/craft-torch.wav differ diff --git a/audio/craft-wagon.wav b/audio/craft-wagon.wav new file mode 100644 index 0000000..845942c Binary files /dev/null and b/audio/craft-wagon.wav differ diff --git a/audio/craft-water-tank.wav b/audio/craft-water-tank.wav new file mode 100644 index 0000000..e4fd1b9 Binary files /dev/null and b/audio/craft-water-tank.wav differ diff --git a/audio/craft-waterskin.wav b/audio/craft-waterskin.wav new file mode 100644 index 0000000..39d4606 Binary files /dev/null and b/audio/craft-waterskin.wav differ diff --git a/audio/crashed-ship.wav b/audio/crashed-ship.wav new file mode 100644 index 0000000..5f7b199 Binary files /dev/null and b/audio/crashed-ship.wav differ diff --git a/audio/destroyed-village.wav b/audio/destroyed-village.wav new file mode 100644 index 0000000..f105b9e Binary files /dev/null and b/audio/destroyed-village.wav differ diff --git a/audio/eat-meat.wav b/audio/eat-meat.wav new file mode 100644 index 0000000..a46e882 Binary files /dev/null and b/audio/eat-meat.wav differ diff --git a/audio/embark.wav b/audio/embark.wav new file mode 100644 index 0000000..56676cd Binary files /dev/null and b/audio/embark.wav differ diff --git a/audio/enemy-hit.wav b/audio/enemy-hit.wav new file mode 100644 index 0000000..4873f63 Binary files /dev/null and b/audio/enemy-hit.wav differ diff --git a/audio/ferral-terror.wav b/audio/ferral-terror.wav new file mode 100644 index 0000000..54eadc8 Binary files /dev/null and b/audio/ferral-terror.wav differ diff --git a/audio/friendly-outpost.wav b/audio/friendly-outpost.wav new file mode 100644 index 0000000..06f0e67 Binary files /dev/null and b/audio/friendly-outpost.wav differ diff --git a/audio/gather-wood.wav b/audio/gather-wood.wav new file mode 100644 index 0000000..43732fd Binary files /dev/null and b/audio/gather-wood.wav differ diff --git a/audio/gaunt-man.wav b/audio/gaunt-man.wav new file mode 100644 index 0000000..3854c64 Binary files /dev/null and b/audio/gaunt-man.wav differ diff --git a/audio/house.wav b/audio/house.wav new file mode 100644 index 0000000..23429ff Binary files /dev/null and b/audio/house.wav differ diff --git a/audio/huge-lizard.wav b/audio/huge-lizard.wav new file mode 100644 index 0000000..6f4c2b5 Binary files /dev/null and b/audio/huge-lizard.wav differ diff --git a/audio/hut-fire.wav b/audio/hut-fire.wav new file mode 100644 index 0000000..52a6840 Binary files /dev/null and b/audio/hut-fire.wav differ diff --git a/audio/ironmine.wav b/audio/ironmine.wav new file mode 100644 index 0000000..a26d846 Binary files /dev/null and b/audio/ironmine.wav differ diff --git a/audio/lift-off.wav b/audio/lift-off.wav new file mode 100644 index 0000000..4745d5a Binary files /dev/null and b/audio/lift-off.wav differ diff --git a/audio/lob.wav b/audio/lob.wav new file mode 100644 index 0000000..4646726 Binary files /dev/null and b/audio/lob.wav differ diff --git a/audio/lose-fight.wav b/audio/lose-fight.wav new file mode 100644 index 0000000..1321534 Binary files /dev/null and b/audio/lose-fight.wav differ diff --git a/audio/man-eater.wav b/audio/man-eater.wav new file mode 100644 index 0000000..a12e491 Binary files /dev/null and b/audio/man-eater.wav differ diff --git a/audio/mysterious-wanderer.wav b/audio/mysterious-wanderer.wav new file mode 100644 index 0000000..163dedb Binary files /dev/null and b/audio/mysterious-wanderer.wav differ diff --git a/audio/noises-inside.wav b/audio/noises-inside.wav new file mode 100644 index 0000000..ab15aaa Binary files /dev/null and b/audio/noises-inside.wav differ diff --git a/audio/noises-outside.wav b/audio/noises-outside.wav new file mode 100644 index 0000000..deca1df Binary files /dev/null and b/audio/noises-outside.wav differ diff --git a/audio/nomad.wav b/audio/nomad.wav new file mode 100644 index 0000000..b16a604 Binary files /dev/null and b/audio/nomad.wav differ diff --git a/audio/plague.wav b/audio/plague.wav new file mode 100644 index 0000000..1853c67 Binary files /dev/null and b/audio/plague.wav differ diff --git a/audio/punch.wav b/audio/punch.wav new file mode 100644 index 0000000..95b2804 Binary files /dev/null and b/audio/punch.wav differ diff --git a/audio/reinforce-hull.wav b/audio/reinforce-hull.wav new file mode 100644 index 0000000..155e914 Binary files /dev/null and b/audio/reinforce-hull.wav differ diff --git a/audio/ruined-trap.wav b/audio/ruined-trap.wav new file mode 100644 index 0000000..2c0ec0a Binary files /dev/null and b/audio/ruined-trap.wav differ diff --git a/audio/scavenger.wav b/audio/scavenger.wav new file mode 100644 index 0000000..eec8235 Binary files /dev/null and b/audio/scavenger.wav differ diff --git a/audio/scout.wav b/audio/scout.wav new file mode 100644 index 0000000..b9b7945 Binary files /dev/null and b/audio/scout.wav differ diff --git a/audio/shady-builder.wav b/audio/shady-builder.wav new file mode 100644 index 0000000..b77ebcc Binary files /dev/null and b/audio/shady-builder.wav differ diff --git a/audio/ship.wav b/audio/ship.wav index b51da6d..cb5cefc 100644 Binary files a/audio/ship.wav and b/audio/ship.wav differ diff --git a/audio/shivering-man.wav b/audio/shivering-man.wav new file mode 100644 index 0000000..57710e8 Binary files /dev/null and b/audio/shivering-man.wav differ diff --git a/audio/shoot.wav b/audio/shoot.wav new file mode 100644 index 0000000..935f801 Binary files /dev/null and b/audio/shoot.wav differ diff --git a/audio/sick-man.wav b/audio/sick-man.wav new file mode 100644 index 0000000..f47c787 Binary files /dev/null and b/audio/sick-man.wav differ diff --git a/audio/sickness.wav b/audio/sickness.wav new file mode 100644 index 0000000..34dd60d Binary files /dev/null and b/audio/sickness.wav differ diff --git a/audio/slash.wav b/audio/slash.wav new file mode 100644 index 0000000..46a8c1a Binary files /dev/null and b/audio/slash.wav differ diff --git a/audio/snarling-beast.wav b/audio/snarling-beast.wav new file mode 100644 index 0000000..5693484 Binary files /dev/null and b/audio/snarling-beast.wav differ diff --git a/audio/sniper.wav b/audio/sniper.wav new file mode 100644 index 0000000..ddec004 Binary files /dev/null and b/audio/sniper.wav differ diff --git a/audio/soldier-attack.wav b/audio/soldier-attack.wav new file mode 100644 index 0000000..6fd11e6 Binary files /dev/null and b/audio/soldier-attack.wav differ diff --git a/audio/soldier.wav b/audio/soldier.wav new file mode 100644 index 0000000..5b152bb Binary files /dev/null and b/audio/soldier.wav differ diff --git a/audio/stab.wav b/audio/stab.wav new file mode 100644 index 0000000..ab26b74 Binary files /dev/null and b/audio/stab.wav differ diff --git a/audio/strange-bird.wav b/audio/strange-bird.wav new file mode 100644 index 0000000..ee231e5 Binary files /dev/null and b/audio/strange-bird.wav differ diff --git a/audio/sulphurmine.wav b/audio/sulphurmine.wav new file mode 100644 index 0000000..4cb8c85 Binary files /dev/null and b/audio/sulphurmine.wav differ diff --git a/audio/swamp.wav b/audio/swamp.wav new file mode 100644 index 0000000..aa21cc9 Binary files /dev/null and b/audio/swamp.wav differ diff --git a/audio/swing.wav b/audio/swing.wav new file mode 100644 index 0000000..b58ac27 Binary files /dev/null and b/audio/swing.wav differ diff --git a/audio/tangle.wav b/audio/tangle.wav new file mode 100644 index 0000000..cf72f97 Binary files /dev/null and b/audio/tangle.wav differ diff --git a/audio/thief.wav b/audio/thief.wav new file mode 100644 index 0000000..a910e25 Binary files /dev/null and b/audio/thief.wav differ diff --git a/audio/thrust.wav b/audio/thrust.wav new file mode 100644 index 0000000..9a746a0 Binary files /dev/null and b/audio/thrust.wav differ diff --git a/audio/town.wav b/audio/town.wav new file mode 100644 index 0000000..a04f37e Binary files /dev/null and b/audio/town.wav differ diff --git a/audio/trigger-event.wav b/audio/trigger-event.wav new file mode 100644 index 0000000..08e21e3 Binary files /dev/null and b/audio/trigger-event.wav differ diff --git a/audio/trigger-fight.wav b/audio/trigger-fight.wav new file mode 100644 index 0000000..e151955 Binary files /dev/null and b/audio/trigger-fight.wav differ diff --git a/audio/upgrade-engine.wav b/audio/upgrade-engine.wav new file mode 100644 index 0000000..da9bb39 Binary files /dev/null and b/audio/upgrade-engine.wav differ diff --git a/audio/use-meds.wav b/audio/use-meds.wav new file mode 100644 index 0000000..027440d Binary files /dev/null and b/audio/use-meds.wav differ diff --git a/audio/wandering-master.wav b/audio/wandering-master.wav new file mode 100644 index 0000000..7468ea2 Binary files /dev/null and b/audio/wandering-master.wav differ diff --git a/audio/win-fight.wav b/audio/win-fight.wav new file mode 100644 index 0000000..b7b3fb8 Binary files /dev/null and b/audio/win-fight.wav differ diff --git a/script/audio.js b/script/audio.js index 3a04dff..65587bd 100644 --- a/script/audio.js +++ b/script/audio.js @@ -2,6 +2,7 @@ * Module that takes care of audio playback */ var AudioEngine = { + canPlayAudio: false, AUDIO_BUFFER_CACHE: {}, audioContext: null, master: null, @@ -9,94 +10,116 @@ var AudioEngine = { // Tracks for playing music and sound effects // 0 - Background music // 1 - Background music - // 2 - Sound effects + // 2 - Event music // 3 - Sound effects tracks: null, currentBackgroundChannel: 0, currentTrack: null, init: function(options) { // for legacy browsers - this.audioContext = new (window.AudioContext || window.webkitAudioContext); + AudioEngine.audioContext = new (window.AudioContext || window.webkitAudioContext); + audioLog('starting audio engine'); + console.log(AudioEngine.audioContext); + audioLog('state: ' + AudioEngine.audioContext.state); + if (AudioEngine.audioContext.state === 'suspended') { + AudioEngine.audioContext.resume().then(function () { + AudioEngine.createChannels(); + AudioEngine.canPlayAudio = true; + }); + } else { + AudioEngine.createChannels(); + } + }, + createChannels() { // create master - this.master = this.audioContext.createGain(); - this.master.connect(this.audioContext.destination); + AudioEngine.master = AudioEngine.audioContext.createGain(); + AudioEngine.master.connect(AudioEngine.audioContext.destination); // create 4 tracks to output to master - this.tracks = []; + AudioEngine.tracks = []; for (var i = 0; i < 4; i++) { - this.tracks[i] = this.audioContext.createGain(); - this.tracks[i].connect(this.master); + AudioEngine.tracks[i] = AudioEngine.audioContext.createGain(); + AudioEngine.tracks[i].connect(AudioEngine.master); } - }, + }, options: {}, // Nothing for now _playSound: function(buffer) { - var source = this.audioContext.createBufferSource(); + if (!AudioEngine.canPlayAudio) return; + + var source = AudioEngine.audioContext.createBufferSource(); source.buffer = buffer; - source.connect(this.tracks[1]); - source.start(0); + source.connect(AudioEngine.tracks[1]); + source.start(AudioEngine.audioContext.currentTime); }, _fadeTrack: function(buffer) { - var newTrack = this.audioContext.createBufferSource(); + if (!AudioEngine.canPlayAudio) return; + + var newTrack = AudioEngine.audioContext.createBufferSource(); newTrack.buffer = buffer; newTrack.loop = true; // figure out which background track to start on // in order to do crossfade var nextBackgroundChannel; - if (this.currentBackgroundChannel === 0) { + if (AudioEngine.currentBackgroundChannel === 0) { nextBackgroundChannel = 1; } else { nextBackgroundChannel = 0; } // fade in new track - var fadeTime = this.audioContext.currentTime + 2.0; - newTrack.connect(this.tracks[nextBackgroundChannel]); + var fadeTime = AudioEngine.audioContext.currentTime + 2.0; + newTrack.connect(AudioEngine.tracks[nextBackgroundChannel]); newTrack.start(0); - this.tracks[nextBackgroundChannel].gain.setValueAtTime(0.0, this.audioContext.currentTime); - this.tracks[nextBackgroundChannel].gain.linearRampToValueAtTime(1.0, fadeTime); + AudioEngine.tracks[nextBackgroundChannel].gain.setValueAtTime(0.0, AudioEngine.audioContext.currentTime); + AudioEngine.tracks[nextBackgroundChannel].gain.linearRampToValueAtTime(.1, fadeTime); // fade out old track - this.tracks[this.currentBackgroundChannel].gain.linearRampToValueAtTime(0.0, fadeTime); - if (this.currentTrack) { - this.currentTrack.stop(fadeTime + 0.3); // make sure fade has completed + AudioEngine.tracks[AudioEngine.currentBackgroundChannel].gain.linearRampToValueAtTime(0.0, fadeTime); + if (AudioEngine.currentTrack) { + AudioEngine.currentTrack.stop(fadeTime + 0.3); // make sure fade has completed } // switch background track - this.currentBackgroundChannel = nextBackgroundChannel; - this.currentTrack = newTrack; + AudioEngine.currentBackgroundChannel = nextBackgroundChannel; + AudioEngine.currentTrack = newTrack; }, changeMusic: function(src) { - var self = this; - this.loadAudioFile(src) + AudioEngine.loadAudioFile(src) .then(function (buffer) { - self._fadeTrack(buffer); + AudioEngine._fadeTrack(buffer); }); + audioLog('change music: ' + src); + audioLog('audio engine status: ' + AudioEngine.audioContext.state); }, playSound: function(src) { - var self = this; - this.loadAudioFile(src) + AudioEngine.loadAudioFile(src) .then(function (buffer) { - self._playSound(buffer); + AudioEngine._playSound(buffer); }); + audioLog('play sound: ' + src); + audioLog('audio engine status: ' + AudioEngine.audioContext.state); }, loadAudioFile(src) { - var self = this; - if (self.AUDIO_BUFFER_CACHE[src]) { + if (AudioEngine.AUDIO_BUFFER_CACHE[src]) { return new Promise(function (resolve, reject) { - resolve(self.AUDIO_BUFFER_CACHE[src]); + resolve(AudioEngine.AUDIO_BUFFER_CACHE[src]); }); } else { var request = new Request(src); return fetch(request).then(function(response) { return response.arrayBuffer(); }).then(function(buffer) { - return self.audioContext.decodeAudioData(buffer, function(decodedData) { - self.AUDIO_BUFFER_CACHE[src] = decodedData; - return self.AUDIO_BUFFER_CACHE[src]; + return AudioEngine.audioContext.decodeAudioData(buffer, function(decodedData) { + AudioEngine.AUDIO_BUFFER_CACHE[src] = decodedData; + return AudioEngine.AUDIO_BUFFER_CACHE[src]; }); }); } } }; + +function audioLog(message) { + console.log('%c' + message, 'background: #222; color: #bada55'); +} diff --git a/script/engine.js b/script/engine.js index 961074f..0b19cea 100644 --- a/script/engine.js +++ b/script/engine.js @@ -73,7 +73,7 @@ options: { state: null, debug: true, - log: true, + log: false, dropbox: false, doubleTime: true }, diff --git a/script/events.js b/script/events.js index 9e111aa..e00ebec 100644 --- a/script/events.js +++ b/script/events.js @@ -11,7 +11,20 @@ var Events = { _LEAVE_COOLDOWN: 1, STUN_DURATION: 4000, BLINK_INTERVAL: false, - + currentMusic: 0, + MUSIC: { + 0: '/audio/combat.wav', + 1: '/audio/event.wav' + }, + SOUNDS: { + 'trigger-fight': '/audio/trigger-fight.wav', + 'trigger-event': '/audio/trigger-event.wav', + 'enemy-hit': '/audio/enemy-hit.wav', + 'eat-meat': '/audio/eat-meat.wav', + 'use-meds': '/audio/use-meds.wav', + 'win-fight': '/audio/win-fight.wav', + 'lose-fight': '/audio/lose-fight.wav' + }, init: function(options) { this.options = $.extend( this.options, @@ -135,7 +148,7 @@ var Events = { } $('
').addClass('clear').appendTo(healBtns); Events.setHeal(healBtns); - + // Set up the enemy attack timer Events._enemyAttackTimer = Engine.setInterval(Events.enemyAttack, scene.attackDelay * 1000); }, @@ -340,13 +353,17 @@ var Events = { eatMeat: function(btn) { Events.doHeal('cured meat', World.meatHeal(), btn); + AudioEngine.playSound(Events.SOUNDS['eat-meat']); }, useMeds: function(btn) { Events.doHeal('medicine', World.medsHeal(), btn); + AudioEngine.playSound(Events.SOUNDS['use-meds']); }, useWeapon: function(btn) { + console.log('%cuse weapon: ', 'background: #222; color: #bada55'); + console.log(btn); if(Events.activeEvent()) { var weaponName = btn.attr('id').substring(7).replace('-', ' '); var weapon = World.Weapons[weaponName]; @@ -416,8 +433,9 @@ var Events = { } } } - + var attackFn = weapon.type == 'ranged' ? Events.animateRanged : Events.animateMelee; + AudioEngine.playSound(weapon.audio); attackFn($('#wanderer'), dmg, function() { if($('#enemy').data('hp') <= 0 && !Events.won) { // Success! @@ -443,6 +461,9 @@ var Events = { Events.setHeal(); } Events.updateFighterDiv(enemy); + + // play hit sound + AudioEngine.playSound(Events.SOUNDS['enemy-hit']); } } else { if(dmg == 'stun') { @@ -519,6 +540,8 @@ var Events = { clearTimeout(Events._enemyAttackTimer); Events.endEvent(); World.die(); + + AudioEngine.playSound(Events.SOUNDS['lose-fight']); } }); } @@ -536,6 +559,7 @@ var Events = { return; } Events.endFight(); + AudioEngine.playSound(Events.SOUNDS['win-fight']); $('#enemy').animate({opacity: 0}, 300, 'linear', function() { Engine.setTimeout(function() { var scene = Events.activeEvent().scenes[Events.activeScene]; @@ -1018,6 +1042,9 @@ var Events = { } else { var r = Math.floor(Math.random()*(possibleEvents.length)); Events.startEvent(possibleEvents[r]); + console.log('event', possibleEvents[r].audio); + AudioEngine.playSound(Events.SOUNDS['trigger-event']); + AudioEngine.changeMusic(possibleEvents[r].audio); } } @@ -1035,6 +1062,11 @@ var Events = { var r = Math.floor(Math.random()*(possibleFights.length)); Events.startEvent(possibleFights[r]); + + // play audio only when fight is possible + if (possibleFights.length > 0) { + AudioEngine.playSound(Events.SOUNDS['trigger-fight']); + } }, activeEvent: function() { diff --git a/script/events/encounters.js b/script/events/encounters.js index c5e165f..9de0e86 100644 --- a/script/events/encounters.js +++ b/script/events/encounters.js @@ -38,7 +38,8 @@ Events.Encounters = [ }, notification: _('a snarling beast leaps out of the underbrush') } - } + }, + audio: '/audio/snarling-beast.wav' }, { /* Gaunt Man */ title: _('A Gaunt Man'), @@ -75,7 +76,8 @@ Events.Encounters = [ }, notification: _('a gaunt man approaches, a crazed look in his eye') } - } + }, + audio: '/audio/gaunt-man.wav' }, { /* Strange Bird */ title: _('A Strange Bird'), @@ -112,7 +114,8 @@ Events.Encounters = [ }, notification: _('a strange looking bird speeds across the plains') } - } + }, + audio: '/audio/strange-bird.wav' }, /* Tier 2*/ { /* Shivering Man */ @@ -155,7 +158,8 @@ Events.Encounters = [ }, notification: _('a shivering man approaches and attacks with surprising strength') } - } + }, + audio: '/audio/shivering-man.wav' }, { /* Man-eater */ title: _('A Man-Eater'), @@ -192,7 +196,8 @@ Events.Encounters = [ }, notification: _('a large creature attacks, claws freshly bloodied') } - } + }, + audio: '/audio/man-eater.wav' }, { /* Scavenger */ title: _('A Scavenger'), @@ -234,7 +239,8 @@ Events.Encounters = [ }, notification: _('a scavenger draws close, hoping for an easy score') } - } + }, + audio: '/audio/scavenger.wav' }, { /* Huge Lizard */ title: _('A Huge Lizard'), @@ -271,7 +277,8 @@ Events.Encounters = [ }, notification: _('the grass thrashes wildly as a huge lizard pushes through') } - } + }, + audio: '/audio/huge-lizard.wav' }, /* Tier 3*/ { /* Feral Terror */ @@ -309,7 +316,8 @@ Events.Encounters = [ }, notification: _('a beast, wilder than imagining, erupts out of the foliage') } - } + }, + audio: '/audio/feral-terror.wav' }, { /* Soldier */ title: _('A Soldier'), @@ -352,7 +360,8 @@ Events.Encounters = [ }, notification: _('a soldier opens fire from across the desert') } - } + }, + audio: '/audio/soldier.wav' }, { /* Sniper */ title: _('A Sniper'), @@ -395,6 +404,7 @@ Events.Encounters = [ }, notification: _('a shot rings out, from somewhere in the long grass') } - } + }, + audio: '/audio/sniper.wav' } ]; diff --git a/script/events/global.js b/script/events/global.js index ff6e662..d65afc1 100644 --- a/script/events/global.js +++ b/script/events/global.js @@ -61,6 +61,7 @@ Events.Global = [ } } } - } + }, + audio: '/audio/thief.wav' } ]; diff --git a/script/events/outside.js b/script/events/outside.js index 1a6e763..5239ce2 100644 --- a/script/events/outside.js +++ b/script/events/outside.js @@ -63,7 +63,8 @@ Events.Outside = [ } } } - } + }, + audio: '/audio/ruined-trap.wav' }, { /* Hut fire */ title: _('Fire'), @@ -89,7 +90,8 @@ Events.Outside = [ } } } - } + }, + audio: '/audio/hut-fire.wav' }, { /* Sickness */ title: _('Sickness'), @@ -146,7 +148,8 @@ Events.Outside = [ } } } - } + }, + audio: '/audio/sickness.wav' }, { /* Plague */ @@ -217,7 +220,8 @@ Events.Outside = [ } } } - } + }, + audio: '/audio/plague.wav' }, { /* Beast attack */ @@ -251,7 +255,8 @@ Events.Outside = [ } } } - } + }, + audio: '/audio/beast-attack.wav' }, { /* Soldier attack */ @@ -285,7 +290,8 @@ Events.Outside = [ } } } - } + }, + audio: '/audio/soldier-attack.wav' } ]; diff --git a/script/events/room.js b/script/events/room.js index 1e70a3e..a9878b3 100644 --- a/script/events/room.js +++ b/script/events/room.js @@ -47,7 +47,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/nomad.wav' }, { /* Noises Outside -- gain wood/fur */ title: _('Noises'), @@ -98,7 +99,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/noises-outside.wav' }, { /* Noises Inside -- trade wood for better good */ title: _('Noises'), @@ -184,7 +186,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/noises-inside.wav' }, { /* The Beggar -- trade fur for better good */ title: _('The Beggar'), @@ -255,7 +258,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/beggar.wav' }, {/* The Shady Builder */ title: _('The Shady Builder'), @@ -311,7 +315,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/shady-builder.wav' }, { /* Mysterious Wanderer -- wood gambling */ @@ -390,7 +395,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/mysterious-wanderer.wav' }, { /* Mysterious Wanderer -- fur gambling */ @@ -469,7 +475,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/mysterious-wanderer.wav' }, { /* The Scout -- Map Merchant */ @@ -511,7 +518,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/scout.wav' }, { /* The Wandering Master */ @@ -584,7 +592,8 @@ Events.Room = [ } } } - } + }, + audio: '/audio/wandering-master.wav' }, { /* The Sick Man */ @@ -672,6 +681,7 @@ Events.Room = [ } } } - } + }, + audio: '/audio/sick-man.wav' } ]; diff --git a/script/events/setpieces.js b/script/events/setpieces.js index 9f4012b..522a52c 100644 --- a/script/events/setpieces.js +++ b/script/events/setpieces.js @@ -28,7 +28,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/friendly-outpost.wav' }, "swamp": { /* Swamp */ title: _('A Murky Swamp'), @@ -85,7 +86,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/swamp.wav' }, "cave": { /* Cave */ title: _('A Damp Cave'), @@ -516,7 +518,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/cave.wav' }, "town": { /* Town */ title: _('A Deserted Town'), @@ -1233,7 +1236,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/town.wav' }, "city": { /* City */ title: _('A Ruined City'), @@ -2928,7 +2932,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/city.wav' }, "house": { /* Abandoned House */ title: _('An Old House'), @@ -3045,7 +3050,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/house.wav' }, "battlefield": { /* Discovering an old battlefield */ title: _('A Forgotten Battlefield'), @@ -3098,7 +3104,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/battlefield.wav' }, "borehole": { /* Admiring a huge borehole */ title: _('A Huge Borehole'), @@ -3127,7 +3134,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/borehole.wav' }, "ship": { /* Finding a way off this rock */ title: _('A Crashed Ship'), @@ -3150,7 +3158,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/crashed-ship.wav' }, "sulphurmine": { /* Clearing the Sulphur Mine */ title: _('The Sulphur Mine'), @@ -3299,7 +3308,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/sulphurmine.wav' }, "coalmine": { /* Clearing the Coal Mine */ title: _('The Coal Mine'), @@ -3441,7 +3451,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/coalmine.wav' }, "ironmine": { /* Clearing the Iron Mine */ title: _('The Iron Mine'), @@ -3517,7 +3528,8 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/ironmine.wav' }, "cache": { /* Cache - contains some of supplies from previous game */ @@ -3569,6 +3581,7 @@ Events.Setpieces = { } } } - } + }, + audio: '/audio/destroyed-village.wav' } }; diff --git a/script/room.js b/script/room.js index 66e5aa6..2f0706a 100644 --- a/script/room.js +++ b/script/room.js @@ -28,12 +28,13 @@ var Room = { 'build-smokehouse': '/audio/build-smokehouse.wav', 'build-workshop': '/audio/build-workshop.wav', 'build-steelworks': '/audio/build-steelworks.wav', + 'build-armoury': '/audio/build-armoury.wav', 'craft-torch': '/audio/craft-torch.wav', 'craft-waterskin': '/audio/craft-waterskin.wav', 'craft-bone-spear': '/audio/craft-bone-spear.wav', 'craft-rucksack': '/audio/craft-rucksack.wav', - 'craft-leather-armour': '/audio/craft-leather-armour.wav', 'craft-cask': '/audio/craft-cask.wav', + 'craft-leather-armour': '/audio/craft-leather-armour.wav', 'craft-wagon': '/audio/craft-wagon.wav', 'craft-iron-armour': '/audio/craft-iron-armour.wav', 'craft-iron-sword': '/audio/craft-iron-sword.wav', @@ -41,13 +42,16 @@ var Room = { 'craft-convoy': '/audio/craft-convoy.wav', 'craft-steel-armour': '/audio/craft-steel-armour.wav', 'craft-steel-sword': '/audio/craft-steel-sword.wav', + 'craft-rifle': '/audio/craft-rifle.wav', 'buy-scales': '/audio/buy-scales.wav', 'buy-teeth': '/audio/buy-teeth.wav', 'buy-compass': '/audio/buy-compass.wav', 'buy-iron': '/audio/buy-iron.wav', 'buy-steel': '/audio/buy-steel.wav', 'buy-bolas': '/audio/buy-bolas.wav', - 'buy-alien-alloy': '/audio/buy-alient-alloy.wav', + 'buy-bullets': '/audio/buy-bullets.wav', + 'buy-bayonet': '/audio/buy-bayonet.wav', + 'buy-alien-alloy': '/audio/buy-alien-alloy.wav', 'buy-energy-cell': '/audio/buy-energy-cell.wav', 'buy-grenade': '/audio/buy-grenade.wav', 'buy-coal': '/audio/buy-coal.wav', diff --git a/script/world.js b/script/world.js index 5468ca2..718f4f5 100644 --- a/script/world.js +++ b/script/world.js @@ -55,59 +55,68 @@ var World = { verb: _('punch'), type: 'unarmed', damage: 1, - cooldown: 2 + cooldown: 2, + audio: '/audio/punch.wav' }, 'bone spear': { verb: _('stab'), type: 'melee', damage: 2, - cooldown: 2 + cooldown: 2, + audio: '/audio/stab.wav' }, 'iron sword': { verb: _('swing'), type: 'melee', damage: 4, - cooldown: 2 + cooldown: 2, + audio: '/audio/swing.wav' }, 'steel sword': { verb: _('slash'), type: 'melee', damage: 6, - cooldown: 2 + cooldown: 2, + audio: '/audio/slash.wav' }, 'bayonet': { verb: _('thrust'), type: 'melee', damage: 8, - cooldown: 2 + cooldown: 2, + audio: '/audio/thrust.wav' }, 'rifle': { verb: _('shoot'), type: 'ranged', damage: 5, cooldown: 1, - cost: { 'bullets': 1 } + cost: { 'bullets': 1 }, + audio: '/audio/shoot.wav' }, 'laser rifle': { verb: _('blast'), type: 'ranged', damage: 8, cooldown: 1, - cost: { 'energy cell': 1 } + cost: { 'energy cell': 1 }, + audio: '/audio/blast.wav' }, 'grenade': { verb: _('lob'), type: 'ranged', damage: 15, cooldown: 5, - cost: { 'grenade': 1 } + cost: { 'grenade': 1 }, + audio: '/audio/lob.wav' }, 'bolas': { verb: _('tangle'), type: 'ranged', damage: 'stun', cooldown: 15, - cost: { 'bolas': 1 } + cost: { 'bolas': 1 }, + audio: '/audio/tangle.wav' } },