Пример #1
0
    def create_item_entity(engine, left_prob, right_prob, items_probs,
                           items_types, items_stats):
        item_type = items_probs[(left_prob, right_prob)]
        item_ch, item_clr, item_name, item_strat, item_real_t = items_types[
            item_type]
        item_stat = items_stats[item_type]
        item = Mob(Item(item_clr, item_real_t),
                   None,
                   None,
                   screen_width=engine.info.scr_wd,
                   screen_height=engine.info.scr_ht,
                   char=item_ch,
                   color=item_clr,
                   name=item_name,
                   stats=EntityStats(*item_stat),
                   game_map=engine.map,
                   strategy=item_strat,
                   is_blocking=False)

        if item_type == ItemType.ARMOUR_I:
            item.item = Armour(5, item.color)
        elif item_type == ItemType.ARMOUR_II:
            item.item = Armour(10, item.color)
        elif item_type == ItemType.HP_PTN:
            item.item = HealthPotion(5, item.color)
        elif item_type == ItemType.INTOX_PTN:
            item.item = IntoxPotion(7, item.color)
        item.stats.owner = item

        return item
Пример #2
0
    def __item_for_pick(_, engine, item_type=EntityType.ARMOUR):
        item = Mob(Item(tc.light_blue, item_type),
                   engine.player.x + 1,
                   engine.player.y,
                   load_type='TEST',
                   screen_width=engine.info.scr_wd,
                   screen_height=engine.info.scr_ht,
                   char=203,
                   color=tc.light_blue,
                   name="test item",
                   stats=EntityStats(*(0, 0, 0)),
                   game_map=engine.map,
                   strategy=PassiveStrategy(),
                   is_blocking=False)
        if item_type == EntityType.ARMOUR:
            item.item = Armour(5, item.color)
            item.char = 203
            item.color = tc.light_blue
        elif item_type == EntityType.INTOX_PTN:
            item.item = IntoxPotion(7, item.color)
            item.char = 25
            item.color = tc.light_violet
        item.stats.owner = item

        engine.mobs.append(item)

        return Command(
            lambda arg: arg,
            OperationLog([{
                'message':
                Message('Created item for pick.', tc.yellow)
            }]))
Пример #3
0
    def init_player(engine, load_type):
        lvl = engine.info.player_lvl
        stats = EntityStats(hp=10 * lvl, force=2 * lvl, defense=2 * lvl)
        player = Player(Inventory(3),
                        int(engine.info.scr_wd * 0.03),
                        int(engine.info.scr_ht * 0.14),
                        screen_width=engine.info.scr_wd,
                        screen_height=engine.info.scr_ht,
                        char=203,
                        color=tc.white,
                        name='Bob',
                        stats=stats)

        player.mv_handler = MoveDeco(MoveHandler(player))
        player.stats.owner = player

        return player
Пример #4
0
    def create_mob(engine, left_prob, right_prob, mob_probs, mob_types,
                   mob_stats):
        mob_type = mob_probs[(left_prob, right_prob)]
        mob_char, mob_colr, mob_name, mob_strat = mob_types[mob_type]
        mob_stat = mob_stats[mob_type]
        mob = Mob(None,
                  None,
                  None,
                  screen_width=engine.info.scr_wd,
                  screen_height=engine.info.scr_ht,
                  char=mob_char,
                  color=mob_colr,
                  name=mob_name,
                  stats=EntityStats(*mob_stat),
                  game_map=engine.map,
                  strategy=mob_strat)

        mob.stats.owner = mob
        return mob
Пример #5
0
 def deserialize_stats(data):
     stats = EntityStats(data['hp'], data['force'], data['defense'])
     stats.max_hp = data['max_hp']
     stats.max_defense = data['max_def']
     return stats