def make_west_door(self, next_screen):
        """Creates and places a trigger for the west door
            that loads the next screen at the connecting east door"""
        screen_trigger = Trigger(3, 0, 288)
        screen_trigger.image = self.sprites_utu.sprites[1096].image
        self.drawables.append(screen_trigger)
        self.collisions.append((screen_trigger, next_screen))

        screen_trigger = Trigger(3, 0, 320)
        screen_trigger.image = self.sprites_utu.sprites[1096].image
        self.drawables.append(screen_trigger)
        self.collisions.append((screen_trigger, next_screen))
    def make_north_door(self, next_screen):
        """Creates and places a trigger for the north door
         that loads the next screen at the connecting south door"""
        screen_trigger = Trigger(3, 352, 0)
        screen_trigger.image = self.sprites_utu.sprites[1094].image
        self.drawables.append(screen_trigger)
        self.collisions.append((screen_trigger, next_screen))

        screen_trigger = Trigger(3, 384, 0)
        screen_trigger.image = self.sprites_utu.sprites[1094].image
        self.drawables.append(screen_trigger)
        self.collisions.append((screen_trigger, next_screen))
    def make_south_door(self, next_screen):
        """Creates and places a trigger for the south door
         that loads the next screen at the connecting north door"""
        screen_trigger = Trigger(3, 352, 608)
        screen_trigger.image = self.south_door_image
        self.drawables.append(screen_trigger)
        self.collisions.append((screen_trigger, next_screen))

        screen_trigger = Trigger(3, 384, 608)
        screen_trigger.image = self.south_door_image
        self.drawables.append(screen_trigger)
        self.collisions.append((screen_trigger, next_screen))
 def make_switch_collision(self, switch_group, image, starting_x, x_copies, starting_y, y_copies, function):
     for x in range(x_copies):
         for y in range(y_copies):
             path_piece = Trigger(4, (starting_x*32) + (x*32), (starting_y*32) +(y*32))
             path_piece.image = image
             switch_group[0].add(path_piece)
             switch_group[1].append((path_piece, function))
 def make_collision(self, image, starting_x, x_copies, starting_y, y_copies, function):
     for x in range(x_copies):
         for y in range(y_copies):
             collision = Trigger(3, (starting_x*32) + (32*x), (starting_y*32) + (32*y))
             collision.image = image
             self.drawables.append(collision)
             self.collisions.append((collision, function))
 def make_bridge(self):
     "Creates the bridge once the player triggers it"
     self.now = pygame.time.get_ticks()
     if self.now - self.last_switch > 1000:
         self.add_flag = True
         bridge = []
         for i in range(3):
             for j in range(6):
                 bridge.append(league.DUGameObject)
                 bridge[i + j] = Trigger(3, 352 + (32 * i), 160 + (32 * j))
                 bridge[i + j].image = self.sprites_base.sprites[248].image
                 self.drawables.append(bridge[i+j])
         self.last_switch = pygame.time.get_ticks()
    def set_screen_cliffs(self):
        """Creates 'cliffs' screen"""
        self.background = league.Tilemap('../assets/cliffs_background.lvl', self.sprites_utu, layer=1)
        self.terrain = league.Tilemap('../assets/cliffs_terrain.lvl', self.sprites_base, layer=2)
        self.details = league.Tilemap('../assets/cliffs_details.lvl', self.sprites_utu, layer=3)
        self.drawables.append(self.background.passable.sprites())
        self.drawables.append(self.terrain.passable.sprites())
        self.drawables.append(self.details.passable.sprites())

        "Loads north door sprites leading to 'lost woods entrance' south door"
        self.make_north_door(self.lost_woods_entrance_door_south)

        "Loads south door sprites leading to 'hills' north door"
        self.make_south_door(self.grassland_door_north)

        "Loads the switch sprite for the bridge"
        bridge_switch = Trigger(3, 500, 480)
        bridge_switch.image = self.sprites_base.sprites[70].image
        self.drawables.append(bridge_switch)
        self.collisions.append((bridge_switch, self.make_bridge))

        bridge_switch = Trigger(3, 500, 50)
        bridge_switch.image = self.sprites_base.sprites[70].image
        self.drawables.append(bridge_switch)
        self.collisions.append((bridge_switch, self.make_bridge))

        "Makes the area where the bridge will be impassable. Removed by make_bridge to make passable"
        bridge_block = []
        for i in range(3):
            for j in range(7):
                bridge_block.append(league.DUGameObject)
                bridge_block[i + j] = Trigger(1, 352 + (32 * i), 128 + (32 * j))
                bridge_block[i + j].image = self.sprites_base.sprites[97].image
                self.drawables.append(bridge_block[i + j])
                self.blocking_object.add(bridge_block[i+j])
        "Sets update() to change screens"
        self.change_flag = True
 def make_door_custom(self, x, y, image, next_screen):
     screen_trigger = Trigger(3, x, y)
     screen_trigger.image = image
     self.drawables.append(screen_trigger)
     self.collisions.append((screen_trigger, next_screen))
    def set_screen_castle_fork(self):
        self.terrain_switching_clean_up()
        self.terrain = league.Tilemap('../assets/castle_terrain.lvl', self.sprites_utu, layer=1)
        self.details = league.Tilemap('../assets/castle_fork_details.lvl', self.sprites_utu, layer=2)
        self.drawables.append(self.terrain.passable.sprites())
        self.drawables.append(self.details.passable.sprites())
        self.next_terrain_switch_time = 3
        self.switch_interval = 3
        self.terrain_switch_flag = True

        self.make_south_door(self.castle_entrance_door_north)
        self.make_east_door(self.castle_east_wing_door_west)
        self.make_west_door(self.castle_west_wing_door_east)

        if self.boss_door_west_flag:
            lit_torch = Trigger(5, 256, 0)
            lit_torch.image = self.sprites_utu.sprites[47].image
            torch_base = Trigger(4, 256, 0)
            torch_base.image = self.sprites_utu.sprites[1203].image
            self.drawables.append(torch_base)
            self.drawables.append(lit_torch)
        else:
            unlit_torch = Trigger(5, 256, 0)
            unlit_torch.image = self.sprites_utu.sprites[21].image
            torch_base = Trigger(4, 256, 0)
            torch_base.image = self.sprites_utu.sprites[1203].image
            self.drawables.append(torch_base)
            self.drawables.append(unlit_torch)

        if self.boss_door_east_flag:
            lit_torch = Trigger(5, 512, 0)
            lit_torch.image = self.sprites_utu.sprites[47].image
            torch_base = Trigger(4, 512, 0)
            torch_base.image = self.sprites_utu.sprites[1203].image
            self.drawables.append(torch_base)
            self.drawables.append(lit_torch)
        else:
            unlit_torch = Trigger(5, 512, 0)
            unlit_torch.image = self.sprites_utu.sprites[21].image
            torch_base = Trigger(4, 512, 0)
            torch_base.image = self.sprites_utu.sprites[1203].image
            self.drawables.append(torch_base)
            self.drawables.append(unlit_torch)

        if self.boss_door_east_flag and self.boss_door_west_flag:
            self.make_north_door(self.castle_boss_room_south_door)
            door_left = Trigger(4, 352, 0)
            door_left.image = self.sprites_utu.sprites[106].image
            self.drawables.append(door_left)
            door_right = Trigger(4, 384, 0)
            door_right.image = self.sprites_utu.sprites[108].image
            self.drawables.append(door_right)
        else:
            door_left = Trigger(3, 352, 0)
            door_left.image = self.sprites_utu.sprites[103].image
            self.drawables.append(door_left)
            self.blocking_object.add(door_left)
            door_right = Trigger(3, 384, 0)
            door_right.image = self.sprites_utu.sprites[105].image
            self.drawables.append(door_right)
            self.blocking_object.add(door_right)

        self.make_collision(self.sprites_utu.sprites[384].image, 0, 10, 0, 7, self.return_to_door)
        self.make_collision(self.sprites_utu.sprites[384].image, 15, 10, 0, 7, self.return_to_door)
        self.make_collision(self.sprites_utu.sprites[384].image, 0, 10, 13, 10, self.return_to_door)
        self.make_collision(self.sprites_utu.sprites[384].image, 15, 10, 13, 10, self.return_to_door)

        left_top_right_sprite = pygame.sprite.Group()
        left_top_right_collisions = []
        self.make_switch_collision((left_top_right_sprite, left_top_right_collisions),
                                   self.sprites_utu.sprites[384].image, 4, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((left_top_right_sprite, left_top_right_collisions),
                                   self.sprites_utu.sprites[384].image, 3, 19, 3, 3, self.return_to_door)

        self.make_switch_collision((left_top_right_sprite, left_top_right_collisions),
                                   self.sprites_utu.sprites[384].image, 15, 3, 7, 7, self.return_to_door)
        self.switching_objects.append(left_top_right_sprite)
        self.switching_collision_list.append(left_top_right_collisions)

        top_right_left_sprite = pygame.sprite.Group()
        top_right_left_collisions = []
        self.make_switch_collision((top_right_left_sprite, top_right_left_collisions),
                                   self.sprites_utu.sprites[384].image, 3, 19, 3, 3, self.return_to_door)

        self.make_switch_collision((top_right_left_sprite, top_right_left_collisions),
                                   self.sprites_utu.sprites[384].image, 18, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((top_right_left_sprite, top_right_left_collisions),
                                   self.sprites_utu.sprites[384].image, 7, 3, 7, 7, self.return_to_door)
        self.switching_objects.append(top_right_left_sprite)
        self.switching_collision_list.append(top_right_left_collisions)

        left_right_right_sprite = pygame.sprite.Group()
        left_right_right_collisions = []
        self.make_switch_collision((left_right_right_sprite, left_right_right_collisions),
                                   self.sprites_utu.sprites[384].image, 4, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((left_right_right_sprite, left_right_right_collisions),
                                   self.sprites_utu.sprites[384].image, 18, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((left_right_right_sprite, left_right_right_collisions),
                                   self.sprites_utu.sprites[384].image, 15, 3, 7, 7, self.return_to_door)
        self.switching_objects.append(left_right_right_sprite)
        self.switching_collision_list.append(left_right_right_collisions)

        left_top_left_sprite = pygame.sprite.Group()
        left_top_left_collisions = []
        self.make_switch_collision((left_top_left_sprite, left_top_left_collisions),
                                   self.sprites_utu.sprites[384].image, 4, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((left_top_left_sprite, left_top_left_collisions),
                                   self.sprites_utu.sprites[384].image, 3, 19, 3, 3, self.return_to_door)

        self.make_switch_collision((left_top_left_sprite, left_top_left_collisions),
                                   self.sprites_utu.sprites[384].image, 7, 3, 7, 7, self.return_to_door)
        self.switching_objects.append(left_top_left_sprite)
        self.switching_collision_list.append(left_top_left_collisions)

        right_top_right_sprite = pygame.sprite.Group()
        right_top_right_collisions = []
        self.make_switch_collision((right_top_right_sprite, right_top_right_collisions),
                                   self.sprites_utu.sprites[384].image, 18, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((right_top_right_sprite, right_top_right_collisions),
                                   self.sprites_utu.sprites[384].image, 3, 19, 3, 3, self.return_to_door)

        self.make_switch_collision((right_top_right_sprite, right_top_right_collisions),
                                   self.sprites_utu.sprites[384].image, 15, 3, 7, 7, self.return_to_door)
        self.switching_objects.append(right_top_right_sprite)
        self.switching_collision_list.append(right_top_right_collisions)

        left_right_left_sprite = pygame.sprite.Group()
        left_right_left_collisions = []
        self.make_switch_collision((left_right_left_sprite, left_right_left_collisions),
                                   self.sprites_utu.sprites[384].image, 4, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((left_right_left_sprite, left_right_left_collisions),
                                   self.sprites_utu.sprites[384].image, 18, 3, 3, 11, self.return_to_door)

        self.make_switch_collision((left_right_left_sprite, left_right_left_collisions),
                                   self.sprites_utu.sprites[384].image, 7, 3, 7, 7, self.return_to_door)
        self.switching_objects.append(left_right_left_sprite)
        self.switching_collision_list.append(left_right_left_collisions)

        self.change_flag = True