def room_logic(player): if (ceil(player.player_sprite.center_x) in range(1000, 1080) and ceil(player.player_sprite.center_y) in range(660, 676) and player.current_room == 0): player.current_room = 2 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 383.6 player.player_sprite.center_y = 40 elif player.player_sprite.center_y < 35 and player.current_room == 1: player.current_room = 0 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 240 player.player_sprite.center_y = 656 elif player.player_sprite.center_y > 1250 and player.current_room == 0: player.current_room = 3 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_y = 30 elif player.player_sprite.center_x > 1500 and player.current_room == 3: player.current_room = 4 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 30 elif (ceil(player.player_sprite.center_x) in range(200, 285) and ceil(player.player_sprite.center_y) in range(660, 676) and player.current_room == 0): player.current_room = 1 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 383.6 player.player_sprite.center_y = 40 elif player.player_sprite.center_y < 35 and player.current_room == 2: player.current_room = 0 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 1040 player.player_sprite.center_y = 656 elif (ceil(player.player_sprite.center_x) in range(1100, 1180) and ceil(player.player_sprite.center_y) in range(660, 676) and player.current_room == 4): player.current_room = 5 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 383.6 player.player_sprite.center_y = 40 elif (ceil(player.player_sprite.center_x) in range(180, 270) and ceil(player.player_sprite.center_y) in range(660, 676) and player.current_room == 4): player.current_room = 6 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 383.6 player.player_sprite.center_y = 40 elif player.player_sprite.center_y < 35 and player.current_room == 5: player.current_room = 4 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 1140 player.player_sprite.center_y = 656 elif player.player_sprite.center_y < 35 and player.current_room == 6: player.current_room = 4 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = 240 player.player_sprite.center_y = 656 elif player.player_sprite.center_y < 20 and player.current_room == 3: player.current_room = 0 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_y = ((screen_height * 2) - sprite_size) elif player.player_sprite.center_x < 20 and player.current_room == 4: player.current_room = 3 player.physics_engine = arcade.PhysicsEngineSimple((player. player_sprite), (player.rooms [player. current_room]. wall_list)) player.player_sprite.center_x = ((screen_width * 2) - sprite_size) if player.current_room == 3: grass_hit = arcade.check_for_collision_with_list(player.player_sprite, player.rooms [player.current_room]. grass_list) if len(grass_hit) > 0: encounter = random.randint(0, 69) if encounter == 1 and not player.player_sprite.defeated(): print("pokemon") battle.wild_encounter(player) elif player.current_room == 5: for enemy in player.rooms[player.current_room].enemy_list: if not player.player_sprite.defeated(): enemy.see_player(player, player.player_sprite) if (player.act_pressed and 64 < player.player_sprite.center_x < 128 and 1152 < player.player_sprite.center_y < 1216): print("gained item") for bag in player.player_sprite.item_bag: for item in bag: item.amount += 1 elif player.current_room == 2: if (len(player.rooms[player.current_room].pokeball) == 1 and player.act_pressed and 280 < player.player_sprite.center_x < 490 and 286 < player.player_sprite.center_y < 350): poke_list = [Pokemon.Charmander(), Pokemon.Squirtle(), Pokemon.Bulbasaur(), Pokemon.Magikarp()] for poke in poke_list: poke.addlevel(4) player.player_sprite.pokemon.append(poke) player.rooms[player.current_room].pokeball = arcade.SpriteList()
def gym(): room = Room() room.wall_list = arcade.SpriteList() room.enemy_list = arcade.SpriteList() for x in (0, (screen_width * 2) - sprite_size): for y in range(0, (screen_height * 2), sprite_size): wall = arcade.Sprite("images/boxCrate_double.png", sprite_scale) wall.left = x wall.bottom = y room.wall_list.append(wall) for y in (0, (screen_height * 2) - sprite_size): for x in range(0, (screen_width * 2), sprite_size): if (x != sprite_size * 5 and x != sprite_size * 6) or y != 0: wall = arcade.Sprite("images/boxCrate_double.png", sprite_scale) wall.left = x wall.bottom = y room.wall_list.append(wall) for x in range(sprite_size*2, (screen_width*2)-(sprite_size*6), sprite_size): wall = arcade.Sprite("images/boxCrate_double.png", sprite_scale) wall.left = x wall.bottom = sprite_size*6 room.wall_list.append(wall) for y in range(sprite_size*7, (screen_height*2)-(sprite_size*5), sprite_size): wall = arcade.Sprite("images/boxCrate_double.png", sprite_scale) wall.left = sprite_size*17 wall.bottom = y room.wall_list.append(wall) for y in range(sprite_size*7, (screen_height*2)-sprite_size, sprite_size): wall = arcade.Sprite("images/boxCrate_double.png", sprite_scale) wall.left = sprite_size*7 wall.bottom = y room.wall_list.append(wall) wall = battle.Enemy(False, []) wall.texture = arcade.load_texture("images/boxCrate_double.png", scale=sprite_scale) wall.left = sprite_size wall.bottom = sprite_size*6 room.enemy_list.append(wall) loc = [[3, 3, 1], [8, 1, 0], [13, 5, 2], [18, 1, 0], [18, 6, 1], [22, 10, 3], [18, 14, 1], [17, 18, 2], [16, 14, 3]] for i in range(len(loc)): poke_list = [] for j in range(2): poke = Pokemon.Magikarp() poke.addlevel(5*(i+1)+j) poke_list.append(poke) enemy = battle.Enemy(False, poke_list, loc[i][2], False) enemy.left = loc[i][0]*64 enemy.bottom = loc[i][1]*64 room.enemy_list.append(enemy) poke_list = [] for i in range(6): poke = Pokemon.Magikarp() poke.addlevel(50+i) poke_list.append(poke) boss = battle.Enemy(False, poke_list, 0, True) boss.center_x = screen_width boss.center_y = screen_height room.enemy_list.append(boss) room.background = arcade.load_texture("images/home_floor.jpg") return room