Ejemplo n.º 1
0
    def handle_input(self, event):
        if event.type != KEYDOWN:
            return

        if event.key == K_p:
            trigger("Play Again", 0)

        elif event.key == K_x:
            trigger("Exit Game", 0)
Ejemplo n.º 2
0
    def test_player_collision(self, player_rect, is_dashing):
        if not self.rect.colliderect(player_rect):
            return NONE

        cropped_rect = self.rect.clip(player_rect)
        killed_player = cropped_rect.width < cropped_rect.height and not is_dashing

        if not killed_player:
            trigger("Enemy Killed", (self.rect.x, self.rect.y))

        return KILLED_PLAYER if killed_player else GET_KILLED
Ejemplo n.º 3
0
    def handle_input(self, event):
        if event.type != KEYDOWN:
            return

        if event.key == K_n:
            trigger("New Game", 0)

        elif event.key == K_x:
            trigger("Exit Game", 0)

        elif event.key == K_r:
            if self.is_about:
                self.is_about = False
            elif self.is_option:
                self.is_option = False

        elif not self.is_about and event.key == K_a:
            self.is_about = True

        elif not self.is_option and event.key == K_o:
            self.is_option = True
Ejemplo n.º 4
0
    def test_player_collision(self, player_rect):
        if not self.rect.colliderect(player_rect):
            return False, self.obtainable

        if self.action == 'OBTAIN':
            self.on_player_collide(player_rect)
            return True, self.obtainable

        cropped_rect = self.rect.clip(player_rect)
        broken = cropped_rect.width >= cropped_rect.height and cropped_rect.width >= self.rect.width * 0.3

        if broken:
            self.action, self.frame = change_action(self.action, self.frame,
                                                    'OBTAIN')
            self.obtainable = True
            trigger("On Crate Broken", 0)
        else:
            if player_rect.left < self.rect.left:
                player_rect.right = self.rect.left
            else:
                player_rect.left = self.rect.right

        return True, False
Ejemplo n.º 5
0
    def test_player_collision(self, player_rect, is_dashing):
        if self.elapsed_dmg_cooldown > 0:
            self.elapsed_dmg_cooldown -= DELTA
            return

        if not self.locked_target and self.elapsed_atk_cooldown <= 0:
            self.atk_target = pygame.Rect(player_rect.x, player_rect.bottom, 4,
                                          1)
            self.locked_target = True
            self.elapsed_atk_charge_time = self.atk_charge_time
            if self.atk_target.x > self.rect.x:
                self.flip = True
            self.move_dir_mult = 1 if self.atk_target.x > self.rect.x else -1

        if not self.rect.colliderect(player_rect):
            return NONE

        if player_rect.bottom > self.rect.bottom and not is_dashing:
            return KILLED_PLAYER

        cropped_rect = self.rect.clip(player_rect)
        killed_player = cropped_rect.width < cropped_rect.height and not is_dashing

        if not killed_player:
            self.hp -= 1
            # print("Remaining HP: " + str(self.hp))
            self.elapsed_dmg_cooldown = self.dmg_cooldown

            trigger("Boss Damaged", 0)
            self.action = "DAMAGED"
            self.frame = 0

            if self.hp == 0:
                trigger("Enemy Killed", (self.rect.x, self.rect.y))
                trigger("Boss Killed", 0)
            else:
                return NONE

        return KILLED_PLAYER if killed_player else GET_KILLED
Ejemplo n.º 6
0
 def on_gem_obtained(self, _):
     self.n_gems += 1
     trigger("Num Gems Changed", self.n_gems)
Ejemplo n.º 7
0
 def on_cherry_obtained(self, _):
     self.n_cherries += 1
     trigger("Num Cherries Changed", self.n_cherries)
Ejemplo n.º 8
0
 def on_player_collide(self, player_rect):
     trigger("Gem Obtained", 0)
     trigger("Rare Item Obtained", (self.rect.x, self.rect.y))
Ejemplo n.º 9
0
 def on_player_collide(self, player_rect):
     trigger("Cherry Obtained", 0)
Ejemplo n.º 10
0
 def on_player_collide(self, player_rect):
     self.action = 'ACTIVE'
     trigger("On Spring Collide", 0)
Ejemplo n.º 11
0
 def on_player_collide(self, player_rect):
     trigger("Boss Zone Entered", 0)