# 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)
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
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:
[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()
else:
pg.mixer.music.load("Assets/Music/Overworld_Music.ogg")
+
pg.mixer.music.play(-1)
except:
pass;
[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)
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)
--- /dev/null
+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
+
+
+
+
+
+
+
+
+
+
+
+
-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
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')
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
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
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
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()))
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("|")
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":
# scene = TransitionScene()
scene = DevLevelSelect()
old_level = 0
-level = -3
+level = 5
next_level = 0
# final_level = 6