forked from sent/waves
401 lines
7.4 KiB
JavaScript
401 lines
7.4 KiB
JavaScript
/**
|
|
* Events that can occur when wandering around the world
|
|
**/
|
|
Events.Encounters = [
|
|
/* Tier 1 */
|
|
{ /* Snarling Beast */
|
|
title: _('A Snarling Beast'),
|
|
isAvailable: function() {
|
|
return World.getDistance() <= 10 && World.getTerrain() == World.TILE.FOREST;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'snarling beast',
|
|
enemyName: _('snarling beast'),
|
|
deathMessage: _('the snarling beast is dead'),
|
|
chara: 'R',
|
|
damage: 1,
|
|
hit: 0.8,
|
|
attackDelay: 1,
|
|
health: 5,
|
|
loot: {
|
|
'fur': {
|
|
min: 1,
|
|
max: 3,
|
|
chance: 1
|
|
},
|
|
'meat': {
|
|
min: 1,
|
|
max: 3,
|
|
chance: 1
|
|
},
|
|
'teeth': {
|
|
min: 1,
|
|
max: 3,
|
|
chance: 0.8
|
|
}
|
|
},
|
|
notification: _('a snarling beast leaps out of the underbrush')
|
|
}
|
|
}
|
|
},
|
|
{ /* Gaunt Man */
|
|
title: _('A Gaunt Man'),
|
|
isAvailable: function() {
|
|
return World.getDistance() <= 10 && World.getTerrain() == World.TILE.BARRENS;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'gaunt man',
|
|
enemyName: _('gaunt man'),
|
|
deathMessage: _('the gaunt man is dead'),
|
|
chara: 'E',
|
|
damage: 2,
|
|
hit: 0.8,
|
|
attackDelay: 2,
|
|
health: 6,
|
|
loot: {
|
|
'cloth': {
|
|
min: 1,
|
|
max: 3,
|
|
chance: 0.8
|
|
},
|
|
'teeth': {
|
|
min: 1,
|
|
max: 2,
|
|
chance: 0.8
|
|
},
|
|
'leather': {
|
|
min: 1,
|
|
max: 2,
|
|
chance: 0.5
|
|
}
|
|
},
|
|
notification: _('a gaunt man approaches, a crazed look in his eye')
|
|
}
|
|
}
|
|
},
|
|
{ /* Strange Bird */
|
|
title: _('A Strange Bird'),
|
|
isAvailable: function() {
|
|
return World.getDistance() <= 10 && World.getTerrain() == World.TILE.FIELD;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'strange bird',
|
|
enemyName: _('strange bird'),
|
|
deathMessage: _('the strange bird is dead'),
|
|
chara: 'R',
|
|
damage: 3,
|
|
hit: 0.8,
|
|
attackDelay: 2,
|
|
health: 4,
|
|
loot: {
|
|
'scales': {
|
|
min: 1,
|
|
max: 3,
|
|
chance: 0.8
|
|
},
|
|
'teeth': {
|
|
min: 1,
|
|
max: 2,
|
|
chance: 0.5
|
|
},
|
|
'meat': {
|
|
min: 1,
|
|
max: 3,
|
|
chance: 0.8
|
|
}
|
|
},
|
|
notification: _('a strange looking bird speeds across the plains')
|
|
}
|
|
}
|
|
},
|
|
/* Tier 2*/
|
|
{ /* Shivering Man */
|
|
title: _('A Shivering Man'),
|
|
isAvailable: function() {
|
|
return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.BARRENS;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'shivering man',
|
|
enemyName: _('shivering man'),
|
|
deathMessage: _('the shivering man is dead'),
|
|
chara: 'E',
|
|
damage: 5,
|
|
hit: 0.5,
|
|
attackDelay: 1,
|
|
health: 20,
|
|
loot: {
|
|
'cloth': {
|
|
min: 1,
|
|
max: 1,
|
|
chance: 0.2
|
|
},
|
|
'teeth': {
|
|
min: 1,
|
|
max: 2,
|
|
chance: 0.8
|
|
},
|
|
'leather': {
|
|
min: 1,
|
|
max: 1,
|
|
chance: 0.2
|
|
},
|
|
'medicine': {
|
|
min: 1,
|
|
max: 3,
|
|
chance: 0.7
|
|
}
|
|
},
|
|
notification: _('a shivering man approaches and attacks with surprising strength')
|
|
}
|
|
}
|
|
},
|
|
{ /* Man-eater */
|
|
title: _('A Man-Eater'),
|
|
isAvailable: function() {
|
|
return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.FOREST;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'man-eater',
|
|
enemyName: _('man-eater'),
|
|
deathMessage: _('the man-eater is dead'),
|
|
chara: 'T',
|
|
damage: 3,
|
|
hit: 0.8,
|
|
attackDelay: 1,
|
|
health: 25,
|
|
loot: {
|
|
'fur': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 1
|
|
},
|
|
'meat': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 1
|
|
},
|
|
'teeth': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 0.8
|
|
}
|
|
},
|
|
notification: _('a large creature attacks, claws freshly bloodied')
|
|
}
|
|
}
|
|
},
|
|
{ /* Scavenger */
|
|
title: _('A Scavenger'),
|
|
isAvailable: function() {
|
|
return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.BARRENS;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'scavenger',
|
|
enemyName: _('scavenger'),
|
|
deathMessage: _('the scavenger is dead'),
|
|
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
|
|
},
|
|
'iron': {
|
|
min: 1,
|
|
max: 5,
|
|
chance: 0.5
|
|
},
|
|
'medicine': {
|
|
min: 1,
|
|
max: 2,
|
|
chance: 0.1
|
|
}
|
|
},
|
|
notification: _('a scavenger draws close, hoping for an easy score')
|
|
}
|
|
}
|
|
},
|
|
{ /* Huge Lizard */
|
|
title: _('A Huge Lizard'),
|
|
isAvailable: function() {
|
|
return World.getDistance() > 10 && World.getDistance() <= 20 && World.getTerrain() == World.TILE.FIELD;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'lizard',
|
|
enemyName: _('lizard'),
|
|
deathMessage: _('the lizard is dead'),
|
|
chara: 'T',
|
|
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
|
|
}
|
|
},
|
|
notification: _('the grass thrashes wildly as a huge lizard pushes through')
|
|
}
|
|
}
|
|
},
|
|
/* Tier 3*/
|
|
{ /* Feral Terror */
|
|
title: _('A Feral Terror'),
|
|
isAvailable: function() {
|
|
return World.getDistance() > 20 && World.getTerrain() == World.TILE.FOREST;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'feral terror',
|
|
enemyName: _('feral terror'),
|
|
deathMessage: _('the feral terror is dead'),
|
|
chara: 'T',
|
|
damage: 6,
|
|
hit: 0.8,
|
|
attackDelay: 1,
|
|
health: 45,
|
|
loot: {
|
|
'fur': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 1
|
|
},
|
|
'meat': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 1
|
|
},
|
|
'teeth': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 0.8
|
|
}
|
|
},
|
|
notification: _('a beast, wilder than imagining, erupts out of the foliage')
|
|
}
|
|
}
|
|
},
|
|
{ /* Soldier */
|
|
title: _('A Soldier'),
|
|
isAvailable: function() {
|
|
return World.getDistance() > 20 && World.getTerrain() == World.TILE.BARRENS;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'soldier',
|
|
enemyName: _('soldier'),
|
|
deathMessage: _('the soldier is dead'),
|
|
ranged: true,
|
|
chara: 'D',
|
|
damage: 8,
|
|
hit: 0.8,
|
|
attackDelay: 2,
|
|
health: 50,
|
|
loot: {
|
|
'cloth': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 0.8
|
|
},
|
|
'bullets': {
|
|
min: 1,
|
|
max: 5,
|
|
chance: 0.5
|
|
},
|
|
'rifle': {
|
|
min: 1,
|
|
max: 1,
|
|
chance: 0.2
|
|
},
|
|
'medicine': {
|
|
min: 1,
|
|
max: 2,
|
|
chance: 0.1
|
|
}
|
|
},
|
|
notification: _('a soldier opens fire from across the desert')
|
|
}
|
|
}
|
|
},
|
|
{ /* Sniper */
|
|
title: _('A Sniper'),
|
|
isAvailable: function() {
|
|
return World.getDistance() > 20 && World.getTerrain() == World.TILE.FIELD;
|
|
},
|
|
scenes: {
|
|
'start': {
|
|
combat: true,
|
|
enemy: 'sniper',
|
|
enemyName: _('sniper'),
|
|
deathMessage: _('the sniper is dead'),
|
|
chara: 'D',
|
|
damage: 15,
|
|
hit: 0.8,
|
|
attackDelay: 4,
|
|
health: 30,
|
|
ranged: true,
|
|
loot: {
|
|
'cloth': {
|
|
min: 5,
|
|
max: 10,
|
|
chance: 0.8
|
|
},
|
|
'bullets': {
|
|
min: 1,
|
|
max: 5,
|
|
chance: 0.5
|
|
},
|
|
'rifle': {
|
|
min: 1,
|
|
max: 1,
|
|
chance: 0.2
|
|
},
|
|
'medicine': {
|
|
min: 1,
|
|
max: 2,
|
|
chance: 0.1
|
|
}
|
|
},
|
|
notification: _('a shot rings out, from somewhere in the long grass')
|
|
}
|
|
}
|
|
}
|
|
];
|