def get_game_variables(constants): player = Entity(0, 0, '@', libtcod.white, 'Player', blocks=True, render_order=RenderOrder.ACTOR) Fighter(hp=100, defense=11, power=2, hit=11).add_to_entity(player) Level().add_to_entity(player) inventory_component = Inventory(26) inventory_component.add_to_entity(player) equipment_component = Equipment() equipment_component.add_to_entity(player) dagger = Entity(0, 0, '-', libtcod.sky, 'Dagger') equippable_component = Equippable(EquipmentSlots.MAIN_HAND, power_bonus=2) equippable_component.add_to_entity(dagger) inventory_component.add_item(dagger) equipment_component.toggle_equip(dagger) StatusEffects().add_to_entity(player) world = World(player, constants['map_width'], constants['map_height']) message_log = MessageLog(constants['message_x'], constants['message_width'], constants['message_height']) game_state = GameStates.PLAYERS_TURN return player, world, message_log, game_state
def test_inventory_add(self): inventory = Inventory() cool_item_1 = Item(uid="cool_item_1", name="Very Cool Item") cool_item_2 = Item(uid="cool_item_2", name="Very Cool Item Too") inventory.add_item(cool_item_1) inventory.add_item(cool_item_2) self.assertEqual( inventory.get_items("cool_item_1", pop=True)[0], cool_item_1) self.assertGreater(len(inventory.get_items("cool_item_1")), 0) self.assertEqual(inventory.get_items("cool_item_2")[0], cool_item_2)
def create_monster(name, hp, defense, power, xp, item_probability, item_level, colors, color, char, x, y, body_type): fighter_component = Fighter(hp=hp, defense=defense, power=power, xp=xp) ai_component = BasicMonster() body_component = Body(body_type) if randint(1, item_probability) == item_probability: inventory_component = Inventory(1) equipment_component = Equipment() loot_component = Item(use_function=heal, amount=25) loot = Entity(0, 0, '!', colors.get('red'), 'Small Healing Potion', render_order=RenderOrder.ITEM, item=loot_component) inventory_component.add_item(loot, colors) monster = Entity(x, y, char, colors.get(color), name, blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, inventory=inventory_component, equipment=equipment_component, ai=ai_component, body=body_component) else: monster = Entity(x, y, char, colors.get(color), name, blocks=True, render_order=RenderOrder.ACTOR, fighter=fighter_component, ai=ai_component, body=body_component) return monster