UNPKG

hobgoblin

Version:

A framework for writing roguelike games in JavaScript, implementing ROT.js

159 lines (151 loc) 4.21 kB
Game.EntityRepository = new Game.Repository('entities', Game.Entity); Game.PlayerTemplate = { name: 'human (you)', type: 'player', character: '@', foreground: 'white', maxHp: 40, attackValue: 10, sightRadius: 6, inventorySlots: 22, mixins: [ Game.EntityMixins.Sight, Game.EntityMixins.PlayerActor, Game.EntityMixins.Destructible, Game.EntityMixins.Equipper, Game.EntityMixins.Attacker, Game.EntityMixins.FoodConsumer, Game.EntityMixins.InventoryHolder, Game.EntityMixins.MessageRecipient, Game.EntityMixins.PlayerStatGainer, Game.EntityMixins.Thrower, Game.EntityMixins.ExperienceGainer ] }; Game.EntityRepository.define('fungus', { name: 'fungus', type: 'creature', character: 'F', foreground: 'green', maxHp: 10, speed: 250, mixins: [ Game.EntityMixins.FungusActor, Game.EntityMixins.Destructible, Game.EntityMixins.ExperienceGainer, Game.EntityMixins.RandomStatGainer ] }); Game.EntityRepository.define('bat', { name: 'bat', type: 'creature', character: 'B', foreground: 'white', maxHp: 5, attackValue: 4, speed: 2000, mixins: [ Game.EntityMixins.AIActor, Game.EntityMixins.Attacker, Game.EntityMixins.CorpseDropper, Game.EntityMixins.Destructible, Game.EntityMixins.ExperienceGainer, Game.EntityMixins.RandomStatGainer ] }); Game.EntityRepository.define('newt', { name: 'newt', type: 'creature', character: ':', foreground: 'yellow', maxHp: 3, attackValue: 2, mixins: [ Game.EntityMixins.AIActor, Game.EntityMixins.Attacker, Game.EntityMixins.CorpseDropper, Game.EntityMixins.Destructible, Game.EntityMixins.ExperienceGainer, Game.EntityMixins.RandomStatGainer ] }); Game.EntityRepository.define('kobold', { name: 'kobold', type: 'monster', character: 'k', foreground: 'white', maxHp: 6, attackValue: 4, sightRadius: 5, ai: ['hunt', 'wander'], mixins: [ Game.EntityMixins.AIActor, Game.EntityMixins.Sight, Game.EntityMixins.Equipper, Game.EntityMixins.Attacker, Game.EntityMixins.Destructible, Game.EntityMixins.CorpseDropper, Game.EntityMixins.ExperienceGainer, Game.EntityMixins.RandomStatGainer ] }); Game.EntityRepository.define('goblin', { name: 'goblin', type: 'monster', character: 'g', foreground: 'limegreen', maxHp: 10, attackValue: 6, sightRadius: 8, ai: ['hunt', 'wander'], mixins: [ Game.EntityMixins.AIActor, Game.EntityMixins.Sight, Game.EntityMixins.Equipper, Game.EntityMixins.Attacker, Game.EntityMixins.Destructible, Game.EntityMixins.CorpseDropper, Game.EntityMixins.ExperienceGainer, Game.EntityMixins.RandomStatGainer ] }); Game.EntityRepository.define('giant zombie', { name: 'giant zombie', type: 'monster', character: 'Z', foreground: 'teal', maxHp: 30, attackValue: 8, defenseValue: 5, level: 5, sightRadius: 6, mixins: [ Game.EntityMixins.GiantZombieActor, Game.EntityMixins.Sight, Game.EntityMixins.Attacker, Game.EntityMixins.Destructible, Game.EntityMixins.CorpseDropper, Game.EntityMixins.ExperienceGainer ] }, { disableRandomCreation: true }); Game.EntityRepository.define('slime', { name: 'slime', type: 'monster', character: 's', foreground: 'lightGreen', maxHp: 10, attackValue: 5, sightRadius: 3, ai: ['hunt', 'wander'], mixins: [ Game.EntityMixins.AIActor, Game.EntityMixins.Sight, Game.EntityMixins.Attacker, Game.EntityMixins.Destructible, Game.EntityMixins.CorpseDropper, Game.EntityMixins.ExperienceGainer, Game.EntityMixins.RandomStatGainer ] });