示例#1
0
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)
示例#3
0
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