mirror of
https://github.com/doublespeakgames/adarkroom.git
synced 2026-05-28 00:01:54 +08:00
Start trad fr
This commit is contained in:
@@ -25,6 +25,8 @@
|
||||
<script src="lib/jquery.event.move.js"></script>
|
||||
<script src="lib/jquery.event.swipe.js"></script>
|
||||
<script src="lib/base64.js"></script>
|
||||
<script src="lib/translate.js"></script>
|
||||
<script src="lang/fr.js"></script>
|
||||
<script src="script/Button.js"></script>
|
||||
<script src="script/engine.js"></script>
|
||||
<script src="script/state_manager.js"></script>
|
||||
|
||||
+56
-56
@@ -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 = {
|
||||
|
||||
$('<span>')
|
||||
.addClass('lightsOff menuBtn')
|
||||
.text('lights off.')
|
||||
.text(_('lights off.'))
|
||||
.click(Engine.turnLightsOff)
|
||||
.appendTo(menu);
|
||||
|
||||
$('<span>')
|
||||
.addClass('menuBtn')
|
||||
.text('restart.')
|
||||
.text(_('restart.'))
|
||||
.click(Engine.confirmDelete)
|
||||
.appendTo(menu);
|
||||
|
||||
$('<span>')
|
||||
.addClass('menuBtn')
|
||||
.text('share.')
|
||||
.text(_('share.'))
|
||||
.click(Engine.share)
|
||||
.appendTo(menu);
|
||||
|
||||
$('<span>')
|
||||
.addClass('menuBtn')
|
||||
.text('save.')
|
||||
.text(_('save.'))
|
||||
.click(Engine.exportImport)
|
||||
.appendTo(menu);
|
||||
|
||||
$('<span>')
|
||||
.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('<link rel="stylesheet" href="css/dark.css" type="text/css" title="darkenLights" />');
|
||||
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.'));
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
+5
-5
@@ -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();
|
||||
$('<div>').text('the ' + scene.enemy + (scene.plural ? ' are' : ' is') + ' dead.').appendTo(desc);
|
||||
$('<div>').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){
|
||||
|
||||
+20
-20
@@ -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'à
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+13
-13
@@ -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'
|
||||
}
|
||||
}
|
||||
|
||||
+46
-46
@@ -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'
|
||||
}
|
||||
}
|
||||
|
||||
+120
-120
@@ -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'
|
||||
}
|
||||
}
|
||||
|
||||
+412
-412
File diff suppressed because it is too large
Load Diff
+16
-16
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user