waves/public/assets/g/adarkroom/script/events/setpieces.js
2025-04-09 17:11:14 -05:00

3588 lines
66 KiB
JavaScript

/**
* Events that only occur at specific times. Launched manually.
**/
Events.Setpieces = {
"outpost": { /* Friendly Outpost */
title: _('An Outpost'),
scenes: {
'start': {
text: [
_('a safe place in the wilds.')
],
notification: _('a safe place in the wilds.'),
loot: {
'cured meat': {
min: 5,
max: 10,
chance: 1
}
},
onLoad: function() {
World.useOutpost();
},
buttons: {
'leave': {
text: _('leave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_FRIENDLY_OUTPOST
},
"swamp": { /* Swamp */
title: _('A Murky Swamp'),
scenes: {
'start': {
text: [
_('rotting reeds rise out of the swampy earth.'),
_('a lone frog sits in the muck, silently.')
],
notification: _('a swamp festers in the stagnant air.'),
buttons: {
'enter': {
text: _('enter'),
nextScene: {1: 'cabin'}
},
'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.')
],
buttons: {
'talk': {
cost: {'charm': 1},
text: _('talk'),
nextScene: {1: 'talk'}
},
'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.')
],
onLoad: function() {
$SM.addPerk('gastronome');
World.markVisited(World.curPos[0], World.curPos[1]);
},
buttons: {
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_SWAMP
},
"cave": { /* Cave */
title: _('A Damp Cave'),
scenes: {
'start': {
text: [
_('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'),
buttons: {
'enter': {
text: _('go inside'),
cost: { torch: 1 },
nextScene: {0.3: 'a1', 0.6: 'a2', 1: 'a3'}
},
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
},
'a1': {
combat: true,
enemy: 'beast',
chara: 'R',
damage: 1,
hit: 0.8,
attackDelay: 1,
health: 5,
notification: _('a startled beast defends its home'),
loot: {
'fur': {
min: 1,
max: 10,
chance: 1
},
'teeth': {
min: 1,
max: 5,
chance: 0.8
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'b1', 1: 'b2'}
},
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'a2': {
text: [
_('the cave narrows a few feet in.'),
_("the walls are moist and moss-covered")
],
buttons: {
'continue': {
text: _('squeeze'),
nextScene: {0.5: 'b2', 1: 'b3'}
},
'leave': {
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.')
],
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 1
},
'torch': {
min: 1,
max: 5,
chance: 0.5
},
'leather': {
min: 1,
max: 5,
chance: 0.3
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'b3', 1: 'b4'}
},
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
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."),
/// TRANSLATORS : 'it' is a rotting wanderer's body
_("can't tell what left it here.")
],
loot: {
'iron sword': {
min: 1,
max: 1,
chance: 1
},
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'torch': {
min: 1,
max: 3,
chance: 0.5
},
'medicine': {
min: 1,
max: 2,
chance: 0.1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'c1' }
},
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b2': {
text: [
_('the torch sputters and dies in the damp air'),
_('the darkness is absolute')
],
notification: _('the torch goes out'),
buttons: {
'continue': {
text: _('continue'),
cost: {'torch': 1},
nextScene: { 1: 'c1' }
},
'leave': {
text: _('leave cave'),
nextScene: 'end'
}
}
},
'b3': {
combat: true,
enemy: 'beast',
chara: 'R',
damage: 1,
hit: 0.8,
attackDelay: 1,
health: 5,
notification: _('a startled beast defends its home'),
loot: {
'fur': {
min: 1,
max: 3,
chance: 1
},
'teeth': {
min: 1,
max: 2,
chance: 0.8
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'c2'}
},
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b4': {
combat: true,
enemy: 'cave lizard',
chara: 'R',
damage: 3,
hit: 0.8,
attackDelay: 2,
health: 6,
notification: _('a cave lizard attacks'),
loot: {
'scales': {
min: 1,
max: 3,
chance: 1
},
'teeth': {
min: 1,
max: 2,
chance: 0.8
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'c2'}
},
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c1': {
combat: true,
enemy: 'beast',
chara: 'R',
damage: 3,
hit: 0.8,
attackDelay: 2,
health: 10,
notification: _('a large beast charges out of the dark'),
loot: {
'fur': {
min: 1,
max: 3,
chance: 1
},
'teeth': {
min: 1,
max: 3,
chance: 1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end1', 1: 'end2'}
},
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c2': {
combat: true,
enemy: 'lizard',
chara: 'T',
damage: 4,
hit: 0.8,
attackDelay: 2,
health: 10,
notification: _('a giant lizard shambles forward'),
loot: {
'scales': {
min: 1,
max: 3,
chance: 1
},
'teeth': {
min: 1,
max: 3,
chance: 1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.7: 'end2', 1: 'end3'}
},
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end1': {
text: [
_('the nest of a large animal lies at the back of the cave.')
],
onLoad: function() {
World.clearDungeon();
},
loot: {
'meat': {
min: 5,
max: 10,
chance: 1
},
'fur': {
min: 5,
max: 10,
chance: 1
},
'scales': {
min: 5,
max: 10,
chance: 1
},
'teeth': {
min: 5,
max: 10,
chance: 1
},
'cloth': {
min: 5,
max: 10,
chance: 0.5
}
},
buttons: {
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end2': {
text: [
_('a small supply cache is hidden at the back of the cave.')
],
loot: {
'cloth': {
min: 5,
max: 10,
chance: 1
},
'leather': {
min: 5,
max: 10,
chance: 1
},
'iron': {
min: 5,
max: 10,
chance: 1
},
'cured meat': {
min: 5,
max: 10,
chance: 1
},
'steel': {
min: 5,
max: 10,
chance: 0.5
},
'bolas': {
min: 1,
max: 3,
chance: 0.3
},
'medicine': {
min: 1,
max: 4,
chance: 0.15
}
},
onLoad: function() {
World.clearDungeon();
},
buttons: {
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end3': {
text: [
_('an old case is wedged behind a rock, covered in a thick layer of dust.')
],
loot: {
'steel sword': {
min: 1,
max: 1,
chance: 1
},
'bolas': {
min: 1,
max: 3,
chance: 0.5
},
'medicine': {
min: 1,
max: 3,
chance: 0.3
}
},
onLoad: function() {
World.clearDungeon();
},
buttons: {
'leave': {
text: _('leave cave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_CAVE
},
"town": { /* 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.")
],
notification: _("the town lies abandoned, its citizens long dead"),
buttons: {
'enter': {
text: _('explore'),
nextScene: {0.3: 'a1', 0.7: 'a3', 1: 'a2'}
},
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
},
'a1': {
text: [
_("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'),
nextScene: {0.5: 'b1', 1: 'b2'},
cost: {torch: 1}
},
'leave': {
text: _('leave town'),
nextScene: 'end'
}
}
},
'a2': {
combat: true,
enemy: 'thug',
chara: 'E',
damage: 4,
hit: 0.8,
attackDelay: 2,
health: 30,
loot: {
'cloth': {
min: 5,
max: 10,
chance: 0.8
},
'leather': {
min: 5,
max: 10,
chance: 0.8
},
'cured meat': {
min: 1,
max: 5,
chance: 0.5
}
},
notification: _('ambushed on the street.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'b3', 1: 'b4'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'a3': {
text: [
_("a squat building up ahead."),
_('a green cross barely visible behind grimy windows.')
],
buttons: {
'enter': {
text: _('enter'),
nextScene: {0.5: 'b5', 1: 'end5'},
cost: {torch: 1}
},
'leave': {
text: _('leave town'),
nextScene: 'end'
}
}
},
'b1': {
text: [
_('a small cache of supplies is tucked inside a rusting locker.')
],
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 1
},
'torch': {
min: 1,
max: 3,
chance: 0.8
},
'bullets': {
min: 1,
max: 5,
chance: 0.3
},
'medicine': {
min: 1,
max: 3,
chance: 0.05
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c1', 1: 'c2'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b2': {
combat: true,
enemy: 'scavenger',
chara: 'E',
damage: 4,
hit: 0.8,
attackDelay: 2,
health: 30,
loot: {
'cloth': {
min: 5,
max: 10,
chance: 0.8
},
'leather': {
min: 5,
max: 10,
chance: 0.8
},
'cured meat': {
min: 1,
max: 5,
chance: 0.5
}
},
notification: _('a scavenger waits just inside the door.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c2', 1: 'c3'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b3': {
combat: true,
enemy: 'beast',
chara: 'R',
damage: 3,
hit: 0.8,
attackDelay: 1,
health: 25,
loot: {
'teeth': {
min: 1,
max: 5,
chance: 1
},
'fur': {
min: 5,
max: 10,
chance: 1
}
},
notification: _('a beast stands alone in an overgrown park.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c4', 1: 'c5'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
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.")
],
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'torch': {
min: 1,
max: 3,
chance: 0.5
},
'bullets': {
min: 1,
max: 5,
chance: 0.3
},
'medicine': {
min: 1,
max: 3,
chance: 0.1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c5', 1: 'c6' }
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b5': {
combat: true,
enemy: 'madman',
chara: 'E',
damage: 6,
hit: 0.3,
attackDelay: 1,
health: 10,
loot: {
'cloth': {
min: 2,
max: 4,
chance: 0.3
},
'cured meat': {
min: 1,
max: 5,
chance: 0.9
},
'medicine': {
min: 1,
max: 2,
chance: 0.4
}
},
notification: _('a madman attacks, screeching.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.3: 'end5', 1: 'end6'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c1': {
combat: true,
enemy: 'thug',
chara: 'E',
damage: 4,
hit: 0.8,
attackDelay: 2,
health: 30,
loot: {
'cloth': {
min: 5,
max: 10,
chance: 0.8
},
'leather': {
min: 5,
max: 10,
chance: 0.8
},
'cured meat': {
min: 1,
max: 5,
chance: 0.5
}
},
notification: _('a thug moves out of the shadows.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'd1'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c2': {
combat: true,
enemy: 'beast',
chara: 'R',
damage: 3,
hit: 0.8,
attackDelay: 1,
health: 25,
loot: {
'teeth': {
min: 1,
max: 5,
chance: 1
},
'fur': {
min: 5,
max: 10,
chance: 1
}
},
notification: _('a beast charges out of a ransacked classroom.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'd1'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
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.')
],
buttons: {
'continue': {
text: _('enter'),
nextScene: {1: 'd1'}
},
'leave': {
text: _('leave town'),
nextScene: 'end'
}
}
},
'c4': {
combat: true,
enemy: 'beast',
chara: 'R',
damage: 4,
hit: 0.8,
attackDelay: 1,
health: 25,
loot: {
'teeth': {
min: 1,
max: 5,
chance: 1
},
'fur': {
min: 5,
max: 10,
chance: 1
}
},
notification: _('another beast, draw by the noise, leaps out of a copse of trees.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'd2'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c5': {
text: [
_("something's causing a commotion a ways down the road."),
_("a fight, maybe.")
],
buttons: {
'continue': {
text: _('continue'),
nextScene: {1: 'd2'}
},
'leave': {
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.")
],
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'd2'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd1': {
combat: true,
enemy: 'scavenger',
chara: 'E',
damage: 5,
hit: 0.8,
attackDelay: 2,
health: 30,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 1
},
'leather': {
min: 5,
max: 10,
chance: 0.8
},
'steel sword': {
min: 1,
max: 1,
chance: 0.5
}
},
notification: _('a panicked scavenger bursts through the door, screaming.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end1', 1: 'end2'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd2': {
combat: true,
enemy: 'vigilante',
chara: 'D',
damage: 6,
hit: 0.8,
attackDelay: 2,
health: 30,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 1
},
'leather': {
min: 5,
max: 10,
chance: 0.8
},
'steel sword': {
min: 1,
max: 1,
chance: 0.5
}
},
notification: _("a man stands over a dead wanderer. notices he's not alone."),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end3', 1: 'end4'}
},
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end1': {
text: [
_('scavenger had a small camp in the school.'),
_('collected scraps spread across the floor like they fell from heaven.')
],
onLoad: function() {
World.clearDungeon();
},
loot: {
'steel sword': {
min: 1,
max: 1,
chance: 1
},
'steel': {
min: 5,
max: 10,
chance: 1
},
'cured meat': {
min: 5,
max: 10,
chance: 1
},
'bolas': {
min: 1,
max: 5,
chance: 0.5
},
'medicine': {
min: 1,
max: 2,
chance: 0.3
}
},
buttons: {
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
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.")
],
onLoad: function() {
World.clearDungeon();
},
loot: {
'coal': {
min: 5,
max: 10,
chance: 1
},
'cured meat': {
min: 5,
max: 10,
chance: 1
},
'leather': {
min: 5,
max: 10,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
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.")
],
onLoad: function() {
World.clearDungeon();
},
loot: {
'rifle': {
min: 1,
max: 1,
chance: 1
},
'bullets': {
min: 1,
max: 5,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end4': {
text: [
_("eye for an eye seems fair."),
_("always worked before, at least."),
_("picking the bones finds some useful trinkets.")
],
onLoad: function() {
World.clearDungeon();
},
loot: {
'cured meat': {
min: 5,
max: 10,
chance: 1
},
'iron': {
min: 5,
max: 10,
chance: 1
},
'torch': {
min: 1,
max: 5,
chance: 1
},
'bolas': {
min: 1,
max: 5,
chance: 0.5
},
'medicine': {
min: 1,
max: 2,
chance: 0.1
}
},
buttons: {
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end5': {
text: [
_('some medicine abandoned in the drawers.')
],
onLoad: function() {
World.clearDungeon();
},
loot: {
'medicine': {
min: 2,
max: 5,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave town'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end6': {
text: [
_('the clinic has been ransacked.'),
_('only dust and stains remain.')
],
onLoad: function() {
World.clearDungeon();
},
buttons: {
'leave': {
text: _('leave town'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_TOWN
},
"city": { /* 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.')
],
notification: _("the towers of a decaying city dominate the skyline"),
buttons: {
'enter': {
text: _('explore'),
nextScene: {0.2: 'a1', 0.5: 'a2', 0.8: 'a3', 1: 'a4'}
},
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
},
'a1': {
text:[
_('the streets are empty.'),
_('the air is filled with dust, driven relentlessly by the hard winds.')
],
buttons: {
'continue': {
text: _('continue'),
nextScene: {0.5: 'b1', 1: 'b2'}
},
'leave': {
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.')
],
buttons: {
'continue': {
text: _('continue'),
nextScene: {0.5: 'b3', 1: 'b4'}
},
'leave': {
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.')
],
buttons: {
'continue': {
text: _('continue'),
nextScene: {0.5: 'b5', 1: 'b6'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'a4': {
text: [
_('the shell of an abandoned hospital looms ahead.')
],
buttons: {
'enter': {
text: _('enter'),
cost: { 'torch': 1 },
nextScene: {0.5: 'b7', 1: 'b8'}
},
'leave': {
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.')
],
buttons: {
'enter': {
text: _('enter'),
nextScene: {0.5: 'c1', 1: 'c2'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'b2': {
combat: true,
notification: _('a huge lizard scrambles up out of the darkness of an old metro station.'),
enemy: 'lizard',
chara: 'R',
damage: 5,
hit: 0.8,
attackDelay: 2,
health: 20,
loot: {
'scales': {
min: 5,
max: 10,
chance: 0.8
},
'teeth': {
min: 5,
max: 10,
chance: 0.5
},
'meat': {
min: 5,
max: 10,
chance: 0.8
}
},
buttons: {
'descend': {
text: _('descend'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c2', 1: 'c3'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b3': {
notification: _('the shot echoes in the empty street.'),
combat: true,
enemy: 'sniper',
chara: 'D',
damage: 15,
hit: 0.8,
attackDelay: 4,
health: 30,
ranged: true,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'bullets': {
min: 1,
max: 5,
chance: 0.5
},
'rifle': {
min: 1,
max: 1,
chance: 0.2
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c4', 1: 'c5'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b4': {
notification: _('the soldier steps out from between the buildings, rifle raised.'),
combat: true,
enemy: 'soldier',
ranged: true,
chara: 'D',
damage: 8,
hit: 0.8,
attackDelay: 2,
health: 50,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'bullets': {
min: 1,
max: 5,
chance: 0.5
},
'rifle': {
min: 1,
max: 1,
chance: 0.2
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c5', 1: 'c6'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b5': {
notification: _('a frail man stands defiantly, blocking the path.'),
combat: true,
enemy: 'frail man',
chara: 'E',
damage: 1,
hit: 0.8,
attackDelay: 2,
health: 10,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'cloth': {
min: 1,
max: 5,
chance: 0.5
},
'leather': {
min: 1,
max: 1,
chance: 0.2
},
'medicine': {
min: 1,
max: 3,
chance: 0.05
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'c7', 1: 'c8'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'b6': {
text: [
_('nothing but downcast eyes.'),
_('the people here were broken a long time ago.')
],
buttons: {
'continue': {
text: _('continue'),
nextScene: {0.5: 'c8', 1: 'c9'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'b7': {
text: [
_('empty corridors.'),
_('the place has been swept clean by scavengers.')
],
buttons: {
'continue': {
text: _('continue'),
nextScene: {0.3: 'c12', 0.7: 'c10', 1: 'c11'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'b8': {
notification: _('an old man bursts through a door, wielding a scalpel.'),
combat: true,
enemy: 'old man',
chara: 'E',
damage: 3,
hit: 0.5,
attackDelay: 2,
health: 10,
loot: {
'cured meat': {
min: 1,
max: 3,
chance: 0.5
},
'cloth': {
min: 1,
max: 5,
chance: 0.8
},
'medicine': {
min: 1,
max: 2,
chance: 0.5
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.3: 'c13', 0.7: 'c11', 1: 'end15'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c1': {
notification: _('a thug is waiting on the other side of the wall.'),
combat: true,
enemy: 'thug',
chara: 'E',
damage: 3,
hit: 0.8,
attackDelay: 2,
health: 30,
loot: {
'steel sword': {
min: 1,
max: 1,
chance: 0.5
},
'cured meat': {
min: 1,
max: 3,
chance: 0.5
},
'cloth': {
min: 1,
max: 5,
chance: 0.8
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'd1', 1: 'd2'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c2': {
notification: _('a snarling beast jumps out from behind a car.'),
combat: true,
enemy: 'beast',
chara: 'R',
damage: 2,
hit: 0.8,
attackDelay: 1,
health: 30,
loot: {
'meat': {
min: 1,
max: 5,
chance: 0.8
},
'fur': {
min: 1,
max: 5,
chance: 0.8
},
'teeth': {
min: 1,
max: 5,
chance: 0.5
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'd2'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'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.')
],
buttons: {
'enter': {
text: _('investigate'),
cost: { 'torch': 1 },
nextScene: {0.5: 'd2', 1: 'd3'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'c4': {
text: [
_('looks like a camp of sorts up ahead.'),
/// TRANSLATORS : chainlink is a type of metal fence.
_('rusted chainlink is pulled across an alleyway.'),
_('fires burn in the courtyard beyond.')
],
buttons: {
'enter': {
text: _('continue'),
nextScene: {0.5: 'd4', 1: 'd5'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'c5': {
text: [
_('more voices can be heard ahead.'),
_('they must be here for a reason.')
],
buttons: {
'enter': {
text: _('continue'),
nextScene: {1: 'd5'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'c6': {
text: [
_('the sound of gunfire carries on the wind.'),
_('the street ahead glows with firelight.')
],
buttons: {
'enter': {
text: _('continue'),
nextScene: {0.5: 'd5', 1: 'd6'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'c7': {
text: [
/// TRANSLATORS : squatters occupy abandoned dwellings they don't own.
_('more squatters are crowding around now.'),
_('someone throws a stone.')
],
buttons: {
'enter': {
text: _('continue'),
nextScene: {0.5: 'd7', 1: 'd8'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'c8': {
text: [
_('an improvised shop is set up on the sidewalk.'),
_('the owner stands by, stoic.')
],
loot: {
'steel sword': {
min: 1,
max: 1,
chance: 0.8
},
'rifle': {
min: 1,
max: 1,
chance: 0.5
},
'bullets': {
min: 1,
max: 8,
chance: 0.25
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.01
},
'medicine': {
min: 1,
max: 4,
chance: 0.5
}
},
buttons: {
'enter': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'd8'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c9': {
text: [
_('strips of meat hang drying by the side of the street.'),
_('the people back away, avoiding eye contact.')
],
loot: {
'cured meat': {
min: 5,
max: 10,
chance: 1
}
},
buttons: {
'enter': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'd8', 1: 'd9'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c10': {
text: [
_('someone has locked and barricaded the door to this operating theatre.')
],
buttons: {
'enter': {
text: _('continue'),
nextScene: {0.2: 'end12', 0.6: 'd10', 1: 'd11'}
},
'leave': {
text: _('leave city'),
nextScene: 'end'
}
}
},
'c11': {
notification: _('a tribe of elderly squatters is camped out in this ward.'),
combat: true,
enemy: 'squatters',
plural: true,
chara: 'EEE',
damage: 2,
hit: 0.7,
attackDelay: 0.5,
health: 40,
loot: {
'cured meat': {
min: 1,
max: 3,
chance: 0.5
},
'cloth': {
min: 3,
max: 8,
chance: 0.8
},
'medicine': {
min: 1,
max: 3,
chance: 0.3
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'end10' }
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c12': {
notification: _('a pack of lizards rounds the corner.'),
combat: true,
enemy: 'lizards',
plural: true,
chara: 'RRR',
damage: 4,
hit: 0.7,
attackDelay: 0.7,
health: 30,
loot: {
'meat': {
min: 3,
max: 8,
chance: 1
},
'teeth': {
min: 2,
max: 4,
chance: 1
},
'scales': {
min: 3,
max: 5,
chance: 1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'end10' }
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'c13': {
text: [
_('strips of meat are hung up to dry in this ward.')
],
loot: {
'cured meat': {
min: 3,
max: 10,
chance: 1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 0.5: 'end10', 1: 'end11' }
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd1': {
notification: _('a large bird nests at the top of the stairs.'),
combat: true,
enemy: 'bird',
chara: 'R',
damage: 5,
hit: 0.7,
attackDelay: 1,
health: 45,
loot: {
'meat': {
min: 5,
max: 10,
chance: 0.8
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end1', 1: 'end2'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd2': {
text: [
_("the debris is denser here."),
_("maybe some useful stuff in the rubble.")
],
loot: {
'bullets': {
min: 1,
max: 5,
chance: 0.5
},
'steel': {
min: 1,
max: 10,
chance: 0.8
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.01
},
'cloth': {
min: 1,
max: 10,
chance: 1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'end2'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd3': {
notification: _('a swarm of rats rushes up the tunnel.'),
combat: true,
enemy: 'rats',
plural: true,
chara: 'RRR',
damage: 1,
hit: 0.8,
attackDelay: 0.25,
health: 60,
loot: {
'fur': {
min: 5,
max: 10,
chance: 0.8
},
'teeth': {
min: 5,
max: 10,
chance: 0.5
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end2', 1: 'end3'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd4': {
notification: _('a large man attacks, waving a bayonet.'),
combat: true,
enemy: 'veteran',
chara: 'D',
damage: 6,
hit: 0.8,
attackDelay: 2,
health: 45,
loot: {
'bayonet': {
min: 1,
max: 1,
chance: 0.5
},
'cured meat': {
min: 1,
max: 5,
chance: 0.8
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end4', 1: 'end5'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd5': {
notification: _('a second soldier opens fire.'),
combat: true,
enemy: 'soldier',
ranged: true,
chara: 'D',
damage: 8,
hit: 0.8,
attackDelay: 2,
health: 50,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'bullets': {
min: 1,
max: 5,
chance: 0.5
},
'rifle': {
min: 1,
max: 1,
chance: 0.2
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'end5'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd6': {
notification: _('a masked soldier rounds the corner, gun drawn'),
combat: true,
enemy: 'commando',
chara: 'D',
ranged: true,
damage: 3,
hit: 0.9,
attackDelay: 2,
health: 55,
loot: {
'rifle': {
min: 1,
max: 1,
chance: 0.5
},
'bullets': {
min: 1,
max: 5,
chance: 0.8
},
'cured meat': {
min: 1,
max: 5,
chance: 0.8
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end5', 1: 'end6'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd7': {
notification: _('the crowd surges forward.'),
combat: true,
enemy: 'squatters',
plural: true,
chara: 'EEE',
damage: 2,
hit: 0.7,
attackDelay: 0.5,
health: 40,
loot: {
'cloth': {
min: 1,
max: 5,
chance: 0.8
},
'teeth': {
min: 1,
max: 5,
chance: 0.5
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end7', 1: 'end8'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd8': {
notification: _('a youth lashes out with a tree branch.'),
combat: true,
enemy: 'youth',
chara: 'E',
damage: 2,
hit: 0.7,
attackDelay: 1,
health: 45,
loot: {
'cloth': {
min: 1,
max: 5,
chance: 0.8
},
'teeth': {
min: 1,
max: 5,
chance: 0.5
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'end8'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd9': {
notification: _('a squatter stands firmly in the doorway of a small hut.'),
combat: true,
enemy: 'squatter',
chara: 'E',
damage: 3,
hit: 0.8,
attackDelay: 2,
health: 20,
loot: {
'cloth': {
min: 1,
max: 5,
chance: 0.8
},
'teeth': {
min: 1,
max: 5,
chance: 0.5
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {0.5: 'end8', 1: 'end9'}
},
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'd10': {
notification: _('behind the door, a deformed figure awakes and attacks.'),
combat: true,
enemy: 'deformed',
chara: 'T',
damage: 8,
hit: 0.6,
attackDelay: 2,
health: 40,
loot: {
'cloth': {
min: 1,
max: 5,
chance: 0.8
},
'teeth': {
min: 2,
max: 2,
chance: 1
},
'steel': {
min: 1,
max: 3,
chance: 0.6
},
'scales': {
min: 2,
max: 3,
chance: 0.1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'end14'}
}
}
},
'd11': {
notification: _('as soon as the door is open a little bit, hundreds of tentacles erupt.'),
combat: true,
enemy: 'tentacles',
plural: true,
chara: 'TTT',
damage: 2,
hit: 0.6,
attackDelay: 0.5,
health: 60,
loot: {
'meat': {
min: 10,
max: 20,
chance: 1
}
},
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: {1: 'end13'}
}
}
},
'end1': {
text: [
_('bird must have liked shiney things.'),
_('some good stuff woven into its nest.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
bullets: {
min: 5,
max: 10,
chance: 0.8
},
bolas: {
min: 1,
max: 5,
chance: 0.5
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.5
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end2': {
text: [
_('not much here.'),
_('scavengers must have gotten to this place already.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
torch: {
min: 1,
max: 5,
chance: 0.8
},
'cured meat': {
min: 1,
max: 5,
chance: 0.5
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end3': {
text: [
/// TRANSLATORS : a platform in the subway
_('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();
$SM.set('game.cityCleared', true);
},
loot: {
rifle: {
min: 1,
max: 1,
chance: 0.8
},
bullets: {
min: 1,
max: 5,
chance: 0.8
},
'laser rifle': {
min: 1,
max: 1,
chance: 0.3
},
'energy cell': {
min: 1,
max: 5,
chance: 0.3
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.3
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'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.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
rifle: {
min: 1,
max: 1,
chance: 1
},
bullets: {
min: 1,
max: 10,
chance: 1
},
grenade: {
min: 1,
max: 5,
chance: 0.8
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end5': {
text: [
_('searching the bodies yields a few supplies.'),
_('more soldiers will be on their way.'),
_('time to move on.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
rifle: {
min: 1,
max: 1,
chance: 1
},
bullets: {
min: 1,
max: 10,
chance: 1
},
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'medicine': {
min: 1,
max: 4,
chance: 0.1
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'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.")
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'laser rifle': {
min: 1,
max: 1,
chance: 0.5
},
'energy cell': {
min: 1,
max: 5,
chance: 0.5
},
'cured meat': {
min: 1,
max: 10,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end7': {
text: [
_('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();
$SM.set('game.cityCleared', true);
},
loot: {
'steel sword': {
min: 1,
max: 1,
chance: 0.8
},
'energy cell': {
min: 1,
max: 5,
chance: 0.5
},
'cured meat': {
min: 1,
max: 10,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end8': {
text: [
_('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();
$SM.set('game.cityCleared', true);
},
loot: {
'steel sword': {
min: 1,
max: 1,
chance: 0.8
},
'bolas': {
min: 1,
max: 5,
chance: 0.5
},
'cured meat': {
min: 1,
max: 10,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end9': {
text: [
_('inside the hut, a child cries.'),
_("a few belongings rest against the walls."),
_("there's nothing else here.")
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'rifle': {
min: 1,
max: 1,
chance: 0.8
},
'bullets': {
min: 1,
max: 5,
chance: 0.8
},
'bolas': {
min: 1,
max: 5,
chance: 0.5
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.2
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'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.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'energy cell': {
min: 1,
max: 1,
chance: 0.3
},
'medicine': {
min: 1,
max: 5,
chance: 0.3
},
'teeth': {
min: 3,
max: 8,
chance: 1
},
'scales': {
min: 4,
max: 7,
chance: 0.9
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end11': {
text: [
_('a pristine medicine cabinet at the end of a hallway.'),
_("the rest of the hospital is empty.")
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'energy cell': {
min: 1,
max: 1,
chance: 0.2
},
'medicine': {
min: 3,
max: 10,
chance: 1
},
'teeth': {
min: 1,
max: 2,
chance: 0.2
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end12': {
text: [
_('someone had been stockpiling loot here.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'energy cell': {
min: 1,
max: 3,
chance: 0.2
},
'medicine': {
min: 3,
max: 10,
chance: 0.5
},
'bullets': {
min: 2,
max: 8,
chance: 1
},
'torch': {
min: 1,
max: 3,
chance: 0.5
},
'grenade': {
min: 1,
max: 1,
chance: 0.5
},
'alien alloy': {
min: 1,
max: 2,
chance: 0.8
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end13': {
text: [
_('the tentacular horror is defeated.'),
_('inside, the remains of its victims are everywhere.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'steel sword': {
min: 1,
max: 3,
chance: 0.5
},
'rifle': {
min: 1,
max: 2,
chance: 0.3
},
'teeth': {
min: 2,
max: 8,
chance: 1
},
'cloth': {
min: 3,
max: 6,
chance: 0.5
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.1
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end14': {
text: [
/// TRANSLATORS : warped means extremely disfigured.
_('the warped man lies dead.'),
_('the operating theatre has a lot of curious equipment.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'energy cell': {
min: 2,
max: 5,
chance: 0.8
},
'medicine': {
min: 3,
max: 12,
chance: 1
},
'cloth': {
min: 1,
max: 3,
chance: 0.5
},
'steel': {
min: 2,
max: 3,
chance: 0.3
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.3
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'end15': {
text: [
_('the old man had a small cache of interesting items.')
],
onLoad: function() {
World.clearDungeon();
$SM.set('game.cityCleared', true);
},
loot: {
'alien alloy': {
min: 1,
max: 1,
chance: 0.8
},
'medicine': {
min: 1,
max: 4,
chance: 1
},
'cured meat': {
min: 3,
max: 7,
chance: 1
},
'bolas': {
min: 1,
max: 3,
chance: 0.5
},
'fur': {
min: 1,
max: 5,
chance: 0.8
}
},
buttons: {
'leave': {
text: _('leave city'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_CITY
},
"house": { /* Abandoned House */
title: _('An Old House'),
scenes: {
'start': {
text: [
_('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'),
buttons: {
'enter': {
text: _('go inside'),
nextScene: { 0.25: 'medicine', 0.5: 'supplies', 1: 'occupied' }
},
'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.')
],
onLoad: function() {
World.markVisited(World.curPos[0], World.curPos[1]);
World.setWater(World.getMaxWater());
Notifications.notify(null, _('water replenished'));
},
loot: {
'cured meat': {
min: 1,
max: 10,
chance: 0.8
},
'leather': {
min: 1,
max: 10,
chance: 0.2
},
'cloth': {
min: 1,
max: 10,
chance: 0.5
}
},
buttons: {
'leave': {
text: _('leave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'medicine': {
text: [
_('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]);
},
loot: {
'medicine': {
min: 2,
max: 5,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'occupied': {
combat: true,
enemy: 'squatter',
chara: 'E',
damage: 3,
hit: 0.8,
attackDelay: 2,
health: 10,
notification: _('a man charges down the hall, a rusty blade in his hand'),
onLoad: function() {
World.markVisited(World.curPos[0], World.curPos[1]);
},
loot: {
'cured meat': {
min: 1,
max: 10,
chance: 0.8
},
'leather': {
min: 1,
max: 10,
chance: 0.2
},
'cloth': {
min: 1,
max: 10,
chance: 0.5
}
},
buttons: {
'leave': {
text: _('leave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_HOUSE
},
"battlefield": { /* Discovering an old 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.')
],
onLoad: function() {
World.markVisited(World.curPos[0], World.curPos[1]);
},
loot: {
'rifle': {
min: 1,
max: 3,
chance: 0.5
},
'bullets': {
min: 5,
max: 20,
chance: 0.8
},
'laser rifle': {
min: 1,
max: 3,
chance: 0.3
},
'energy cell': {
min: 5,
max: 10,
chance: 0.5
},
'grenade': {
min: 1,
max: 5,
chance: 0.5
},
'alien alloy': {
min: 1,
max: 1,
chance: 0.3
}
},
buttons: {
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_BATTLEFIELD
},
"borehole": { /* Admiring 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.')
],
onLoad: function() {
World.markVisited(World.curPos[0], World.curPos[1]);
},
loot: {
'alien alloy': {
min: 1,
max: 3,
chance: 1
}
},
buttons: {
'leave': {
text: _('leave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_BOREHOLE
},
"ship": { /* Finding a way off this rock */
title: _('A Crashed Ship'),
scenes: {
'start': {
onLoad: function() {
World.markVisited(World.curPos[0], World.curPos[1]);
World.drawRoad();
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.')
],
buttons: {
'leavel': {
text: _('salvage'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_CRASHED_SHIP
},
"sulphurmine": { /* Clearing 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.')
],
notification: _('a military perimeter is set up around the mine.'),
buttons: {
'attack': {
text: _('attack'),
nextScene: {1: 'a1'}
},
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
},
'a1': {
combat: true,
enemy: 'soldier',
ranged: true,
chara: 'D',
damage: 8,
hit: 0.8,
attackDelay: 2,
health: 50,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'bullets': {
min: 1,
max: 5,
chance: 0.5
},
'rifle': {
min: 1,
max: 1,
chance: 0.2
}
},
notification: _('a soldier, alerted, opens fire.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'a2' }
},
'run': {
text: _('run'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'a2': {
combat: true,
enemy: 'soldier',
ranged: true,
chara: 'D',
damage: 8,
hit: 0.8,
attackDelay: 2,
health: 50,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'bullets': {
min: 1,
max: 5,
chance: 0.5
},
'rifle': {
min: 1,
max: 1,
chance: 0.2
}
},
notification: _('a second soldier joins the fight.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'a3' }
},
'run': {
text: _('run'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'a3': {
combat: true,
enemy: 'veteran',
chara: 'D',
damage: 10,
hit: 0.8,
attackDelay: 2,
health: 65,
loot: {
'bayonet': {
min: 1,
max: 1,
chance: 0.5
},
'cured meat': {
min: 1,
max: 5,
chance: 0.8
}
},
notification: _('a grizzled soldier attacks, waving a bayonet.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'cleared' }
}
}
},
'cleared': {
text: [
_('the military presence has been cleared.'),
_('the mine is now safe for workers.')
],
notification: _('the sulphur mine is clear of dangers'),
onLoad: function() {
World.drawRoad();
World.state.sulphurmine = true;
World.markVisited(World.curPos[0], World.curPos[1]);
},
buttons: {
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_SULPHUR_MINE
},
"coalmine": { /* Clearing 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.')
],
notification: _('this old mine is not abandoned'),
buttons: {
'attack': {
text: _('attack'),
nextScene: {1: 'a1'}
},
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
},
'a1': {
combat: true,
enemy: 'man',
chara: 'E',
damage: 3,
hit: 0.8,
attackDelay: 2,
health: 10,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'cloth': {
min: 1,
max: 5,
chance: 0.8
}
},
notification: _('a man joins the fight'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'a2' }
},
'run': {
text: _('run'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'a2': {
combat: true,
enemy: 'man',
chara: 'E',
damage: 3,
hit: 0.8,
attackDelay: 2,
health: 10,
loot: {
'cured meat': {
min: 1,
max: 5,
chance: 0.8
},
'cloth': {
min: 1,
max: 5,
chance: 0.8
}
},
notification: _('a man joins the fight'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'a3' }
},
'run': {
text: _('run'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: 'end'
}
}
},
'a3': {
combat: true,
enemy: 'chief',
chara: 'D',
damage: 5,
hit: 0.8,
attackDelay: 2,
health: 20,
loot: {
'cured meat': {
min: 5,
max: 10,
chance: 1
},
'cloth': {
min: 5,
max: 10,
chance: 0.8
},
'iron': {
min: 1,
max: 5,
chance: 0.8
}
},
notification: _('only the chief remains.'),
buttons: {
'continue': {
text: _('continue'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'cleared' }
}
}
},
'cleared': {
text: [
_('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'),
onLoad: function() {
World.drawRoad();
World.state.coalmine = true;
World.markVisited(World.curPos[0], World.curPos[1]);
},
buttons: {
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_COAL_MINE
},
"ironmine": { /* Clearing 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.')
],
notification: _('the path leads to an abandoned mine'),
buttons: {
'enter': {
text: _('go inside'),
nextScene: { 1: 'enter' },
cost: { 'torch': 1 }
},
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
},
'enter': {
combat: true,
enemy: 'beastly matriarch',
chara: 'T',
damage: 4,
hit: 0.8,
attackDelay: 2,
health: 10,
loot: {
'teeth': {
min: 5,
max: 10,
chance: 1
},
'scales': {
min: 5,
max: 10,
chance: 0.8
},
'cloth': {
min: 5,
max: 10,
chance: 0.5
}
},
notification: _('a large creature lunges, muscles rippling in the torchlight'),
buttons: {
'leave': {
text: _('leave'),
cooldown: Events._LEAVE_COOLDOWN,
nextScene: { 1: 'cleared' }
}
}
},
'cleared': {
text: [
_('the beast is dead.'),
_('the mine is now safe for workers.')
],
notification: _('the iron mine is clear of dangers'),
onLoad: function() {
World.drawRoad();
World.state.ironmine = true;
World.markVisited(World.curPos[0], World.curPos[1]);
},
buttons: {
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_IRON_MINE
},
"cache": { /* Cache - contains some of supplies from previous game */
title: _('A Destroyed Village'),
scenes: {
'start': {
text: [
_('a destroyed village lies in the dust.'),
_('charred bodies litter the ground.')
],
/// TRANSLATORS : tang = strong metallic smell, wanderer afterburner = ship's engines
notification: _('the metallic tang of wanderer afterburner hangs in the air.'),
buttons: {
'enter': {
text: _('enter'),
nextScene: {1: 'underground'}
},
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
},
'underground': {
text: [
_('a shack stands at the center of the village.'),
_('there are still supplies inside.')
],
buttons: {
'take': {
text: _('take'),
nextScene: {1: 'exit'}
}
}
},
'exit': {
text: [
_('all the work of a previous generation is here.'),
_('ripe for the picking.')
],
onLoad: function() {
World.markVisited(World.curPos[0], World.curPos[1]);
Prestige.collectStores();
},
buttons: {
'leave': {
text: _('leave'),
nextScene: 'end'
}
}
}
},
audio: AudioLibrary.LANDMARK_DESTROYED_VILLAGE
}
};