Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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)
Пример #5
0
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
Пример #6
0
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
Пример #7
0
    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)
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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
Пример #11
0
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
Пример #12
0
    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