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
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) }]))
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
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
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