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
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')
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)
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