]> Skullheadx's Git Forge - Pygame-Jam.git/commitdiff
Spawn Skeletons
authorlbcmk <30442978+lbcmk@users.noreply.github.com>
Wed, 13 Jul 2022 17:52:00 +0000 (13:52 -0400)
committerlbcmk <30442978+lbcmk@users.noreply.github.com>
Wed, 13 Jul 2022 17:52:00 +0000 (13:52 -0400)
Enemy.py
Game.py
PauseMenu.py
PhysicsBody.py

index ea87a3c24da431cd052f280a7988abe4813998fd..1b68aebe68e7322124e3d5ae87136baeb5bd59dc 100644 (file)
--- a/Enemy.py
+++ b/Enemy.py
@@ -291,7 +291,8 @@ class King(Actor):
                     self.ranged_attack.append(RangedAttack(target.position + pg.Vector2(0,-400),self.arrow_collision_mask, self.arrow_collision_layer))
                     self.attack_cooldown = random.randint(5,10) * 1000
                 else:
-                    print("Summon Skeles!")
+                    self.skeleton_attack = True
+                    self.attack_cooldown = random.randint(5,10) * 1000
 
 
             # else:
diff --git a/Game.py b/Game.py
index aa00b82311457bebde9182112994d3a19e42c82d..7fa42d87c49389246af7fbb0173fe4a9479a2b25 100644 (file)
--- a/Game.py
+++ b/Game.py
@@ -78,6 +78,12 @@ class Game:
         
         self.skeleton_spawn_frame = pg.transform.scale(pil_to_game(get_gif_frame(Image.open("Assets/skeleton/skeleton_attack.gif"), 0)), (170, 138))
         self.skeleton_spawn_coords = []
+        skeleton_portal_gif = Image.open("Assets/skeleton/portal.gif")
+        self.skeleton_portal_gif = []
+        for i in range(skeleton_portal_gif.n_frames):
+            self.skeleton_portal_gif.append(pg.transform.scale(pil_to_game(get_gif_frame(skeleton_portal_gif, i)), (96, 64)))
+        
+        
 
         self.paused = False
         self.PauseMenu = PauseMenu(self.level)
@@ -175,12 +181,46 @@ class Game:
         # self.pet.update(delta, self.player, self.camera_pos)
 
     def draw(self, surf):
+
+
+
         # screen.fill((0, 191, 255))
 
         # screen.fill((0, 191, 255))
         # screen.fill((255,255,255))
         surf.blit(self.sky, (0, 0))
 
+        if (self.level == 5 or self.level == 7):
+            if self.king is not None:
+                if self.king.skeleton_attack == True:
+                    for i in range(random.randint(1, 2)):
+                        if(len(self.collision_layer["enemy"]) < 4 and len(self.skeleton_spawn_coords) < 2):
+                            self.skeleton_spawn_coords.append([(random.randint(1100, 2000), random.randint(1900, 2100)), 0])
+                    self.king.skeleton_attack = False
+
+            for i in range(len(self.skeleton_spawn_coords)):
+                try:
+                    surf.blit(self.skeleton_portal_gif[self.skeleton_spawn_coords[i][1]], get_display_point((self.skeleton_spawn_coords[i][0][0] + 40, 1849)))  
+
+                    if(self.skeleton_spawn_coords[i][0][1] <= 1780):
+                        skele = Skeleton(self.skeleton_spawn_coords[i][0], self.collision_layer["enemy"], [self.collision_layer["player"],self.collision_layer["world"],self.collision_layer["enemy"]])
+                        self.skeletons.append(skele)
+                        self.skeleton_spawn_coords[i][0] = (100000, 100000)
+                    else:
+                        lst = list(self.skeleton_spawn_coords[i][0])
+                        lst[1] -= 2
+                        self.skeleton_spawn_coords[i][0] = tuple(lst)
+                        surf.blit(self.skeleton_spawn_frame, get_display_point(self.skeleton_spawn_coords[i][0]))
+                        if(self.skeleton_spawn_coords[i][1] <= 5):
+                            self.skeleton_spawn_coords[i][1] += 1
+                    
+                    if(self.skeleton_spawn_coords[i][0][0] > 50000 and self.skeleton_spawn_coords[i][0][1] > 50000):
+                        self.skeleton_spawn_coords[i][1] -= 1
+                        if(self.skeleton_spawn_coords[i][1] >= 0):
+                            self.skeleton_spawn_coords.pop(i)
+                except IndexError:
+                    pass;
+        
         if (self.player.position[1] > 10000):
             self.player.dead = True
 
@@ -218,26 +258,6 @@ class Game:
                 self.dialogue.draw(surf, self.player, "This treasure is pennies compared to what I'm after...", 10, 3)
                 self.dialogue.draw(surf, self.player, "But this portal will bring me one dimension closer!", 10, 4)
 
-        if (self.level == 5):
-            if self.king is not None:
-                if self.king.skeleton_attack == True:
-                    for i in range(random.randint(1, 3)):
-                        # if(len(self.collision_layer["enemy"]) < 5 and len(self.skeleton_spawn_coords) < 5):
-                        self.skeleton_spawn_coords.append((random.randint(1100, 2000), random.randint(1900, 2100)))
-                    self.king.skeleton_attack = False
-
-
-            for i in range(len(self.skeleton_spawn_coords)):
-                if(self.skeleton_spawn_coords[i][1] <= 1780):
-                    skele = Skeleton(self.skeleton_spawn_coords[i], self.collision_layer["enemy"], [self.collision_layer["player"],self.collision_layer["world"],self.collision_layer["enemy"]])
-                    self.skeletons.append(skele)
-                    self.skeleton_spawn_coords.pop(i)
-                else:
-                    lst = list(self.skeleton_spawn_coords[i])
-                    lst[1] -= 1
-                    self.skeleton_spawn_coords[i] = tuple(lst)
-                    surf.blit(self.skeleton_spawn_frame, get_display_point(self.skeleton_spawn_coords[i]))  
-
         for enemy in self.enemies:
             enemy.draw(surf)
         for enemy in self.skeletons:
index 472ef50055546804455e57267b758b127ca098e2..c641af8590e0918ee29dad858dbc7788b6f7eef0 100644 (file)
@@ -11,8 +11,8 @@ class PauseMenu:
 
         self.subtitle = createText(X, Y - 150, 60, (255, 255, 255), "Regular", "Pause Menu", 'c')
         self.resume = createText(X, Y + 100, 30, (255, 255, 255), "Regular", "Resume", 'c')
-        self.main_menu = createText(X, Y + 200, 30, (255, 255, 255), "Regular", "Main Menu", 'c')
-        self.quit = createText(X, Y + 300, 30, (255, 255, 255), "Regular", "Quit", 'c')
+        self.main_menu = createText(X, Y + 300, 30, (255, 255, 255), "Regular", "Main Menu", 'c')
+        self.quit = createText(X, Y + 500, 30, (255, 255, 255), "Regular", "Quit", 'c')
         self.overlay = pg.Surface((1080, 640))
         self.overlay.fill((0, 0 ,0))
         self.overlay.set_alpha(127)
index fad56cc8f0d05c195c8c3233c263ec9cd3e820a1..28a441ce04610d8cba5537125d29a1e4afba421f 100644 (file)
@@ -33,8 +33,8 @@ class PhysicsBody:
             self.display = pg.transform.scale(pg.image.load("Assets/enemy/Goon_Death.png"), (200,200))
             self.offset = pg.Vector2(-50,-65)
         else:
-            self.display = pg.transform.scale(pg.image.load("Assets/skeleton/SKELETON.png"), (100,100))
-            self.offset = pg.Vector2(0,-self.display.get_height()/2)
+            self.display = pg.transform.scale(pg.image.load("Assets/skeleton/SKELETON.png"), (50,50))
+            self.offset = pg.Vector2(0, 10)
 
     def update(self, delta, test=None, test2=None):
         if self.on_ground: