hobgoblin
Version:
A framework for writing roguelike games in JavaScript, implementing ROT.js
123 lines (111 loc) • 2.81 kB
JavaScript
Game.ItemRepository = new Game.Repository('items', Game.Item);
Game.ItemRepository.define('rock', {
name: 'rock',
character: '*',
foreground: 'white',
attackValue: 2,
throwable: true,
stackable: true,
mixins: [Game.ItemMixins.Throwable, Game.ItemMixins.Stackable]
});
Game.ItemRepository.define('apple', {
name: 'apple',
character: '%',
foreground: 'red',
foodValue: 50,
stackable: true,
mixins: [Game.ItemMixins.Edible, Game.ItemMixins.Stackable]
});
Game.ItemRepository.define('melon', {
name: 'melon',
character: '%',
foreground: 'lightgreen',
foodValue: 35,
consumptions: 4,
mixins: [Game.ItemMixins.Edible]
});
Game.ItemRepository.define('corpse', {
name: 'corpse',
character: '%',
foodValue: 75,
consumptions: 1,
mixins: [Game.ItemMixins.Edible]
}, {
disableRandomCreation: true
});
// Weapons
Game.ItemRepository.define('dagger', {
name: 'dagger',
character: ')',
foreground: 'gray',
attackValue: 5,
wieldable: true,
throwable: true,
mixins: [Game.ItemMixins.Equippable, Game.ItemMixins.Throwable]
}, {
disableRandomCreation: true
});
Game.ItemRepository.define('sword', {
name: 'sword',
character: ')',
foreground: 'white',
attackValue: 10,
wieldable: true,
mixins: [Game.ItemMixins.Equippable]
}, {
disableRandomCreation: true
});
Game.ItemRepository.define('staff', {
name: 'staff',
character: ')',
foreground: 'yellow',
attackValue: 5,
defenseValue: 3,
wieldable: true,
mixins: [Game.ItemMixins.Equippable]
}, {
disableRandomCreation: true
});
// Wearables
Game.ItemRepository.define('tunic', {
name: 'tunic',
character: '[',
foreground: 'green',
defenseValue: 2,
wearable: true,
mixins: [Game.ItemMixins.Equippable]
}, {
disableRandomCreation: true
});
Game.ItemRepository.define('chainmail', {
name: 'chainmail',
character: '[',
foreground: 'white',
defenseValue: 4,
wearable: true,
mixins: [Game.ItemMixins.Equippable]
}, {
disableRandomCreation: true
});
Game.ItemRepository.define('platemail', {
name: 'platemail',
character: '[',
foreground: 'aliceblue',
defenseValue: 6,
wearable: true,
mixins: [Game.ItemMixins.Equippable]
}, {
disableRandomCreation: true
});
Game.ItemRepository.define('pumpkin', {
name: 'pumpkin',
character: '%',
foreground: 'orange',
foodValue: 50,
attackValue: 2,
defenseValue: 2,
wearable: true,
wieldable: true,
throwable: true,
mixins: [Game.ItemMixins.Edible, Game.ItemMixins.Equippable, Game.ItemMixins.Throwable]
});