Exemplo n.º 1
0
    def __init__(self, name, waiter):

        Customer.__init__(self, waiter)

        self.name = name

        self.appear_index = 0
        self.die_index = 0
        self.disappear_index = 0
        self.stand_index = 0

        self.appear_timer = None
        self.die_timer = None
        self.disappear_timer = None
        self.stand_timer = None
        self.main_timer = None

        self.alive = True
        self.showing = False

        self.size = (60, 60)
        self.rect_bound = pygame.Rect(0, 0, self.size[0], self.size[1])

        appear_avatars = Factory.get_avatars('head_appear_avatars')
        if appear_avatars is None:
            raise BaseException('Can not load avatar for Head')
        self.appear_drawable_avatars = []
        for avatar in appear_avatars:
            pos = (0, 0)
            drawable_item = Drawable(avatar, pos, DRAWABLE_INDEX.HEAD)
            self.appear_drawable_avatars.append(drawable_item)

        die_avatars = Factory.get_avatars('head_die_avatars')
        if die_avatars is None:
            raise BaseException('Can not load avatar for Head')
        self.die_drawable_avatars = []
        for avatar in die_avatars:
            pos = (0, 0)
            drawable_item = Drawable(avatar, pos, DRAWABLE_INDEX.HEAD)
            self.die_drawable_avatars.append(drawable_item)

        disappear_avatars = Factory.get_avatars('head_disappear_avatars')
        if disappear_avatars is None:
            raise BaseException('Can not load avatar for Head')
        self.disappear_drawable_avatars = []
        for avatar in disappear_avatars:
            pos = (0, 0)
            drawable_item = Drawable(avatar, pos, DRAWABLE_INDEX.HEAD)
            self.disappear_drawable_avatars.append(drawable_item)

        stand_avatars = Factory.get_avatars('head_stand_avatars')
        if disappear_avatars is None:
            raise BaseException('Can not load avatar for Head')
        self.stand_drawable_avatars = []
        for avatar in stand_avatars:
            pos = (0, 0)
            drawable_item = Drawable(avatar, pos, DRAWABLE_INDEX.HEAD)
            self.stand_drawable_avatars.append(drawable_item)

        return
Exemplo n.º 2
0
    def __init__(self, waiter, end, font_size, pos, color):
        self.end = 0
        self.font_size = font_size
        self.pos = pos
        self.color = color

        self.time = end
        Customer.__init__(self, waiter)

        self.timer = None

        Subject.__init__(self)
        subject_unit = SubjectUnit()
        self.add_subject_unit(subject_unit, 'time_up')
Exemplo n.º 3
0
    def __init__(self, waiter, subject):
        """
        Constructor
        :param waiter: waiter for implement hammer action
        :return: None
        """

        # Constructor of base class
        Customer.__init__(self, waiter)
        Observer.__init__(self)
        self.register(subject, 'player_motion')

        avatars = Factory.get_avatars('hammer_avatars')
        if avatars is None:
            raise BaseException('Can not load avatar for hammer')
        self.drawable_avatars = []
        for avatar in avatars:
            drawable_item = Drawable(avatar, (0, 0), DRAWABLE_INDEX.PLAYER)
            self.drawable_avatars.append(drawable_item)

        # Default is the first one
        self.drawable_avatar = self.drawable_avatars[0]

        self.sound_hit = Factory.get_sound('hammer_hit')
        if self.sound_hit is None:
            raise BaseException('Can not load "hit" sound effect of hammer')

        # Used to step counter, change image when hammer
        self.index = 0

        # Used to prevent hammer when hammering
        self.hammering = False

        self.timer = None

        self.pos = (0, 0)

        self.size = (10, 15)     # Height, Width

        self.distance = (150, 150)
Exemplo n.º 4
0
    def __init__(self, event_controller, waiter):

        # Constructor of base class: Observer
        Observer.__init__(self)
        # Register to receive mouse event: Mouse click and motion
        self.register(event_controller, 'mouse_down')
        self.register(event_controller, 'mouse_motion')

        # Constructor of base class: Observer
        Subject.__init__(self)
        player_motion_event = SubjectUnit()
        self.add_subject_unit(player_motion_event, 'player_motion')
        player_hammer_event = SubjectUnit()
        self.add_subject_unit(player_hammer_event, 'player_hammer')

        Customer.__init__(self, waiter)


        # Attributes

        # hammer
        self.hammer = Hammer(waiter, self)
        self.score = 0