From: Skullheadx <704277@pdsb.net> Date: Wed, 13 Jul 2022 01:59:19 +0000 (-0400) Subject: added boss and skeles X-Git-Url: http://git.skullheadx.com/index.css?a=commitdiff_plain;h=d2fc13def03c0a812d4d8acd6c936219d21f6ae1;p=Pygame-Jam.git added boss and skeles --- diff --git a/Assets/Music/Combat_Music.ogg b/Assets/Music/Combat_Music.ogg index 21525ae..c4f666e 100644 Binary files a/Assets/Music/Combat_Music.ogg and b/Assets/Music/Combat_Music.ogg differ diff --git a/Assets/Music/Combat_Music1.ogg b/Assets/Music/Combat_Music1.ogg new file mode 100644 index 0000000..21525ae Binary files /dev/null and b/Assets/Music/Combat_Music1.ogg differ diff --git a/Assets/Music/Main_Menu_Music.ogg b/Assets/Music/Main_Menu_Music1.ogg similarity index 100% rename from Assets/Music/Main_Menu_Music.ogg rename to Assets/Music/Main_Menu_Music1.ogg diff --git a/Assets/Music/Main_Menu_Music2.ogg b/Assets/Music/Main_Menu_Music2.ogg new file mode 100644 index 0000000..fbf5679 Binary files /dev/null and b/Assets/Music/Main_Menu_Music2.ogg differ diff --git a/Assets/world/blocks/KING.png b/Assets/world/blocks/KING.png new file mode 100644 index 0000000..2e1a954 Binary files /dev/null and b/Assets/world/blocks/KING.png differ diff --git a/Assets/world/blocks/SKELETON.png b/Assets/world/blocks/SKELETON.png new file mode 100644 index 0000000..3c048f5 Binary files /dev/null and b/Assets/world/blocks/SKELETON.png differ diff --git a/Enemy.py b/Enemy.py index b1af9a6..6748523 100644 --- a/Enemy.py +++ b/Enemy.py @@ -108,3 +108,210 @@ class Enemy(Actor): # pg.draw.rect(surf,(0,0,255),get_display_rect(b),3) # self.buffer.append(self.get_collision_rect()) # pg.draw.rect(surf, (0, 255, 0), get_display_rect(self.get_collision_rect()), 2) + + +class Skeleton(Actor): + speed = Actor.speed * 0.4 + jump_strength = Actor.jump_strength * 1.1 + colour = (235, 64, 52) + friction = 0.9 + run_gif = Image.open("Assets/skeleton/skeleton_run.gif") + run_frames = [] + for i in range(run_gif.n_frames): + run_frames.append(pg.transform.scale(pil_to_game(get_gif_frame(run_gif, i)), (180, 180))) + + attack_gif = Image.open("Assets/skeleton/skeleton_attack.gif") + attack_frames = [] + for i in range(attack_gif.n_frames): + attack_frames.append(pg.transform.scale(pil_to_game(get_gif_frame(attack_gif, i)), (180, 180))) + + def __init__(self, pos, collision_layer, collision_mask): + super().__init__(pos, collision_layer, collision_mask) + + self.areas = { + "head": Area(self.position, pg.Vector2(self.width * 1 / 3 * 1 / 2, -2), self.width * 2 / 3, 25, Player, + self.knockout)} + self.movable = False + + self.direction = -1 + self.prev_direction = self.direction + + # self.health = 0 # for debugging without getting killed + + self.weapon = Sword(self.position, (0, 0), self.width, -1) + + + self.buffer = [] + + self.display_offsets = {"enemy":pg.Vector2(0,0)} + + self.current_frame = 0 + self.display = self.run_frames[math.floor(self.current_frame)] + self.state = "RUN" + + def update(self, delta, target=None): + super().update(delta) + if not self.attacked and target is not None and self.stun_time == 0: + self.follow_target(target, follow_range=750,stop_dist=target.width/2+self.weapon.width) + if not target.attacked and get_display_rect(self.weapon.get_collision_rect()).colliderect( + get_display_rect(target.get_collision_rect())): + if self.state != "ATTACK": + self.state = "ATTACK" + self.current_frame = 0 + elif 4 < self.current_frame: + target.attack(self, self.weapon, self.direction) + + # Deals with collision and applying velocity + self.position, self.velocity = self.move_and_collide(self.position.copy(), self.velocity.copy(), delta) + + self.prev_direction = self.direction + if self.velocity.x == 0: + self.direction = self.prev_direction + else: + self.direction = math.copysign(1, self.velocity.x) + self.weapon.update(delta, self.position, self.direction) + + if self.state == "RUN": + frame = math.floor(self.current_frame) + if self.velocity.x > 0: + self.display = self.run_frames[math.floor(frame)] + self.display_offsets["enemy"] = pg.Vector2(-30, -35) + elif self.velocity.x <= 0: + self.display = pg.transform.flip(self.run_frames[math.floor(frame)], True, False) + self.display_offsets["enemy"] = pg.Vector2(-90, -35) + if frame % 4 == 0 and self.on_ground: + Dust(pg.Vector2(self.get_collision_rect().midbottom) + pg.Vector2(math.copysign(1, self.velocity.x) * -self.width/2,-15), 16, self.direction) + self.current_frame = (self.current_frame + 0.25) % self.run_gif.n_frames + elif self.state == "ATTACK": + frame = math.floor(self.current_frame) + if self.direction == 1: + self.display = pg.transform.flip(self.attack_frames[math.floor(frame)], False, False) + self.display_offsets["enemy"] = pg.Vector2(-50, -50) + else: + self.display = pg.transform.flip(self.attack_frames[math.floor(frame)], True, False) + self.display_offsets["enemy"] = pg.Vector2(-80, -50) + self.current_frame += 0.4 + if math.floor(self.current_frame) >= self.attack_gif.n_frames-1: + self.state = "RUN" + self.current_frame = 0 + + # print(self.velocity) + + def knockout(self, node): + self.stun_time = 100 + self.modify_health(-25, None) + node.on_ground = False + node.push(math.copysign(1, node.velocity.x), 0.25, -2.25) + # self.crouch(1000) + + def draw(self, surf): + # self.weapon.draw(surf) + # super(Enemy, self).draw(surf) + surf.blit(self.display, get_display_rect(self.get_collision_rect()).topleft + self.display_offsets["enemy"]) + + # for b in self.buffer: + # pg.draw.rect(surf,(0,0,255),get_display_rect(b),3) + # self.buffer.append(self.get_collision_rect()) + # pg.draw.rect(surf, (0, 255, 0), get_display_rect(self.get_collision_rect()), 2) +class King(Actor): + speed = Actor.speed * 0.4 + jump_strength = Actor.jump_strength * 1.1 + colour = (235, 64, 52) + friction = 0.9 + run_gif = Image.open("Assets/skeleton/skeleton_king_idle.gif") + run_frames = [] + for i in range(run_gif.n_frames): + run_frames.append(pg.transform.scale(pil_to_game(get_gif_frame(run_gif, i)), (160, 240))) + + attack_gif = Image.open("Assets/skeleton/skeleton_king_summon.gif") + attack_frames = [] + for i in range(attack_gif.n_frames): + attack_frames.append(pg.transform.scale(pil_to_game(get_gif_frame(attack_gif, i)), (180, 180))) + + def __init__(self, pos, collision_layer, collision_mask): + super().__init__(pos, collision_layer, collision_mask) + + self.areas = { + "head": Area(self.position, pg.Vector2(self.width * 1 / 3 * 1 / 2, -2), self.width * 2 / 3, 25, Player, + self.knockout)} + self.movable = False + + self.direction = -1 + self.prev_direction = self.direction + + # self.health = 0 # for debugging without getting killed + + self.weapon = Sword(self.position, (0, 0), self.width, -1) + + + self.buffer = [] + + self.display_offsets = {"enemy":pg.Vector2(0,0)} + + self.current_frame = 0 + self.display = self.run_frames[math.floor(self.current_frame)] + self.state = "RUN" + + def update(self, delta, target=None): + super().update(delta) + if not self.attacked and target is not None and self.stun_time == 0: + self.follow_target(target, follow_range=750,stop_dist=target.width/2+self.weapon.width) + if not target.attacked and get_display_rect(self.weapon.get_collision_rect()).colliderect( + get_display_rect(target.get_collision_rect())): + if self.state != "ATTACK": + self.state = "ATTACK" + self.current_frame = 0 + elif 4 < self.current_frame: + target.attack(self, self.weapon, self.direction) + + # Deals with collision and applying velocity + self.position, self.velocity = self.move_and_collide(self.position.copy(), self.velocity.copy(), delta) + + self.prev_direction = self.direction + if self.velocity.x == 0: + self.direction = self.prev_direction + else: + self.direction = math.copysign(1, self.velocity.x) + self.weapon.update(delta, self.position, self.direction) + + if self.state == "RUN": + frame = math.floor(self.current_frame) + if self.velocity.x > 0: + self.display = self.run_frames[math.floor(frame)] + self.display_offsets["enemy"] = pg.Vector2(-30, -35) + elif self.velocity.x <= 0: + self.display = pg.transform.flip(self.run_frames[math.floor(frame)], True, False) + self.display_offsets["enemy"] = pg.Vector2(-90, -35) + if frame % 4 == 0 and self.on_ground: + Dust(pg.Vector2(self.get_collision_rect().midbottom) + pg.Vector2(math.copysign(1, self.velocity.x) * -self.width/2,-15), 16, self.direction) + self.current_frame = (self.current_frame + 0.25) % self.run_gif.n_frames + elif self.state == "ATTACK": + frame = math.floor(self.current_frame) + if self.direction == 1: + self.display = pg.transform.flip(self.attack_frames[math.floor(frame)], False, False) + self.display_offsets["enemy"] = pg.Vector2(-50, -50) + else: + self.display = pg.transform.flip(self.attack_frames[math.floor(frame)], True, False) + self.display_offsets["enemy"] = pg.Vector2(-80, -50) + self.current_frame += 0.4 + if math.floor(self.current_frame) >= self.attack_gif.n_frames-1: + self.state = "RUN" + + # print(self.velocity) + + def knockout(self, node): + self.stun_time = 100 + self.modify_health(-25, None) + node.on_ground = False + node.push(math.copysign(1, node.velocity.x), 0.25, -2.25) + # self.crouch(1000) + + def draw(self, surf): + # self.weapon.draw(surf) + # super(Enemy, self).draw(surf) + surf.blit(self.display, get_display_rect(self.get_collision_rect()).topleft + self.display_offsets["enemy"]) + + # for b in self.buffer: + # pg.draw.rect(surf,(0,0,255),get_display_rect(b),3) + # self.buffer.append(self.get_collision_rect()) + # pg.draw.rect(surf, (0, 255, 0), get_display_rect(self.get_collision_rect()), 2) diff --git a/Game.py b/Game.py index 4bf1a9b..2aebedc 100644 --- a/Game.py +++ b/Game.py @@ -1,6 +1,6 @@ import Setup from EndScreen import EndScreen -from Enemy import Enemy +from Enemy import Enemy, Skeleton, King from Function.Fade import fade from Function.Portal import Transition from Item import PotionItem @@ -30,7 +30,7 @@ class Game: self.world = World(self.collision_layer) - enemy_positions, player_position, self.portal_position, heal_positions, spike_positions = self.world.load_world( + enemy_positions, player_position, self.portal_position, heal_positions, spike_positions, skele_positions, king_position = self.world.load_world( level) for i in heal_positions: @@ -48,6 +48,16 @@ class Game: [self.collision_layer["player"], self.collision_layer["world"], self.collision_layer["enemy"]]) for pos in enemy_positions] + if king_position is not None: + self.skeletons = [Skeleton(pos, self.collision_layer["enemy"], + [self.collision_layer["player"], self.collision_layer["world"], + self.collision_layer["enemy"]]) for pos in + skele_positions] + self.king = King(king_position, self.collision_layer["enemy"], + [self.collision_layer["player"], self.collision_layer["world"], + self.collision_layer["enemy"]] ) + + self.scene = EndScreen() # self.dashMeter = DashMeter(self.player.dashCooldown) self.healthBar = HealthBar() @@ -95,6 +105,7 @@ class Game: else: pg.mixer.music.load("Assets/Music/Overworld_Music.ogg") + pg.mixer.music.play(-1) except: pass; @@ -122,6 +133,16 @@ class Game: [self.collision_layer["world"], self.collision_layer["body"]]) self.collision_layer["enemy"].remove(enemy) self.collision_layer["body"].add(self.enemies[i]) + for i, enemy in enumerate(self.skeletons): + enemy.update(delta, self.player) + if enemy.dead: + self.skeletons[i] = PhysicsBody(enemy.position, enemy.velocity, enemy.width, enemy.height, + enemy.colour, + self.collision_layer["body"], + [self.collision_layer["world"], self.collision_layer["body"]], goon_skin=False) + self.collision_layer["enemy"].remove(enemy) + self.collision_layer["body"].add(self.skeletons[i]) + self.king.update(delta) for particle in particles: particle.update(delta) @@ -187,7 +208,10 @@ class Game: for enemy in self.enemies: enemy.draw(surf) + for enemy in self.skeletons: + enemy.draw(surf) + self.king.draw(surf) self.player.draw(surf) # self.dialogue.draw(surf, self.player, "Next dimension, next portal...", 4, 1) diff --git a/Levels/Level5 real.txt b/Levels/Level5 real.txt new file mode 100644 index 0000000..a61ecdb --- /dev/null +++ b/Levels/Level5 real.txt @@ -0,0 +1,15 @@ +none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world +2050.0,2150.0|2100.0,2150.0|2150.0,2150.0|2700.0,2600.0|2750.0,2600.0|2850.0,2550.0|3050.0,2450.0|3150.0,2400.0|3850.0,1900.0|3850.0,1950.0|3850.0,2000.0|3850.0,2050.0|3850.0,2100.0|3850.0,2150.0|3850.0,2200.0|3850.0,2250.0|3850.0,2300.0|3900.0,2300.0|3900.0,2250.0|3900.0,2200.0|3900.0,2150.0|3900.0,2100.0|3900.0,2050.0|3900.0,2000.0|3900.0,1950.0|3900.0,1900.0|2050.0,2600.0|2100.0,2600.0|2150.0,2600.0|1600.0,2150.0|1650.0,2150.0|1700.0,2150.0|1700.0,2600.0|1650.0,2600.0|1600.0,2600.0|1650.0,2200.0|1650.0,2250.0|1650.0,2300.0|1650.0,2350.0|1650.0,2400.0|1650.0,2450.0|1650.0,2500.0|1650.0,2550.0|2100.0,2550.0|2100.0,2500.0|2100.0,2450.0|2100.0,2400.0|2100.0,2350.0|2100.0,2300.0|2100.0,2250.0|2100.0,2200.0|2750.0,2100.0|2750.0,2150.0|2750.0,2200.0|2750.0,2250.0|2750.0,2300.0|2750.0,2350.0|2750.0,2400.0|2750.0,2450.0|2750.0,2500.0|3100.0,1900.0|3100.0,1950.0|3100.0,2000.0|3100.0,2050.0|3100.0,2100.0|3100.0,2150.0|3100.0,2200.0|3100.0,2250.0|3100.0,2300.0|3450.0,1900.0|3450.0,1950.0|3450.0,2000.0|3450.0,2050.0|3450.0,2100.0|3450.0,2150.0|3450.0,2200.0|3450.0,2250.0|3450.0,2300.0|4900.0,2400.0|4950.0,2400.0|5000.0,2400.0|5050.0,2400.0|5050.0,2350.0|5100.0,2350.0|5150.0,2350.0|5200.0,2350.0|5250.0,2350.0|5300.0,2350.0|5350.0,2350.0|5400.0,2350.0|5450.0,2350.0|5500.0,2350.0|5800.0,2350.0|5750.0,2350.0|5700.0,2350.0|5650.0,2350.0|5600.0,2350.0|5550.0,2350.0|900.0,2100.0|900.0,2150.0|900.0,2200.0|900.0,2250.0|900.0,2300.0|900.0,2350.0|900.0,2400.0|900.0,2450.0|900.0,2500.0|900.0,2550.0|900.0,2600.0|900.0,2650.0|950.0,2650.0|1000.0,2650.0|1050.0,2650.0|1100.0,2650.0|1150.0,2650.0|1200.0,2650.0|1200.0,2700.0|1250.0,2700.0|1300.0,2700.0|1350.0,2700.0|1400.0,2700.0|1450.0,2700.0|1500.0,2700.0|1550.0,2700.0|1250.0,2650.0|1300.0,2650.0|1350.0,2650.0|1400.0,2650.0|1450.0,2650.0|1500.0,2650.0|1550.0,2650.0|1600.0,2650.0|1650.0,2650.0|1700.0,2650.0|1750.0,2650.0|1800.0,2650.0|1850.0,2650.0|1900.0,2650.0|1950.0,2650.0|2000.0,2650.0|2050.0,2650.0|2100.0,2650.0|2150.0,2650.0|2200.0,2650.0|2250.0,2650.0|2300.0,2650.0|2350.0,2650.0|2400.0,2650.0|2450.0,2650.0|2500.0,2650.0|2550.0,2650.0|2600.0,2650.0|2650.0,2650.0|2650.0,2600.0|2700.0,2550.0|2750.0,2550.0|2800.0,2550.0|2850.0,2500.0|2900.0,2500.0|2950.0,2500.0|2950.0,2450.0|3000.0,2450.0|3050.0,2400.0|3100.0,2400.0|3100.0,2350.0|3150.0,2350.0|3200.0,2350.0|3250.0,2350.0|3300.0,2350.0|3350.0,2350.0|3400.0,2350.0|3450.0,2350.0|3500.0,2350.0|3550.0,2350.0|3600.0,2350.0|3650.0,2350.0|3700.0,2350.0|3750.0,2350.0|3800.0,2350.0|3850.0,2350.0|3900.0,2350.0|3950.0,2350.0|4000.0,2350.0|4050.0,2350.0|4100.0,2350.0|4150.0,2350.0|4200.0,2350.0|4250.0,2350.0|4300.0,2350.0|4350.0,2350.0|4400.0,2350.0|4450.0,2350.0|4500.0,2350.0|4550.0,2350.0|4600.0,2350.0|4650.0,2350.0|4700.0,2350.0|4750.0,2350.0|4800.0,2350.0|4850.0,2350.0|4900.0,2350.0|4950.0,2350.0|5000.0,2350.0|5000.0,2300.0|5050.0,2300.0|5100.0,2300.0|5150.0,2300.0|5200.0,2300.0|5250.0,2300.0|5300.0,2300.0|5350.0,2300.0|5400.0,2300.0|5450.0,2300.0|5500.0,2300.0|5550.0,2300.0|5600.0,2300.0|5650.0,2300.0|5700.0,2300.0|5750.0,2300.0|5800.0,2250.0|5800.0,2200.0|5800.0,2150.0|5800.0,2100.0|5800.0,2050.0|5800.0,2000.0|5800.0,2300.0|5750.0,1950.0|5750.0,1900.0|5750.0,1850.0|5750.0,1800.0|5750.0,1750.0|5700.0,1750.0|5700.0,1700.0|5700.0,1650.0|5650.0,1650.0|5650.0,1600.0|5600.0,1600.0|5550.0,1550.0|5500.0,1550.0|5450.0,1500.0|5400.0,1500.0|5350.0,1500.0|5300.0,1500.0|5250.0,1500.0|5200.0,1500.0|5150.0,1500.0|5100.0,1500.0|5050.0,1500.0|5000.0,1500.0|4950.0,1500.0|4900.0,1500.0|4850.0,1500.0|4900.0,1450.0|4850.0,1450.0|4800.0,1450.0|4750.0,1450.0|4700.0,1450.0|4650.0,1450.0|4600.0,1450.0|4550.0,1450.0|4500.0,1450.0|4450.0,1450.0|4450.0,1500.0|4400.0,1500.0|4350.0,1500.0|4300.0,1500.0|4250.0,1500.0|4200.0,1500.0|4200.0,1550.0|4150.0,1550.0|4150.0,1600.0|4100.0,1600.0|4100.0,1650.0|4050.0,1650.0|4050.0,1700.0|4000.0,1700.0|4000.0,1750.0|3950.0,1750.0|3950.0,1800.0|3900.0,1800.0|3800.0,1850.0|4000.0,1850.0|3950.0,1850.0|3900.0,1850.0|3850.0,1850.0|3750.0,1850.0|3700.0,1850.0|3650.0,1850.0|3600.0,1850.0|3550.0,1850.0|3500.0,1850.0|3450.0,1850.0|3400.0,1850.0|3350.0,1850.0|3300.0,1850.0|3250.0,1850.0|3200.0,1850.0|3150.0,1850.0|3100.0,1850.0|3050.0,1850.0|3000.0,1850.0|2950.0,1850.0|3050.0,1900.0|3000.0,1900.0|2950.0,1900.0|2900.0,1900.0|2900.0,1950.0|2850.0,1950.0|2800.0,1950.0|2750.0,1950.0|2800.0,2000.0|2750.0,2000.0|2700.0,2000.0|2750.0,2050.0|2700.0,2050.0|2650.0,2050.0|2600.0,2050.0|2600.0,2100.0|2550.0,2100.0|2500.0,2100.0|2450.0,2100.0|2400.0,2100.0|2350.0,2100.0|2300.0,2100.0|2250.0,2100.0|2200.0,2100.0|2150.0,2100.0|2050.0,2100.0|2000.0,2100.0|1950.0,2100.0|2100.0,2100.0|1900.0,2100.0|1850.0,2100.0|1800.0,2100.0|1750.0,2100.0|1700.0,2100.0|1650.0,2100.0|1600.0,2100.0|1550.0,2100.0|1500.0,2100.0|1450.0,2100.0|1400.0,2100.0|1350.0,2100.0|1300.0,2100.0|1250.0,2100.0|1200.0,2100.0|1150.0,2100.0|1100.0,2100.0|1050.0,2100.0|1000.0,2100.0|950.0,2100.0|1200.0,2500.0|2200.0,2500.0|2350.0,2500.0|2500.0,2500.0|3600.0,2250.0|3750.0,2250.0|3200.0,2250.0|4400.0,2250.0|4500.0,2250.0|5650.0,2200.0 +PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLAYER|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY + + + + + + + + + + + + diff --git a/Levels/Level5.txt b/Levels/Level5.txt index a61ecdb..5de3db7 100644 --- a/Levels/Level5.txt +++ b/Levels/Level5.txt @@ -1,6 +1,6 @@ -none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|none|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world -2050.0,2150.0|2100.0,2150.0|2150.0,2150.0|2700.0,2600.0|2750.0,2600.0|2850.0,2550.0|3050.0,2450.0|3150.0,2400.0|3850.0,1900.0|3850.0,1950.0|3850.0,2000.0|3850.0,2050.0|3850.0,2100.0|3850.0,2150.0|3850.0,2200.0|3850.0,2250.0|3850.0,2300.0|3900.0,2300.0|3900.0,2250.0|3900.0,2200.0|3900.0,2150.0|3900.0,2100.0|3900.0,2050.0|3900.0,2000.0|3900.0,1950.0|3900.0,1900.0|2050.0,2600.0|2100.0,2600.0|2150.0,2600.0|1600.0,2150.0|1650.0,2150.0|1700.0,2150.0|1700.0,2600.0|1650.0,2600.0|1600.0,2600.0|1650.0,2200.0|1650.0,2250.0|1650.0,2300.0|1650.0,2350.0|1650.0,2400.0|1650.0,2450.0|1650.0,2500.0|1650.0,2550.0|2100.0,2550.0|2100.0,2500.0|2100.0,2450.0|2100.0,2400.0|2100.0,2350.0|2100.0,2300.0|2100.0,2250.0|2100.0,2200.0|2750.0,2100.0|2750.0,2150.0|2750.0,2200.0|2750.0,2250.0|2750.0,2300.0|2750.0,2350.0|2750.0,2400.0|2750.0,2450.0|2750.0,2500.0|3100.0,1900.0|3100.0,1950.0|3100.0,2000.0|3100.0,2050.0|3100.0,2100.0|3100.0,2150.0|3100.0,2200.0|3100.0,2250.0|3100.0,2300.0|3450.0,1900.0|3450.0,1950.0|3450.0,2000.0|3450.0,2050.0|3450.0,2100.0|3450.0,2150.0|3450.0,2200.0|3450.0,2250.0|3450.0,2300.0|4900.0,2400.0|4950.0,2400.0|5000.0,2400.0|5050.0,2400.0|5050.0,2350.0|5100.0,2350.0|5150.0,2350.0|5200.0,2350.0|5250.0,2350.0|5300.0,2350.0|5350.0,2350.0|5400.0,2350.0|5450.0,2350.0|5500.0,2350.0|5800.0,2350.0|5750.0,2350.0|5700.0,2350.0|5650.0,2350.0|5600.0,2350.0|5550.0,2350.0|900.0,2100.0|900.0,2150.0|900.0,2200.0|900.0,2250.0|900.0,2300.0|900.0,2350.0|900.0,2400.0|900.0,2450.0|900.0,2500.0|900.0,2550.0|900.0,2600.0|900.0,2650.0|950.0,2650.0|1000.0,2650.0|1050.0,2650.0|1100.0,2650.0|1150.0,2650.0|1200.0,2650.0|1200.0,2700.0|1250.0,2700.0|1300.0,2700.0|1350.0,2700.0|1400.0,2700.0|1450.0,2700.0|1500.0,2700.0|1550.0,2700.0|1250.0,2650.0|1300.0,2650.0|1350.0,2650.0|1400.0,2650.0|1450.0,2650.0|1500.0,2650.0|1550.0,2650.0|1600.0,2650.0|1650.0,2650.0|1700.0,2650.0|1750.0,2650.0|1800.0,2650.0|1850.0,2650.0|1900.0,2650.0|1950.0,2650.0|2000.0,2650.0|2050.0,2650.0|2100.0,2650.0|2150.0,2650.0|2200.0,2650.0|2250.0,2650.0|2300.0,2650.0|2350.0,2650.0|2400.0,2650.0|2450.0,2650.0|2500.0,2650.0|2550.0,2650.0|2600.0,2650.0|2650.0,2650.0|2650.0,2600.0|2700.0,2550.0|2750.0,2550.0|2800.0,2550.0|2850.0,2500.0|2900.0,2500.0|2950.0,2500.0|2950.0,2450.0|3000.0,2450.0|3050.0,2400.0|3100.0,2400.0|3100.0,2350.0|3150.0,2350.0|3200.0,2350.0|3250.0,2350.0|3300.0,2350.0|3350.0,2350.0|3400.0,2350.0|3450.0,2350.0|3500.0,2350.0|3550.0,2350.0|3600.0,2350.0|3650.0,2350.0|3700.0,2350.0|3750.0,2350.0|3800.0,2350.0|3850.0,2350.0|3900.0,2350.0|3950.0,2350.0|4000.0,2350.0|4050.0,2350.0|4100.0,2350.0|4150.0,2350.0|4200.0,2350.0|4250.0,2350.0|4300.0,2350.0|4350.0,2350.0|4400.0,2350.0|4450.0,2350.0|4500.0,2350.0|4550.0,2350.0|4600.0,2350.0|4650.0,2350.0|4700.0,2350.0|4750.0,2350.0|4800.0,2350.0|4850.0,2350.0|4900.0,2350.0|4950.0,2350.0|5000.0,2350.0|5000.0,2300.0|5050.0,2300.0|5100.0,2300.0|5150.0,2300.0|5200.0,2300.0|5250.0,2300.0|5300.0,2300.0|5350.0,2300.0|5400.0,2300.0|5450.0,2300.0|5500.0,2300.0|5550.0,2300.0|5600.0,2300.0|5650.0,2300.0|5700.0,2300.0|5750.0,2300.0|5800.0,2250.0|5800.0,2200.0|5800.0,2150.0|5800.0,2100.0|5800.0,2050.0|5800.0,2000.0|5800.0,2300.0|5750.0,1950.0|5750.0,1900.0|5750.0,1850.0|5750.0,1800.0|5750.0,1750.0|5700.0,1750.0|5700.0,1700.0|5700.0,1650.0|5650.0,1650.0|5650.0,1600.0|5600.0,1600.0|5550.0,1550.0|5500.0,1550.0|5450.0,1500.0|5400.0,1500.0|5350.0,1500.0|5300.0,1500.0|5250.0,1500.0|5200.0,1500.0|5150.0,1500.0|5100.0,1500.0|5050.0,1500.0|5000.0,1500.0|4950.0,1500.0|4900.0,1500.0|4850.0,1500.0|4900.0,1450.0|4850.0,1450.0|4800.0,1450.0|4750.0,1450.0|4700.0,1450.0|4650.0,1450.0|4600.0,1450.0|4550.0,1450.0|4500.0,1450.0|4450.0,1450.0|4450.0,1500.0|4400.0,1500.0|4350.0,1500.0|4300.0,1500.0|4250.0,1500.0|4200.0,1500.0|4200.0,1550.0|4150.0,1550.0|4150.0,1600.0|4100.0,1600.0|4100.0,1650.0|4050.0,1650.0|4050.0,1700.0|4000.0,1700.0|4000.0,1750.0|3950.0,1750.0|3950.0,1800.0|3900.0,1800.0|3800.0,1850.0|4000.0,1850.0|3950.0,1850.0|3900.0,1850.0|3850.0,1850.0|3750.0,1850.0|3700.0,1850.0|3650.0,1850.0|3600.0,1850.0|3550.0,1850.0|3500.0,1850.0|3450.0,1850.0|3400.0,1850.0|3350.0,1850.0|3300.0,1850.0|3250.0,1850.0|3200.0,1850.0|3150.0,1850.0|3100.0,1850.0|3050.0,1850.0|3000.0,1850.0|2950.0,1850.0|3050.0,1900.0|3000.0,1900.0|2950.0,1900.0|2900.0,1900.0|2900.0,1950.0|2850.0,1950.0|2800.0,1950.0|2750.0,1950.0|2800.0,2000.0|2750.0,2000.0|2700.0,2000.0|2750.0,2050.0|2700.0,2050.0|2650.0,2050.0|2600.0,2050.0|2600.0,2100.0|2550.0,2100.0|2500.0,2100.0|2450.0,2100.0|2400.0,2100.0|2350.0,2100.0|2300.0,2100.0|2250.0,2100.0|2200.0,2100.0|2150.0,2100.0|2050.0,2100.0|2000.0,2100.0|1950.0,2100.0|2100.0,2100.0|1900.0,2100.0|1850.0,2100.0|1800.0,2100.0|1750.0,2100.0|1700.0,2100.0|1650.0,2100.0|1600.0,2100.0|1550.0,2100.0|1500.0,2100.0|1450.0,2100.0|1400.0,2100.0|1350.0,2100.0|1300.0,2100.0|1250.0,2100.0|1200.0,2100.0|1150.0,2100.0|1100.0,2100.0|1050.0,2100.0|1000.0,2100.0|950.0,2100.0|1200.0,2500.0|2200.0,2500.0|2350.0,2500.0|2500.0,2500.0|3600.0,2250.0|3750.0,2250.0|3200.0,2250.0|4400.0,2250.0|4500.0,2250.0|5650.0,2200.0 -PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLAYER|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY|ENEMY +world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world|world +800.0,1000.0|800.0,1050.0|800.0,1100.0|800.0,1150.0|800.0,1200.0|800.0,1250.0|800.0,1300.0|800.0,1350.0|800.0,1400.0|800.0,1450.0|800.0,1500.0|800.0,1550.0|800.0,1600.0|800.0,1650.0|800.0,1700.0|800.0,1750.0|800.0,1800.0|800.0,1850.0|800.0,1900.0|850.0,1900.0|900.0,1900.0|950.0,1900.0|1000.0,1900.0|1050.0,1900.0|1100.0,1900.0|1150.0,1900.0|1200.0,1900.0|1250.0,1900.0|1300.0,1900.0|1350.0,1900.0|1400.0,1900.0|1450.0,1900.0|1500.0,1900.0|1550.0,1900.0|1600.0,1900.0|1650.0,1900.0|1700.0,1900.0|1750.0,1900.0|1800.0,1900.0|1850.0,1900.0|1900.0,1900.0|1950.0,1900.0|2000.0,1900.0|2050.0,1900.0|2100.0,1900.0|2150.0,1900.0|2200.0,1900.0|2250.0,1900.0|2300.0,1900.0|2350.0,1900.0|2400.0,1900.0|2450.0,1900.0|800.0,950.0|800.0,900.0|800.0,850.0|800.0,800.0|800.0,750.0|800.0,700.0|800.0,650.0|850.0,650.0|900.0,650.0|950.0,650.0|1000.0,650.0|1050.0,650.0|1100.0,650.0|1150.0,650.0|1200.0,650.0|1250.0,650.0|1300.0,650.0|1350.0,650.0|1400.0,650.0|1450.0,650.0|1500.0,650.0|1550.0,650.0|1600.0,650.0|1650.0,650.0|1700.0,650.0|1750.0,650.0|1800.0,650.0|1850.0,650.0|1900.0,650.0|1950.0,650.0|2000.0,650.0|2050.0,650.0|2100.0,650.0|2150.0,650.0|2200.0,650.0|2250.0,650.0|2300.0,650.0|2350.0,650.0|2400.0,650.0|2450.0,1850.0|2450.0,1800.0|2450.0,1750.0|2450.0,1700.0|2450.0,1650.0|2450.0,1600.0|2450.0,1550.0|2450.0,1500.0|2450.0,1450.0|2450.0,1400.0|2450.0,1350.0|2450.0,1300.0|2450.0,1250.0|2450.0,1200.0|2450.0,1150.0|2450.0,650.0|2450.0,700.0|2450.0,750.0|2450.0,800.0|2450.0,850.0|2450.0,900.0|2450.0,950.0|2450.0,1000.0|2450.0,1050.0|2450.0,1100.0|1650.0,1500.0|1800.0,1650.0|1750.0,1650.0|1700.0,1650.0|1650.0,1650.0|1600.0,1650.0|1550.0,1650.0|1500.0,1650.0|2400.0,1850.0|2350.0,1850.0|2300.0,1850.0|2250.0,1850.0|2200.0,1850.0|850.0,1850.0|900.0,1850.0|950.0,1850.0|1000.0,1850.0|1050.0,1850.0|950.0,1800.0|2350.0,1800.0|2400.0,1800.0|2400.0,1750.0|900.0,1800.0|850.0,1800.0|900.0,1750.0|850.0,1750.0|2350.0,1750.0|2300.0,1800.0|1800.0,1600.0|1750.0,1600.0|1700.0,1600.0|1650.0,1600.0|1600.0,1600.0|1550.0,1600.0|1500.0,1600.0|1650.0,1800.0|1900.0,1800.0 +PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLAYER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|HEALTHPOTION|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|PLACEHOLDER|KING|SKELETON diff --git a/Levels/Level10.txt b/Levels/test_levels/Level10.txt similarity index 100% rename from Levels/Level10.txt rename to Levels/test_levels/Level10.txt diff --git a/Levels/Level11.txt b/Levels/test_levels/Level11.txt similarity index 100% rename from Levels/Level11.txt rename to Levels/test_levels/Level11.txt diff --git a/Levels/Level12.txt b/Levels/test_levels/Level12.txt similarity index 100% rename from Levels/Level12.txt rename to Levels/test_levels/Level12.txt diff --git a/Levels/Level13.txt b/Levels/test_levels/Level13.txt similarity index 100% rename from Levels/Level13.txt rename to Levels/test_levels/Level13.txt diff --git a/Levels/Level14.txt b/Levels/test_levels/Level14.txt similarity index 100% rename from Levels/Level14.txt rename to Levels/test_levels/Level14.txt diff --git a/Levels/Level15.txt b/Levels/test_levels/Level15.txt similarity index 100% rename from Levels/Level15.txt rename to Levels/test_levels/Level15.txt diff --git a/Levels/Level6.txt b/Levels/test_levels/Level6.txt similarity index 100% rename from Levels/Level6.txt rename to Levels/test_levels/Level6.txt diff --git a/Levels/Level7.txt b/Levels/test_levels/Level7.txt similarity index 100% rename from Levels/Level7.txt rename to Levels/test_levels/Level7.txt diff --git a/Levels/Level8.txt b/Levels/test_levels/Level8.txt similarity index 100% rename from Levels/Level8.txt rename to Levels/test_levels/Level8.txt diff --git a/Levels/Level9.txt b/Levels/test_levels/Level9.txt similarity index 100% rename from Levels/Level9.txt rename to Levels/test_levels/Level9.txt diff --git a/MainMenu.py b/MainMenu.py index 59c9039..8892853 100644 --- a/MainMenu.py +++ b/MainMenu.py @@ -10,9 +10,9 @@ class Menu: self.texts = [] X = SCREEN_WIDTH Y = SCREEN_HEIGHT/2 - self.texts.append(createText(X, Y, 48, white, "Bold", "Interstellar Pirate Title", "c")) - self.texts.append(createText(X, Y+200, 32, white, "Regular", "Start", "c")) - self.texts.append(createText(X, Y+350, 32, white, "Regular", "New Game", "c")) + self.texts.append(createText(X, Y, 48, white, "Bold", "Pirates of the Dead", "c")) + self.texts.append(createText(X, Y+200, 32, white, "Regular", "New Game", "c")) + self.texts.append(createText(X, Y+350, 32, white, "Regular", "Load Game", "c")) self.texts.append(createText(X, Y+500, 32, white, "Regular", "Quit", "c")) backgroundImage = pg.image.load('./Assets/mainmenu_background.png') @@ -49,14 +49,14 @@ class Menu: def menuFunctions(self, num): match num: case 1: + self.level = 1 + case 2: try: self.level = LoadGame() if(self.level == 0): self.level = 1 except: self.level = self.level + 1 - case 2: - self.level = 1 case 3: Setup.is_running = False # this works. who keeps changing it # pg.quit(); # plz no diff --git a/PhysicsBody.py b/PhysicsBody.py index c182e64..de3fa6c 100644 --- a/PhysicsBody.py +++ b/PhysicsBody.py @@ -9,7 +9,7 @@ class PhysicsBody: friction = Actor.friction invincibility_time = 150 - def __init__(self, pos, vel, width, height, colour, collision_layer, collision_mask): + def __init__(self, pos, vel, width, height, colour, collision_layer, collision_mask, goon_skin=True): self.position = pg.Vector2(pos) self.velocity = pg.Vector2(vel) self.width, self.height = height, width @@ -27,6 +27,11 @@ class PhysicsBody: self.collision_layer = collision_layer self.collision_mask = collision_mask # the layer the actor detects collisions against + if goon_skin: + self.display = pg.image.load("Assets/enemy/Pirate_Goon.png") + else: + self.display = pg.image.load("Assets/skeleton/SKELETON.png") + def update(self, delta, test=None, test2=None): if self.on_ground: self.velocity.x *= self.friction @@ -94,3 +99,4 @@ class PhysicsBody: def draw(self, surf): # print(self.position, self.velocity) pg.draw.rect(surf, self.colour, get_display_rect(self.get_collision_rect()), border_radius=8) + surf.blit(self.display,get_display_rect(self.get_collision_rect())) diff --git a/World.py b/World.py index c69f050..b717ae4 100644 --- a/World.py +++ b/World.py @@ -14,7 +14,7 @@ class World: with open(path.join("Levels", f'Level{level}.txt'), 'r') as f: file_contents = f.read().split("\n") - out = [[], center, "a", [], []] + out = [[], center, "a", [], [], [], None] for i in range(0, len(file_contents) - 1, 3): layer = file_contents[i].split("|") pos = file_contents[i + 1].split("|") @@ -30,6 +30,10 @@ class World: out[1] = (x, y) elif t == "ENEMY": out[0].append((x, y)) + elif t == "SKELETON": + out[5].append((x, y)) + elif t == "KING": + out[6] = (x, y) elif t == "PORTAL": out[2] = (x, y) elif t == "HEALTHPOTION": diff --git a/main.py b/main.py index 904407d..5f4c80e 100644 --- a/main.py +++ b/main.py @@ -16,7 +16,7 @@ delta = 1000//fps # scene = TransitionScene() scene = DevLevelSelect() old_level = 0 -level = -3 +level = 5 next_level = 0 # final_level = 6