def create_offhand_item(name, material): _bonus = material_dict[material][0] _color = material_dict[material][1] _base, _equip, _skill = None, None, None _name = material.capitalize() + ' ' + name.capitalize() if name == 'buckler': _base = Base(name=_name, char=u'\u03C3', color=_color, render_order=RenderOrder.ITEM) _equip = Equippable(slot=Bodyparts.OffHand.name) _skill = Skill(cooldown=5, name='bash', nature='direct') _skill.knockback_force = 2 if name == 'shield': _base = Base(name=_name, char=u'\u0398', color=_color, render_order=RenderOrder.ITEM) _equip = Equippable(slot=Bodyparts.OffHand.name) _skill = Skill(cooldown=5, name='bash', nature='direct') _skill.knockback_force = 4 return _base, _equip, _skill
def create_mainhand_item(name, material): _bonus = material_dict[material][0] _color = material_dict[material][1] _name = material.capitalize() + ' ' + name.capitalize() _base, _equip, _skill = None, None, None if name == 'sword': _base = Base(name=_name, char=u'\u2193', color=_color, render_order=RenderOrder.ITEM) _profile = {} _profile = example_profile() _profile['ATK']['ATK'] = 1.8 + _bonus _equip = Equippable(slot=Bodyparts.MainHand.name, profile=_profile) _profile = {} _profile = example_profile() _profile['ATK']['ATK'] = 1.6 + _bonus _profile['ATK']['MAG'] = 0.2 + _bonus _skill = Skill(cooldown=12, name='pierce', nature='direct', profile=_profile) if name == 'spear': _base = Base(name=_name, char=u'\u2191', color=_color, render_order=RenderOrder.ITEM) _profile = {} _profile = example_profile() _profile['ATK']['ATK'] = 1.2 + _bonus _equip = Equippable(slot=Bodyparts.MainHand.name, profile=_profile) _profile = {} _profile = example_profile() _profile['ATK']['ATK'] = 1.6 + _bonus _profile['ATK']['SPD'] = 0.2 + _bonus _skill = Skill(cooldown=5, name='pierce', nature='direct', profile=_profile) return _base, _equip, _skill
def create_monster(name): _base = Base(name='player', char='@', color=libtcod.white, render_order=RenderOrder.ACTOR) _body = Body() _health = Health() _inv = Inventory() _job = Job.BARBARIAN _pos = Position() _race = Race.HUMAN _soul = Soul(eccentricity=5, rank=10) _status = Status() monster = Entity(base=_base, body=_body, health=_health, inv=_inv, job=_job, pos=_pos, race=_race, soul=_soul, status=_status) monster.health.points = monster.health.max return monster
def create_stairs(): _base = Base(name='stairs', char=u'\u2261', color=libtcod.black, render_order=RenderOrder.STAIRS) _pos = Position() return Entity(base=_base, pos=_pos)
def create_torso_item(name, material): _bonus = material_dict[material][0] _color = material_dict[material][1] _name = material.capitalize() + ' ' + name.capitalize() _base, _equip, _skill = None, None, None if name == 'chain mail': _base = Base(name=_name, char=u'\u2593', color=_color, render_order=RenderOrder.ITEM) _profile = {} _profile = example_profile() _profile['DEF']['DEF'] = 1.2 + _bonus _profile['MAG']['MAG'] = 1.0 + _bonus _equip = Equippable(slot=Bodyparts.Torso.name, profile=_profile) _skill = Skill() if name == 'plate mail': _base = Base(name=_name, char=u'\u2588', color=_color, render_order=RenderOrder.ITEM) _profile = {} _profile = example_profile() _profile['DEF']['DEF'] = 1.9 + _bonus _profile['MAG']['MAG'] = 0.7 + _bonus _equip = Equippable(slot=Bodyparts.Torso.name, profile=_profile) _skill = Skill() return _base, _equip, _skill
def create_head_item(name, material): _bonus = material_dict[material][0] _color = material_dict[material][1] _name = material.capitalize() + ' ' + name.capitalize() _base, _equip, _skill = None, None, None if name == 'helm': _base = Base(name=_name, char=u'\u00A3', color=_color, render_order=RenderOrder.ITEM) _equip = Equippable(slot=Bodyparts.Head.name) _skill = Skill() if name == 'cap': _base = Base(name=_name, char=u'\u207F', color=_color, render_order=RenderOrder.ITEM) _equip = Equippable(slot=Bodyparts.Head.name) _skill = Skill(cooldown=10, name='healing buff', nature='direct') return _base, _equip, _skill
def reset(self) -> None: """ Resets game to prepare for a generation :return: None """ self.score = 0 self.gen += 1 self.birds = [] self.pipes = [Pipe(WIN_WIDTH)] self.base = Base(FLOOR_HEIGHT)
def create_ring_finger_item(name, material): _bonus = material_dict[material][0] _color = material_dict[material][1] _name = material.capitalize() + ' ' + name.capitalize() _base, _equip, _skill = None, None, None if name == 'ring': _base = Base(name=_name, char=u'\u00F6', color=_color, render_order=RenderOrder.ITEM) _equip = Equippable(slot=Bodyparts.Head.name) _skill = Skill() return _base, _equip, _skill
def create_feet_item(name, material): _bonus = material_dict[material][0] _color = material_dict[material][1] _name = material.capitalize() + ' ' + name.capitalize() _base, _equip, _skill = None, None, None if name == 'boots': _base = Base(name=_name, char=u'\u221F', color=_color, render_order=RenderOrder.ITEM) _equip = Equippable(slot=Bodyparts.Feet.name) _skill = Skill(cooldown=5, name='leap', nature='direct') return _base, _equip, _skill
def create_soul(entity): _soul_rank = entity.soul.rank _soul_eccentricity = entity.soul.eccentricity _soul_number = entity.soul.soul _soul = Soul(_soul_eccentricity, _soul_rank) _soul.number = _soul_number _base = Base(name='soul', char='*', color=libtcod.dark_green, render_order=RenderOrder.SOUL) _pos = Position() soul_item = Entity(base=_base, pos=_pos, soul=_soul) return soul_item
def create_monster_(difficulty): _rank = pick_rank(difficulty) _race = pick_race(difficulty) _job = pick_job(_race) _ai = AI(brain=BRAIN.ZOMBIE) _body = Body() _health = Health() _pos = Position() _soul = Soul(eccentricity=_race.value['eccentricity'], rank=_rank.value['rank']) _status = Status() _name = str(_rank.value['name']).capitalize() + ' ' + str( _race.value['name']).capitalize() + ' ' + str( _job.value['name']).capitalize() _color = _rank.value['color'] _char = _race.value['char'] _base = Base(name=_name, char=_char, color=_color, render_order=RenderOrder.ACTOR) monster = Entity(ai=_ai, base=_base, body=_body, health=_health, job=_job, pos=_pos, race=_race, soul=_soul, status=_status) monster.health.points = monster.health.max equip_monster(monster) return monster
def __init__(self, draw_lines=True): """ Initialise the game object :param draw_lines: defines whether to draw lines from bird to pipe, defaults to True """ self.draw_lines = draw_lines self.score = 0 self.max_score = 0 self.gen = 0 self.clock = pygame.time.Clock() self.birds = [] # birds list self.pipes = [Pipe(WIN_WIDTH)] self.base = Base(FLOOR_HEIGHT) self.window = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT)) self.LINE_THICKNESS = 1 self.tick_rate = 30