diff --git a/index.html b/index.html index 001e27a9a..463709888 100644 --- a/index.html +++ b/index.html @@ -25,6 +25,8 @@ + + diff --git a/script/engine.js b/script/engine.js index 032e976aa..f3a37a690 100644 --- a/script/engine.js +++ b/script/engine.js @@ -17,48 +17,48 @@ var Engine = { Perks: { 'boxer': { - desc: 'punches do more damage', - notify: 'learned to throw punches with purpose' + desc: _('punches do more damage'), + notify: _('learned to throw punches with purpose') }, 'martial artist': { - desc: 'punches do even more damage.', - notify: 'learned to fight quite effectively without weapons' + desc: _('punches do even more damage.'), + notify: _('learned to fight quite effectively without weapons') }, 'unarmed master': { - desc: 'punch twice as fast, and with even more force', - notify: 'learned to strike faster without weapons' + desc: _('punch twice as fast, and with even more force'), + notify: _('learned to strike faster without weapons') }, 'barbarian': { - desc: 'melee weapons deal more damage', - notify: 'learned to swing weapons with force' + desc: _('melee weapons deal more damage'), + notify: _('learned to swing weapons with force') }, 'slow metabolism': { - desc: 'go twice as far without eating', - notify: 'learned how to ignore the hunger' + desc: _('go twice as far without eating'), + notify: _('learned how to ignore the hunger') }, 'desert rat': { - desc: 'go twice as far without drinking', - notify: 'learned to love the dry air' + desc: _('go twice as far without drinking'), + notify: _('learned to love the dry air') }, 'evasive': { - desc: 'dodge attacks more effectively', - notify: "learned to be where they're not" + desc: _('dodge attacks more effectively'), + notify: _("learned to be where they're not") }, 'precise': { - desc: 'land blows more often', - notify: 'learned to predict their movement' + desc: _('land blows more often'), + notify: _('learned to predict their movement') }, 'scout': { - desc: 'see farther', - notify: 'learned to look ahead' + desc: _('see farther'), + notify: _('learned to look ahead') }, 'stealthy': { - desc: 'better avoid conflict in the wild', - notify: 'learned how not to be seen' + desc: _('better avoid conflict in the wild'), + notify: _('learned how not to be seen') }, 'gastronome': { - desc: 'restore more health when eating', - notify: 'learned to make the most of food' + desc: _('restore more health when eating'), + notify: _('learned to make the most of food') } }, @@ -100,31 +100,31 @@ var Engine = { $('') .addClass('lightsOff menuBtn') - .text('lights off.') + .text(_('lights off.')) .click(Engine.turnLightsOff) .appendTo(menu); $('') .addClass('menuBtn') - .text('restart.') + .text(_('restart.')) .click(Engine.confirmDelete) .appendTo(menu); $('') .addClass('menuBtn') - .text('share.') + .text(_('share.')) .click(Engine.share) .appendTo(menu); $('') .addClass('menuBtn') - .text('save.') + .text(_('save.')) .click(Engine.exportImport) .appendTo(menu); $('') .addClass('menuBtn') - .text('app store.') + .text(_('app store.')) .click(function() { window.open('https://itunes.apple.com/us/app/a-dark-room/id736683061'); }) .appendTo(menu); @@ -202,38 +202,38 @@ var Engine = { exportImport: function() { Events.startEvent({ - title: 'Export / Import', + title: _('Export / Import'), scenes: { start: { - text: ['export or import save data, for backing up', - 'or migrating computers'], + text: [_('export or import save data, for backing up'), + _('or migrating computers')], buttons: { 'export': { - text: 'export', + text: _('export'), onChoose: Engine.export64 }, 'import': { - text: 'import', + text: _('import'), nextScene: {1: 'confirm'}, }, 'cancel': { - text: 'cancel', + text: _('cancel'), nextScene: 'end' } } }, 'confirm': { - text: ['are you sure?', - 'if the code is invalid, all data will be lost.', - 'this is irreversible.'], + text: [_('are you sure?'), + _('if the code is invalid, all data will be lost.'), + _('this is irreversible.')], buttons: { 'yes': { - text: 'yes', + text: _('yes'), nextScene: 'end', onChoose: Engine.import64 }, 'no': { - text: 'no', + text: _('no'), nextScene: 'end' } } @@ -249,14 +249,14 @@ var Engine = { string64 = string64.replace(/\./g, ''); string64 = string64.replace(/\n/g, ''); Events.startEvent({ - title: 'Export', + title: _('Export'), scenes: { start: { - text: ['save this.'], + text: [_('save this.')], textarea: string64, buttons: { 'done': { - text: 'got it', + text: _('got it'), nextScene: 'end' } } @@ -266,7 +266,7 @@ var Engine = { }, import64: function() { - var string64 = prompt("put the save code here.",""); + var string64 = prompt(_("put the save code here."),""); string64 = string64.replace(/\s/g, ''); string64 = string64.replace(/\./g, ''); string64 = string64.replace(/\n/g, ''); @@ -283,18 +283,18 @@ var Engine = { confirmDelete: function() { Events.startEvent({ - title: 'Restart?', + title: _('Restart?'), scenes: { start: { - text: ['restart the game?'], + text: [_('restart the game?')], buttons: { 'yes': { - text: 'yes', + text: _('yes'), nextScene: 'end', onChoose: Engine.deleteSave }, 'no': { - text: 'no', + text: _('no'), nextScene: 'end' } } @@ -317,41 +317,41 @@ var Engine = { share: function() { Events.startEvent({ - title: 'Share', + title: _('Share'), scenes: { start: { - text: ['bring your friends.'], + text: [_('bring your friends.')], buttons: { 'facebook': { - text: 'facebook', + text: _('facebook'), nextScene: 'end', onChoose: function() { window.open('https://www.facebook.com/sharer/sharer.php?u=' + Engine.SITE_URL, 'sharer', 'width=626,height=436,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no'); } }, 'google': { - text:'google+', + text:_('google+'), nextScene: 'end', onChoose: function() { window.open('https://plus.google.com/share?url=' + Engine.SITE_URL, 'sharer', 'width=480,height=436,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no'); } }, 'twitter': { - text: 'twitter', + text: _('twitter'), onChoose: function() { window.open('https://twitter.com/intent/tweet?text=A%20Dark%20Room&url=' + Engine.SITE_URL, 'sharer', 'width=660,height=260,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no'); }, nextScene: 'end' }, 'reddit': { - text: 'reddit', + text: _('reddit'), onChoose: function() { window.open('http://www.reddit.com/submit?url=' + Engine.SITE_URL, 'sharer', 'width=960,height=700,location=no,menubar=no,resizable=no,scrollbars=yes,status=no,toolbar=no'); }, nextScene: 'end' }, 'close': { - text: 'close', + text: _('close'), nextScene: 'end' } } @@ -385,16 +385,16 @@ var Engine = { if (darkCss == null) { $('head').append(''); Engine.turnLightsOff; - $('.lightsOff').text('lights on.'); + $('.lightsOff').text(_('lights on.')); } else if (darkCss.disabled) { darkCss.disabled = false; - $('.lightsOff').text('lights on.'); + $('.lightsOff').text(_('lights on.')); } else { $("#darkenLights").attr("disabled", "disabled"); darkCss.disabled = true; - $('.lightsOff').text('lights off.'); + $('.lightsOff').text(_('lights off.')); } }, diff --git a/script/events.js b/script/events.js index 239f40658..682cfd47a 100644 --- a/script/events.js +++ b/script/events.js @@ -123,7 +123,7 @@ var Events = { var btn = new Button.Button({ id: 'eat', - text: 'eat meat', + text: _('eat meat'), cooldown: cooldown, click: Events.eatMeat, cost: { 'cured meat': 1 } @@ -143,7 +143,7 @@ var Events = { var btn = new Button.Button({ id: 'meds', - text: 'use meds', + text: _('use meds'), cooldown: cooldown, click: Events.useMeds, cost: { 'medicine': 1 } @@ -453,7 +453,7 @@ var Events = { var btns = $('#buttons', Events.eventPanel()); desc.empty(); btns.empty(); - $('
').text('the ' + scene.enemy + (scene.plural ? ' are' : ' is') + ' dead.').appendTo(desc); + $('
').text(_("the {0} is dead.",scene.enemy)).appendTo(desc); Events.drawLoot(scene.loot); @@ -471,7 +471,7 @@ var Events = { Events.endEvent(); } }, - text: 'leave' + text: _('leave') }).appendTo(btns); Events.createEatMeatButton(0).appendTo(btns); @@ -808,7 +808,7 @@ var Events = { Engine.keyLock = false; // Force refocus on the body. I hate you, IE. $('body').focus(); - }); + }); }, handleStateUpdates: function(e){ diff --git a/script/events/encounters.js b/script/events/encounters.js index adcf892c5..fe750c88d 100644 --- a/script/events/encounters.js +++ b/script/events/encounters.js @@ -4,7 +4,7 @@ Events.Encounters = [ /* Tier 1 */ { /* Snarling Beast */ - title: 'A Snarling Beast', + title: _('A Snarling Beast'), isAvailable: function() { return World.getDistance() <= 10 && World.getTerrain() == World.TILE.FOREST; }, @@ -34,12 +34,12 @@ Events.Encounters = [ chance: 0.8 } }, - notification: 'a snarling beast leaps out of the underbrush' + notification: _('a snarling beast leaps out of the underbrush') } } }, { /* Gaunt Man */ - title: 'A Gaunt Man', + title: _('A Gaunt Man'), isAvailable: function() { return World.getDistance() <= 10 && World.getTerrain() == World.TILE.BARRENS; }, @@ -69,12 +69,12 @@ Events.Encounters = [ chance: 0.5 } }, - notification: 'a gaunt man approaches, a crazed look in his eye' + notification: _('a gaunt man approaches, a crazed look in his eye') } } }, { /* Strange Bird */ - title: 'A Strange Bird', + title: _('A Strange Bird'), isAvailable: function() { return World.getDistance() <= 10 && World.getTerrain() == World.TILE.FIELD; }, @@ -104,13 +104,13 @@ Events.Encounters = [ chance: 0.8 } }, - notification: 'a strange looking bird speeds across the plains' + notification: _('a strange looking bird speeds across the plains') } } }, /* Tier 2*/ { /* Shivering Man */ - title: 'A Shivering Man', + title: _('A Shivering Man'), isAvailable: function() { return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.BARRENS; }, @@ -145,12 +145,12 @@ Events.Encounters = [ chance: 0.7 } }, - notification: 'a shivering man approaches and attacks with surprising strength' + notification: _('a shivering man approaches and attacks with surprising strength') } } }, { /* Man-eater */ - title: 'A Man-Eater', + title: _('A Man-Eater'), isAvailable: function() { return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.FOREST; }, @@ -180,12 +180,12 @@ Events.Encounters = [ chance: 0.8 } }, - notification: 'a large creature attacks, claws freshly bloodied' + notification: _('a large creature attacks, claws freshly bloodied') } } }, { /* Scavenger */ - title: 'A Scavenger', + title: _('A Scavenger'), isAvailable: function() { return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.BARRENS; }, @@ -220,12 +220,12 @@ Events.Encounters = [ chance: 0.1 } }, - notification: 'a scavenger draws close, hoping for an easy score' + notification: _('a scavenger draws close, hoping for an easy score') } } }, { /* Huge Lizard */ - title: 'A Huge Lizard', + title: _('A Huge Lizard'), isAvailable: function() { return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.FIELD; }, @@ -255,13 +255,13 @@ Events.Encounters = [ chance: 0.8 } }, - notification: 'the grass thrashes wildly as a huge lizard pushes through' + notification: _('the grass thrashes wildly as a huge lizard pushes through') } } }, /* Tier 3*/ { /* Feral Terror */ - title: 'A Feral Terror', + title: _('A Feral Terror'), isAvailable: function() { return World.getDistance() > 20 && World.getTerrain() == World.TILE.FOREST; }, @@ -291,12 +291,12 @@ Events.Encounters = [ chance: 0.8 } }, - notification: 'a beast, wilder than imagining, erupts out of the foliage' + notification: _('a beast, wilder than imagining, erupts out of the foliage') } } }, { /* Soldier */ - title: 'A Soldier', + title: _('A Soldier'), isAvailable: function() { return World.getDistance() > 20 && World.getTerrain() == World.TILE.BARRENS; }, @@ -332,12 +332,12 @@ Events.Encounters = [ chance: 0.1 } }, - notification: 'a soldier opens fire from across the desert' + notification: _('a soldier opens fire from across the desert') } } }, { /* Sniper */ - title: 'A Sniper', + title: _('A Sniper'), isAvailable: function() { return World.getDistance() > 20 && World.getTerrain() == World.TILE.FIELD; }, @@ -373,7 +373,7 @@ Events.Encounters = [ chance: 0.1 } }, - notification: 'a shot rings out, from somewhere in the long grass' + notification: _('a shot rings out, from somewhere in the long grass'à } } } diff --git a/script/events/global.js b/script/events/global.js index 85ca99ab4..04037d127 100644 --- a/script/events/global.js +++ b/script/events/global.js @@ -3,33 +3,33 @@ **/ Events.Global = [ { /* The Thief */ - title: 'The Thief', + title: _('The Thief'), isAvailable: function() { return (Engine.activeModule == Room || Engine.activeModule == Outside) && $SM.get('game.thieves') == 1; }, scenes: { 'start': { text: [ - 'the villagers haul a filthy man out of the store room.', - "say his folk have been skimming the supplies.", - 'say he should be strung up as an example.' + _('the villagers haul a filthy man out of the store room.'), + _("say his folk have been skimming the supplies."), + _('say he should be strung up as an example.') ], - notification: 'a thief is caught', + notification: _('a thief is caught'), buttons: { 'kill': { - text: 'hang him', + text: _('hang him'), nextScene: {1: 'hang'} }, 'spare': { - text: 'spare him', + text: _('spare him'), nextScene: {1: 'spare'} } } }, 'hang': { text: [ - 'the villagers hang the thief high in front of the store room.', - 'the point is made. in the next few days, the missing supplies are returned.' + _('the villagers hang the thief high in front of the store room.'), + _('the point is made. in the next few days, the missing supplies are returned.') ], onLoad: function() { $SM.set('game.thieves', 2); @@ -38,15 +38,15 @@ Events.Global = [ }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, 'spare': { text: [ - "the man says he's grateful. says he won't come around any more.", - "shares what he knows about sneaking before he goes." + _("the man says he's grateful. says he won't come around any more."), + _("shares what he knows about sneaking before he goes.") ], onLoad: function() { $SM.set('game.thieves', 2); @@ -55,7 +55,7 @@ Events.Global = [ }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } diff --git a/script/events/outside.js b/script/events/outside.js index 97dd7dfcd..c9ee27e33 100644 --- a/script/events/outside.js +++ b/script/events/outside.js @@ -3,15 +3,15 @@ **/ Events.Outside = [ { /* Ruined traps */ - title: 'A Ruined Trap', + title: _('A Ruined Trap'), isAvailable: function() { return Engine.activeModule == Outside && $SM.get('game.buildings["trap"]', true) > 0; }, scenes: { 'start': { text: [ - 'some of the traps have been torn apart.', - 'large prints lead away, into the forest.' + _('some of the traps have been torn apart.'), + _('large prints lead away, into the forest.') ], onLoad: function() { var numWrecked = Math.floor(Math.random() * $SM.get('game.buildings["trap"]', true)) + 1; @@ -19,34 +19,34 @@ Events.Outside = [ Outside.updateVillage(); Outside.updateTrapButton(); }, - notification: 'some traps have been destroyed', + notification: _('some traps have been destroyed'), buttons: { 'track': { - text: 'track them', + text: _('track them'), nextScene: {0.5: 'nothing', 1: 'catch'} }, 'ignore': { - text: 'ignore them', + text: _('ignore them'), nextScene: 'end' } } }, 'nothing': { text: [ - 'the tracks disappear after just a few minutes.', - 'the forest is silent.' + _('the tracks disappear after just a few minutes.'), + _('the forest is silent.') ], buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } }, 'catch': { text: [ - 'not far from the village lies a large beast, its fur matted with blood.', - 'it puts up little resistance before the knife.' + _('not far from the village lies a large beast, its fur matted with blood.'), + _('it puts up little resistance before the knife.') ], reward: { fur: 100, @@ -55,7 +55,7 @@ Events.Outside = [ }, buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } @@ -64,7 +64,7 @@ Events.Outside = [ }, { /* Sickness */ - title: 'Sickness', + title: _('Sickness'), isAvailable: function() { return Engine.activeModule == Outside && $SM.get('game.population', true) > 10 && @@ -74,37 +74,37 @@ Events.Outside = [ scenes: { 'start': { text: [ - 'a sickness is spreading through the village.', - 'medicine is needed immediately.' + _('a sickness is spreading through the village.'), + _('medicine is needed immediately.') ], buttons: { 'heal': { - text: '1 medicine', + text: _('1 medicine'), cost: { 'medicine' : 1 }, nextScene: {1: 'healed'} }, 'ignore': { - text: 'ignore it', + text: _('ignore it'), nextScene: {1: 'death'} } } }, 'healed': { text: [ - 'the sickness is cured in time.' + _('the sickness is cured in time.') ], buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } }, 'death': { text: [ - 'the sickness spreads through the village.', - 'the days are spent with burials.', - 'the nights are rent with screams.' + _('the sickness spreads through the village.'), + _('the days are spent with burials.'), + _('the nights are rent with screams.') ], onLoad: function() { var numKilled = Math.floor(Math.random() * 20) + 1; @@ -112,7 +112,7 @@ Events.Outside = [ }, buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } @@ -121,33 +121,33 @@ Events.Outside = [ }, { /* Plague */ - title: 'Plague', + title: _('Plague'), isAvailable: function() { return Engine.activeModule == Outside && $SM.get('game.population', true) > 50 && $SM.get('stores.medicine', true) > 0; }, scenes: { 'start': { text: [ - 'a terrible plague is fast spreading through the village.', - 'medicine is needed immediately.' + _('a terrible plague is fast spreading through the village.'), + _('medicine is needed immediately.') ], buttons: { 'heal': { - text: '5 medicine', + text: _('5 medicine'), cost: { 'medicine' : 5 }, nextScene: {1: 'healed'} }, 'ignore': { - text: 'do nothing', + text: _('do nothing'), nextScene: {1: 'death'} } } }, 'healed': { text: [ - 'the plague is kept from spreading.', - 'only a few die.', - 'the rest bury them.' + _('the plague is kept from spreading.'), + _('only a few die.'), + _('the rest bury them.') ], onLoad: function() { var numKilled = Math.floor(Math.random() * 5) + 2; @@ -155,16 +155,16 @@ Events.Outside = [ }, buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } }, 'death': { text: [ - 'the plague rips through the village.', - 'the nights are rent with screams.', - 'the only hope is a quick death.' + _('the plague rips through the village.'), + _('the nights are rent with screams.'), + _('the only hope is a quick death.') ], onLoad: function() { var numKilled = Math.floor(Math.random() * 80) + 10; @@ -172,7 +172,7 @@ Events.Outside = [ }, buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } @@ -181,16 +181,16 @@ Events.Outside = [ }, { /* Beast attack */ - title: 'A Beast Attack', + title: _('A Beast Attack'), isAvailable: function() { return Engine.activeModule == Outside && $SM.get('game.population', true) > 0; }, scenes: { 'start': { text: [ - 'a pack of snarling beasts pours out of the trees.', - 'the fight is short and bloody, but the beasts are repelled.', - 'the villagers retreat to mourn the dead.' + _('a pack of snarling beasts pours out of the trees.'), + _('the fight is short and bloody, but the beasts are repelled.'), + _('the villagers retreat to mourn the dead.') ], onLoad: function() { var numKilled = Math.floor(Math.random() * 10) + 1; @@ -203,7 +203,7 @@ Events.Outside = [ }, buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } @@ -212,16 +212,16 @@ Events.Outside = [ }, { /* Soldier attack */ - title: 'A Military Raid', + title: _('A Military Raid'), isAvailable: function() { return Engine.activeModule == Outside && $SM.get('game.population', true) > 0 && $SM.get('game.cityCleared');; }, scenes: { 'start': { text: [ - 'a gunshot rings through the trees.', - 'well armed men charge out of the forest, firing into the crowd.', - 'after a skirmish they are driven away, but not without losses.' + _('a gunshot rings through the trees.'), + _('well armed men charge out of the forest, firing into the crowd.'), + _('after a skirmish they are driven away, but not without losses.') ], onLoad: function() { var numKilled = Math.floor(Math.random() * 40) + 1; @@ -233,7 +233,7 @@ Events.Outside = [ }, buttons: { 'end': { - text: 'go home', + text: _('go home'), nextScene: 'end' } } diff --git a/script/events/room.js b/script/events/room.js index 76195e461..1424bdc4f 100644 --- a/script/events/room.js +++ b/script/events/room.js @@ -3,82 +3,82 @@ **/ Events.Room = [ { /* The Nomad -- Merchant */ - title: 'The Nomad', + title: _('The Nomad'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('stores.fur', true) > 0; }, scenes: { 'start': { text: [ - 'a nomad shuffles into view, laden with makeshift bags bound with rough twine.', - "won't say from where he came, but it's clear that he's not staying." + _('a nomad shuffles into view, laden with makeshift bags bound with rough twine.'), + _("won't say from where he came, but it's clear that he's not staying.") ], - notification: 'a nomad arrives, looking to trade', + notification: _('a nomad arrives, looking to trade'), buttons: { 'buyScales': { - text: 'buy scales', + text: _('buy scales'), cost: { 'fur': 100 }, reward: { 'scales': 1 } }, 'buyTeeth': { - text: 'buy teeth', + text: _('buy teeth'), cost: { 'fur': 200 }, reward: { 'teeth': 1 } }, 'buyBait': { - text: 'buy bait', + text: _('buy bait'), cost: { 'fur': 5 }, reward: { 'bait': 1 }, - notification: 'traps are more effective with bait.' + notification: _('traps are more effective with bait.') }, 'buyCompass': { available: function() { return $SM.get('stores.compass', true) < 1; }, - text: 'buy compass', + text: _('buy compass'), cost: { fur: 300, scales: 15, teeth: 5 }, reward: { 'compass': 1 }, - notification: 'the old compass is dented and dusty, but it looks to work.', + notification: _('the old compass is dented and dusty, but it looks to work.'), onChoose: Path.openPath }, 'goodbye': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } } } }, { /* Noises Outside -- gain wood/fur */ - title: 'Noises', + title: _('Noises'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('stores.wood'); }, scenes: { 'start': { text: [ - 'through the walls, shuffling noises can be heard.', - "can't tell what they're up to." + _('through the walls, shuffling noises can be heard.'), + _("can't tell what they're up to.") ], - notification: 'strange noises can be heard through the walls', + notification: _('strange noises can be heard through the walls'), buttons: { 'investigate': { - text: 'investigate', + text: _('investigate'), nextScene: { 0.3: 'stuff', 1: 'nothing' } }, 'ignore': { - text: 'ignore them', + text: _('ignore them'), nextScene: 'end' } } }, 'nothing': { text: [ - 'vague shapes move, just out of sight.', - 'the sounds stop.' + _('vague shapes move, just out of sight.'), + _('the sounds stop.') ], buttons: { 'backinside': { - text: 'go back inside', + text: _('go back inside'), nextScene: 'end' } } @@ -86,12 +86,12 @@ Events.Room = [ 'stuff': { reward: { wood: 100, fur: 10 }, text: [ - 'a bundle of sticks lies just beyond the threshold, wrapped in coarse furs.', - 'the night is silent.' + _('a bundle of sticks lies just beyond the threshold, wrapped in coarse furs.'), + _('the night is silent.') ], buttons: { 'backinside': { - text: 'go back inside', + text: _('go back inside'), nextScene: 'end' } } @@ -99,32 +99,32 @@ Events.Room = [ } }, { /* Noises Inside -- trade wood for better good */ - title: 'Noises', + title: _('Noises'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('stores.wood'); }, scenes: { start: { text: [ - 'scratching noises can be heard from the store room.', - 'something\'s in there.' + _('scratching noises can be heard from the store room.'), + _('something\'s in there.') ], - notification: 'something\'s in the store room', + notification: _('something\'s in the store room'), buttons: { 'investigate': { - text: 'investigate', + text: _('investigate'), nextScene: { 0.5: 'scales', 0.8: 'teeth', 1: 'cloth' } }, 'ignore': { - text: 'ignore them', + text: _('ignore them'), nextScene: 'end' } } }, scales: { text: [ - 'some wood is missing.', - 'the ground is littered with small scales' + _('some wood is missing.'), + _('the ground is littered with small scales') ], onLoad: function() { var numWood = $SM.get('stores.wood', true); @@ -136,15 +136,15 @@ Events.Room = [ }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, teeth: { text: [ - 'some wood is missing.', - 'the ground is littered with small teeth' + _('some wood is missing.'), + _('the ground is littered with small teeth') ], onLoad: function() { var numWood = $SM.get('stores.wood', true); @@ -156,15 +156,15 @@ Events.Room = [ }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, cloth: { text: [ - 'some wood is missing.', - 'the ground is littered with scraps of cloth' + _('some wood is missing.'), + _('the ground is littered with scraps of cloth') ], onLoad: function() { var numWood = $SM.get('stores.wood', true); @@ -176,7 +176,7 @@ Events.Room = [ }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -184,30 +184,30 @@ Events.Room = [ } }, { /* The Beggar -- trade fur for better good */ - title: 'The Beggar', + title: _('The Beggar'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('stores.fur'); }, scenes: { start: { text: [ - 'a beggar arrives.', - 'asks for any spare furs to keep him warm at night.' + _('a beggar arrives.'), + _('asks for any spare furs to keep him warm at night.') ], - notification: 'a beggar arrives', + notification: _('a beggar arrives'), buttons: { '50furs': { - text: 'give 50', + text: _('give 50'), cost: {fur: 50}, nextScene: { 0.5: 'scales', 0.8: 'teeth', 1: 'cloth' } }, '100furs': { - text: 'give 100', + text: _('give 100'), cost: {fur: 100}, nextScene: { 0.5: 'teeth', 0.8: 'scales', 1: 'cloth' } }, 'deny': { - text: 'turn him away', + text: _('turn him away'), nextScene: 'end' } } @@ -215,12 +215,12 @@ Events.Room = [ scales: { reward: { scales: 20 }, text: [ - 'the beggar expresses his thanks.', - 'leaves a pile of small scales behind.' + _('the beggar expresses his thanks.'), + _('leaves a pile of small scales behind.') ], buttons: { 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } @@ -228,12 +228,12 @@ Events.Room = [ teeth: { reward: { teeth: 20 }, text: [ - 'the beggar expresses his thanks.', - 'leaves a pile of small teeth behind.' + _('the beggar expresses his thanks.'), + _('leaves a pile of small teeth behind.') ], buttons: { 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } @@ -241,12 +241,12 @@ Events.Room = [ cloth: { reward: { cloth: 20 }, text: [ - 'the beggar expresses his thanks.', - 'leaves some scraps of cloth behind.' + _('the beggar expresses his thanks.'), + _('leaves some scraps of cloth behind.') ], buttons: { 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } @@ -255,68 +255,68 @@ Events.Room = [ }, { /* Mysterious Wanderer -- wood gambling */ - title: 'The Mysterious Wanderer', + title: _('The Mysterious Wanderer'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('stores.wood'); }, scenes: { start: { text: [ - 'a wanderer arrives with an empty cart. says if he leaves with wood, he\'ll be back with more.', - "builder's not sure he's to be trusted." + _('a wanderer arrives with an empty cart. says if he leaves with wood, he\'ll be back with more.'), + _("builder's not sure he's to be trusted.") ], - notification: 'a mysterious wanderer arrives', + notification: _('a mysterious wanderer arrives'), buttons: { '100wood': { - text: 'give 100', + text: _('give 100'), cost: {wood: 100}, nextScene: { 1: '100wood'} }, '500wood': { - text: 'give 500', + text: _('give 500'), cost: {wood: 500}, nextScene: { 1: '500wood' } }, 'deny': { - text: 'turn him away', + text: _('turn him away'), nextScene: 'end' } } }, '100wood': { text: [ - 'the wanderer leaves, cart loaded with wood' + _('the wanderer leaves, cart loaded with wood') ], onLoad: function() { if(Math.random() < 0.5) { setTimeout(function() { $SM.add('stores.wood', 300); - Notifications.notify(Room, 'the mysterious wanderer returns, cart piled high with wood.'); + Notifications.notify(Room, _('the mysterious wanderer returns, cart piled high with wood.')); }, 60 * 1000); } }, buttons: { 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } }, '500wood': { text: [ - 'the wanderer leaves, cart loaded with wood' + _('the wanderer leaves, cart loaded with wood') ], onLoad: function() { if(Math.random() < 0.3) { setTimeout(function() { $SM.add('stores.wood', 1500); - Notifications.notify(Room, 'the mysterious wanderer returns, cart piled high with wood.'); + Notifications.notify(Room, _('the mysterious wanderer returns, cart piled high with wood.')); }, 60 * 1000); } }, buttons: { 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } @@ -325,68 +325,68 @@ Events.Room = [ }, { /* Mysterious Wanderer -- fur gambling */ - title: 'The Mysterious Wanderer', + title: _('The Mysterious Wanderer'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('stores.fur'); }, scenes: { start: { text: [ - 'a wanderer arrives with an empty cart. says if she leaves with furs, she\'ll be back with more.', - "builder's not sure she's to be trusted." + _('a wanderer arrives with an empty cart. says if she leaves with furs, she\'ll be back with more.'), + _("builder's not sure she's to be trusted.") ], - notification: 'a mysterious wanderer arrives', + notification: _('a mysterious wanderer arrives'), buttons: { '100fur': { - text: 'give 100', + text: _('give 100'), cost: {fur: 100}, nextScene: { 1: '100fur'} }, '500fur': { - text: 'give 500', + text: _('give 500'), cost: {fur: 500}, nextScene: { 1: '500fur' } }, 'deny': { - text: 'turn her away', + text: _('turn her away'), nextScene: 'end' } } }, '100fur': { text: [ - 'the wanderer leaves, cart loaded with furs' + _('the wanderer leaves, cart loaded with furs') ], onLoad: function() { if(Math.random() < 0.5) { setTimeout(function() { $SM.add('stores.fur', 300); - Notifications.notify(Room, 'the mysterious wanderer returns, cart piled high with furs.'); + Notifications.notify(Room, _('the mysterious wanderer returns, cart piled high with furs.')); }, 60 * 1000); } }, buttons: { 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } }, '500fur': { text: [ - 'the wanderer leaves, cart loaded with furs' + _('the wanderer leaves, cart loaded with furs') ], onLoad: function() { if(Math.random() < 0.3) { setTimeout(function() { $SM.add('stores.fur', 1500); - Notifications.notify(Room, 'the mysterious wanderer returns, cart piled high with furs.'); + Notifications.notify(Room, _('the mysterious wanderer returns, cart piled high with furs.')); }, 60 * 1000); } }, buttons: { 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } @@ -395,26 +395,26 @@ Events.Room = [ }, { /* The Scout -- Map Merchant */ - title: 'The Scout', + title: _('The Scout'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('features.location.world'); }, scenes: { 'start': { text: [ - "the scout says she's been all over.", - "willing to talk about it, for a price." + _("the scout says she's been all over."), + _("willing to talk about it, for a price.") ], - notification: 'a scout stops for the night', + notification: _('a scout stops for the night'), buttons: { 'buyMap': { - text: 'buy map', + text: _('buy map'), cost: { 'fur': 200, 'scales': 10 }, - notification: 'the map uncovers a bit of the world', + notification: _('the map uncovers a bit of the world'), onChoose: World.applyMap }, 'learn': { - text: 'learn scouting', + text: _('learn scouting'), cost: { 'fur': 1000, 'scales': 50, 'teeth': 20 }, available: function() { return !$SM.hasPerk('scout'); @@ -424,7 +424,7 @@ Events.Room = [ } }, 'leave': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } @@ -433,20 +433,20 @@ Events.Room = [ }, { /* The Wandering Master */ - title: 'The Master', + title: _('The Master'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('features.location.world'); }, scenes: { 'start': { text: [ - 'an old wanderer arrives.', - 'he smiles warmly and asks for lodgings for the night.' + _('an old wanderer arrives.'), + _('he smiles warmly and asks for lodgings for the night.') ], - notification: 'an old wanderer arrives', + notification: _('an old wanderer arrives'), buttons: { 'agree': { - text: 'agree', + text: _('agree'), cost: { 'cured meat': 100, 'fur': 100, @@ -455,18 +455,18 @@ Events.Room = [ nextScene: {1: 'agree'} }, 'deny': { - text: 'turn him away', + text: _('turn him away'), nextScene: 'end' } } }, 'agree': { text: [ - 'in exchange, the wanderer offers his wisdom.' + _('in exchange, the wanderer offers his wisdom.') ], buttons: { 'evasion': { - text: 'evasion', + text: _('evasion'), available: function() { return !$SM.hasPerk('evasive'); }, @@ -476,7 +476,7 @@ Events.Room = [ nextScene: 'end' }, 'precision': { - text: 'precision', + text: _('precision'), available: function() { return !$SM.hasPerk('precise'); }, @@ -486,7 +486,7 @@ Events.Room = [ nextScene: 'end' }, 'force': { - text: 'force', + text: _('force'), available: function() { return !$SM.hasPerk('barbarian'); }, @@ -496,7 +496,7 @@ Events.Room = [ nextScene: 'end' }, 'nothing': { - text: 'nothing', + text: _('nothing'), nextScene: 'end' } } @@ -505,85 +505,85 @@ Events.Room = [ }, { /* The Sick Man */ - title: 'The Sick Man', + title: _('The Sick Man'), isAvailable: function() { return Engine.activeModule == Room && $SM.get('stores.medicine', true) > 0; }, scenes: { 'start': { text: [ - "a man hobbles up, coughing.", - "he begs for medicine." + _("a man hobbles up, coughing."), + _("he begs for medicine.") ], - notification: 'a sick man hobbles up', + notification: _('a sick man hobbles up'), buttons: { 'help': { - text: 'give 1 medicine', + text: _('give 1 medicine'), cost: { 'medicine': 1 }, - notification: 'the man swallows the medicine eagerly', + notification: _('the man swallows the medicine eagerly'), nextScene: { 0.1: 'alloy', 0.3: 'cells', 0.5: 'scales', 1.0: 'nothing' } }, 'ignore': { - text: 'tell him to leave', + text: _('tell him to leave'), nextScene: 'end' } } }, 'alloy': { text: [ - "the man is thankful.", - 'he leaves a reward.', - 'some weird metal he picked up on his travels.' + _("the man is thankful."), + _('he leaves a reward.'), + _('some weird metal he picked up on his travels.') ], onLoad: function() { $SM.add('stores["alien alloy"]', 1); }, buttons: { 'bye': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } }, 'cells': { text: [ - "the man is thankful.", - 'he leaves a reward.', - 'some weird glowing boxes he picked up on his travels.' + _("the man is thankful."), + _('he leaves a reward.'), + _('some weird glowing boxes he picked up on his travels.') ], onLoad: function() { $SM.add('stores["energy cell"]', 3); }, buttons: { 'bye': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } }, 'scales': { text: [ - "the man is thankful.", - 'he leaves a reward.', - 'all he has are some scales.' + _("the man is thankful."), + _('he leaves a reward.'), + _('all he has are some scales.') ], onLoad: function() { $SM.add('stores.scales', 5); }, buttons: { 'bye': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } }, 'nothing': { text: [ - "the man expresses his thanks and hobbles off." + _("the man expresses his thanks and hobbles off.") ], buttons: { 'bye': { - text: 'say goodbye', + text: _('say goodbye'), nextScene: 'end' } } diff --git a/script/events/setpieces.js b/script/events/setpieces.js index f78e8805b..7af71d8ea 100644 --- a/script/events/setpieces.js +++ b/script/events/setpieces.js @@ -3,13 +3,13 @@ **/ Events.Setpieces = { "outpost": { /* Friendly Outpost */ - title: 'An Outpost', + title: _('An Outpost'), scenes: { 'start': { text: [ - 'a safe place in the wilds.' + _('a safe place in the wilds.') ], - notification: 'a safe place in the wilds.', + notification: _('a safe place in the wilds.'), loot: { 'cured meat': { min: 5, @@ -22,7 +22,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -30,48 +30,48 @@ Events.Setpieces = { } }, "swamp": { /* Swamp */ - title: 'A Murky Swamp', + title: _('A Murky Swamp'), scenes: { 'start': { text: [ - 'rotting reeds rise out of the swampy earth.', - 'a lone frog sits in the muck, silently.' + _('rotting reeds rise out of the swampy earth.'), + _('a lone frog sits in the muck, silently.') ], - notification: 'a swamp festers in the stagnant air.', + notification: _('a swamp festers in the stagnant air.'), buttons: { 'enter': { - text: 'enter', + text: _('enter'), nextScene: {1: 'cabin'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, 'cabin': { text: [ - 'deep in the swamp is a moss-covered cabin.', - 'an old wanderer sits inside, in a seeming trance.' + _('deep in the swamp is a moss-covered cabin.'), + _('an old wanderer sits inside, in a seeming trance.') ], buttons: { 'talk': { cost: {'charm': 1}, - text: 'talk', + text: _('talk'), nextScene: {1: 'talk'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, 'talk': { text: [ - 'the wanderer takes the charm and nods slowly.', - 'he speaks of once leading the great fleets to fresh worlds.', - 'unfathomable destruction to fuel wanderer hungers.', - 'his time here, now, is his penance.' + _('the wanderer takes the charm and nods slowly.'), + _('he speaks of once leading the great fleets to fresh worlds.'), + _('unfathomable destruction to fuel wanderer hungers.'), + _('his time here, now, is his penance.') ], onLoad: function() { $SM.addPerk('gastronome'); @@ -79,7 +79,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -87,22 +87,22 @@ Events.Setpieces = { } }, "cave": { /* Cave */ - title: 'A Damp Cave', + title: _('A Damp Cave'), scenes: { 'start': { text: [ - 'the mouth of the cave is wide and dark.', - "can't see what's inside." + _('the mouth of the cave is wide and dark.'), + _("can't see what's inside.") ], - notification: 'the earth here is split, as if bearing an ancient wound', + notification: _('the earth here is split, as if bearing an ancient wound'), buttons: { 'enter': { - text: 'go inside', + text: _('go inside'), cost: { torch: 1 }, nextScene: {0.3: 'a1', 0.6: 'a2', 1: 'a3'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -116,7 +116,7 @@ Events.Setpieces = { hit: 0.8, attackDelay: 1, health: 5, - notification: 'a startled beast defends its home', + notification: _('a startled beast defends its home'), loot: { 'fur': { min: 1, @@ -131,35 +131,35 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'b1', 1: 'b2'} }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } }, 'a2': { text: [ - 'the cave narrows a few feet in.', - "the walls are moist and moss-covered" + _('the cave narrows a few feet in.'), + _("the walls are moist and moss-covered") ], buttons: { 'continue': { - text: 'squeeze', + text: _('squeeze'), nextScene: {0.5: 'b2', 1: 'b3'} }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } }, 'a3': { text: [ - 'the remains of an old camp sits just inside the cave.', - 'bedrolls, torn and blackened, lay beneath a thin layer of dust.' + _('the remains of an old camp sits just inside the cave.'), + _('bedrolls, torn and blackened, lay beneath a thin layer of dust.') ], loot: { 'cured meat': { @@ -180,20 +180,20 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'b3', 1: 'b4'} }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } }, 'b1': { text: [ - 'the body of a wanderer lies in a small cavern.', - "rot's been to work on it, and some of the pieces are missing.", - "can't tell what left it here." + _('the body of a wanderer lies in a small cavern.'), + _("rot's been to work on it, and some of the pieces are missing."), + _("can't tell what left it here.") ], loot: { 'iron sword': { @@ -219,29 +219,29 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'c1' } }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } }, 'b2': { text: [ - 'the torch sputters and dies in the damp air', - 'the darkness is absolute' + _('the torch sputters and dies in the damp air'), + _('the darkness is absolute') ], - notification: 'the torch goes out', + notification: _('the torch goes out'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), cost: {'torch': 1}, nextScene: { 1: 'c1' } }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } @@ -254,7 +254,7 @@ Events.Setpieces = { hit: 0.8, attackDelay: 1, health: 5, - notification: 'a startled beast defends its home', + notification: _('a startled beast defends its home'), loot: { 'fur': { min: 1, @@ -269,11 +269,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'c2'} }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } @@ -286,7 +286,7 @@ Events.Setpieces = { hit: 0.8, attackDelay: 2, health: 6, - notification: 'a cave lizard attacks', + notification: _('a cave lizard attacks'), loot: { 'scales': { min: 1, @@ -301,11 +301,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'c2'} }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } @@ -318,7 +318,7 @@ Events.Setpieces = { hit: 0.8, attackDelay: 2, health: 10, - notification: 'a large beast charges out of the dark', + notification: _('a large beast charges out of the dark'), loot: { 'fur': { min: 1, @@ -333,11 +333,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end1', 1: 'end2'} }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } @@ -350,7 +350,7 @@ Events.Setpieces = { hit: 0.8, attackDelay: 2, health: 10, - notification: 'a giant lizard shambles forward', + notification: _('a giant lizard shambles forward'), loot: { 'scales': { min: 1, @@ -365,18 +365,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.7: 'end2', 1: 'end3'} }, 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } }, 'end1': { text: [ - 'the nest of a large animal lies at the back of the cave.' + _('the nest of a large animal lies at the back of the cave.') ], onLoad: function() { World.clearDungeon(); @@ -410,14 +410,14 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } }, 'end2': { text: [ - 'a small supply cache is hidden at the back of the cave.' + _('a small supply cache is hidden at the back of the cave.') ], loot: { 'cloth': { @@ -461,14 +461,14 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } }, 'end3': { text: [ - 'an old case is wedged behind a rock, covered in a thick layer of dust.' + _('an old case is wedged behind a rock, covered in a thick layer of dust.') ], loot: { 'steel sword': { @@ -492,7 +492,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave cave', + text: _('leave cave'), nextScene: 'end' } } @@ -500,21 +500,21 @@ Events.Setpieces = { } }, "town": { /* Town */ - title: 'A Deserted Town', + title: _('A Deserted Town'), scenes: { 'start': { text: [ - 'a small suburb lays ahead, empty houses scorched and peeling.', - "broken streetlights stand, rusting. light hasn't graced this place in a long time." + _('a small suburb lays ahead, empty houses scorched and peeling.'), + _("broken streetlights stand, rusting. light hasn't graced this place in a long time.") ], - notification: "the town lies abandoned, its citizens long dead", + notification: _("the town lies abandoned, its citizens long dead"), buttons: { 'enter': { - text: 'explore', + text: _('explore'), nextScene: {0.3: 'a1', 0.7: 'a3', 1: 'a2'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -522,17 +522,17 @@ Events.Setpieces = { 'a1': { text: [ - "where the windows of the schoolhouse aren't shattered, they're blackened with soot.", - 'the double doors creak endlessly in the wind.' + _("where the windows of the schoolhouse aren't shattered, they're blackened with soot."), + _('the double doors creak endlessly in the wind.') ], buttons: { 'enter': { - text: 'enter', + text: _('enter'), nextScene: {0.5: 'b1', 1: 'b2'}, cost: {torch: 1} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -563,38 +563,38 @@ Events.Setpieces = { chance: 0.5 } }, - notification: 'ambushed on the street.', + notification: _('ambushed on the street.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'b3', 1: 'b4'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'a3': { text: [ - "a squat building up ahead.", - 'a green cross barely visible behind grimy windows.' + _("a squat building up ahead."), + _('a green cross barely visible behind grimy windows.') ], buttons: { 'enter': { - text: 'enter', + text: _('enter'), nextScene: {0.5: 'b5', 1: 'end5'}, cost: {torch: 1} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'b1': { text: [ - 'a small cache of supplies is tucked inside a rusting locker.' + _('a small cache of supplies is tucked inside a rusting locker.') ], loot: { 'cured meat': { @@ -620,11 +620,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c1', 1: 'c2'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -654,14 +654,14 @@ Events.Setpieces = { chance: 0.5 } }, - notification: 'a scavenger waits just inside the door.', + notification: _('a scavenger waits just inside the door.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c2', 1: 'c3'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -686,22 +686,22 @@ Events.Setpieces = { chance: 1 } }, - notification: 'a beast stands alone in an overgrown park.', + notification: _('a beast stands alone in an overgrown park.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c4', 1: 'c5'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'b4': { text: [ - 'an overturned caravan is spread across the pockmarked street.', - "it's been picked over by scavengers, but there's still some things worth taking." + _('an overturned caravan is spread across the pockmarked street.'), + _("it's been picked over by scavengers, but there's still some things worth taking.") ], loot: { 'cured meat': { @@ -727,11 +727,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c5', 1: 'c6' } }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -761,14 +761,14 @@ Events.Setpieces = { chance: 0.4 } }, - notification: 'a madman attacks, screeching.', + notification: _('a madman attacks, screeching.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.3: 'end5', 1: 'end6'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -798,14 +798,14 @@ Events.Setpieces = { chance: 0.5 } }, - notification: 'a thug moves out of the shadows.', + notification: _('a thug moves out of the shadows.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd1'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -830,31 +830,31 @@ Events.Setpieces = { chance: 1 } }, - notification: 'a beast charges out of a ransacked classroom.', + notification: _('a beast charges out of a ransacked classroom.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd1'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'c3': { text: [ - 'through the large gymnasium doors, footsteps can be heard.', - 'the torchlight casts a flickering glow down the hallway.', - 'the footsteps stop.' + _('through the large gymnasium doors, footsteps can be heard.'), + _('the torchlight casts a flickering glow down the hallway.'), + _('the footsteps stop.') ], buttons: { 'continue': { - text: 'enter', + text: _('enter'), nextScene: {1: 'd1'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -879,38 +879,38 @@ Events.Setpieces = { chance: 1 } }, - notification: 'another beast, draw by the noise, leaps out of a copse of trees.', + notification: _('another beast, draw by the noise, leaps out of a copse of trees.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd2'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'c5': { text: [ - "something's causing a commotion a ways down the road.", - "a fight, maybe." + _("something's causing a commotion a ways down the road."), + _("a fight, maybe.") ], buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd2'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'c6': { text: [ - 'a small basket of food is hidden under a park bench, with a note attached.', - "can't read the words." + _('a small basket of food is hidden under a park bench, with a note attached.'), + _("can't read the words.") ], loot: { 'cured meat': { @@ -921,11 +921,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd2'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -955,14 +955,14 @@ Events.Setpieces = { chance: 0.5 } }, - notification: 'a panicked scavenger bursts through the door, screaming.', + notification: _('a panicked scavenger bursts through the door, screaming.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end1', 1: 'end2'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -992,22 +992,22 @@ Events.Setpieces = { chance: 0.5 } }, - notification: "a man stands over a dead wanderer. notices he's not alone.", + notification: _("a man stands over a dead wanderer. notices he's not alone."), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end3', 1: 'end4'} }, 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'end1': { text: [ - 'scavenger had a small camp in the school.', - 'collected scraps spread across the floor like they fell from heaven.' + _('scavenger had a small camp in the school.'), + _('collected scraps spread across the floor like they fell from heaven.') ], onLoad: function() { World.clearDungeon(); @@ -1041,15 +1041,15 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'end2': { text: [ - "scavenger'd been looking for supplies in here, it seems.", - "a shame to let what he'd found go to waste." + _("scavenger'd been looking for supplies in here, it seems."), + _("a shame to let what he'd found go to waste.") ], onLoad: function() { World.clearDungeon(); @@ -1073,15 +1073,15 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'end3': { text: [ - "beneath the wanderer's rags, clutched in one of its many hands, a glint of steel.", - "worth killing for, it seems." + _("beneath the wanderer's rags, clutched in one of its many hands, a glint of steel."), + _("worth killing for, it seems.") ], onLoad: function() { World.clearDungeon(); @@ -1100,16 +1100,16 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'end4': { text: [ - "eye for an eye seems fair.", - "always worked before, at least.", - "picking the bones finds some useful trinkets." + _("eye for an eye seems fair."), + _("always worked before, at least."), + _("picking the bones finds some useful trinkets.") ], onLoad: function() { World.clearDungeon(); @@ -1143,14 +1143,14 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'end5': { text: [ - 'some medicine abandoned in the drawers.' + _('some medicine abandoned in the drawers.') ], onLoad: function() { World.clearDungeon(); @@ -1164,22 +1164,22 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } }, 'end6': { text: [ - 'the clinic has been ransacked.', - 'only dust and stains remain.' + _('the clinic has been ransacked.'), + _('only dust and stains remain.') ], onLoad: function() { World.clearDungeon(); }, buttons: { 'leave': { - text: 'leave town', + text: _('leave town'), nextScene: 'end' } } @@ -1187,110 +1187,110 @@ Events.Setpieces = { } }, "city": { /* City */ - title: 'A Ruined City', + title: _('A Ruined City'), scenes: { 'start': { text: [ - 'a battered highway sign stands guard at the entrance to this once-great city.', - "the towers that haven't crumbled jut from the landscape like the ribcage of some ancient beast.", - 'might be things worth having still inside.' + _('a battered highway sign stands guard at the entrance to this once-great city.'), + _("the towers that haven't crumbled jut from the landscape like the ribcage of some ancient beast."), + _('might be things worth having still inside.') ], - notification: "the towers of a decaying city dominate the skyline", + notification: _("the towers of a decaying city dominate the skyline"), buttons: { 'enter': { - text: 'explore', + text: _('explore'), nextScene: {0.2: 'a1', 0.5: 'a2', 0.8: 'a3', 1: 'a4'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, 'a1': { text:[ - 'the streets are empty.', - 'the air is filled with dust, driven relentlessly by the hard winds.' + _('the streets are empty.'), + _('the air is filled with dust, driven relentlessly by the hard winds.') ], buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'b1', 1: 'b2'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'a2': { text:[ - 'orange traffic cones are set across the street, faded and cracked.', - 'lights flash through the alleys between buildings.' + _('orange traffic cones are set across the street, faded and cracked.'), + _('lights flash through the alleys between buildings.') ], buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'b3', 1: 'b4'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'a3': { text: [ - 'a large shanty town sprawls across the streets.', - 'faces, darkened by soot and blood, stare out from crooked huts.' + _('a large shanty town sprawls across the streets.'), + _('faces, darkened by soot and blood, stare out from crooked huts.') ], buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'b5', 1: 'b6'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'a4': { text: [ - 'the shell of an abandoned hospital looms ahead.' + _('the shell of an abandoned hospital looms ahead.') ], buttons: { 'enter': { - text: 'enter', + text: _('enter'), cost: { 'torch': 1 }, nextScene: {0.5: 'b7', 1: 'b8'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b1': { text: [ - 'the old tower seems mostly intact.', - 'the shell of a burned out car blocks the entrance.', - 'most of the windows at ground level are busted anyway.' + _('the old tower seems mostly intact.'), + _('the shell of a burned out car blocks the entrance.'), + _('most of the windows at ground level are busted anyway.') ], buttons: { 'enter': { - text: 'enter', + text: _('enter'), nextScene: {0.5: 'c1', 1: 'c2'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b2': { combat: true, - notification: 'a huge lizard scrambles up out of the darkness of an old metro station.', + notification: _('a huge lizard scrambles up out of the darkness of an old metro station.'), enemy: 'lizard', chara: 'L', damage: 5, @@ -1316,17 +1316,17 @@ Events.Setpieces = { }, buttons: { 'descend': { - text: 'descend', + text: _('descend'), nextScene: {0.5: 'c2', 1: 'c3'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b3': { - notification: 'the shot echoes in the empty street.', + notification: _('the shot echoes in the empty street.'), combat: true, enemy: 'sniper', chara: 'S', @@ -1354,17 +1354,17 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c4', 1: 'c5'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b4': { - notification: 'the soldier steps out from between the buildings, rifle raised.', + notification: _('the soldier steps out from between the buildings, rifle raised.'), combat: true, enemy: 'soldier', ranged: true, @@ -1392,17 +1392,17 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c5', 1: 'c6'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b5': { - notification: 'a frail man stands defiantly, blocking the path.', + notification: _('a frail man stands defiantly, blocking the path.'), combat: true, enemy: 'frail man', chara: 'M', @@ -1434,49 +1434,49 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c7', 1: 'c8'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b6': { text: [ - 'nothing but downcast eyes.', - 'the people here were broken a long time ago.' + _('nothing but downcast eyes.'), + _('the people here were broken a long time ago.') ], buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'c8', 1: 'c9'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b7': { text: [ - 'empty corridors.', - 'the place has been swept clean by scavengers.' + _('empty corridors.'), + _('the place has been swept clean by scavengers.') ], buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.3: 'c12', 0.7: 'c10', 1: 'c11'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'b8': { - notification: 'an old man bursts through a door, wielding a scalpel.', + notification: _('an old man bursts through a door, wielding a scalpel.'), combat: true, enemy: 'old man', chara: 'M', @@ -1503,17 +1503,17 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.3: 'c13', 0.7: 'c11', 1: 'end15'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'c1': { - notification: 'a thug is waiting on the other side of the wall.', + notification: _('a thug is waiting on the other side of the wall.'), combat: true, enemy: 'thug', chara: 'T', @@ -1540,18 +1540,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'd1', 1: 'd2'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'c2': { - notification: 'a snarling beast jumps out from behind a car.', + notification: _('a snarling beast jumps out from behind a car.'), combat: true, enemy: 'beast', chara: 'B', @@ -1578,11 +1578,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd2'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1590,18 +1590,18 @@ Events.Setpieces = { 'c3': { text: [ - 'street above the subway platform is blown away.', - 'lets some light down into the dusty haze.', - 'a sound comes from the tunnel, just ahead.' + _('street above the subway platform is blown away.'), + _('lets some light down into the dusty haze.'), + _('a sound comes from the tunnel, just ahead.') ], buttons: { 'enter': { - text: 'investigate', + text: _('investigate'), cost: { 'torch': 1 }, nextScene: {0.5: 'd2', 1: 'd3'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1609,17 +1609,17 @@ Events.Setpieces = { 'c4': { text: [ - 'looks like a camp of sorts up ahead.', - 'rusted chainlink is pulled across an alleyway.', - 'fires burn in the courtyard beyond.' + _('looks like a camp of sorts up ahead.'), + _('rusted chainlink is pulled across an alleyway.'), + _('fires burn in the courtyard beyond.') ], buttons: { 'enter': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'd4', 1: 'd5'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1627,16 +1627,16 @@ Events.Setpieces = { 'c5': { text: [ - 'more voices can be heard ahead.', - 'they must be here for a reason.' + _('more voices can be heard ahead.'), + _('they must be here for a reason.') ], buttons: { 'enter': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd5'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1644,16 +1644,16 @@ Events.Setpieces = { 'c6': { text: [ - 'the sound of gunfire carries on the wind.', - 'the street ahead glows with firelight.' + _('the sound of gunfire carries on the wind.'), + _('the street ahead glows with firelight.') ], buttons: { 'enter': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'd5', 1: 'd6'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1661,16 +1661,16 @@ Events.Setpieces = { 'c7': { text: [ - 'more squatters are crowding around now.', - 'someone throws a stone.' + _('more squatters are crowding around now.'), + _('someone throws a stone.') ], buttons: { 'enter': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'd7', 1: 'd8'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1678,8 +1678,8 @@ Events.Setpieces = { 'c8': { text: [ - 'an improvised shop is set up on the sidewalk.', - 'the owner stands by, stoic.' + _('an improvised shop is set up on the sidewalk.'), + _('the owner stands by, stoic.') ], loot: { 'steel sword': { @@ -1710,11 +1710,11 @@ Events.Setpieces = { }, buttons: { 'enter': { - text: 'continue', + text: _('continue'), nextScene: {1: 'd8'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1722,8 +1722,8 @@ Events.Setpieces = { 'c9': { text: [ - 'strips of meat hang drying by the side of the street.', - 'the people back away, avoiding eye contact.' + _('strips of meat hang drying by the side of the street.'), + _('the people back away, avoiding eye contact.') ], loot: { 'cured meat': { @@ -1734,11 +1734,11 @@ Events.Setpieces = { }, buttons: { 'enter': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'd8', 1: 'd9'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1746,22 +1746,22 @@ Events.Setpieces = { 'c10': { text: [ - 'someone has locked and barricaded the door to this operating theatre.' + _('someone has locked and barricaded the door to this operating theatre.') ], buttons: { 'enter': { - text: 'continue', + text: _('continue'), nextScene: {0.2: 'end12', 0.6: 'd10', 1: 'd11'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'c11': { - notification: 'a tribe of elderly squatters is camped out in this ward.', + notification: _('a tribe of elderly squatters is camped out in this ward.'), combat: true, enemy: 'squatters', plural: true, @@ -1789,18 +1789,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'end10' } }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'c12': { - notification: 'a pack of lizards rounds the corner.', + notification: _('a pack of lizards rounds the corner.'), combat: true, enemy: 'lizards', plural: true, @@ -1828,11 +1828,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'end10' } }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1840,7 +1840,7 @@ Events.Setpieces = { 'c13': { text: [ - 'strips of meat are hung up to dry in this ward.' + _('strips of meat are hung up to dry in this ward.') ], loot: { 'cured meat': { @@ -1851,18 +1851,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 0.5: 'end10', 1: 'end11' } }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd1': { - notification: 'a large bird nests at the top of the stairs.', + notification: _('a large bird nests at the top of the stairs.'), combat: true, enemy: 'bird', chara: 'B', @@ -1879,11 +1879,11 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end1', 1: 'end2'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -1891,8 +1891,8 @@ Events.Setpieces = { 'd2': { text: [ - "the debris is denser here.", - "maybe some useful stuff in the rubble." + _("the debris is denser here."), + _("maybe some useful stuff in the rubble.") ], loot: { 'bullets': { @@ -1918,18 +1918,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'end2'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd3': { - notification: 'a swarm of rats rushes up the tunnel.', + notification: _('a swarm of rats rushes up the tunnel.'), combat: true, enemy: 'rats', plural: true, @@ -1952,18 +1952,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end2', 1: 'end3'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd4': { - notification: 'a large man attacks, waving a bayonet.', + notification: _('a large man attacks, waving a bayonet.'), combat: true, enemy: 'veteran', chara: 'V', @@ -1985,18 +1985,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end4', 1: 'end5'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd5': { - notification: 'a second soldier opens fire.', + notification: _('a second soldier opens fire.'), combat: true, enemy: 'soldier', ranged: true, @@ -2024,18 +2024,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'end5'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd6': { - notification: 'a masked soldier rounds the corner, gun drawn', + notification: _('a masked soldier rounds the corner, gun drawn'), combat: true, enemy: 'commando', chara: 'C', @@ -2063,18 +2063,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end5', 1: 'end6'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd7': { - notification: 'the crowd surges forward.', + notification: _('the crowd surges forward.'), combat: true, enemy: 'squatters', plural: true, @@ -2097,18 +2097,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end7', 1: 'end8'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd8': { - notification: 'a youth lashes out with a tree branch.', + notification: _('a youth lashes out with a tree branch.'), combat: true, enemy: 'youth', chara: 'Y', @@ -2130,18 +2130,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'end8'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd9': { - notification: 'a squatter stands firmly in the doorway of a small hut.', + notification: _('a squatter stands firmly in the doorway of a small hut.'), combat: true, enemy: 'squatter', chara: 'S', @@ -2163,18 +2163,18 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {0.5: 'end8', 1: 'end9'} }, 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } }, 'd10': { - notification: 'behind the door, a deformed figure awakes and attacks.', + notification: _('behind the door, a deformed figure awakes and attacks.'), combat: true, enemy: 'deformed', chara: 'D', @@ -2206,14 +2206,14 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'end14'} } } }, 'd11': { - notification: 'as soon as the door is open a little bit, hundreds of tentacles erupt.', + notification: _('as soon as the door is open a little bit, hundreds of tentacles erupt.'), combat: true, enemy: 'tentacles', plural: true, @@ -2231,7 +2231,7 @@ Events.Setpieces = { }, buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: {1: 'end13'} } } @@ -2239,8 +2239,8 @@ Events.Setpieces = { 'end1': { text: [ - 'bird must have liked shiney things.', - 'some good stuff woven into its nest.' + _('bird must have liked shiney things.'), + _('some good stuff woven into its nest.') ], onLoad: function() { World.clearDungeon(); @@ -2265,7 +2265,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2273,8 +2273,8 @@ Events.Setpieces = { 'end2': { text: [ - 'not much here.', - 'scavengers must have gotten to this place already.' + _('not much here.'), + _('scavengers must have gotten to this place already.') ], onLoad: function() { World.clearDungeon(); @@ -2294,7 +2294,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2302,9 +2302,9 @@ Events.Setpieces = { 'end3': { text: [ - 'the tunnel opens up at another platform.', - 'the walls are scorched from an old battle.', - 'bodies and supplies from both sides litter the ground.' + _('the tunnel opens up at another platform.'), + _('the walls are scorched from an old battle.'), + _('bodies and supplies from both sides litter the ground.') ], onLoad: function() { World.clearDungeon(); @@ -2339,7 +2339,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2348,9 +2348,9 @@ Events.Setpieces = { 'end4': { text: [ - 'the small military outpost is well supplied.', - 'arms and munitions, relics from the war, are neatly arranged on the store-room floor.', - 'just as deadly now as they were then.' + _('the small military outpost is well supplied.'), + _('arms and munitions, relics from the war, are neatly arranged on the store-room floor.'), + _('just as deadly now as they were then.') ], onLoad: function() { World.clearDungeon(); @@ -2375,7 +2375,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2383,9 +2383,9 @@ Events.Setpieces = { 'end5': { text: [ - 'searching the bodies yields a few supplies.', - 'more soldiers will be on their way.', - 'time to move on.' + _('searching the bodies yields a few supplies.'), + _('more soldiers will be on their way.'), + _('time to move on.') ], onLoad: function() { World.clearDungeon(); @@ -2415,7 +2415,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2423,9 +2423,9 @@ Events.Setpieces = { 'end6': { text: [ - 'the small settlement has clearly been burning a while.', - 'the bodies of the wanderers that lived here are still visible in the flames.', - "still time to rescue a few supplies." + _('the small settlement has clearly been burning a while.'), + _('the bodies of the wanderers that lived here are still visible in the flames.'), + _("still time to rescue a few supplies.") ], onLoad: function() { World.clearDungeon(); @@ -2450,7 +2450,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2459,8 +2459,8 @@ Events.Setpieces = { 'end7': { text: [ - 'the remaining settlers flee from the violence, their belongings forgotten.', - "there's not much, but some useful things can still be found." + _('the remaining settlers flee from the violence, their belongings forgotten.'), + _("there's not much, but some useful things can still be found.") ], onLoad: function() { World.clearDungeon(); @@ -2485,7 +2485,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2493,9 +2493,9 @@ Events.Setpieces = { 'end8': { text: [ - 'the young settler was carrying a canvas sack.', - "it contains travelling gear, and a few trinkets.", - "there's nothing else here." + _('the young settler was carrying a canvas sack.'), + _("it contains travelling gear, and a few trinkets."), + _("there's nothing else here.") ], onLoad: function() { World.clearDungeon(); @@ -2520,7 +2520,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2528,9 +2528,9 @@ Events.Setpieces = { 'end9': { text: [ - 'inside the hut, a child cries.', - "a few belongings rest against the walls.", - "there's nothing else here." + _('inside the hut, a child cries.'), + _("a few belongings rest against the walls."), + _("there's nothing else here.") ], onLoad: function() { World.clearDungeon(); @@ -2560,7 +2560,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2568,9 +2568,9 @@ Events.Setpieces = { 'end10': { text: [ - 'the stench of rot and death fills the operating theatres.', - "a few items are scattered on the ground.", - 'there is nothing else here.' + _('the stench of rot and death fills the operating theatres.'), + _("a few items are scattered on the ground."), + _('there is nothing else here.') ], onLoad: function() { World.clearDungeon(); @@ -2600,7 +2600,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2608,8 +2608,8 @@ Events.Setpieces = { 'end11': { text: [ - 'a pristine medicine cabinet at the end of a hallway.', - "the rest of the hospital is empty." + _('a pristine medicine cabinet at the end of a hallway.'), + _("the rest of the hospital is empty.") ], onLoad: function() { World.clearDungeon(); @@ -2634,7 +2634,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2642,7 +2642,7 @@ Events.Setpieces = { 'end12': { text: [ - 'someone had been stockpiling loot here.' + _('someone had been stockpiling loot here.') ], onLoad: function() { World.clearDungeon(); @@ -2682,7 +2682,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2690,8 +2690,8 @@ Events.Setpieces = { 'end13': { text: [ - 'the tentacular horror is defeated.', - 'inside, the remains of its victims are everywhere.' + _('the tentacular horror is defeated.'), + _('inside, the remains of its victims are everywhere.') ], onLoad: function() { World.clearDungeon(); @@ -2726,7 +2726,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2734,8 +2734,8 @@ Events.Setpieces = { 'end14': { text: [ - 'the warped man lies dead.', - 'the operating theatre has a lot of curious equipment.' + _('the warped man lies dead.'), + _('the operating theatre has a lot of curious equipment.') ], onLoad: function() { World.clearDungeon(); @@ -2770,7 +2770,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2778,7 +2778,7 @@ Events.Setpieces = { 'end15': { text: [ - 'the old man had a small cache of interesting items.' + _('the old man had a small cache of interesting items.') ], onLoad: function() { World.clearDungeon(); @@ -2813,7 +2813,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave city', + text: _('leave city'), nextScene: 'end' } } @@ -2821,29 +2821,29 @@ Events.Setpieces = { } }, "house": { /* Abandoned House */ - title: 'An Old House', + title: _('An Old House'), scenes: { 'start': { text: [ - 'an old house remains here, once white siding yellowed and peeling.', - 'the door hangs open.' + _('an old house remains here, once white siding yellowed and peeling.'), + _('the door hangs open.') ], - notification: 'the remains of an old house stand as a monument to simpler times', + notification: _('the remains of an old house stand as a monument to simpler times'), buttons: { 'enter': { - text: 'go inside', + text: _('go inside'), nextScene: { 0.25: 'medicine', 0.5: 'supplies', 1: 'occupied' } }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, 'supplies': { text: [ - 'the house is abandoned, but not yet picked over.', - 'still a few drops of water in the old well.' + _('the house is abandoned, but not yet picked over.'), + _('still a few drops of water in the old well.') ], onLoad: function() { World.markVisited(World.curPos[0], World.curPos[1]); @@ -2869,15 +2869,15 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, 'medicine': { text: [ - 'the house has been ransacked.', - 'but there is a cache of medicine under the floorboards.' + _('the house has been ransacked.'), + _('but there is a cache of medicine under the floorboards.') ], onLoad: function() { World.markVisited(World.curPos[0], World.curPos[1]); @@ -2891,7 +2891,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -2904,7 +2904,7 @@ Events.Setpieces = { hit: 0.8, attackDelay: 2, health: 10, - notification: 'a man charges down the hall, a rusty blade in his hand', + notification: _('a man charges down the hall, a rusty blade in his hand'), onLoad: function() { World.markVisited(World.curPos[0], World.curPos[1]); }, @@ -2927,7 +2927,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -2935,12 +2935,12 @@ Events.Setpieces = { } }, "battlefield": { /* Discovering an old battlefield */ - title: 'A Forgotten Battlefield', + title: _('A Forgotten Battlefield'), scenes: { 'start': { text: [ - 'a battle was fought here, long ago.', - 'battered technology from both sides lays dormant on the blasted landscape.' + _('a battle was fought here, long ago.'), + _('battered technology from both sides lays dormant on the blasted landscape.') ], onLoad: function() { World.markVisited(World.curPos[0], World.curPos[1]); @@ -2979,7 +2979,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -2987,13 +2987,13 @@ Events.Setpieces = { } }, "borehole": { /* Admiring a huge borehole */ - title: 'A Huge Borehole', + title: _('A Huge Borehole'), scenes: { 'start': { text: [ - 'a huge hole is cut deep into the earth, evidence of the past harvest.', - 'they took what they came for, and left.', - 'castoff from the mammoth drills can still be found by the edges of the precipice.' + _('a huge hole is cut deep into the earth, evidence of the past harvest.'), + _('they took what they came for, and left.'), + _('castoff from the mammoth drills can still be found by the edges of the precipice.') ], onLoad: function() { World.markVisited(World.curPos[0], World.curPos[1]); @@ -3007,7 +3007,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -3015,7 +3015,7 @@ Events.Setpieces = { } }, "ship": { /* Finding a way off this rock */ - title: 'A Crashed Ship', + title: _('A Crashed Ship'), scenes: { 'start': { onLoad: function() { @@ -3024,13 +3024,13 @@ Events.Setpieces = { World.state.ship = true; }, text: [ - 'the familiar curves of a wanderer vessel rise up out of the dust and ash. ', - "lucky that the natives can't work the mechanisms.", - 'with a little effort, it might fly again.' + _('the familiar curves of a wanderer vessel rise up out of the dust and ash. '), + _("lucky that the natives can't work the mechanisms."), + _('with a little effort, it might fly again.') ], buttons: { 'leavel': { - text: 'salvage', + text: _('salvage'), nextScene: 'end' } } @@ -3038,21 +3038,21 @@ Events.Setpieces = { } }, "sulphurmine": { /* Clearing the Sulphur Mine */ - title: 'The Sulphur Mine', + title: _('The Sulphur Mine'), scenes: { 'start': { text: [ - "the military is already set up at the mine's entrance.", - 'soldiers patrol the perimeter, rifles slung over their shoulders.' + _("the military is already set up at the mine's entrance."), + _('soldiers patrol the perimeter, rifles slung over their shoulders.') ], - notification: 'a military perimeter is set up around the mine.', + notification: _('a military perimeter is set up around the mine.'), buttons: { 'attack': { - text: 'attack', + text: _('attack'), nextScene: {1: 'a1'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -3083,14 +3083,14 @@ Events.Setpieces = { chance: 0.2 } }, - notification: 'a soldier, alerted, opens fire.', + notification: _('a soldier, alerted, opens fire.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'a2' } }, 'run': { - text: 'run', + text: _('run'), nextScene: 'end' } } @@ -3121,14 +3121,14 @@ Events.Setpieces = { chance: 0.2 } }, - notification: 'a second soldier joins the fight.', + notification: _('a second soldier joins the fight.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'a3' } }, 'run': { - text: 'run', + text: _('run'), nextScene: 'end' } } @@ -3153,20 +3153,20 @@ Events.Setpieces = { chance: 0.8 } }, - notification: 'a grizzled soldier attacks, waving a bayonet.', + notification: _('a grizzled soldier attacks, waving a bayonet.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'cleared' } } } }, 'cleared': { text: [ - 'the military presence has been cleared.', - 'the mine is now safe for workers.' + _('the military presence has been cleared.'), + _('the mine is now safe for workers.') ], - notification: 'the sulphur mine is clear of dangers', + notification: _('the sulphur mine is clear of dangers'), onLoad: function() { World.drawRoad(); World.state.sulphurmine = true; @@ -3174,7 +3174,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -3182,21 +3182,21 @@ Events.Setpieces = { } }, "coalmine": { /* Clearing the Coal Mine */ - title: 'The Coal Mine', + title: _('The Coal Mine'), scenes: { 'start': { text: [ - 'camp fires burn by the entrance to the mine.', - 'men mill about, weapons at the ready.' + _('camp fires burn by the entrance to the mine.'), + _('men mill about, weapons at the ready.') ], - notification: 'this old mine is not abandoned', + notification: _('this old mine is not abandoned'), buttons: { 'attack': { - text: 'attack', + text: _('attack'), nextScene: {1: 'a1'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -3221,14 +3221,14 @@ Events.Setpieces = { chance: 0.8 } }, - notification: 'a man joins the fight', + notification: _('a man joins the fight'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'a2' } }, 'run': { - text: 'run', + text: _('run'), nextScene: 'end' } } @@ -3253,14 +3253,14 @@ Events.Setpieces = { chance: 0.8 } }, - notification: 'a man joins the fight', + notification: _('a man joins the fight'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'a3' } }, 'run': { - text: 'run', + text: _('run'), nextScene: 'end' } } @@ -3290,20 +3290,20 @@ Events.Setpieces = { chance: 0.8 } }, - notification: 'only the chief remains.', + notification: _('only the chief remains.'), buttons: { 'continue': { - text: 'continue', + text: _('continue'), nextScene: { 1: 'cleared' } } } }, 'cleared': { text: [ - 'the camp is still, save for the crackling of the fires.', - 'the mine is now safe for workers.' + _('the camp is still, save for the crackling of the fires.'), + _('the mine is now safe for workers.') ], - notification: 'the coal mine is clear of dangers', + notification: _('the coal mine is clear of dangers'), onLoad: function() { World.drawRoad(); World.state.coalmine = true; @@ -3311,7 +3311,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -3319,23 +3319,23 @@ Events.Setpieces = { } }, "ironmine": { /* Clearing the Iron Mine */ - title: 'The Iron Mine', + title: _('The Iron Mine'), scenes: { 'start': { text: [ - 'an old iron mine sits here, tools abandoned and left to rust.', - 'bleached bones are strewn about the entrance. many, deeply scored with jagged grooves.', - 'feral howls echo out of the darkness.' + _('an old iron mine sits here, tools abandoned and left to rust.'), + _('bleached bones are strewn about the entrance. many, deeply scored with jagged grooves.'), + _('feral howls echo out of the darkness.') ], - notification: 'the path leads to an abandoned mine', + notification: _('the path leads to an abandoned mine'), buttons: { 'enter': { - text: 'go inside', + text: _('go inside'), nextScene: { 1: 'enter' }, cost: { 'torch': 1 } }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -3365,20 +3365,20 @@ Events.Setpieces = { chance: 0.5 } }, - notification: 'a large creature lunges, muscles rippling in the torchlight', + notification: _('a large creature lunges, muscles rippling in the torchlight'), buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: { 1: 'cleared' } } } }, 'cleared': { text: [ - 'the beast is dead.', - 'the mine is now safe for workers.' + _('the beast is dead.'), + _('the mine is now safe for workers.') ], - notification: 'the iron mine is clear of dangers', + notification: _('the iron mine is clear of dangers'), onLoad: function() { World.drawRoad(); World.state.ironmine = true; @@ -3386,7 +3386,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } @@ -3395,41 +3395,41 @@ Events.Setpieces = { }, "cache": { /* Cache - contains some of supplies from previous game */ - title: 'A Destroyed Village', + title: _('A Destroyed Village'), scenes: { 'start': { text: [ - 'a destroyed village lies in the dust.', - 'charred bodies litter the ground.' + _('a destroyed village lies in the dust.'), + _('charred bodies litter the ground.') ], - notification: 'the metallic tang of wanderer afterburner hangs in the air.', + notification: _('the metallic tang of wanderer afterburner hangs in the air.'), buttons: { 'enter': { - text: 'enter', + text: _('enter'), nextScene: {1: 'underground'} }, 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } }, 'underground': { text: [ - 'a shack stands at the center of the village.', - 'there are still supplies inside.' + _('a shack stands at the center of the village.'), + _('there are still supplies inside.') ], buttons: { 'take': { - text: 'take', + text: _('take'), nextScene: {1: 'exit'} } } }, 'exit': { text: [ - 'all the work of a previous generation is here.', - 'ripe for the picking.' + _('all the work of a previous generation is here.'), + _('ripe for the picking.') ], onLoad: function() { World.markVisited(World.curPos[0], World.curPos[1]); @@ -3437,7 +3437,7 @@ Events.Setpieces = { }, buttons: { 'leave': { - text: 'leave', + text: _('leave'), nextScene: 'end' } } diff --git a/script/outside.js b/script/outside.js index 882799ff0..7b6f1ac90 100644 --- a/script/outside.js +++ b/script/outside.js @@ -87,32 +87,32 @@ var Outside = { { rollUnder: 0.5, name: 'fur', - message: 'scraps of fur' + message: _('scraps of fur') }, { rollUnder: 0.75, name: 'meat', - message: 'bits of meat' + message: _('bits of meat') }, { rollUnder: 0.85, name: 'scales', - message: 'strange scales' + message: _('strange scales') }, { rollUnder: 0.93, name: 'teeth', - message: 'scattered teeth' + message: _('scattered teeth') }, { rollUnder: 0.995, name: 'cloth', - message: 'tattered cloth' + message: _('tattered cloth') }, { rollUnder: 1.0, name: 'charm', - message: 'a crudely made charm' + message: _('a crudely made charm') } ], @@ -153,7 +153,7 @@ var Outside = { // Create the gather button new Button.Button({ id: 'gatherButton', - text: "gather wood", + text: _("gather wood"), click: Outside.gatherWood, cooldown: Outside._GATHER_DELAY, width: '80px' @@ -170,15 +170,15 @@ var Outside = { var num = Math.floor(Math.random()*(space/2) + space/2); if(num == 0) num = 1; if(num == 1) { - Notifications.notify(null, 'a stranger arrives in the night'); + Notifications.notify(null, _('a stranger arrives in the night')); } else if(num < 5) { - Notifications.notify(null, 'a weathered family takes up in one of the huts.'); + Notifications.notify(null, _('a weathered family takes up in one of the huts.')); } else if(num < 10) { - Notifications.notify(null, 'a small group arrives, all dust and bones.'); + Notifications.notify(null, _('a small group arrives, all dust and bones.')); } else if(num < 30) { - Notifications.notify(null, 'a convoy lurches in, equal parts worry and hope.'); + Notifications.notify(null, _('a convoy lurches in, equal parts worry and hope.')); } else { - Notifications.notify(null, "the town's booming. word does get around."); + Notifications.notify(null, _("the town's booming. word does get around.")); } Engine.log('population increased by ' + num); $SM.add('game.population', num); @@ -215,11 +215,11 @@ var Outside = { updateWorkersView: function() { var workers = $('div#workers'); - - // If our population is 0 and we don't already have a workers view, - // there's nothing to do here. + + // If our population is 0 and we don't already have a workers view, + // there's nothing to do here. if(!workers.length && $SM.get('game.population') == 0) return; - + var needsAppend = false; if(workers.length == 0) { needsAppend = true;