def make_store_pedestal(room, pos): items = [ Entities.ItemPickup(room, Items.BasicMeleeItem("sword", 2)), Entities.ItemPickup(room, Items.BasicMeleeItem("cutlass", 3)), Entities.ItemPickup(room, Items.BowItem()), Entities.HealthPickup(room, random.randint(1, 5)), Entities.BombPickup(room) ] items[0].cost = 35 items[1].cost = 75 items[2].cost = 75 items[3].cost = items[3].amt * 7 items[4].cost = 20 item = random.choice(items) pedestal = Entities.ShopPedestal(room, item, item.cost) pedestal.pos = pos room.entities.append(pedestal)
def drop_health(room, amt, pos): pickup = Entities.HealthPickup(room, amt) drop_pickup(room, pickup, pos)
def generate_sea_test(self): # implementing Generation.py gen = Generation.Generation() gen.make() while not gen.isComplete(): del gen print("Generation failed, remaking...") gen = Generation.Generation() gen.make() gen.printRooms() # island is at (3, 3) test = Island(pygame.math.Vector2(3, 3), "Test") self.islands[str(test.pos)] = test # # Test island generation # x, y = 0, 0 shop_exists = False # Loop for each room on Generated island for row in gen.rows: for room in row: if room.iter_num is 6 and not shop_exists: room_shop = GameBase.Room(test, pygame.math.Vector2(y, x)) room_shop.neighbors = room.neighbors room_shop.gen_Object = room shop_exists = True # print ("shop at " + str(y) + ", " + str(x)) elif room.iter_num is 1: room_pickups = GameBase.Room(test, pygame.math.Vector2(y, x)) room_pickups.neighbors = room.neighbors room_pickups.gen_Object = room # print ("start at " + str(y) + ", " + str(x)) elif room.iter_num is 2: room_creation = GameBase.Room(test, pygame.math.Vector2(y, x)) room_creation.neighbors = room.neighbors room_creation.gen_Object = room elif room.iter_num is 3: room_enemies = GameBase.Room(test, pygame.math.Vector2(y, x)) room_enemies.neighbors = room.neighbors room_enemies.gen_Object = room elif room.iter_num is 4: room_boss = GameBase.Room(test, pygame.math.Vector2(y, x)) room_boss.neighbors = room.neighbors room_boss.gen_Object = room else: empty_room = GameBase.Room(test, pygame.math.Vector2(y, x)) empty_room.neighbors = room.neighbors empty_room.gen_Object = room # print ("empty at " + str(y) + ", " + str(x)) test.rooms.append(empty_room) y += 1 x += 1 y = 0 # pickups room # places stuff in room_pickups ship = Entities.ExitShip(room_pickups) ship.pos = pygame.math.Vector2( Constants.TILE_SIZE * Constants.ROOM_SIZE / 2, Constants.TILE_SIZE * Constants.ROOM_SIZE / 2) room_pickups.entities.append(ship) room_pickups.type = GameBase.RoomType.EXIT for i in range(1, 5): heart = Entities.HealthPickup(room_pickups, i) heart.pos = pygame.math.Vector2(64 + 48 * i, 96) # location of hearts on screen room_pickups.entities.append(heart) for i in range(1, 7): enemie = Characters.SnakeEnemy(room_enemies) enemie.pos = pygame.math.Vector2( 64 + 48 * i, 112) # places the location of the enemie room_enemies.entities.append(enemie) for i in range(1, 4): enemie = Characters.HornetEnemy(room_enemies) enemie.pos = pygame.math.Vector2( 80 + 120 * i, 112) # places the location of the enemie room_enemies.entities.append(enemie) for i in range(0, 10): g = pow(2, i) gold = Entities.GoldPickup(room_pickups, g) gold.pos = pygame.math.Vector2( Constants.ROOM_SIZE * Constants.TILE_SIZE - 96, 64 + 48 * i) # location of gold on screen room_pickups.entities.append(gold) item = Entities.ItemPickup(room_pickups, Items.BasicMeleeItem("sword", 2)) item.pos = pygame.math.Vector2(100, 200) room_pickups.entities.append(item) item3 = Entities.ItemPickup(room_pickups, Items.BasicMeleeItem("cutlass", 3)) item3.pos = pygame.math.Vector2(300, 200) room_pickups.entities.append(item3) item2 = Entities.ItemPickup(room_pickups, Items.BowItem()) item2.pos = pygame.math.Vector2(200, 200) room_pickups.entities.append(item2) test.rooms.append(room_enemies) test.rooms.append(room_pickups) test.start_room = room_pickups # boss room b = Characters.WizardEnemy(room_boss) b.teleport() room_boss.entities.append(b) test.rooms.append(room_boss) room_boss.type = GameBase.RoomType.BOSS # shop room # places stuff in room_shop room_shop.type = GameBase.RoomType.SHOP shopkeeper = Characters.Shopkeeper(room_shop) shopkeeper.pos = pygame.math.Vector2(100, 300) room_shop.entities.append(shopkeeper) pedestal = Entities.ShopPedestal( room_shop, Entities.ItemPickup(room_shop, Items.DummyItem()), 30) pedestal.pos = pygame.math.Vector2(108, 375) room_shop.entities.append(pedestal) test.rooms.append(room_shop) test.rooms.append(room_creation) for room in test.rooms: keys = list(room.neighbors.keys()) factor = 64 # if North exit if 1 in keys: thingy = Entities.HealthPickup(room, 1) # thingy.pos = pygame.math.Vector2(factor * 4, factor * 2) # room.entities.append(thingy) else: if (room.pos.y != 0): for i in range(9): wall = Entities.Terrain(room) wall.pos = pygame.math.Vector2(factor * i, 0) room.entities.append(wall) # if East exit if 2 in keys: thingy = Entities.HealthPickup(room, 2) # thingy.pos = pygame.math.Vector2(factor * 7, factor * 4) # room.entities.append(thingy) else: if (room.pos.x != 2): for i in range(9): wall = Entities.Terrain(room) wall.pos = pygame.math.Vector2(factor * 8, factor * i) room.entities.append(wall) # if South exit if 3 in keys: thingy = Entities.HealthPickup(room, 3) # thingy.pos = pygame.math.Vector2(factor * 4, factor * 7) # room.entities.append(thingy) else: if (room.pos.y != 2): for i in range(9): wall = Entities.Terrain(room) wall.pos = pygame.math.Vector2(factor * i, factor * 8) room.entities.append(wall) # if West exit if 4 in keys: thingy = Entities.HealthPickup(room, 4) # thingy.pos = pygame.math.Vector2(factor * i, factor * 4) # room.entities.append(thingy) else: if (room.pos.x != 0): for i in range(9): wall = Entities.Terrain(room) wall.pos = pygame.math.Vector2(0, factor * i) room.entities.append(wall)