diff --git a/Game.java b/Game.java new file mode 100644 index 0000000000000000000000000000000000000000..8d7c29cdb21a7ab552d87bd15a549bdbfa247e55 --- /dev/null +++ b/Game.java @@ -0,0 +1,5 @@ +public class Game { + public static void main (String[] args) { + App.runGame(); + } +} diff --git a/assets/DungeonBienio.png b/assets/DungeonBienio.png deleted file mode 100644 index 44c343c18e944fc8acc00051cf5179e2f3170eb5..0000000000000000000000000000000000000000 Binary files a/assets/DungeonBienio.png and /dev/null differ diff --git a/assets/DungeonEletrica.png b/assets/DungeonEletrica.png deleted file mode 100644 index c7e25aeb466401195923b7d163f0cd8a1e930664..0000000000000000000000000000000000000000 Binary files a/assets/DungeonEletrica.png and /dev/null differ diff --git a/assets/EntradaDungeonBienio.png b/assets/EntradaDungeonBienio.png deleted file mode 100644 index 914867d676ae5c9c92d2f867a23ba906c3fc3212..0000000000000000000000000000000000000000 Binary files a/assets/EntradaDungeonBienio.png and /dev/null differ diff --git a/assets/EntradaDungeonEletrica.png b/assets/EntradaDungeonEletrica.png deleted file mode 100644 index 054ae8cb0cbe3dcf91cf75cd29cfff4c10d15aba..0000000000000000000000000000000000000000 Binary files a/assets/EntradaDungeonEletrica.png and /dev/null differ diff --git a/assets/EntradaEstacionamentoBienio.png b/assets/EntradaEstacionamentoBienio.png deleted file mode 100644 index b4dee1a6cff774d9a3b0af5d6c27fd5c9cc8c694..0000000000000000000000000000000000000000 Binary files a/assets/EntradaEstacionamentoBienio.png and /dev/null differ diff --git a/assets/EntradaEstacionamentoPrincipal.png b/assets/EntradaEstacionamentoPrincipal.png deleted file mode 100644 index b523e23b5ea40e8a001a4a3c6bb767c92eecf4b4..0000000000000000000000000000000000000000 Binary files a/assets/EntradaEstacionamentoPrincipal.png and /dev/null differ diff --git a/assets/ExemploDialogo.png b/assets/ExemploDialogo.png deleted file mode 100644 index ea57f0580efe76c8604a0b5fd385902ddc6af599..0000000000000000000000000000000000000000 Binary files a/assets/ExemploDialogo.png and /dev/null differ diff --git a/assets/PlayerCombat.png b/assets/PlayerCombat.png deleted file mode 100644 index f2f24665adc0c55b44c650364e29f22bf210a50a..0000000000000000000000000000000000000000 Binary files a/assets/PlayerCombat.png and /dev/null differ diff --git a/assets/PlayerDefault.png b/assets/PlayerDefault.png deleted file mode 100644 index e2837a538c121a375adc530630d642d129cca222..0000000000000000000000000000000000000000 Binary files a/assets/PlayerDefault.png and /dev/null differ diff --git a/assets/PlayerNinja.png b/assets/PlayerNinja.png deleted file mode 100644 index 2a90539a3abc56093fdff524f8e086a4b02e7ea7..0000000000000000000000000000000000000000 Binary files a/assets/PlayerNinja.png and /dev/null differ diff --git a/docs/Relatorio_entrega_2.md b/docs/Relatorio_entrega_2.md deleted file mode 100644 index ec1dfebe47b11b0e80be3c59bfc289d411369b5e..0000000000000000000000000000000000000000 --- a/docs/Relatorio_entrega_2.md +++ /dev/null @@ -1,109 +0,0 @@ -# Dungeons and Capybaras - -**Autores**: -- Henrique Eduardo dos Santos de Souza @henrique_eduardo_souza -- Vinicius Batista da Silva @viniciusbsilva -- Vitor Sasaki Venzel @vSasakiv - -# O que é este projeto? - -**Dungeons and capybaras** é um jogo no estilo RogueLike escrito na linguagem Java, com temática fortemente inspirada na **Universidade de São Paulo**, especialmente na **Escola Politécnica** e seus arredores. O jogo mescla as mecânicas de RPG clássicos com as de combate e exploração em **dungeons**, trazendo uma adaptação ao estilo escolhido. - -# Como rodar este projeto? - -Comece clonando o repositório para sua máquina local: -``` -git clone git@gitlab.uspdigital.usp.br:henrique_eduardo_souza/dungeons-and-capybaras.git -``` - -Em seguida, abra o diretório do projeto -``` -cd dungeons-n-capybaras -``` - -Compile o jogo, executando o Game.java: -``` -javac Game.java -``` - -Depois, execute o jogo: -``` -java Game -``` - -> Certifique-se de ter em sua máquina uma versão igual ou superior ao java 17. - - -# Relatório entrega 2 - -## Requisitos -1. O mapa do jogo deve ser fortemente influenciado pelo mapa da USP. Não precisa ser uma réplica completamente fiel da universidade, apenas se inspire -fortemente na universidade. - -2. Utilizando o teclado, o jogador poderá se movimentar nas várias direções. -Ele deve conseguir andar pela grama, rua ou calçada, andar de bicicleta e nadar no Rio Pinheiros. Opcionalmente, pode ser implementado também o controle via joystick. - -## Adaptações - -Conforme proposto inicialmente, o jogo desenvolvido nesse projeto não seguira a implementação de um jogo inspirado em pokemon, mas sim em rogue-like. Na entrega atual as diferenças entre as duas propostas não são tão explÃcitas, porém adaptações foram feitas visando implementações futuras. Dentre elas estão: - -* Pelo jogo se basear em explorações de dungeons, os mapas dele são divididos entre os "fortemente baseados na USP" e os de "dungeon". Os baseados na USP, especialmente na Escola Politécnica, são mapas em que o player pode se deslocar livremente, com finalidade de atingir outros lugares. Os mapas de dungeons não se baseiam na universidade (até por questões éticas, pois há noções de combate violento) e neles o player equipa armas com finalidade de derrotar monstros. -* Não faz sentido para o contexto do jogo as atividades de interação como "andar de bicicleta" ou "nadar na raia". Como alternativa a isso, a mesma noção de "mudança de comportamento" do jogador foi implementada de duas formas diferentes: mudança de estado de batalha e mudança de modo de exploração. - -Com essas adaptações, acreditamos que os requisitos são atendidos com implementações análogas à s propostas. - -## Mapas -No estado atual do jogo, existem 3 mapas acessÃveis: estacionamento principal da Poli, estacionamento do Biênio, e um mapa de zona aberta. Sendo os dois primeiros fortemente inspirados na USP e, o último, um exemplo de mapa de dungeon. Todos os mapas podem ser explorados se movimentando pelas teclas W, A, S e D do teclado. - -1. Estacionamento principal - - Ãrea inicial do player quando o jogo é aberto, inspirada no estacionamento localizado na parte central da Escola Politécnica. O player pode caminhar entre as ruas e calçadas e verificar toda paisagem. - - Existem duas áreas que levam para outros mapas: - - * Próximo ao canto superior direito, em uma ponte que leva para uma parte de fora do mapa. O jogador que atravessar essa área será levado para o mapa de zona aberta. - * Próximo ao canto inferior esquerdo, na rua que leva para uma parte de fora do mapa. O jogador que atravessar essa área será levado para o estacionamento do Biênio. - -2. Estacionamento do Biênio - Ãrea inspirada na área de estacionamento que fica entre o Biênio e o prédio da Engenharia Civil. O jogador pode andar pelas ruas, calçadas, grama e visitar o vão do Biênio. - - Existe uma área que leva para outro mapa: - - * Na parte superior, ao lado esquerda da área verde e direito do prédio vermelho (Eng. Civil), há uma rua que leva para uma parte fora do mapa. Se o player atravessar essa área no topo, será redirecionado para estacionamento principal. - -3. Mapa de zona aberta - - Ãrea de dungeon, um mapa de um exterior com caminhos de terra, elementos da natureza, um rio e monstros (na versão atual, pontinhos vermelhos que atiram flechas). Nesse mapa o player pode caminhar e atirar com uma arma que ele equipa. Para mirar, usa-se o mouse clicando na direção onde se pretende que o projétil vá (note que o arco no player segue essa direção). - - Existe uma região que leva para outro mapa: - * Na parte inferior próxima ao centro, onde termina/começa o caminho de terra, existe uma região que, se atravessada pelo player, o leva de volta para o estacionamento principal. É a saÃda da "dungeon". - -## Comportamentos do player - -Atualmente, há dois comportamentos, além do padrão, para o player que podem ser acessados com diferentes interações em diferentes lugares. Um deles está relacionado ao combate e outro ao modo de exploração. - -1. Padrão: o player inicialmente está em um mapa de exploração, fortemente baseado na USP. Ele pode apenas andar e explorar o mapa, indo para lugares diferentes acessando outras áreas. Pode alternar para o modo ninja apertando a tecla "n" do teclado. - -2. Ninja: em um mapa de exploração, assume forma de um ninja que anda rapidamente e pode passar de forma veloz pelos lugares do mapa. Pode alternar para o modo padrão apertando a tecla "n" do teclado. - -3. Combate: ao entrar em um mapa de dungeon (mapa de zona aberta), o player equipa uma arma e agora pode atirar com ela. Agora ele também possui barras de vida (vermelha) e armadura (cinza), que podem diminuir caso seja atingido por projéteis de monstros. Sempre que estiver em uma dungeon, o player permanece nesse modo sem poder mudar para o padrão ou para o ninja. - -## Combate - -A implementação inicial do combate foi feita, com disponibilidade para armas de único disparo, de vários disparos e corpo-a-corpo. Na versão atual, as duas primeiras possuem imagens de "arco e flecha" associadas a elas. Para testar outras além do padrão, verifique os atributos de cada arma nas classes "AutomaticWeapon", "MultiShotWeapon" e "MeleeWeapon", presentes no package game_entity.weapons, e mude a arma do dungeonPlayer ou do enemyTemplate no construtor da classe "DungeonState", no package gameloop.game_states. - -## Observações finais - -Nessa entrega, o jogador prioritariamente apenas anda pelos mapas. A implementação do combate está ainda nos estágios iniciais, apresentando atualmente apenas uma noção do sistema que irá vir futuramente. - -Os mapas possuem "bordas de mundo" visÃveis, porém não acessÃveis, ao jogador. Vale destacar que em entregas futuras os mapas serão estendidos/incrementados e o sistema de câmera do mundo aprimorado, para evitar/amenizar esse problema. - -Requisitos de outras entregas, como implementação do padrão Strategy ou do padrão Fábrica Abstrata, foram atingidos de diferentes maneiras. Não iremos destacá-las agora, porém atestamos que algumas coisas comentadas nessa entrega serão novamente expostas nas próximas. - -Com os mapas de exploração, dos estacionamentos da Escola Politécnica, o projeto cumpre o requisito 1 de ter mapas "baseados na USP". Com a movimentação livre pelos mapas, através do teclado, e com a mudança de comportamento do player em diferentes contextos o jogo também cumpre o requisito 2, salvo as adaptações ja comentadas. - - - - - - diff --git a/readme.md b/readme.md index cc2953529dc0bd14e8374599a083bc6e8922834d..ec1dfebe47b11b0e80be3c59bfc289d411369b5e 100644 --- a/readme.md +++ b/readme.md @@ -1,8 +1,7 @@ -** Relatório da entrega 3 se encontra mais abaixo nesse readme ** - # Dungeons and Capybaras **Autores**: +- Henrique Eduardo dos Santos de Souza @henrique_eduardo_souza - Vinicius Batista da Silva @viniciusbsilva - Vitor Sasaki Venzel @vSasakiv @@ -35,32 +34,26 @@ java Game > Certifique-se de ter em sua máquina uma versão igual ou superior ao java 17. -# Relatório entrega 3 +# Relatório entrega 2 ## Requisitos -3. A raia deverá ser populada por estudantes NPCs da POLI. Use a raia, a -rua e as ciclofaixas como ambientes para diferentes tipos de Polimons. Vocês -são livres para decidir se eles serão visÃveis ou invisÃveis, mas algo deve acontecer quando houver a colisão entre personagem e Polimon. -Utilize o padrão Strategy para definir diferentes comportamentos para os -Polimons e NPCs. O usuário poderá escolher uma estratégia ou outra por meio -da interface gráfica do jogo. +1. O mapa do jogo deve ser fortemente influenciado pelo mapa da USP. Não precisa ser uma réplica completamente fiel da universidade, apenas se inspire +fortemente na universidade. -4. Utilizando o padrão Fábrica Abstrata, implemente a possibilidade -do jogo ter diferentes aparências (look-and-feel). Assim, facilmente, o jogador -poderá escolher se o espaço do jogo terá: (A) uma aparência da POLI (B) aparência do IME etc (vocês tem liberdade para escolher as variantes que vão implementar, mas precisam especificar pelo menos duas). +2. Utilizando o teclado, o jogador poderá se movimentar nas várias direções. +Ele deve conseguir andar pela grama, rua ou calçada, andar de bicicleta e nadar no Rio Pinheiros. Opcionalmente, pode ser implementado também o controle via joystick. ## Adaptações -Conforme proposto inicialmente, o jogo desenvolvido nesse projeto não seguiria a implementação de um jogo inspirado em pokemon, mas sim em rogue-like. Foram implementados os padrões de projeto e os princÃpios de POO dos requisitos em outros aspectos, os quais serão comentados mais adiante. - -* As entidades como NPC e, principalmente, os monstros foram implementadas na ja entrega 2. Pode-se encontrar o relatório da entrega 2 na pasta "docs". O padrão strategy foi implementado tanto para alterar comportamentos de entidades quanto para outros contextos. Não faz sentido, no contexto desse jogo, o player poder escolher as estratégias das outras entidades. +Conforme proposto inicialmente, o jogo desenvolvido nesse projeto não seguira a implementação de um jogo inspirado em pokemon, mas sim em rogue-like. Na entrega atual as diferenças entre as duas propostas não são tão explÃcitas, porém adaptações foram feitas visando implementações futuras. Dentre elas estão: -* O padrão fábrica foi utilizado mais de uma vez no projeto. No sentido de ter diferentes aparências (look-and-feel), a implementação foi feita através dos diferentes estilos de dungeons que estão disponÃveis. +* Pelo jogo se basear em explorações de dungeons, os mapas dele são divididos entre os "fortemente baseados na USP" e os de "dungeon". Os baseados na USP, especialmente na Escola Politécnica, são mapas em que o player pode se deslocar livremente, com finalidade de atingir outros lugares. Os mapas de dungeons não se baseiam na universidade (até por questões éticas, pois há noções de combate violento) e neles o player equipa armas com finalidade de derrotar monstros. +* Não faz sentido para o contexto do jogo as atividades de interação como "andar de bicicleta" ou "nadar na raia". Como alternativa a isso, a mesma noção de "mudança de comportamento" do jogador foi implementada de duas formas diferentes: mudança de estado de batalha e mudança de modo de exploração. Com essas adaptações, acreditamos que os requisitos são atendidos com implementações análogas à s propostas. ## Mapas -No estado atual do jogo, existem 2 mapas: estacionamento principal da Poli e estacionamento do Biênio, sendo esses dois fortemente inspirados na USP. Além disso, há duas dungeons, uma inspirada no Biênio e outra no departamento da Elétrica. Todos os mapas podem ser explorados se movimentando pelas teclas W, A, S e D do teclado. +No estado atual do jogo, existem 3 mapas acessÃveis: estacionamento principal da Poli, estacionamento do Biênio, e um mapa de zona aberta. Sendo os dois primeiros fortemente inspirados na USP e, o último, um exemplo de mapa de dungeon. Todos os mapas podem ser explorados se movimentando pelas teclas W, A, S e D do teclado. 1. Estacionamento principal @@ -68,74 +61,49 @@ No estado atual do jogo, existem 2 mapas: estacionamento principal da Poli e est Existem duas áreas que levam para outros mapas: - * Entrada do prédio vermelho, localizado à direita do mapa. Ao se dirigir à entrada do prédio, o player será redirecionado a uma dungeon com estilo inspirado no departamento da Elétrica. -  + * Próximo ao canto superior direito, em uma ponte que leva para uma parte de fora do mapa. O jogador que atravessar essa área será levado para o mapa de zona aberta. * Próximo ao canto inferior esquerdo, na rua que leva para uma parte de fora do mapa. O jogador que atravessar essa área será levado para o estacionamento do Biênio. -  - 2. Estacionamento do Biênio Ãrea inspirada na área de estacionamento que fica entre o Biênio e o prédio da Engenharia Civil. O jogador pode andar pelas ruas, calçadas, grama e visitar o vão do Biênio. - Existe duas áreas que leva para outros mapas: + Existe uma área que leva para outro mapa: * Na parte superior, ao lado esquerda da área verde e direito do prédio vermelho (Eng. Civil), há uma rua que leva para uma parte fora do mapa. Se o player atravessar essa área no topo, será redirecionado para estacionamento principal. -  - * Na parte inferior esquerda, na área atrás do prédio inspirado nos anfiteatros amarelo e vermelho, há a entrada de um prédio, a qual levará o player para a dungeon inspirada no Biênio. -  - -3. Dungeons - Existem duas dungeons atualmente implementadas no jogo, as quais podem ser acessadas por entradas de prédios nos mapas anteriores. As dungeons são geradas aleatoriamente, conectando salas e corredores de forma diferente toda vez que é gerada. - As dungeons compartilham o mesmo sistema. O padrão fábrica abstrata foi usado para implementar diferentes aparências para as dungeons, de forma a possibilitar a alteração de estilos - Biênio e Elétrica - criando objetos com sprites de cada uma das temáticas. +3. Mapa de zona aberta - No estado atual do jogo, as dungeons apenas são geradas e ainda não possuem todas as mecânicas pertinentes. O objetivo principal da entrega é implementar diferentes variantes de dungeons através do método fábrica. - - Dungeon Biênio: -  + Ãrea de dungeon, um mapa de um exterior com caminhos de terra, elementos da natureza, um rio e monstros (na versão atual, pontinhos vermelhos que atiram flechas). Nesse mapa o player pode caminhar e atirar com uma arma que ele equipa. Para mirar, usa-se o mouse clicando na direção onde se pretende que o projétil vá (note que o arco no player segue essa direção). + + Existe uma região que leva para outro mapa: + * Na parte inferior próxima ao centro, onde termina/começa o caminho de terra, existe uma região que, se atravessada pelo player, o leva de volta para o estacionamento principal. É a saÃda da "dungeon". - Dungeon Elétrica: -  +## Comportamentos do player - OBS: As dungeons foram somente inspiradas nos locais reais apenas tematicamente. Pelo jogo ser um rogue-like que possui um sistema de combate - violento - não é pertinente e correto representar os lugares fielmente. No contexto, os prédios foram invadidos por monstros e o player precisa resolver esse problema. +Atualmente, há dois comportamentos, além do padrão, para o player que podem ser acessados com diferentes interações em diferentes lugares. Um deles está relacionado ao combate e outro ao modo de exploração. -## NPCs -Atualmente o jogo não está populado por NPCs, apesar de ja estarem implementados. Um NPC exemplo foi posto no mapa inicial (Estacionamento principal). Para interagir com ele, basta se aproximar e apertar a tecla "enter". Quando fizer isso, uma caixa de diálogo irá aparecer. +1. Padrão: o player inicialmente está em um mapa de exploração, fortemente baseado na USP. Ele pode apenas andar e explorar o mapa, indo para lugares diferentes acessando outras áreas. Pode alternar para o modo ninja apertando a tecla "n" do teclado. -Exemplo atualmente implementado: -  +2. Ninja: em um mapa de exploração, assume forma de um ninja que anda rapidamente e pode passar de forma veloz pelos lugares do mapa. Pode alternar para o modo padrão apertando a tecla "n" do teclado. +3. Combate: ao entrar em um mapa de dungeon (mapa de zona aberta), o player equipa uma arma e agora pode atirar com ela. Agora ele também possui barras de vida (vermelha) e armadura (cinza), que podem diminuir caso seja atingido por projéteis de monstros. Sempre que estiver em uma dungeon, o player permanece nesse modo sem poder mudar para o padrão ou para o ninja. -## Diferentes comportamentos +## Combate -Atualmente, há dois comportamentos, além do padrão, para o player que podem ser acessados com diferentes interações em diferentes lugares. Um deles está relacionado ao combate e outro ao modo de exploração. +A implementação inicial do combate foi feita, com disponibilidade para armas de único disparo, de vários disparos e corpo-a-corpo. Na versão atual, as duas primeiras possuem imagens de "arco e flecha" associadas a elas. Para testar outras além do padrão, verifique os atributos de cada arma nas classes "AutomaticWeapon", "MultiShotWeapon" e "MeleeWeapon", presentes no package game_entity.weapons, e mude a arma do dungeonPlayer ou do enemyTemplate no construtor da classe "DungeonState", no package gameloop.game_states. -1. Padrão: o player inicialmente está em um mapa de exploração, fortemente baseado na USP. Ele pode apenas andar e explorar o mapa, indo para lugares diferentes acessando outras áreas. Pode alternar para o modo ninja apertando a tecla "n" do teclado. - +## Observações finais -2. Ninja: em um mapa de exploração, assume forma de um ninja que anda rapidamente e pode passar de forma veloz pelos lugares do mapa. Pode alternar para o modo padrão apertando a tecla "n" do teclado. - +Nessa entrega, o jogador prioritariamente apenas anda pelos mapas. A implementação do combate está ainda nos estágios iniciais, apresentando atualmente apenas uma noção do sistema que irá vir futuramente. -3. Combate: ao entrar em um mapa de dungeon , o player equipa uma arma e agora pode atirar com ela. Agora ele também possui barras de vida (vermelha) e armadura (cinza), que podem diminuir caso seja atingido por projéteis de monstros. Sempre que estiver em uma dungeon, o player permanece nesse modo sem poder mudar para o padrão ou para o ninja. - +Os mapas possuem "bordas de mundo" visÃveis, porém não acessÃveis, ao jogador. Vale destacar que em entregas futuras os mapas serão estendidos/incrementados e o sistema de câmera do mundo aprimorado, para evitar/amenizar esse problema. +Requisitos de outras entregas, como implementação do padrão Strategy ou do padrão Fábrica Abstrata, foram atingidos de diferentes maneiras. Não iremos destacá-las agora, porém atestamos que algumas coisas comentadas nessa entrega serão novamente expostas nas próximas. -## Implementação de padrões - * O padrão Factory foi implementado para criar os diferentes sprites usados pelo player de mapa (MapPlayer). - * O padrão Factory também foi utilizado para criação de diferentes tipos de projéteis que podem ser disparados pelas armas. Isso foi melhor apresentado na entrega 2. - * Acerca dos sprites utilizados em diversas entidades, o padrão Strategy foi implementado para isolar o algoritmo que carrega as imagens para cada caso. - * O padrão Strategy foi usado em conjunto com a noção de estados para alterar comportamentos de entidades como NPCs e "enemy", alterando entre comportamentos como o de patrulha. - * O padrão State foi implementado para mudar o estado do jogo em diferentes mapas. A classe intermediadora "GameState" altera o estado do game entre: mapa, dungeon e dialogo. No "mapa", há NPCs, não há combate e tem mapas especÃficos. Em "dungeon", o comportamento do player muda e há combate. Por fim, em "dialogo" o game pausa e é mostrada uma janela de dialogo. - * O Strategy foi novamente utilizado através da interface "Draw", implementada por diferentes classes que possuem diferentes algoritmos para renderizar as imagens na janela do jogo. - * Por fim, mais um Strategy foi feito para implementar algoritmos diferentes que decidem como que ocorre as mudanças de mapa. A classe abstrata "ChangeTileStrategy" é aquela da qual se as implementações concretas herdam. +Com os mapas de exploração, dos estacionamentos da Escola Politécnica, o projeto cumpre o requisito 1 de ter mapas "baseados na USP". Com a movimentação livre pelos mapas, através do teclado, e com a mudança de comportamento do player em diferentes contextos o jogo também cumpre o requisito 2, salvo as adaptações ja comentadas. -## Observações finais -Nessa entrega, o jogador prioritariamente apenas anda pelos mapas. A implementação do combate está nos estágios intermediários, apresentando atualmente apenas uma noção do sistema que irá vir futuramente. -Os mapas possuem "bordas de mundo" visÃveis, porém não acessÃveis, ao jogador. Vale destacar que em entregas futuras os mapas serão estendidos/incrementados e o sistema de câmera do mundo aprimorado, para evitar/amenizar esse problema. -Alguns funcionalidades foram implementadas mas não estão presentes no estado atual do jogo. Elas serão readicionadas assim que o sistema das dungeons estiver mais consistente. Algumas delas são: NPCs, inimigos, combate e as diferentes armas. Algumas dessas coisas foram melhor exploradas na entrega 2. -Com a presença de NPCs, os quais possibilitam interação, com a implementação do padrão Strategy em diferentes contextos e com a utilização do padrão Fábrica Abstrata para alterar as aparências das dungeons, os requisitos da entrega atual foram atingidos. diff --git a/src/dungeon_gen/DungeonGenerator.java b/src/dungeon_gen/DungeonGenerator.java deleted file mode 100644 index f9a03d075da484c23d67c17f814a3df021750e8f..0000000000000000000000000000000000000000 --- a/src/dungeon_gen/DungeonGenerator.java +++ /dev/null @@ -1,144 +0,0 @@ -package dungeon_gen; - -import tile.dungeon.*; - -import java.util.ArrayList; -import java.util.Objects; -import java.util.Random; - -public class DungeonGenerator { - // Array lista de matrizes, cada uma sendo uma layer, representando a dungeon final - ArrayList<int[][]> dungeon; - // Gerador aleatório para geração única - Random rand = new Random(); - - public DungeonGenerator(){} - - /** - * @param type Tipo de dungeon a ser gerado - * @param side tamanho do mapa - * @return ArrayList de matrizes para a construção da dungeon - */ - public ArrayList<int[][]> generate(String type, int side){ - // utiliza fábrica abstrata para obter os componentes para construção da dungeon - DungeonAbstractFactory dungeonFactory = Objects.requireNonNull(DungeonFactoryProvider.getFactory(type)); - // array que representa oas 9 centros do mapa, sendo cada centro o ponto central de uma sala - int[] center = this.getCenter(side); - ArrayList<DungeonTile> rooms = dungeonFactory.createRoom(); - this.dungeon = new ArrayList<>(); - // inicializamos os valores da dungeon - for (int i = 0; i < dungeonFactory.maxLayers(); i++) - this.dungeon.add(new int[side][side]); - - // geramos os corredores da dungeon - this.generateCorridor(dungeonFactory, center); - // adicionamos as salas e as entradas - this.addRoom(rooms.get(0).getMapTileNumbers(), center[0], center[0]); // initial room - addEntrance(dungeonFactory, rooms.get(0).getMapTileNumbers(), center, 0, 0); - this.addRoom(rooms.get(rooms.size() - 1).getMapTileNumbers(), center[2], center[2]); // boss room - addEntrance(dungeonFactory, rooms.get(rooms.size() - 1).getMapTileNumbers(), center, 2, 2); - // geramos as salas intermediárias - genRooms(dungeonFactory, rooms, center); - - return this.dungeon; - } - - /** - * @param dungeonFactory Fábrica abstrata para geração das salas - * @param center array com os centros do mapa - */ - private void generateCorridor(DungeonAbstractFactory dungeonFactory, int[] center){ - // geramos os corredores horizontais e verticais - ArrayList<int[][]> horCorridor = dungeonFactory.createHorizontalCorridor().getMapTileNumbers(); - ArrayList<int[][]> verCorridor = dungeonFactory.createVerticalCorridor().getMapTileNumbers(); - // iteramos pela matriz da dungeon, copiando e colando os tiles necessários - for (int k = 0; k < horCorridor.size(); k++) - for (int i = 0; i < 3; i++) - for (int j = center[0]; j < center[2]; j+= 15){ - putMatrix(this.dungeon.get(k), horCorridor.get(k), center[i], j); - putMatrix(this.dungeon.get(k), verCorridor.get(k), j, center[i]); - } - } - - /** - * @param side tamanho da dungeon - * @return array contendo os centros da dungeon - */ - private int[] getCenter(int side){ - int[] center = new int[3]; - for (int i = 0; i < 3; i++) - center[i] = (side / 3) * i + (side / 6); - return center; - } - - /** - * @param room ArrayList contendo as layers de uma sala - * @param x posição x do centro da sala - * @param y posição y do centro da sala - */ - private void addRoom(ArrayList<int[][]> room, int x, int y){ - // para cada layer, inserirmos os tiles na dungeon total - for (int i = 0; i < room.size(); i++) - DungeonGenerator.putMatrix(this.dungeon.get(i), room.get(i), x, y); - } - - /** - * @param dungeonFactory fábrica para geração dos componentes da dungeon - * @param room sala na qual queremos colocar as entradas - * @param center array com os centros da dungeon - * @param centerX posição centro x da sala - * @param centerY posição centro y da sala - */ - private void addEntrance(DungeonAbstractFactory dungeonFactory, ArrayList<int[][]> room, int[] center, int centerX, int centerY){ - ArrayList<int[][]> horizontalRightEntrance = dungeonFactory.createHorizontalRightEntrance().getMapTileNumbers(); - ArrayList<int[][]> verticalUpEntrance = dungeonFactory.createVerticalUpEntrance().getMapTileNumbers(); - ArrayList<int[][]> horizontalLeftEntrance = dungeonFactory.createHorizontalLeftEntrance().getMapTileNumbers(); - ArrayList<int[][]> verticalDownEntrance = dungeonFactory.createVerticalDownEntrance().getMapTileNumbers(); - - // dependendo da posição da sala, colocamos ou não a entrada - if (centerX == 0 || centerX == 1) - addRoom(verticalDownEntrance, center[centerX] + 1 + room.get(0).length / 2, center[centerY]); - if (centerY == 0 || centerY == 1) - addRoom(horizontalRightEntrance, center[centerX], center[centerY] + 1 + room.get(0)[0].length / 2); - if (centerX == 2 || centerX == 1) - addRoom(verticalUpEntrance, center[centerX] - room.get(0).length / 2, center[centerY]); - if (centerY == 2 || centerY == 1) - addRoom(horizontalLeftEntrance, center[centerX] , center[centerY] - 1 - room.get(0)[0].length / 2); - } - - /** - * @param dungeonFactory fábrica de componentes da dungeon - * @param rooms lista de todas as salas possÃveis - * @param center array de centros - */ - private void genRooms(DungeonAbstractFactory dungeonFactory, ArrayList<DungeonTile> rooms, int[] center){ - // matriz para verificar se uma sala já foi colocada na posição - int[][] placed = new int[3][3]; - placed[0][0] = 1; - placed[2][2] = 1; - for (int i = 0; i < 7;) { - int x = rand.nextInt(3); - int y = rand.nextInt(3); - // caso a sala não tenha sido colocada, colocamos uma nova sala - if (placed[x][y] == 0) { - ArrayList<int[][]> room = rooms.get(rand.nextInt(rooms.size() - 1)).getMapTileNumbers(); - this.addRoom(room, center[x], center[y]); - this.addEntrance(dungeonFactory, room, center, x, y); - placed[x][y] = 1; - i++; - } - } - } - - /** - * @param sourceMatrix matriz que irá receber a matrix inserida - * @param insertMatrix matriz que será inserida na matrix fonte - * @param x posição na qual a matriz inserida será colocada na fonte - * @param y posição na qual a matriz inserida será colocada na fonte - */ - private static void putMatrix(int[][] sourceMatrix, int[][] insertMatrix, int x, int y){ - for (int i = 0, i2 = x - insertMatrix.length/2; i < insertMatrix.length; i++, i2++) - for (int j = 0, j2 = y - insertMatrix[0].length/2; j < insertMatrix[0].length; j++, j2++) - sourceMatrix[i2][j2] = insertMatrix[i][j]; - } -} diff --git a/src/game_entity/DirectionUpdater.java b/src/game_entity/DirectionUpdater.java deleted file mode 100644 index f6daac10ad7aab5e37766dd6556edba391ea2557..0000000000000000000000000000000000000000 --- a/src/game_entity/DirectionUpdater.java +++ /dev/null @@ -1,42 +0,0 @@ -package game_entity; - -import gameloop.Constants; -import gameloop.KeyHandler; -import gameloop.render.DrawMovingEntity; - -public class DirectionUpdater { - - /** - * Atualiza a direção do movimento do player, com base no input do teclado - * @param keyHandler Inputs do teclado - * @param drawMethod Método de renderização - * @return Nova direção - */ - public static Vector updateDirection(KeyHandler keyHandler, DrawMovingEntity drawMethod) { - Vector direction = Constants.NULL_VECTOR; - - //SpriteCounter só é atualizado se alguma tecla está sendo pressionada - if (keyHandler.isPressed()) - drawMethod.spriteCounterUpdate(); - - if (keyHandler.isKeyA() && keyHandler.isKeyW()) - direction = Vector.add(Constants.DIRECTION_UP_LEFT, direction); - else if (keyHandler.isKeyD() && keyHandler.isKeyW()) - direction = Vector.add(Constants.DIRECTION_UP_RIGHT, direction); - else if (keyHandler.isKeyS() && keyHandler.isKeyA()) - direction = Vector.add(Constants.DIRECTION_DOWN_LEFT, direction); - else if (keyHandler.isKeyS() && keyHandler.isKeyD()) - direction = Vector.add(Constants.DIRECTION_DOWN_RIGHT, direction); - else if (keyHandler.isKeyW()) - direction = Vector.add(Constants.DIRECTION_UP, direction); - else if (keyHandler.isKeyA()) - direction = Vector.add(Constants.DIRECTION_LEFT, direction); - else if (keyHandler.isKeyS()) - direction = Vector.add(Constants.DIRECTION_DOWN, direction); - else if (keyHandler.isKeyD()) - direction = Vector.add(Constants.DIRECTION_RIGHT, direction); - - drawMethod.spriteUpdate(direction); - return direction; - } -} diff --git a/src/game_entity/DungeonPlayer.java b/src/game_entity/DungeonPlayer.java index afa397532912257af7afbe43bba66916dc74b8c2..5a3366047e95a253935dd9cd4f297d215621cb7d 100644 --- a/src/game_entity/DungeonPlayer.java +++ b/src/game_entity/DungeonPlayer.java @@ -1,22 +1,29 @@ package game_entity; import java.awt.Graphics2D; +import java.awt.image.BufferedImage; import java.util.ArrayList; -import game_entity.entity_sprites.MovingEntitySprites; +import java.util.Objects; import game_entity.weapons.AttackResults; import gameloop.Constants; import gameloop.KeyHandler; import gameloop.MouseHandler; -import gameloop.render.*; +import tile.AnimationSprite; public class DungeonPlayer extends AttackingEntity{ //Posições fixas do player: centrado na tela public final int SCREEN_X = Constants.WIDTH / 2; public final int SCREEN_Y = Constants.HEIGHT / 2; + + //Sprites + private BufferedImage standFront, standBack; + private String spriteDirection; // Indicã a orientação do sprite + private int spriteCounter = 0; // Conta quantos sprites foram renderizados + private int spriteNumber = 0; // Indicã qual sprite está sendo renderizado, no caso de um array + private AnimationSprite up, upLeft, upRight, down, downLeft, downRight, right, left; + private final Counter invincibilityCounter; private final Hitbox hitbox; - DrawMovingEntity drawMethod; - protected ArrayList<MovingEntitySprites> playerSprites; /** * Construtor do player, que o inicializa numa posição pré-determinada @@ -34,11 +41,10 @@ public class DungeonPlayer extends AttackingEntity{ this.invincibilityCounter = new Counter(30, 1); this.setAttributes(new Attributes(10, 10, 200)); this.loadSprites(); - drawMethod = new DrawPlayer(this, playerSprites); } public void tick(KeyHandler keyHandler, MouseHandler mouseHandler) { - this.setDirection(DirectionUpdater.updateDirection(keyHandler, drawMethod)); + this.setDirection(this.updateDirection(keyHandler)); this.invincibilityCounter.tick(); this.position = Vector.add(this.position, Vector.scalarMultiply(this.getDirection(), velocity)); this.getWeapon().tick(); @@ -48,9 +54,38 @@ public class DungeonPlayer extends AttackingEntity{ this.hitbox.setPosition(this.position); } - protected void loadSprites() { - playerSprites = new ArrayList<>(); - playerSprites.add(PlayerSpriteFactory.create("default")); + /** + * Atualiza a direção do movimento do player, com base no input do teclado + * @param keyHandler Inputs do teclado + * @return um vetor correspondente à nova direção + */ + private Vector updateDirection(KeyHandler keyHandler) { + Vector direction = Constants.NULL_VECTOR; + + //SpriteCounter só é atualizado se alguma tecla está sendo pressionada + if (keyHandler.isPressed()) + spriteCounterUpdate(); + + if (keyHandler.isKeyA() && keyHandler.isKeyW()) + direction = Vector.add(Constants.DIRECTION_UP_LEFT, direction); + else if (keyHandler.isKeyD() && keyHandler.isKeyW()) + direction = Vector.add(Constants.DIRECTION_UP_RIGHT, direction); + else if (keyHandler.isKeyS() && keyHandler.isKeyA()) + direction = Vector.add(Constants.DIRECTION_DOWN_LEFT, direction); + else if (keyHandler.isKeyS() && keyHandler.isKeyD()) + direction = Vector.add(Constants.DIRECTION_DOWN_RIGHT, direction); + + else if (keyHandler.isKeyW()) + direction = Vector.add(Constants.DIRECTION_UP, direction); + else if (keyHandler.isKeyA()) + direction = Vector.add(Constants.DIRECTION_LEFT, direction); + else if (keyHandler.isKeyS()) + direction = Vector.add(Constants.DIRECTION_DOWN, direction); + else if (keyHandler.isKeyD()) + direction = Vector.add(Constants.DIRECTION_RIGHT, direction); + + this.spriteUpdate(direction); + return direction; } /** @@ -88,8 +123,28 @@ public class DungeonPlayer extends AttackingEntity{ * @param g2d ferramenta para renderização */ public void draw(Graphics2D g2d) { + BufferedImage playerImage = null; + switch (spriteDirection) { + case "STAND_FRONT" -> playerImage = standFront; + case "STAND_BACK" -> playerImage = standBack; + case "UP" -> playerImage = up.getSpriteArray()[spriteNumber]; + case "UP_LEFT" -> playerImage = upLeft.getSpriteArray()[spriteNumber]; + case "UP_RIGHT" -> playerImage = upRight.getSpriteArray()[spriteNumber]; + case "DOWN" -> playerImage = down.getSpriteArray()[spriteNumber]; + case "DOWN_LEFT" -> playerImage = downLeft.getSpriteArray()[spriteNumber]; + case "DOWN_RIGHT" -> playerImage = downRight.getSpriteArray()[spriteNumber]; + case "RIGHT" -> playerImage = right.getSpriteArray()[spriteNumber]; + case "LEFT" -> playerImage = left.getSpriteArray()[spriteNumber]; + } //Desenha o player - drawMethod.draw(g2d); + g2d.drawImage( + playerImage, + (int)this.getScreenX(), + (int)this.getScreenY(), + this.getSpriteSizeX(), + this.getSpriteSizeY(), + null + ); //Desenha a armar do player this.getWeapon().draw(g2d, this); } @@ -106,6 +161,68 @@ public class DungeonPlayer extends AttackingEntity{ ); } + /** + * Atualiza a direção do sprite, com base na movimentação do player + * @param direction Direção do movimento do player + */ + private void spriteUpdate(Vector direction) { + + //Mudança de sprite pelo teclado + if (Vector.vectorEquals(direction, Constants.DIRECTION_UP)) { + this.spriteDirection = "UP"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_UP_LEFT)) { + this.spriteDirection = "UP_LEFT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_UP_RIGHT)) { + this.spriteDirection = "UP_RIGHT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_LEFT)) { + this.spriteDirection = "LEFT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN)) { + this.spriteDirection = "DOWN"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN_LEFT)) { + this.spriteDirection = "DOWN_LEFT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN_RIGHT)) { + this.spriteDirection = "DOWN_RIGHT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_RIGHT)) { + this.spriteDirection = "RIGHT"; + } else if (Vector.vectorEquals(direction, Constants.NULL_VECTOR)) { + if (Objects.equals(spriteDirection, "UP") || Objects.equals(spriteDirection, "STAND_BACK")) + this.spriteDirection = "STAND_BACK"; + else + this.spriteDirection = "STAND_FRONT"; + } + } + + /** + * Alterna os sprites, para fins de animação + */ + private void spriteCounterUpdate() { + + /* + * Quando o contador spriteCounter atinge certo valor, ele atualiza o spriteNumber, + * alternando entre 0 e 1 (indica dois sprites diferentes) + */ + spriteCounter++; + if (spriteCounter >= 10) { + spriteNumber = (spriteNumber + 1) % 4; + spriteCounter = 0; + } + } + + private void loadSprites () { + int width = 32; + int height = 32; + this.up = new AnimationSprite("/resources/player/Character_Up.png", width, height, 0, 0, 4); + this.upLeft = new AnimationSprite("/resources/player/Character_UpLeft.png", width, height, 0, 0, 4); + this.upRight = new AnimationSprite("/resources/player/Character_UpRight.png", width, height, 0, 0, 4); + this.down = new AnimationSprite("/resources/player/Character_Down.png", width, height, 0, 0, 4); + this.downLeft = new AnimationSprite("/resources/player/Character_DownLeft.png", width, height, 0, 0, 4); + this.downRight = new AnimationSprite("/resources/player/Character_DownRight.png", width, height, 0, 0, 4); + this.right = new AnimationSprite("/resources/player/Character_Right.png", width, height, 0, 0, 4); + this.left = new AnimationSprite("/resources/player/Character_Left.png", width, height, 0, 0, 4); + standBack = up.getSpriteArray()[0]; + standFront = down.getSpriteArray()[0]; + } + /** * @return hitbox do player */ diff --git a/src/game_entity/MapPlayer.java b/src/game_entity/MapPlayer.java index ee7c7cdba7b233e899efb5b309dd1414e709e0bf..42ebbaccb5a58f39cb67e2b49db71f6b12d1d4d7 100644 --- a/src/game_entity/MapPlayer.java +++ b/src/game_entity/MapPlayer.java @@ -1,13 +1,12 @@ package game_entity; -import game_entity.entity_sprites.MovingEntitySprites; import gameloop.Constants; import gameloop.KeyHandler; -import gameloop.render.DrawMovingEntity; -import gameloop.render.DrawPlayer; - +import tile.AnimationSprite; import java.awt.*; +import java.awt.image.BufferedImage; import java.util.ArrayList; +import java.util.Objects; public class MapPlayer extends GameEntity{ //Posições fixas do player: centrado na tela @@ -15,9 +14,15 @@ public class MapPlayer extends GameEntity{ public final int SCREEN_Y = Constants.HEIGHT / 2; private MapPlayerStateEnum currentState; + //Sprites + private ArrayList<BufferedImage> standFront, standBack; + private String spriteDirection; // Indicã a orientação do sprite + private int spriteCounter = 0; // Conta quantos sprites foram renderizados + private int spriteNumber = 0; // Indica qual sprite está sendo renderizado, no caso de um array + private ArrayList<AnimationSprite> up, upLeft, upRight, down, downLeft, downRight, right, left; private final Hitbox hitbox; - protected ArrayList<MovingEntitySprites> playerSprites; - DrawMovingEntity drawMethod; + public int playerSelected = 0; + /** * Construtor do player, que o inicializa numa posição pré-determinada @@ -34,31 +39,180 @@ public class MapPlayer extends GameEntity{ this.currentState = MapPlayerStateEnum.DEFAULT; this.hitbox = new Hitbox(Constants.TILE_SIZE, Constants.TILE_SIZE, new Vector(this.getWorldPosX(), this.getWorldPosY())); this.loadSprites(); - drawMethod = new DrawPlayer(this, playerSprites); - } - - protected void loadSprites() { - playerSprites = new ArrayList<>(); - playerSprites.add(PlayerSpriteFactory.create("default")); - playerSprites.add(PlayerSpriteFactory.create("ninja")); } public void tick(KeyHandler keyHandler) { updateState(keyHandler); - this.setDirection(DirectionUpdater.updateDirection(keyHandler, drawMethod)); + this.setDirection(this.updateDirection(keyHandler)); this.position = Vector.add(this.position, Vector.scalarMultiply(this.getDirection(), velocity)); this.hitbox.setPosition(this.position); } + /** + * Atualiza a direção do movimento do player, com base no input do teclado + * @param keyHandler Inputs do teclado + * @return um vetor correspondente à nova direção + */ + private Vector updateDirection(KeyHandler keyHandler) { + Vector direction = Constants.NULL_VECTOR; + + //SpriteCounter só é atualizado se alguma tecla está sendo pressionada + if (keyHandler.isPressed()) + spriteCounterUpdate(); + + if (keyHandler.isKeyA() && keyHandler.isKeyW()) + direction = Vector.add(Constants.DIRECTION_UP_LEFT, direction); + else if (keyHandler.isKeyD() && keyHandler.isKeyW()) + direction = Vector.add(Constants.DIRECTION_UP_RIGHT, direction); + else if (keyHandler.isKeyS() && keyHandler.isKeyA()) + direction = Vector.add(Constants.DIRECTION_DOWN_LEFT, direction); + else if (keyHandler.isKeyS() && keyHandler.isKeyD()) + direction = Vector.add(Constants.DIRECTION_DOWN_RIGHT, direction); + + else if (keyHandler.isKeyW()) + direction = Vector.add(Constants.DIRECTION_UP, direction); + else if (keyHandler.isKeyA()) + direction = Vector.add(Constants.DIRECTION_LEFT, direction); + else if (keyHandler.isKeyS()) + direction = Vector.add(Constants.DIRECTION_DOWN, direction); + else if (keyHandler.isKeyD()) + direction = Vector.add(Constants.DIRECTION_RIGHT, direction); + + this.spriteUpdate(direction); + return direction; + } /** * Desenha um sprite na tela (frame aberto) conforme a direção indicada pelo "spriteDirection" * @param g2d ferramenta para renderização */ public void draw(Graphics2D g2d) { - drawMethod.draw(g2d); + + BufferedImage playerImage = null; + switch (spriteDirection) { + case "STAND_FRONT" -> playerImage = standFront.get(playerSelected); + case "STAND_BACK" -> playerImage = standBack.get(playerSelected); + case "UP" -> playerImage = up.get(playerSelected).getSpriteArray()[spriteNumber]; + case "UP_LEFT" -> playerImage = upLeft.get(playerSelected).getSpriteArray()[spriteNumber]; + case "UP_RIGHT" -> playerImage = upRight.get(playerSelected).getSpriteArray()[spriteNumber]; + case "DOWN" -> playerImage = down.get(playerSelected).getSpriteArray()[spriteNumber]; + case "DOWN_LEFT" -> playerImage = downLeft.get(playerSelected).getSpriteArray()[spriteNumber]; + case "DOWN_RIGHT" -> playerImage = downRight.get(playerSelected).getSpriteArray()[spriteNumber]; + case "RIGHT" -> playerImage = right.get(playerSelected).getSpriteArray()[spriteNumber]; + case "LEFT" -> playerImage = left.get(playerSelected).getSpriteArray()[spriteNumber]; + } + //Desenha o player + if (playerSelected == 0) { + g2d.drawImage( + playerImage, + (int)this.getScreenX(), + (int)this.getScreenY(), + this.getSpriteSizeX(), + this.getSpriteSizeY(), + null + ); + } else { + g2d.drawImage( + playerImage, + (int) this.getScreenX()+ Constants.TILE_SIZE/2, + (int) this.getScreenY()+ Constants.TILE_SIZE/2, + this.getSpriteSizeX()/2, + this.getSpriteSizeY()/2, + null + ); + } + } + + /** + * Atualiza a direção do sprite, com base na movimentação do player + * @param direction Direção do movimento do player + */ + private void spriteUpdate(Vector direction) { + + //Mudança de sprite pelo teclado + if (Vector.vectorEquals(direction, Constants.DIRECTION_UP)) { + this.spriteDirection = "UP"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_UP_LEFT)) { + this.spriteDirection = "UP_LEFT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_UP_RIGHT)) { + this.spriteDirection = "UP_RIGHT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_LEFT)) { + this.spriteDirection = "LEFT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN)) { + this.spriteDirection = "DOWN"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN_LEFT)) { + this.spriteDirection = "DOWN_LEFT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN_RIGHT)) { + this.spriteDirection = "DOWN_RIGHT"; + } else if (Vector.vectorEquals(direction, Constants.DIRECTION_RIGHT)) { + this.spriteDirection = "RIGHT"; + } else if (Vector.vectorEquals(direction, Constants.NULL_VECTOR)) { + if (Objects.equals(spriteDirection, "UP") || Objects.equals(spriteDirection, "STAND_BACK")) + this.spriteDirection = "STAND_BACK"; + else + this.spriteDirection = "STAND_FRONT"; + } + } + + /** + * Alterna os sprites, para fins de animação + */ + private void spriteCounterUpdate() { + + /* + * Quando o contador spriteCounter atinge certo valor, ele atualiza o spriteNumber, + * alternando entre 0 e 1 (indica dois sprites diferentes) + */ + spriteCounter++; + if (spriteCounter >= 10) { + spriteNumber = (spriteNumber + 1) % 4; + spriteCounter = 0; + } } + private void loadSprites () { + int width = 32; + int height = 32; + up = new ArrayList<>(); + upLeft = new ArrayList<>(); + upRight = new ArrayList<>(); + right = new ArrayList<>(); + left = new ArrayList<>(); + down = new ArrayList<>(); + downLeft = new ArrayList<>(); + downRight = new ArrayList<>(); + standBack = new ArrayList<>(); + standFront = new ArrayList<>(); + + this.up.add(new AnimationSprite("/resources/player/Character_Up.png", width, height, 0, 0, 4)); + this.up.add(new AnimationSprite("/resources/player/ninjaUp.png", width/2, height/2, 0, 0, 4)); + + this.upLeft.add(new AnimationSprite("/resources/player/Character_UpLeft.png", width, height, 0, 0, 4)); + this.upLeft.add(new AnimationSprite("/resources/player/ninjaUp.png", width/2, height/2, 0, 0, 4)); + + this.upRight.add(new AnimationSprite("/resources/player/Character_UpRight.png", width, height, 0, 0, 4)); + this.upRight.add(new AnimationSprite("/resources/player/ninjaUp.png", width/2, height/2, 0, 0, 4)); + + this.down.add(new AnimationSprite("/resources/player/Character_Down.png", width, height, 0, 0, 4)); + this.down.add(new AnimationSprite("/resources/player/ninjaDown.png", width/2, height/2, 0, 0, 4)); + + this.downLeft.add(new AnimationSprite("/resources/player/Character_DownLeft.png", width, height, 0, 0, 4)); + this.downLeft.add(new AnimationSprite("/resources/player/ninjaDown.png", width/2, height/2, 0, 0, 4)); + + this.downRight.add(new AnimationSprite("/resources/player/Character_DownRight.png", width, height, 0, 0, 4)); + this.downRight.add(new AnimationSprite("/resources/player/ninjaDown.png", width/2, height/2, 0, 0, 4)); + + this.right.add(new AnimationSprite("/resources/player/Character_Right.png", width, height, 0, 0, 4)); + this.right.add(new AnimationSprite("/resources/player/ninjaRight.png", width/2, height/2, 0, 0, 4)); + + this.left.add(new AnimationSprite("/resources/player/Character_Left.png", width, height, 0, 0, 4)); + this.left.add(new AnimationSprite("/resources/player/ninjaLeft.png", width/2, height/2, 0, 0, 4)); + + standBack.add(up.get(0).getSpriteArray()[0]); + standBack.add(up.get(1).getSpriteArray()[0]); + standFront.add(down.get(0).getSpriteArray()[0]); + standFront.add(down.get(1).getSpriteArray()[0]); + } private void updateState(KeyHandler keyHandler){ if (keyHandler.isKeyN()) { @@ -66,19 +220,13 @@ public class MapPlayer extends GameEntity{ switch (this.currentState) { case DEFAULT -> { this.currentState = MapPlayerStateEnum.NINJA; - this.drawMethod.setSpritesSelect(1); - this.setSpriteSizeX(Constants.TILE_SIZE); - this.setSpriteSizeY(Constants.TILE_SIZE); + this.playerSelected = 1; } case NINJA -> { this.currentState = MapPlayerStateEnum.DEFAULT; - this.drawMethod.setSpritesSelect(0); - this.setSpriteSizeX(Constants.TILE_SIZE * 2); - this.setSpriteSizeY(Constants.TILE_SIZE * 2); + this.playerSelected = 0; } } - this.setScreenX(SCREEN_X - (float) this.getSpriteSizeX() / 2); - this.setScreenY(SCREEN_Y - (float) this.getSpriteSizeY() / 2); } this.velocity = this.currentState.estadoAtual; } @@ -89,6 +237,4 @@ public class MapPlayer extends GameEntity{ public Hitbox getHitbox() { return hitbox; } - - } diff --git a/src/game_entity/PlayerSpriteFactory.java b/src/game_entity/PlayerSpriteFactory.java deleted file mode 100644 index ceec7954241dfe0d35bfe125e0f6a7052ba6e72e..0000000000000000000000000000000000000000 --- a/src/game_entity/PlayerSpriteFactory.java +++ /dev/null @@ -1,16 +0,0 @@ -package game_entity; - -import game_entity.entity_sprites.MovingEntitySprites; -import game_entity.entity_sprites.PlayerDefaultSprite; -import game_entity.entity_sprites.PlayerNinjaSprite; - -import java.util.Objects; - -public class PlayerSpriteFactory{ - - public static MovingEntitySprites create(String type) { - if (Objects.equals(type, "default")) return new PlayerDefaultSprite(); - else if (Objects.equals(type, "ninja")) return new PlayerNinjaSprite(); - return null; - } -} diff --git a/src/game_entity/Vector.java b/src/game_entity/Vector.java index 9f38a49120ef565ccc2c49b3cd5bb52b46a2e24a..84c3e89cdbe8bc39d31002b36d64b1f96a7d2c79 100644 --- a/src/game_entity/Vector.java +++ b/src/game_entity/Vector.java @@ -93,12 +93,6 @@ public class Vector { return (a.x == b.x && a.y == b.y); } - public static boolean vectorEqualsTolerance(Vector a, Vector b, float tolerance) { - boolean xEquals = a.x <= (b.x + tolerance) && a.x >= (b.x - tolerance); - boolean yEquals = a.y <= (b.y + tolerance) && a.y >= (b.y - tolerance); - return xEquals && yEquals; - } - public static Vector randomUnitVector() { Vector v = new Vector((float) (Math.random() * 2.0 - 1.0), (float)(Math.random() * 2.0 - 1.0)); return Vector.unitVector(v); diff --git a/src/game_entity/entity_sprites/MovingEntitySprites.java b/src/game_entity/entity_sprites/MovingEntitySprites.java deleted file mode 100644 index 87d6728cf87c53507f37de8853ade8a2518ffcab..0000000000000000000000000000000000000000 --- a/src/game_entity/entity_sprites/MovingEntitySprites.java +++ /dev/null @@ -1,15 +0,0 @@ -package game_entity.entity_sprites; - -import tile.AnimationSprite; - -import java.awt.image.BufferedImage; - -public abstract class MovingEntitySprites { - public AnimationSprite up, down, right, left, upLeft, upRight, downLeft, downRight; - public BufferedImage standFront, standBack; - - public MovingEntitySprites (){ - loadSprites(); - } - abstract void loadSprites (); -} diff --git a/src/game_entity/entity_sprites/NpcOldManSprite.java b/src/game_entity/entity_sprites/NpcOldManSprite.java deleted file mode 100644 index d4eb09689b724352dae3fa6829faa026ac276d1b..0000000000000000000000000000000000000000 --- a/src/game_entity/entity_sprites/NpcOldManSprite.java +++ /dev/null @@ -1,18 +0,0 @@ -package game_entity.entity_sprites; - -import tile.AnimationSprite; - -public class NpcOldManSprite extends MovingEntitySprites { - - @Override - void loadSprites() { - int width = 16; - int height = 16; - this.up = new AnimationSprite("/resources/npcs/oldMan/oldMan_Up.png", width, height, 0, 0, 4); - this.down = new AnimationSprite("/resources/npcs/oldMan/oldMan_Down.png", width, height, 0, 0, 4); - this.right = new AnimationSprite("/resources/npcs/oldMan/oldMan_Right.png", width, height, 0, 0, 4); - this.left = new AnimationSprite("/resources/npcs/oldMan/oldMan_Left.png", width, height, 0, 0, 4); - standBack = up.getSpriteArray()[0]; - standFront = down.getSpriteArray()[0]; - } -} diff --git a/src/game_entity/entity_sprites/PlayerDefaultSprite.java b/src/game_entity/entity_sprites/PlayerDefaultSprite.java deleted file mode 100644 index 846c51dfa186235c8eb2fb2d2944d6bc6814c176..0000000000000000000000000000000000000000 --- a/src/game_entity/entity_sprites/PlayerDefaultSprite.java +++ /dev/null @@ -1,21 +0,0 @@ -package game_entity.entity_sprites; - -import tile.AnimationSprite; - -public class PlayerDefaultSprite extends MovingEntitySprites{ - @Override - void loadSprites() { - int width = 32; - int height = 32; - this.up = new AnimationSprite("/resources/player/Character_Up.png", width, height, 0, 0, 4); - this.upLeft = new AnimationSprite("/resources/player/Character_UpLeft.png", width, height, 0, 0, 4); - this.upRight = new AnimationSprite("/resources/player/Character_UpRight.png", width, height, 0, 0, 4); - this.down = new AnimationSprite("/resources/player/Character_Down.png", width, height, 0, 0, 4); - this.downLeft = new AnimationSprite("/resources/player/Character_DownLeft.png", width, height, 0, 0, 4); - this.downRight = new AnimationSprite("/resources/player/Character_DownRight.png", width, height, 0, 0, 4); - this.right = new AnimationSprite("/resources/player/Character_Right.png", width, height, 0, 0, 4); - this.left = new AnimationSprite("/resources/player/Character_Left.png", width, height, 0, 0, 4); - standBack = up.getSpriteArray()[0]; - standFront = down.getSpriteArray()[0]; - } -} diff --git a/src/game_entity/entity_sprites/PlayerNinjaSprite.java b/src/game_entity/entity_sprites/PlayerNinjaSprite.java deleted file mode 100644 index d1ba0167656b8bd4e66b7ebd08e2beabf285f4ab..0000000000000000000000000000000000000000 --- a/src/game_entity/entity_sprites/PlayerNinjaSprite.java +++ /dev/null @@ -1,21 +0,0 @@ -package game_entity.entity_sprites; - -import tile.AnimationSprite; - -public class PlayerNinjaSprite extends MovingEntitySprites{ - @Override - protected void loadSprites() { - int width = 16; - int height = 16; - this.up = new AnimationSprite("/resources/player/ninjaUp.png", width, height, 0, 0, 4); - this.upLeft = new AnimationSprite("/resources/player/ninjaUp.png", width, height, 0, 0, 4); - this.upRight = new AnimationSprite("/resources/player/ninjaUp.png", width, height, 0, 0, 4); - this.down = new AnimationSprite("/resources/player/ninjaDown.png", width, height, 0, 0, 4); - this.downLeft = new AnimationSprite("/resources/player/ninjaDown.png", width, height, 0, 0, 4); - this.downRight = new AnimationSprite("/resources/player/ninjaDown.png", width, height, 0, 0, 4); - this.right = new AnimationSprite("/resources/player/ninjaRight.png", width, height, 0, 0, 4); - this.left = new AnimationSprite("/resources/player/ninjaLeft.png", width, height, 0, 0, 4); - standBack = up.getSpriteArray()[0]; - standFront = down.getSpriteArray()[0]; - } -} diff --git a/src/game_entity/mobs/Enemy.java b/src/game_entity/mobs/Enemy.java index 70e9aecc8bb53384cfc75fc9507f86355f4f4810..49a0ce291fed2cc7c3fe4788e496df5e4851610b 100644 --- a/src/game_entity/mobs/Enemy.java +++ b/src/game_entity/mobs/Enemy.java @@ -68,6 +68,7 @@ public class Enemy extends AttackingEntity { */ private void updateShoot(Vector playerPos) { AttackResults results; + System.out.println(this.getWeapon().canShoot()); if (this.estrategia.shouldShoot() && this.getWeapon().canShoot()){ Vector direction = Vector.unitVector( new Vector( diff --git a/src/game_entity/npcs/MovableNpc.java b/src/game_entity/npcs/MovableNpc.java deleted file mode 100644 index b653d5af670c2702596476ddde8375447824d572..0000000000000000000000000000000000000000 --- a/src/game_entity/npcs/MovableNpc.java +++ /dev/null @@ -1,17 +0,0 @@ -package game_entity.npcs; - -import game_entity.GameEntity; -import game_entity.Hitbox; -import game_entity.Vector; - -import java.awt.*; - -public interface MovableNpc { - void tick(Vector playerPos); - void draw(Graphics2D g2d, GameEntity player); - void setStrategy(NpcStrategy strategy); - - boolean isColliding(Hitbox hitbox); - - String[] getDialogues(); -} diff --git a/src/game_entity/npcs/NpcStrategy.java b/src/game_entity/npcs/NpcStrategy.java deleted file mode 100644 index 80f0f7abec944ce18b0bc5787eca5dbb0dd7c726..0000000000000000000000000000000000000000 --- a/src/game_entity/npcs/NpcStrategy.java +++ /dev/null @@ -1,8 +0,0 @@ -package game_entity.npcs; - -import game_entity.GameEntity; -import game_entity.Vector; - -public interface NpcStrategy { - Vector direction(GameEntity npc, Vector playerPos); -} diff --git a/src/game_entity/npcs/OldManNpc.java b/src/game_entity/npcs/OldManNpc.java deleted file mode 100644 index d685f51d4026124388b91853ff75ad8f5201f044..0000000000000000000000000000000000000000 --- a/src/game_entity/npcs/OldManNpc.java +++ /dev/null @@ -1,70 +0,0 @@ -package game_entity.npcs; - -import game_entity.GameEntity; -import game_entity.Hitbox; -import game_entity.Vector; -import game_entity.entity_sprites.MovingEntitySprites; -import game_entity.entity_sprites.NpcOldManSprite; -import gameloop.Constants; -import gameloop.render.DrawMovingEntity; - -import java.awt.*; -import java.util.ArrayList; - -public class OldManNpc extends GameEntity implements MovableNpc{ - - private final Hitbox hitbox; - private NpcStrategy strategy; - private final DrawMovingEntity drawMethod; - private final String[] dialogues = new String[3]; - - public OldManNpc(float worldPosX, float worldPosY, int velocity) { - super(worldPosX, worldPosY, velocity); - this.strategy = new PatrolStrategy(this, new Vector(0, 0)); - this.hitbox = new Hitbox(Constants.TILE_SIZE, Constants.TILE_SIZE, this.position); - ArrayList<MovingEntitySprites> sprites = new ArrayList<>(); - sprites.add(new NpcOldManSprite()); - this.drawMethod = new DrawMovingEntity(this, sprites); - this.setSpriteSizeX(Constants.TILE_SIZE); - this.setSpriteSizeY(Constants.TILE_SIZE); - - } - - @Override - public void tick(Vector playerPos) { - this.setDirection(this.strategy.direction(this, playerPos)); - this.position = Vector.add(this.position, Vector.scalarMultiply(this.getDirection(), velocity)); - this.hitbox.setPosition(this.position); - this.setDialogues(); - this.drawMethod.spriteUpdate(this.getDirection()); - this.drawMethod.spriteCounterUpdate(); - this.setScreenX(this.getWorldPosX() - playerPos.x + (float) Constants.WIDTH /2 - (float) this.getSpriteSizeX() / 2); - this.setScreenY(this.getWorldPosY() - playerPos.y + (float) Constants.HEIGHT /2 - (float) this.getSpriteSizeX() / 2); - } - - public void setStrategy(NpcStrategy strategy) { - this.strategy = strategy; - } - - @Override - public boolean isColliding(Hitbox hitbox) { - return (hitbox.isHitting(this.hitbox)); - } - - @Override - public void draw(Graphics2D g2d, GameEntity player) { - drawMethod.draw(g2d); - this.hitbox.draw(g2d, player); - } - - private void setDialogues () { - this.dialogues[0] = "Alguma coisa estranha está acontecendo, o Biênio foi invadido!\nEu não sou pago o suficiente para isso... \nVocê parece forte, poderia resolver isso? Preciso aplicar um \ntestinho mais tarde..."; - this.dialogues[1] = "Obrigado por resolver o problema do Biênio! \nUma pena que aquele lugar agora está uma bagunça..."; - this.dialogues[2] = "Parece que fecharam a sub de cálculo haha,\nos alunos estão enlouquecendo."; - } - - public String[] getDialogues() { - return dialogues; - } - -} diff --git a/src/game_entity/npcs/PatrolStrategy.java b/src/game_entity/npcs/PatrolStrategy.java deleted file mode 100644 index 32166595385184f0acc43351b312fe4baa4bfcef..0000000000000000000000000000000000000000 --- a/src/game_entity/npcs/PatrolStrategy.java +++ /dev/null @@ -1,25 +0,0 @@ -package game_entity.npcs; - -import game_entity.GameEntity; -import game_entity.Vector; - -public class PatrolStrategy implements NpcStrategy{ - Vector pos1, pos2; // patrols between position 1 and 2 - static int min_dif = 5; - public PatrolStrategy(GameEntity npc, Vector pos2) { - this.pos1 = npc.getPosition(); - this.pos2 = pos2; - } - - @Override - public Vector direction(GameEntity npc, Vector playerPos) { - Vector npcPos = npc.getPosition(); - if (Vector.vectorEqualsTolerance(pos1, npcPos, min_dif)){ - return Vector.unitVector(Vector.add(pos2, Vector.scalarMultiply(pos1, -1))); - } - else if (Vector.vectorEqualsTolerance(pos2, npcPos, min_dif)) { - return Vector.unitVector(Vector.add(pos1, Vector.scalarMultiply(pos2, -1))); - } - return npc.getDirection(); - } -} diff --git a/src/game_entity/static_entities/CollidableObject.java b/src/game_entity/static_entities/CollidableObject.java deleted file mode 100644 index ea6297213c7e974fc81c200ed7af7d907fe68a39..0000000000000000000000000000000000000000 --- a/src/game_entity/static_entities/CollidableObject.java +++ /dev/null @@ -1,21 +0,0 @@ -package game_entity.static_entities; - -import game_entity.GameEntity; -import game_entity.GameObject; -import game_entity.Hitbox; - -import java.awt.*; - -public abstract class CollidableObject extends GameObject { - Hitbox hitbox; - - public CollidableObject(float worldPosX, float worldPosY, Hitbox hitbox) { - super(worldPosX, worldPosY); - this.hitbox = hitbox; - } - public CollidableObject(float worldPosX, float worldPosY, int width, int height){ - super(worldPosX, worldPosY); - this.hitbox = new Hitbox(width, height, this.position); - } - public abstract void draw(Graphics2D g2d, GameEntity player); -} diff --git a/src/game_entity/static_entities/Door.java b/src/game_entity/static_entities/Door.java deleted file mode 100644 index 3593bb541e40ebc46429dadac4428f8b3027f3dd..0000000000000000000000000000000000000000 --- a/src/game_entity/static_entities/Door.java +++ /dev/null @@ -1,16 +0,0 @@ -package game_entity.static_entities; - -import game_entity.GameEntity; - -import java.awt.*; - -public class Door extends CollidableObject { - public Door(float worldPosX, float worldPosY, int width, int height) { - super(worldPosX, worldPosY, width, height); - } - - @Override - public void draw(Graphics2D g2d, GameEntity player){ - this.hitbox.draw(g2d, player); - } -} diff --git a/src/gameloop/KeyHandler.java b/src/gameloop/KeyHandler.java index fce0536b636df9d054fcbd712ccb1056159552e4..e6025224391af2aa806ff458452fbf11e805ec1a 100644 --- a/src/gameloop/KeyHandler.java +++ b/src/gameloop/KeyHandler.java @@ -12,9 +12,7 @@ public class KeyHandler extends KeyAdapter { private boolean keyA; // true se tecla A está pressionada private boolean keyS; // true se tecla S está pressionada private boolean keyD; // true se tecla D está pressionada - private boolean keyN; // true se tecla N está pressionada - - private boolean keyEnter; + private boolean keyN; /** * Construtor padrão, que inicializa os atributos boolean como falsos @@ -25,7 +23,6 @@ public class KeyHandler extends KeyAdapter { this.keyS = false; this.keyD = false; this.keyN = false; - this.keyEnter = false; } /** @@ -40,7 +37,6 @@ public class KeyHandler extends KeyAdapter { case KeyEvent.VK_S -> keyS = true; case KeyEvent.VK_D -> keyD = true; case KeyEvent.VK_N -> keyN = true; - case KeyEvent.VK_ENTER -> keyEnter = true; } } @@ -56,7 +52,6 @@ public class KeyHandler extends KeyAdapter { case KeyEvent.VK_S -> keyS = false; case KeyEvent.VK_D -> keyD = false; case KeyEvent.VK_N -> keyN = false; - case KeyEvent.VK_ENTER -> keyEnter = false; } } @@ -101,10 +96,6 @@ public class KeyHandler extends KeyAdapter { this.keyN = keyN; } - public boolean isKeyEnter() { return keyEnter; } - - public void setKeyEnter(boolean keyEnter) {this.keyEnter = keyEnter; } - /** * Verifica se alguma tecla está sendo pressionada * @return true, caso esteja; false, caso contrário diff --git a/src/gameloop/Map.java b/src/gameloop/Map.java deleted file mode 100644 index 5e94d9af4666b5cc3a7d7bfbaf373939c43ec446..0000000000000000000000000000000000000000 --- a/src/gameloop/Map.java +++ /dev/null @@ -1,50 +0,0 @@ -package gameloop; - -import game_entity.GameEntity; -import game_entity.Vector; -import game_entity.npcs.MovableNpc; -import game_entity.static_entities.CollidableObject; -import tile.MapTileManager; - -import java.awt.*; -import java.util.ArrayList; - -public class Map { - MapTileManager tilemap; - ArrayList<CollidableObject> objects = new ArrayList<>(); - ArrayList<MovableNpc> npcs = new ArrayList<>(); - - public Map(MapTileManager tilemap) { - this.tilemap = tilemap; - } - - public void addCollidable(CollidableObject object){ - this.objects.add(object); - } - - public void addNpc(MovableNpc npc){ - this.npcs.add(npc); - } - - public void tick(Vector playerPos){ - for (MovableNpc npc: this.npcs) - npc.tick(playerPos); - } - - public MapTileManager getTilemap() { - return tilemap; - } - - public ArrayList<CollidableObject> getObjects() { - return objects; - } - public ArrayList<MovableNpc> getNpcs() {return npcs; } - - public void draw(Graphics2D g2d, GameEntity player){ - tilemap.draw(g2d); - for (CollidableObject object : objects) - object.draw(g2d, player); - for (MovableNpc npc: npcs) - npc.draw(g2d, player); - } -} diff --git a/src/gameloop/game_states/DialogueState.java b/src/gameloop/game_states/DialogueState.java deleted file mode 100644 index c88b4d1294de305693a7962a202a1390f7214a8a..0000000000000000000000000000000000000000 --- a/src/gameloop/game_states/DialogueState.java +++ /dev/null @@ -1,102 +0,0 @@ -package gameloop.game_states; - -import gameloop.Constants; -import gameloop.KeyHandler; - -import javax.imageio.ImageIO; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.InputStream; -import java.util.Objects; - -public class DialogueState implements State{ - - private final KeyHandler keyHandler; - private int nextState; - private boolean exit = false; - private String currentDialogue; - private BufferedImage dialogueWindow; - - private Font pixeled; - - public DialogueState(KeyHandler keyHandler){ - this.keyHandler = keyHandler; - loadImage(); - } - @Override - public void tick() { - this.exit = this.keyHandler.isKeyEnter(); - if (this.exit){ - keyHandler.setKeyEnter(false); - } - } - - private void loadImage () { - try { - InputStream is = getClass().getResourceAsStream("/resources/UI/fonts/VCRosdNEUE.ttf"); - assert is != null; - pixeled = Font.createFont(Font.TRUETYPE_FONT, is); - dialogueWindow = ImageIO.read(Objects.requireNonNull(getClass().getResourceAsStream("/resources/UI/UI_Flat_Button_Medium_Press_02a3.png"))); - } catch (Exception e) { - e.printStackTrace(); - } - } - - @Override - public void draw(Graphics2D g2d) { - int x = Constants.TILE_SIZE * 4; - int y = Constants.TILE_SIZE ; - int scale = 10; - int width = scale * 96; - int height = scale * 32; - - g2d.drawImage( - dialogueWindow, - x, - y, - width, - height, - null - ); - - Color color = new Color(0, 0, 0); - g2d.setColor(color); - g2d.setFont(pixeled); - g2d.setFont(g2d.getFont().deriveFont(Font.PLAIN, 25)); - x += Constants.TILE_SIZE * 2; - y += Constants.TILE_SIZE * 2.5; - for (String line: currentDialogue.split("\n")) { - g2d.drawString(line, x, y); - y += 40; - } - - } - - @Override - public int nextState() { - if (exit){ - return nextState; - } - return 2; - } - - public void setNextState(int next){ - this.nextState = next; - } - @Override - public void setMapNum(int mapNum) {} - - @Override - public void setDefaultPosition(int x, int y) {} - - @Override - public void setCurrentDialogue(String text) { - currentDialogue = text; - } - - @Override - public String getCurrentDialogue() { - return currentDialogue; - } - -} diff --git a/src/gameloop/game_states/DungeonState.java b/src/gameloop/game_states/DungeonState.java index bb0b5ef4b71cc05eb729833bed36b87db0dcd17a..bd68bc863953952412428a6c875f175de83ac8cc 100644 --- a/src/gameloop/game_states/DungeonState.java +++ b/src/gameloop/game_states/DungeonState.java @@ -1,6 +1,5 @@ package gameloop.game_states; -import dungeon_gen.DungeonGenerator; import game_entity.Attributes; import game_entity.Hitbox; import game_entity.DungeonPlayer; @@ -20,7 +19,7 @@ import gameloop.KeyHandler; import gameloop.MouseHandler; import tile.Layer; import tile.ZonaAbertaStrategy; -import tile.dungeon.TileDungeonManager; +import tile.TileManager; import java.awt.*; import java.util.ArrayList; @@ -30,17 +29,17 @@ import java.util.ArrayList; */ public class DungeonState implements State{ public final DungeonPlayer dungeonPlayer; - public final ArrayList<TileDungeonManager> tileManager; + public final TileManager tileManager; private final KeyHandler keyHandler; private final MouseHandler mouseHandler; private final ArrayList<Enemy> enemies; - private String currentDialogue; + private int mapNum; public DungeonState(KeyHandler keyHandler, MouseHandler mouseHandler) { - dungeonPlayer = new DungeonPlayer(600, 600, 7); - tileManager = new ArrayList<>(); + dungeonPlayer = new DungeonPlayer(150, 150, 4); + Hitbox enemyHitbox = new Hitbox(50, 50, new Vector(200, 200)); Attributes enemyAttributes = new Attributes(5, 0, 0); EnemyStrategy enemyStrategy = new PassiveStrategy(500, 200, 150, 30, 60); @@ -59,37 +58,20 @@ public class DungeonState implements State{ this.keyHandler = keyHandler; this.mouseHandler = mouseHandler; - DungeonGenerator dungeonGenerator = new DungeonGenerator(); - - ArrayList<int[][]> dungeon = dungeonGenerator.generate("bienio", 255); - tileManager.add(new TileDungeonManager( - dungeon, - "bienio", - this.dungeonPlayer, - new ZonaAbertaStrategy()) - ); - - ArrayList<int[][]> dungeon2 = dungeonGenerator.generate("eletrica", 255); - tileManager.add(new TileDungeonManager( - dungeon2, - "eletrica", - this.dungeonPlayer, - new ZonaAbertaStrategy()) - ); - + tileManager = new TileManager("/src/resources/maps/ZonaAberta/ZonaAberta.xml", dungeonPlayer, new ZonaAbertaStrategy()); enemies = new ArrayList<>(); - //enemies.add(enemyTemplate.clone(400, 400)); - //enemies.add(enemyTemplate.clone(500, 500)); + enemies.add(enemyTemplate.clone(200, 200)); + enemies.add(enemyTemplate.clone(500, 500)); } @Override public void tick() { dungeonPlayer.tick(keyHandler, mouseHandler); //Atualiza as informações do player - //Layer layer = tileManager.get(mapNum).getCollisionLayer(); - //layer.collisionDetector(dungeonPlayer); + Layer layer = tileManager.getCollisionLayer(); + layer.collisionDetector(dungeonPlayer); for (Enemy e: enemies) { - //layer.collisionDetector(e); + layer.collisionDetector(e); e.tick(new Vector(dungeonPlayer.getWorldPosX(), dungeonPlayer.getWorldPosY())); if (e.hitbox.isHitting(dungeonPlayer.getHitbox())) { dungeonPlayer.gotHit(1); @@ -112,7 +94,8 @@ public class DungeonState implements State{ } } enemies.removeIf(Enemy::isDead); - mapNum = this.tileManager.get(mapNum).changeStrategy.changeMap(dungeonPlayer, mapNum); + + mapNum = this.tileManager.changeStrategy.changeMap(dungeonPlayer, mapNum); } @Override @@ -122,8 +105,7 @@ public class DungeonState implements State{ // exemplo g2d.setColor(Color.BLACK); - if (mapNum >= 0) - this.tileManager.get(mapNum).draw(g2d); + this.tileManager.draw(g2d); //gameState.tm.render(g2d); for (Projectile p : this.getProjectiles()){ @@ -165,7 +147,7 @@ public class DungeonState implements State{ return attacks; } - public int nextState() { + public int getMapNum() { return mapNum; } public void setMapNum(int mapNum) { @@ -175,15 +157,4 @@ public class DungeonState implements State{ public void setDefaultPosition(int x, int y) { this.dungeonPlayer.setPosition(new Vector(x, y)); } - - @Override - public void setCurrentDialogue(String text) { - this.currentDialogue = text; - } - - @Override - public String getCurrentDialogue() { - return this.currentDialogue; - } - } diff --git a/src/gameloop/game_states/GameState.java b/src/gameloop/game_states/GameState.java index dcb7572d75cae80568ff7c607a83469236303eee..955add5bc4ee6972cafea62ba8e39b3179bee11a 100644 --- a/src/gameloop/game_states/GameState.java +++ b/src/gameloop/game_states/GameState.java @@ -22,10 +22,9 @@ public class GameState { this.keyHandler = new KeyHandler(); this.mouseHandler = new MouseHandler(); this.currentState = StateEnum.mapState; - this.stateList = new State[3]; + this.stateList = new State[2]; this.stateList[0] = new MapState(keyHandler); this.stateList[1] = new DungeonState(keyHandler, mouseHandler); - this.stateList[2] = new DialogueState(keyHandler); } /** @@ -34,40 +33,25 @@ public class GameState { public void tick() { updateState(); this.stateList[currentState.estadoAtual].tick(); + } private void updateState() { switch (currentState) { case mapState -> { - if (stateList[0].nextState() == -1) { - this.currentState = StateEnum.dungeonState; - stateList[0].setMapNum(0); - stateList[1].setMapNum(0); - stateList[currentState.estadoAtual].setDefaultPosition(Constants.TILE_SIZE * 23, Constants.TILE_SIZE * 47); - } else if (stateList[0].nextState() == -2) { - this.currentState = StateEnum.dialogueState; - stateList[2].setCurrentDialogue(stateList[0].getCurrentDialogue()); - stateList[0].setMapNum(0); - } else if (stateList[0].nextState() == -3) { + if (stateList[0].getMapNum() == -1) { this.currentState = StateEnum.dungeonState; stateList[0].setMapNum(0); - stateList[1].setMapNum(1); stateList[currentState.estadoAtual].setDefaultPosition(Constants.TILE_SIZE * 23, Constants.TILE_SIZE * 47); - } } case dungeonState -> { - if (stateList[1].nextState() == -1) { + if (stateList[1].getMapNum() == -1) { this.currentState = StateEnum.mapState; stateList[1].setMapNum(0); stateList[currentState.estadoAtual].setDefaultPosition(42 * Constants.TILE_SIZE, 2 * Constants.TILE_SIZE); } } - case dialogueState -> { - if (stateList[2].nextState() != 2){ - this.currentState = StateEnum.mapState; - } - } } } diff --git a/src/gameloop/game_states/MapState.java b/src/gameloop/game_states/MapState.java index c481449e545b57dee9c0bf5d8af2ee409bb8e930..5e141f1dca3fa776dd27b1f65f453a99f85239e8 100644 --- a/src/gameloop/game_states/MapState.java +++ b/src/gameloop/game_states/MapState.java @@ -1,17 +1,10 @@ package gameloop.game_states; -import game_entity.GameEntity; import game_entity.MapPlayer; import game_entity.MapPlayerStateEnum; import game_entity.Vector; -import game_entity.npcs.OldManNpc; -import game_entity.npcs.MovableNpc; -import game_entity.npcs.PatrolStrategy; -import game_entity.static_entities.CollidableObject; -import game_entity.static_entities.Door; import gameloop.Constants; import gameloop.KeyHandler; -import gameloop.Map; import tile.*; import java.awt.*; @@ -22,41 +15,16 @@ import java.util.ArrayList; */ public class MapState implements State{ private final MapPlayer mapPlayer; - public ArrayList<Map> maps; + public ArrayList<TileManager> maps; private final KeyHandler keyHandler; private int mapNum = 0; - private int nextState = 0; - private final MapPlayerStateEnum currentState; - private String currentDialogue; + private MapPlayerStateEnum currentState; public MapState(KeyHandler keyHandler) { maps = new ArrayList<>(); this.mapPlayer = new MapPlayer(200, 200, 3); - MapTileManager estacionamentoMap = new MapTileManager( - "/src/resources/maps/estacionamento/estacionamento.xml", - mapPlayer, - new EstacionamentoStrategy()); - - CollidableObject randomDoor = new Door(275, 566, 50 ,50); - MovableNpc convictus1 = new OldManNpc(300, 600, 2); - convictus1.setStrategy(new PatrolStrategy((GameEntity) convictus1, new Vector(300, 900))); - - Map estacionamento = new Map(estacionamentoMap); - estacionamento.addCollidable(randomDoor); - estacionamento.addNpc(convictus1); - maps.add(estacionamento); - - MapTileManager bienioSupMap = new MapTileManager( - "/src/resources/maps/BienioSup/BienioSup.xml", - mapPlayer, - new BienioSupStrategy()); - - CollidableObject randomDoor2 = new Door(1361, 1243, 50 ,50); - - Map bienioSup = new Map(bienioSupMap); - bienioSup.addCollidable(randomDoor2); - maps.add(bienioSup); - + maps.add(new TileManager("/src/resources/maps/estacionamento/estacionamento.xml", mapPlayer, new EstacionamentoStrategy())); + maps.add(new TileManager("/src/resources/maps/BienioSup/BienioSup.xml", mapPlayer, new BienioSupStrategy())); this.currentState = MapPlayerStateEnum.DEFAULT; this.keyHandler = keyHandler; } @@ -64,40 +32,29 @@ public class MapState implements State{ @Override public void tick() { mapPlayer.tick(keyHandler); - Layer layer = maps.get(mapNum).getTilemap().getCollisionLayer(); + Layer layer = maps.get(mapNum).getCollisionLayer(); layer.collisionDetector(mapPlayer); - maps.get(mapNum).tick(mapPlayer.getPosition()); - mapNum = this.maps.get(mapNum).getTilemap().changeStrategy.changeMap(mapPlayer, mapNum); - nextState = mapNum; - if (this.keyHandler.isKeyEnter()) { - for (MovableNpc npc: maps.get(mapNum).getNpcs()){ - if (npc.isColliding(this.mapPlayer.getHitbox())){ - nextState = -2; - this.currentDialogue = npc.getDialogues()[0]; - } - } - this.keyHandler.setKeyEnter(false); - } + mapNum = this.maps.get(mapNum).changeStrategy.changeMap(mapPlayer, mapNum); this.mapPlayer.setVelocity(currentState.estadoAtual); } @Override public void draw(Graphics2D g2d) { - if (this.mapNum >= 0) { + if (this.mapNum != -1) { g2d.setColor(Color.WHITE); g2d.fillRect(0, 0, Constants.WIDTH, Constants.HEIGHT); // exemplo g2d.setColor(Color.BLACK); - this.maps.get(mapNum).draw(g2d, this.mapPlayer); + this.maps.get(mapNum).draw(g2d); this.mapPlayer.draw(g2d); g2d.setColor(Color.red); this.mapPlayer.getHitbox().draw(g2d, this.mapPlayer); } } - public int nextState() { - return nextState; + public int getMapNum() { + return mapNum; } public void setMapNum(int mapNum) { @@ -108,12 +65,4 @@ public class MapState implements State{ this.mapPlayer.setPosition(new Vector(x, y)); } - @Override - public void setCurrentDialogue(String text) { - this.currentDialogue = text; - } - - public String getCurrentDialogue() { - return currentDialogue; - } } diff --git a/src/gameloop/game_states/State.java b/src/gameloop/game_states/State.java index c21959e8fda393f78c494743c7f3932f9f39d9be..24c8c3269cf57da49708ba786b28d093b9c245fc 100644 --- a/src/gameloop/game_states/State.java +++ b/src/gameloop/game_states/State.java @@ -8,9 +8,7 @@ import java.awt.*; public interface State { void tick(); void draw(Graphics2D g2d); - int nextState(); + int getMapNum(); void setMapNum(int mapNum); void setDefaultPosition(int x, int y); - void setCurrentDialogue (String text); - String getCurrentDialogue (); } diff --git a/src/gameloop/game_states/StateEnum.java b/src/gameloop/game_states/StateEnum.java index 097f944bbf1f0fdcb9f62aa16f1edad07c5b3dea..b6778aebb48eabbaf0e3513dcfd5963e39aa773d 100644 --- a/src/gameloop/game_states/StateEnum.java +++ b/src/gameloop/game_states/StateEnum.java @@ -4,7 +4,7 @@ package gameloop.game_states; * Enum para representar todos os estados do jogo. */ public enum StateEnum { - mapState(0), dungeonState(1), dialogueState(2); + mapState(0), dungeonState(1); public final int estadoAtual; StateEnum(int valor){ this.estadoAtual = valor; diff --git a/src/gameloop/render/Draw.java b/src/gameloop/render/Draw.java deleted file mode 100644 index 51a79abeec899c5c176cd2c01d9499481843548e..0000000000000000000000000000000000000000 --- a/src/gameloop/render/Draw.java +++ /dev/null @@ -1,7 +0,0 @@ -package gameloop.render; - -import java.awt.*; - -public interface Draw { - void draw (Graphics2D g2d); -} diff --git a/src/gameloop/render/DrawMovingEntity.java b/src/gameloop/render/DrawMovingEntity.java deleted file mode 100644 index b913d597783bc43bf17e04827493f89f6bc32037..0000000000000000000000000000000000000000 --- a/src/gameloop/render/DrawMovingEntity.java +++ /dev/null @@ -1,93 +0,0 @@ -package gameloop.render; - -import game_entity.GameEntity; -import game_entity.entity_sprites.MovingEntitySprites; -import game_entity.Vector; -import gameloop.Constants; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.util.ArrayList; -import java.util.Objects; - -public class DrawMovingEntity implements Draw { - protected String spriteDirection; - private final GameEntity entity; - private int spriteCounter = 0; // Conta quantos sprites foram renderizados - protected int spriteNumber = 0; - protected final ArrayList<MovingEntitySprites> entitySprites; - protected Vector direction; - protected int spritesSelect; - - public DrawMovingEntity(GameEntity entity, ArrayList<MovingEntitySprites> movingEntitySprites) { - this.entity = entity; - spritesSelect = 0; - this.entitySprites = movingEntitySprites; - } - - @Override - public void draw(Graphics2D g2d) { - BufferedImage playerImage = getEntityImage(); - //Desenha o player - g2d.drawImage( - playerImage, - (int)entity.getScreenX(), - (int)entity.getScreenY(), - entity.getSpriteSizeX(), - entity.getSpriteSizeY(), - null - ); - } - - /** - * Atualiza a direção do sprite, com base na movimentação do player - * @param direction Direção do movimento do player - */ - public void spriteUpdate(Vector direction) { - if (Vector.vectorEquals(direction, Constants.DIRECTION_UP)) { - this.spriteDirection = "UP"; - } else if (Vector.vectorEquals(direction, Constants.DIRECTION_LEFT)) { - this.spriteDirection = "LEFT"; - } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN)) { - this.spriteDirection = "DOWN"; - } else if (Vector.vectorEquals(direction, Constants.DIRECTION_RIGHT)) { - this.spriteDirection = "RIGHT"; - } else if (Vector.vectorEquals(direction, Constants.NULL_VECTOR)) { - if (Objects.equals(spriteDirection, "UP") || Objects.equals(spriteDirection, "STAND_BACK")) - this.spriteDirection = "STAND_BACK"; - else - this.spriteDirection = "STAND_FRONT"; - } - } - - protected BufferedImage getEntityImage() { - BufferedImage playerImage = null; - switch (spriteDirection) { - case "STAND_FRONT" -> playerImage = entitySprites.get(spritesSelect).standFront; - case "STAND_BACK" -> playerImage = entitySprites.get(spritesSelect).standBack; - case "UP" -> playerImage = entitySprites.get(spritesSelect).up.getSpriteArray()[spriteNumber]; - case "DOWN" -> playerImage = entitySprites.get(spritesSelect).down.getSpriteArray()[spriteNumber]; - case "RIGHT" -> playerImage = entitySprites.get(spritesSelect).right.getSpriteArray()[spriteNumber]; - case "LEFT" -> playerImage = entitySprites.get(spritesSelect).left.getSpriteArray()[spriteNumber]; - } - return playerImage; - } - - /** - * Alterna os sprites, para fins de animação - */ - public void spriteCounterUpdate() { - /* - * Quando o contador spriteCounter atinge certo valor, ele atualiza o spriteNumber, - * alternando entre 0 e 1 (indica dois sprites diferentes) - */ - spriteCounter++; - if (spriteCounter >= 10) { - spriteNumber = (spriteNumber + 1) % 4; - spriteCounter = 0; - } - } - - public void setSpritesSelect(int spritesSelect) { - this.spritesSelect = spritesSelect; - } -} diff --git a/src/gameloop/render/DrawPlayer.java b/src/gameloop/render/DrawPlayer.java deleted file mode 100644 index c34f469e45d7553adacb49a2de89ad1dc5e80a74..0000000000000000000000000000000000000000 --- a/src/gameloop/render/DrawPlayer.java +++ /dev/null @@ -1,43 +0,0 @@ -package gameloop.render; - -import game_entity.GameEntity; -import game_entity.Vector; -import game_entity.entity_sprites.MovingEntitySprites; -import gameloop.Constants; -import java.awt.image.BufferedImage; -import java.util.ArrayList; - -public class DrawPlayer extends DrawMovingEntity { - - - public DrawPlayer(GameEntity entity, ArrayList<MovingEntitySprites> movingEntitySprites) { - super(entity, movingEntitySprites); - } - - @Override - protected BufferedImage getEntityImage() { - BufferedImage playerImage = super.getEntityImage(); - switch (spriteDirection) { - case "UP_LEFT" -> playerImage = entitySprites.get(spritesSelect).upLeft.getSpriteArray()[spriteNumber]; - case "UP_RIGHT" -> playerImage = entitySprites.get(spritesSelect).upRight.getSpriteArray()[spriteNumber]; - case "DOWN_LEFT" -> playerImage = entitySprites.get(spritesSelect).downLeft.getSpriteArray()[spriteNumber]; - case "DOWN_RIGHT" -> playerImage = entitySprites.get(spritesSelect).downRight.getSpriteArray()[spriteNumber]; - } - return playerImage; - } - - @Override - public void spriteUpdate(Vector direction) { - if (Vector.vectorEquals(direction, Constants.DIRECTION_UP_LEFT)) { - this.spriteDirection = "UP_LEFT"; - } else if (Vector.vectorEquals(direction, Constants.DIRECTION_UP_RIGHT)) { - this.spriteDirection = "UP_RIGHT"; - } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN_LEFT)) { - this.spriteDirection = "DOWN_LEFT"; - } else if (Vector.vectorEquals(direction, Constants.DIRECTION_DOWN_RIGHT)) { - this.spriteDirection = "DOWN_RIGHT"; - } - super.spriteUpdate(direction); - - } -} diff --git a/src/gameloop/render/DrawTileManager.java b/src/gameloop/render/DrawTileManager.java deleted file mode 100644 index 70350e6940add5ec4cd49d51f7a0ad3e9462f305..0000000000000000000000000000000000000000 --- a/src/gameloop/render/DrawTileManager.java +++ /dev/null @@ -1,52 +0,0 @@ -package gameloop.render; - -import game_entity.GameEntity; -import gameloop.Constants; -import tile.Layer; - -import java.awt.*; -import java.util.ArrayList; - -public class DrawTileManager implements Draw{ - int WorldRolls; - int WorldColumns; - GameEntity player; - public ArrayList<Layer> layers; - public DrawTileManager ( ArrayList<Layer> layers, int WorldRolls, int WorldColumns, GameEntity player) { - this.layers = layers; - this.WorldRolls = WorldRolls; - this.WorldColumns = WorldColumns; - this.player = player; - } - - @Override - public void draw (Graphics2D g2d) { - for (int worldRow = 0; worldRow < WorldRolls; worldRow++) { - for (int worldColumn = 0; worldColumn < WorldColumns; worldColumn++) { - int worldX = worldColumn * Constants.TILE_SIZE; - int worldY = worldRow * Constants.TILE_SIZE; - int screenX = worldX - (int)player.getWorldPosX() + Constants.WIDTH/2; - int screenY = worldY - (int)player.getWorldPosY() + Constants.HEIGHT/2; - - //Somente desenha na tela se a posição do tile estiver dentro dos limites da tela (mais uma borda de tamanho TILE_SIZE) - if (worldX + Constants.TILE_SIZE > player.getWorldPosX() - (float) Constants.WIDTH /2 && - worldX - Constants.TILE_SIZE < player.getWorldPosX() + (float) Constants.WIDTH /2 && - worldY + Constants.TILE_SIZE > player.getWorldPosY() - (float) Constants.HEIGHT /2 && - worldY - Constants.TILE_SIZE < player.getWorldPosY() + (float) Constants.HEIGHT /2) { - for (int i = 0; i < layers.size() - 1; i++) { - if (layers.get(i).getTileMap()[worldRow][worldColumn] != null) - g2d.drawImage( - layers.get(i).getTileMap()[worldRow][worldColumn], - screenX, screenY, - Constants.TILE_SIZE, - Constants.TILE_SIZE, - null - ); - } - - } - } - } - } - -} diff --git a/src/geometry/Vector.java b/src/geometry/Vector.java new file mode 100644 index 0000000000000000000000000000000000000000..bdbacab2312134561c5886ec3cd9b37ad39505f6 --- /dev/null +++ b/src/geometry/Vector.java @@ -0,0 +1,272 @@ +package geometry; + +import geometry.primitives.Point; + +public class Vector { + private float x; // coordenada x + private float y; // coordenada y + + /** + * construtor vazio do vetor, que cria o vetor nulo + */ + public Vector() { + this.x = 0; + this.y = 0; + } + + /** + * construtor padrão do vetor, com especificação de coordenadas + * @param x coordenada/componente x do vetor + * @param y coordenada/componente y do vetor + */ + public Vector(float x, float y) { + this.x = x; + this.y = y; + } + + /** + * construtor do vetor, definido por dois pontos A e B (V = B - A) + * @param A + * @param B + */ + public Vector(Point A, Point B) { + this.x = B.getX() - A.getX(); + this.y = B.getY() - A.getY(); + } + + /** + * construtor do vetor a partir de um já existente + * @param V + */ + public Vector(Vector V) { + this.x = V.getX(); + this.y = V.getY(); + } + + /** + * método to string + */ + public String toString() { + return "(x,y) = (" + this.x + ", " + this.y + ")" + + "\n" + "(radius,theta) = (" + this.getModulus() + ", " + this.getTheta() + ")\n"; + } + + /** + * redefine as duas coordenadas cartesianas (x,y) + * @param x nova coordenada/componente x + * @param y nova coordenada/componente y + */ + public void setCartesianCoordinates(float x, float y) { + this.x = x; + this.y = y; + } + + /** + * componente x do vetor + * @return valor de x + */ + public float getX() { + return this.x; + } + + /** + * componente y do vetor + * @return valor de y + */ + public float getY() { + return this.y; + } + + /** + * módulo do vetor + * @return módulo do vetor + */ + public float getModulus() { + return (float) Math.sqrt((x*x) + (y*y)); + } + + /** + * ângulo do vetor com eixo Ox, orientado no sentido anti-horário + * @return valor do ângulo + */ + public float getTheta() { + float theta = 0; // ângulo real + + if(this.x == 0) { + // casos em que o vetor é vertical + if(this.y > 0){ + theta = (float) Math.PI/2; + } else if(this.y < 0){ + theta = (float) -Math.PI/2; + } else { + theta = 0; + } + } else { + float delta_x = Math.abs(this.x); // módulo da componente x + float delta_y = Math.abs(this.y); // módulo da componente y + float phi = (float) Math.atan(delta_y/delta_x); // ângulo auxiliar + + if(this.x > 0 && this.y >= 0) { + // primeiro quadrante + theta = phi; + } else if(this.x < 0 && this.y >= 0) { + // segundo quadrante + theta = (float) Math.PI - phi; + } else if(this.x < 0 && this.y < 0){ + // terceiro quadrante + theta = (float) Math.PI + phi; + } else if(this.x > 0 && this.y < 0) { + // quarto quadrante + theta = (float) (2*Math.PI - phi); + } + } + + return theta; + } + + /** + * redefine componente x do vetor + * @param newX novo valor para x + */ + public void setX(float newX) { + this.x = newX; + } + + /** + * redefine componente y do vetor + * @param newY novo valor para y + */ + public void setY(float newY) { + this.y = newY; + } + + /** + * redefine raio do vetor + * @param newRadius novo valor para radius + */ + public void setModulus(float newRadius) { + this.x *= newRadius/(getModulus()); + this.y *= newRadius/(getModulus()); + } + + /** + * redefine ângulo do vetor + * @param newTheta novo valor para theta + */ + public void setTheta(float newTheta) { + float modulus = getModulus(); + this.x = (float) (modulus*Math.cos(newTheta)); + this.y = (float) (modulus*Math.sin(newTheta)); + } + + /** + * normaliza o vetor, deixando seu módulo unitário + */ + public void normalize() { + setModulus(1); + } + + /** + * multiplica o vetor por um escalar + * @param factor fator de escala + */ + public void scale(float factor) { + this.x *= factor; + this.y *= factor; + } + + /** + * rotaciona o vetor ao redor da origem (0,0) + * @param angle ângulo de rotação, no sentido anti-horário + */ + public void rotate(float angle) { + float newX = (float) (this.x*Math.cos(angle) - this.y*Math.sin(angle)); + float newY = (float) (this.x*Math.sin(angle) + this.y*Math.cos(angle)); + + this.x = newX; + this.y = newY; + } + + /** + * rotaciona o vetor em torno de um ponto P + * @param origin vetor P - O, em que P é a origem (0,0) + * @param angle ângulo de giro, positivo no sentido anti-horário + */ + public void rotate(Vector origin, float angle) { + Vector dif = Vector.difference(this, origin); + Vector newVec = Vector.sum(origin, Vector.rotation(dif, angle)); + this.setCartesianCoordinates(newVec.x, newVec.y); + } + + /** + * soma dois vetores a e b + * @param a primeiro vetor da soma + * @param b segundo vetor da soma + * @return soma dos dois + */ + public static Vector sum(Vector a, Vector b) { + return new Vector(a.x + b.x, a.y + b.y); + } + + /** + * subtrai o segundo vetor (b) do primeiro (a) + * @param a vetor do qual será feita a subtração + * @param b vetor que subtrai + * @return diferença a - b + */ + public static Vector difference(Vector a, Vector b) { + return new Vector(a.x - b.x, a.y - b.y); + } + + /** + * multiplica o vetor por um escalar + * @param v vetor original + * @param factor fator de escala + * @return vetor após transformação (factor*v) + */ + public static Vector scale(Vector v, float factor) { + return new Vector(v.x * factor, v.y * factor); + } + + /** + * calcula produto escalar entre dois vetores a e b + * @param a primeiro vetor do produto escalar + * @param b segundo vetor do produto escalar + * @return resultado do porduto escalar <a,b> + */ + public static float dotProduct(Vector a, Vector b) { + return (a.x * b.x) + (a.y * b.y); + } + + /** + * calcula o menor ângulo entre dois vetores + * @param a primeiro vetor + * @param b segundo vetor + * @return ângulo entre os vetores, em radianos + */ + public static float angleBetween(Vector a, Vector b) { + return (float) Math.acos(dotProduct(a, b)/(a.getModulus()*b.getModulus())); + } + + /** + * rotaciona o vetor v ao redor da origem (0,0) + * @param v o vetor a ser rotacionado + * @param angle ângulo de giro, positivo para sentido anti-horário + * @return vetor rotacionado + */ + public static Vector rotation(Vector v, float angle) { + float newX = (float) (v.x*Math.cos(angle) - v.y*Math.sin(angle)); + float newY = (float) (v.x*Math.sin(angle) + v.y*Math.cos(angle)); + return new Vector(newX, newY); + } + + public static Vector projection(Vector v, Vector direction) { + Vector proj = new Vector(direction.x, direction.y); + float dotProd = dotProduct(v, direction); + float directionNorm = direction.getModulus(); + + proj.scale(dotProd/(directionNorm*directionNorm)); + + return proj; + } +} \ No newline at end of file diff --git a/src/geometry/primitives/Point.java b/src/geometry/primitives/Point.java new file mode 100644 index 0000000000000000000000000000000000000000..687ef600df7b4b77736875d1e09d1fa1850ee712 --- /dev/null +++ b/src/geometry/primitives/Point.java @@ -0,0 +1,44 @@ +package geometry.primitives; + +public class Point { + public float x; //coordenada x do ponto + public float y; //coordenada y do ponto + + /** + * construtor padrão, que cria ponto na origem O = (0,0) + */ + public Point() { + this.x = 0; + this.y = 0; + } + + /** + * construtor completo, que cria ponto em P = (x,y) + * @param x + * @param y + */ + public Point(float x, float y) { + this.x = x; + this.y = y; + } + + /** + * obtém coordenada x do ponto + * @return x + */ + public float getX() { + return this.x; + } + + /** + * obtém coordenada y do ponto + * @return y + */ + public float getY() { + return this.y; + } + + public String toString() { + return "(" + this.x + ", " + this.y + ")"; + } +} diff --git a/src/geometry/primitives/Poligon.java b/src/geometry/primitives/Poligon.java new file mode 100644 index 0000000000000000000000000000000000000000..9419b4f754f5e03f027d615bfb6db78b98bbbd3e --- /dev/null +++ b/src/geometry/primitives/Poligon.java @@ -0,0 +1,36 @@ +package geometry.primitives; + +import java.util.ArrayList; + +public class Poligon { + private ArrayList<Point> vertices; // lista de vértices do polÃgono + + /** + * Construtor do PolÃgono, com lista de vértices bem definida + * @param vertices + */ + public Poligon(ArrayList<Point> vertices) { + this.vertices = vertices; + } + + /** + * Verifica se um ponto P é interno à região poligonal convexa + * @param P ponto P + * @return true, se P está dentro da região ou na borda, e falso caso contrário + */ + public boolean isInside(Point P) { + boolean veredict = false; + + // forma n-2 triângulos para verificar se o ponto P é interno a algum deles + for(int i = 2; i < vertices.size(); i++) { + Triangle T = new Triangle(vertices.get(0), vertices.get(1), vertices.get(i)); + + if(T.isInside(P)){ + veredict = true; + break; + } + } + + return veredict; + } +} \ No newline at end of file diff --git a/src/geometry/primitives/Triangle.java b/src/geometry/primitives/Triangle.java new file mode 100644 index 0000000000000000000000000000000000000000..4bb4d4ae331a1f58c6724b2215d261f84a0ac4b5 --- /dev/null +++ b/src/geometry/primitives/Triangle.java @@ -0,0 +1,57 @@ +package geometry.primitives; + +import geometry.*; + +public class Triangle { + private Point A; + private Point B; + private Point C; + + /** + * construtor padrão do triângulo + * @param A vértice A do triângulo + * @param B vértice B do triângulo + * @param C vértice C do triângulo + */ + public Triangle(Point A, Point B, Point C){ + this.A = A; + this.B = B; + this.C = C; + } + + /** + * verifica se um ponto está dentro do triângulo + * @param P ponto P + * @return true, se P está no triângulo, ou false, caso contrário + */ + public boolean isInside(Point P) { + //TODO + boolean veredict = false; + + Vector AB = new geometry.Vector(A, B); + Vector AC = new geometry.Vector(A, C); + Vector AP = new geometry.Vector(A, P); + + + if(Vector.angleBetween(AC, AB) < Vector.angleBetween(AP, AB) + Vector.angleBetween(AP, AC)){ + // verifica se P pertence à região angular definida por BÂC + veredict = false; + } else { + // verifica se o tamanho de AP não extrapola o triângulo + Vector projAB = Vector.projection(AP, AB); + Vector projAC = Vector.projection(AP, AC); + + // AP = alpha*AB + beta*AC (decomposição) + float alpha, beta; + + alpha = projAB.getModulus()/AB.getModulus(); + beta = projAC.getModulus()/AC.getModulus(); + + if(alpha + beta > 1) + veredict = false; + else + veredict = true; + } + return veredict; + } +} diff --git a/src/resources/Tiles/Interiors_free_16x16.png b/src/resources/Tiles/Interiors_free_16x16.png deleted file mode 100644 index 3a203b0b84d873b198eedcfe7a621d8a5d202e21..0000000000000000000000000000000000000000 Binary files a/src/resources/Tiles/Interiors_free_16x16.png and /dev/null differ diff --git a/src/resources/Tiles/Room_Builder_free_16x16_2.png b/src/resources/Tiles/Room_Builder_free_16x16_2.png deleted file mode 100644 index 110769adf235a0f6495e8d0f4be024235951c681..0000000000000000000000000000000000000000 Binary files a/src/resources/Tiles/Room_Builder_free_16x16_2.png and /dev/null differ diff --git a/src/resources/Tiles/atlas_16x.png b/src/resources/Tiles/atlas_16x.png deleted file mode 100644 index 63c9df3f8f036b59844eefbc5ac10b9de81d1d55..0000000000000000000000000000000000000000 Binary files a/src/resources/Tiles/atlas_16x.png and /dev/null differ diff --git a/src/resources/Tiles/furniture_spritesheet.png b/src/resources/Tiles/furniture_spritesheet.png deleted file mode 100644 index c24c519993e01943945fbea15186c9dd264013aa..0000000000000000000000000000000000000000 Binary files a/src/resources/Tiles/furniture_spritesheet.png and /dev/null differ diff --git a/src/resources/UI/UI_Flat_Banner_02_Downward.png b/src/resources/UI/UI_Flat_Banner_02_Downward.png deleted file mode 100644 index a5c3ef5864016a51d6180be93bd82b5b8fb0a0ac..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/UI_Flat_Banner_02_Downward.png and /dev/null differ diff --git a/src/resources/UI/UI_Flat_Button_Large_Lock_01a4.png b/src/resources/UI/UI_Flat_Button_Large_Lock_01a4.png deleted file mode 100644 index bb0ba2d3d6cc0985eb7cef09bb2600213ce174f7..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/UI_Flat_Button_Large_Lock_01a4.png and /dev/null differ diff --git a/src/resources/UI/UI_Flat_Button_Large_Release_01a2.png b/src/resources/UI/UI_Flat_Button_Large_Release_01a2.png deleted file mode 100644 index 9304d42bb73ba497beae6f68eab84fec937a5396..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/UI_Flat_Button_Large_Release_01a2.png and /dev/null differ diff --git a/src/resources/UI/UI_Flat_Button_Medium_Lock_02a3.png b/src/resources/UI/UI_Flat_Button_Medium_Lock_02a3.png deleted file mode 100644 index 3ffc5b1353dc08677ab45f4a9aa8d0296d479d43..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/UI_Flat_Button_Medium_Lock_02a3.png and /dev/null differ diff --git a/src/resources/UI/UI_Flat_Button_Medium_Press_02a3.png b/src/resources/UI/UI_Flat_Button_Medium_Press_02a3.png deleted file mode 100644 index 4f2e58e1bf6a1d4afaf3a66b552a6b137d0cb93d..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/UI_Flat_Button_Medium_Press_02a3.png and /dev/null differ diff --git a/src/resources/UI/fonts/Pixeled.ttf b/src/resources/UI/fonts/Pixeled.ttf deleted file mode 100644 index 14449ba90aa0ccf38a6fb9649a4c5e30ef8d909b..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/fonts/Pixeled.ttf and /dev/null differ diff --git a/src/resources/UI/fonts/VCR_OSD_MONO_1.001.ttf b/src/resources/UI/fonts/VCR_OSD_MONO_1.001.ttf deleted file mode 100644 index dcca687a434d5c7b6a3027e65e0b7d8728b25c71..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/fonts/VCR_OSD_MONO_1.001.ttf and /dev/null differ diff --git a/src/resources/UI/fonts/VCRosdNEUE.ttf b/src/resources/UI/fonts/VCRosdNEUE.ttf deleted file mode 100644 index 6babb53789f6407a9813b422257c95e192d35f21..0000000000000000000000000000000000000000 Binary files a/src/resources/UI/fonts/VCRosdNEUE.ttf and /dev/null differ diff --git a/src/resources/dungeons/bienio/BienioBossRoom.xml b/src/resources/dungeons/bienio/BienioBossRoom.xml deleted file mode 100644 index 7f39a77f79a3f61126dfcdfd97ca1d15a9923ed1..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioBossRoom.xml +++ /dev/null @@ -1,203 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="35" height="35" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="35" height="35" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,138,138,138,138,138,138,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,140,218,216,221,216,217,216,199,140,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,137,139,217,203,200,217,216,216,218,199,204,137,139,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,137,138,139,221,199,216,203,218,199,199,200,217,203,200,204,219,137,138,139,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,140,203,219,219,204,203,201,201,201,200,216,201,221,216,220,202,203,219,204,219,140,0,0,0,0,0,0,0, -0,0,0,0,0,0,140,220,219,221,221,200,204,219,216,216,219,220,203,201,203,203,220,221,221,203,202,219,140,0,0,0,0,0,0, -0,0,0,0,0,140,219,204,219,202,220,220,220,201,221,203,204,216,203,217,221,202,200,204,204,204,202,220,219,140,0,0,0,0,0, -0,0,0,0,0,202,203,203,202,204,219,202,219,202,202,219,204,220,202,202,219,203,219,220,219,202,219,221,202,204,0,0,0,0,0, -0,0,0,0,0,204,204,221,220,220,219,220,219,203,202,221,203,221,221,221,220,204,220,204,219,221,220,204,220,220,0,0,0,0,0, -0,0,0,0,140,202,203,203,204,204,221,203,204,203,219,202,220,204,203,202,203,220,204,219,202,219,202,204,203,221,140,0,0,0,0, -0,0,0,0,219,220,219,221,203,219,202,204,202,221,203,219,204,220,220,203,202,202,221,204,220,219,204,219,201,219,204,0,0,0,0, -0,0,0,140,204,217,202,221,204,201,220,202,219,203,203,102,119,101,118,117,100,203,203,202,221,220,202,204,219,221,202,140,0,0,0, -138,138,139,201,217,220,202,203,203,221,203,217,221,100,102,118,118,119,102,100,118,117,204,203,203,202,221,220,204,201,217,203,137,138,139, -216,200,216,216,220,220,221,203,204,221,220,221,102,117,117,118,118,117,101,119,118,117,117,220,220,203,204,203,216,221,203,216,199,217,216, -217,200,218,216,221,201,203,219,203,220,204,219,101,118,117,100,119,102,118,102,100,101,118,117,221,220,203,219,203,220,199,216,200,200,199, -218,201,201,216,220,219,202,220,221,204,202,219,101,101,101,117,100,119,102,118,119,118,100,100,219,219,219,219,203,202,199,219,201,216,217, -201,200,218,199,216,203,203,219,202,202,204,101,118,102,100,100,100,117,118,102,101,117,102,117,102,221,203,219,219,202,219,218,216,200,199, -199,216,216,219,220,203,221,200,202,220,219,101,117,118,119,102,118,119,117,101,101,100,119,118,102,200,220,221,219,219,204,217,199,218,199, -201,199,221,218,203,203,220,221,199,203,202,119,101,118,118,220,204,118,100,117,101,101,100,102,117,203,219,204,220,203,201,202,218,199,199, -199,200,216,216,202,221,220,221,220,219,221,219,117,101,101,101,220,119,118,118,119,101,117,119,101,203,219,202,219,219,221,199,203,216,201, -137,138,203,217,199,221,221,204,204,204,219,220,100,119,119,101,119,100,101,100,101,100,117,102,204,203,204,220,219,202,218,204,203,138,139, -0,0,220,200,202,220,219,202,203,202,220,202,102,101,119,101,102,100,101,100,118,102,101,117,202,202,202,203,202,203,202,202,221,0,0, -0,0,137,219,220,220,204,220,219,219,204,203,203,100,100,102,101,102,119,117,102,101,118,202,203,219,202,202,204,221,202,203,140,0,0, -0,0,0,219,219,202,203,202,202,202,220,203,221,220,221,117,118,100,118,119,100,119,203,221,204,204,221,204,220,219,204,220,0,0,0, -0,0,0,220,202,220,203,202,219,218,219,221,221,204,203,220,219,203,220,217,219,204,203,220,220,219,204,204,219,219,220,221,0,0,0, -0,0,0,137,204,202,221,219,220,221,221,220,221,204,203,221,203,203,203,204,219,221,204,202,221,202,203,219,220,203,202,140,0,0,0, -0,0,0,0,202,204,221,203,204,202,220,220,219,204,217,203,219,220,221,220,219,220,202,221,202,221,203,220,202,204,204,0,0,0,0, -0,0,0,0,137,220,204,202,202,204,203,204,221,220,221,204,221,202,202,221,221,202,219,204,202,202,204,204,203,220,140,0,0,0,0, -0,0,0,0,0,137,220,203,202,203,221,219,203,219,203,220,220,202,217,203,221,204,216,219,219,202,202,220,220,140,0,0,0,0,0, -0,0,0,0,0,0,137,204,221,203,220,221,217,199,204,220,216,221,199,200,200,219,221,219,204,220,203,220,140,0,0,0,0,0,0, -0,0,0,0,0,0,0,137,138,221,221,221,221,200,201,203,219,217,204,220,220,218,216,220,221,202,138,139,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,137,138,138,204,217,200,200,200,216,216,200,216,201,221,138,138,139,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,137,138,216,200,216,218,201,200,200,138,139,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,138,138,138,138,138,139,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="35" height="35" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,64,64,64,64,64,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,29,64,65,0,0,0,0,0,63,64,31,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,29,64,23,0,0,0,0,0,0,0,0,0,24,64,31,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,29,64,64,23,0,0,0,0,0,0,0,0,0,0,0,0,0,24,64,64,31,0,0,0,0,0,0,0, -0,0,0,0,0,0,29,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,31,0,0,0,0,0,0, -0,0,0,0,0,29,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,31,0,0,0,0,0, -0,0,0,0,29,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,31,0,0,0,0, -0,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0, -0,0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0,0, -0,0,0,29,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,31,0,0,0, -0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,48,0,0,0, -0,0,29,23,0,0,0,0,0,0,202,203,204,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,31,0,0, -41,64,23,0,0,0,0,0,0,0,219,220,221,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,64,27, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -24,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,23, -0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0, -0,63,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,65,0, -0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0, -0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0, -0,0,63,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,65,0,0, -0,0,0,46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,0,0,0, -0,0,0,63,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,65,0,0,0, -0,0,0,0,63,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,65,0,0,0,0, -0,0,0,0,0,63,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,65,0,0,0,0,0, -0,0,0,0,0,0,63,64,27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,64,65,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,63,64,64,27,0,0,0,0,0,0,0,0,0,0,0,28,64,64,65,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,62,0,63,64,27,0,0,0,0,0,0,0,28,64,65,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,63,64,64,64,64,64,64,64,65,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="35" height="35" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,952,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,968,0,0,0,0,952,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,986,0,0,0,0,968,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,952,0,0,0,986,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,968,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,971,0,0,970,0,0,0,0,970,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,987,0,0,986,0,0,0,0,986,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,1034,1035,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1002,1003,0,0,1002,1003,0,0,0, -0,0,0,0,0,0,0,1050,1051,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1018,1019,0,0,1018,1019,0,0,0, -0,0,0,0,0,1002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1018,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1002,1003,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1010,1042,1043,0,0,0,0,0,0,0,0,1018,1019,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1026,1058,1059,0,0,0,0,0,0,0,0,0,0,0,1002,1003,0,0,0, -0,0,0,0,0,1034,1035,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1018,1019,0,0,0, -0,0,0,0,0,1050,1051,0,0,0,0,0,0,0,0,0,0,0,0,0,853,854,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,869,870,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1020,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,987,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,972,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,988,0,0,969,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,970,0,0,0,0,0,0,0,985,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,986,0,0,0,0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="35" height="35" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1295,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1311,0,0,0,0,0,0,971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,970,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1588,1589,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1588,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1032,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,627,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,1010,1011,1012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1026,1027,1028,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0,1588,1589,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1295,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1311,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="35" height="35" opacity="0.59"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,1816,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,1816,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,1816,0,0,0,0,0,0,0, -0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0, -0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0,0,0,0, -0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,1816,1816,0,0,0,0, -0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0, -0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0, -0,0,0,1816,1816,0,0,0,0,0,0,0,1816,0,0,1816,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,1816,1816,0,0,0, -0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0, -0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0, -1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816, -1816,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0,1816,1816,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0,1816, -1816,0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816, -0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0, -0,1816,1816,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0, -0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0, -0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0, -0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0, -0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0, -0,0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,1816,0,1816,1816,0,0,0, -0,0,0,0,1816,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0, -0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,1816,1816,0,0,0,0,0, -0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1816,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,1816,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioCorredorHorizontal_1.xml b/src/resources/dungeons/bienio/BienioCorredorHorizontal_1.xml deleted file mode 100644 index b7284aec3f0176e23165f9ac011c75b3890a66d1..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioCorredorHorizontal_1.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="15" height="7" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="15" height="7"> - <data encoding="csv"> -291,291,291,291,291,291,291,291,291,291,291,291,291,291,291, -308,308,308,308,308,308,308,308,308,308,308,308,308,308,308, -199,217,217,201,217,199,201,199,201,218,216,199,200,217,216, -218,200,201,201,216,201,199,200,199,201,218,218,217,200,216, -200,200,201,218,199,201,216,199,216,199,218,199,201,201,201, -199,199,216,200,218,200,200,201,200,200,199,217,218,201,218, -315,315,315,315,315,315,315,315,315,315,315,315,315,315,315 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="15" height="7"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -64,64,64,64,64,64,64,64,64,64,64,64,64,64,64 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioCorredorVertical_2.xml b/src/resources/dungeons/bienio/BienioCorredorVertical_2.xml deleted file mode 100644 index 2b258b707ceefcd87b35323bcbab201a8ab8e570..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioCorredorVertical_2.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="7" height="15" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="7" height="15" locked="1"> - <data encoding="csv"> -217,201,217,216,218,217,199, -216,199,217,216,217,217,216, -218,199,200,216,201,218,201, -199,200,200,216,217,218,217, -217,218,199,201,217,199,217, -199,201,201,216,217,200,218, -201,217,216,218,201,200,216, -200,216,199,218,201,200,216, -218,216,217,200,201,201,216, -199,201,216,200,199,201,216, -216,201,199,218,201,218,200, -200,199,201,200,217,200,200, -217,199,201,217,200,199,216, -199,216,218,217,199,218,218, -217,216,200,200,216,218,216 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="7" height="15"> - <data encoding="csv"> -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioHorizontalCorridorLeftEntrance.xml b/src/resources/dungeons/bienio/BienioHorizontalCorridorLeftEntrance.xml deleted file mode 100644 index 39ee4b30a1e4aede3e36c24d197a518076553bfa..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioHorizontalCorridorLeftEntrance.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="3" height="7" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="3" height="7" locked="1"> - <data encoding="csv"> -201,199,200, -216,217,217, -201,218,216, -218,200,201, -201,216,199, -216,217,201, -308,308,199 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="3" height="7" locked="1"> - <data encoding="csv"> -291,291,31, -308,308,7, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -64,64,31 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="3" height="7" locked="1" opacity="0.44"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="3" height="7" opacity="0.49"> - <data encoding="csv"> -0,0,1816, -1816,1816,1816, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -1816,1816,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioHorizontalCorridorRightEntrance.xml b/src/resources/dungeons/bienio/BienioHorizontalCorridorRightEntrance.xml deleted file mode 100644 index 2f67559d3b904db40a7b29433e4ce8ff1c624bde..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioHorizontalCorridorRightEntrance.xml +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="3" height="7" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="3" height="7"> - <data encoding="csv"> -201,291,291, -218,308,308, -218,201,218, -218,216,200, -201,218,199, -201,216,216, -217,308,308 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="3" height="7"> - <data encoding="csv"> -29,0,0, -6,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -29,64,64 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="3" height="7" locked="1" opacity="0.35"> - <data encoding="csv"> -1816,0,0, -1816,1816,1816, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -1816,1816,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioRoom_1.xml b/src/resources/dungeons/bienio/BienioRoom_1.xml deleted file mode 100644 index f4e8ce0c2df8b0a2b7500a2914fbead7d975b58f..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioRoom_1.xml +++ /dev/null @@ -1,153 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="25" height="25" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="25" height="25"> - <data encoding="csv"> -291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291, -315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315, -199,218,199,217,218,218,201,217,200,217,218,217,217,200,218,201,218,218,200,216,216,200,216,199,216, -217,218,216,218,201,199,218,218,217,218,201,217,201,216,199,199,216,216,199,199,218,199,201,217,199, -200,199,217,201,201,199,217,199,199,199,216,199,217,216,218,199,200,201,200,201,201,199,216,216,200, -201,217,201,200,217,216,200,199,200,216,200,201,201,199,199,218,216,199,218,217,218,199,217,217,218, -216,199,201,218,201,201,199,218,218,218,199,201,217,200,199,199,200,216,201,199,199,199,199,200,218, -217,201,218,200,200,217,216,216,201,216,217,199,200,201,201,201,201,218,216,201,199,200,200,216,201, -200,200,199,218,218,218,216,216,201,218,217,218,217,199,216,216,199,217,200,218,200,216,216,218,200, -200,201,218,216,199,217,200,218,199,200,199,201,199,201,199,217,216,201,200,216,200,199,200,216,200, -199,201,199,200,199,201,216,200,216,216,201,199,217,218,199,216,216,199,200,218,216,200,199,199,199, -216,218,199,217,201,217,216,216,216,201,216,201,218,199,217,199,218,200,199,216,218,218,217,199,217, -218,218,199,218,217,217,216,217,199,201,218,218,216,218,218,199,218,217,218,216,218,218,200,217,200, -217,200,201,200,200,216,216,217,216,217,218,199,201,200,199,201,201,201,200,216,201,200,200,217,200, -199,200,201,218,201,217,217,217,199,218,216,218,218,216,218,216,200,199,218,218,216,218,217,200,201, -218,201,218,218,218,199,217,200,216,201,199,199,200,201,218,201,216,201,199,216,216,218,199,201,217, -201,216,218,216,216,201,218,199,216,218,216,217,200,216,217,217,216,200,218,218,217,200,216,200,200, -201,200,201,200,216,201,217,200,217,199,217,200,216,218,216,200,216,199,200,200,217,216,218,217,216, -199,201,199,199,199,200,199,217,216,218,201,216,199,218,200,218,216,201,201,199,199,200,217,218,218, -200,218,218,201,217,201,201,216,201,217,200,201,201,216,216,217,218,216,218,200,199,218,201,199,201, -199,218,218,218,218,201,200,218,216,201,218,218,217,200,199,216,201,217,199,200,218,199,199,200,216, -218,200,200,218,218,201,200,199,218,200,216,201,216,200,200,200,217,199,200,199,217,201,216,217,217, -200,200,217,216,200,201,199,200,201,216,217,199,218,201,217,218,216,216,217,216,201,201,200,217,218, -199,200,218,200,201,200,217,218,217,218,217,199,217,217,218,201,217,217,217,201,201,199,199,201,218, -307,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,309 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="25" height="25"> - <data encoding="csv"> -31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -24,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,23 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,527,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,527,0,0,0, -0,0,0,543,0,0,0,1048,1049,0,0,0,0,0,0,0,0,0,0,1176,0,543,844,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1192,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,952,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,968,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,975,553,554,1003,0,0,0,0,0,552,984,554,555,0,0,0,0,0,0, -0,0,0,0,0,0,991,569,570,1019,0,0,853,854,0,568,569,570,571,0,0,0,0,0,0, -0,0,0,0,0,0,584,585,586,587,0,0,869,870,0,584,585,586,587,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,552,553,554,1003,0,0,0,0,0,552,553,554,555,0,0,0,0,0,0, -0,0,0,0,0,0,568,569,570,1019,0,0,0,0,0,568,569,570,980,0,0,0,0,0,0, -0,0,0,0,0,0,584,1001,586,587,0,0,0,0,0,584,585,586,996,0,0,0,0,0,0, -0,0,0,0,0,0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1106,1107,0,0,0,0,0,0,0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0, -1122,1123,0,0,972,0,0,0,0,0,0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0, -1138,1139,0,0,988,0,1003,0,0,0,971,0,0,0,0,0,0,1005,1006,0,0,0,0,0,0, -0,0,0,0,0,0,1019,0,0,0,987,0,0,0,0,1037,0,1021,1022,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1053,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="Interiors_free_16x16_2" width="25" height="25" locked="1"> - <data encoding="csv"> -0,1512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,487,0,0,0,0,0,1513,0, -0,1528,0,0,1176,0,0,0,0,0,0,0,0,0,0,0,0,503,0,0,0,0,0,1529,0, -0,0,0,0,1192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1224,0,0,0, -0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,552,961,1224,555,0,0,0,0,0,0,553,1208,0,0,0,0,0,0,0, -0,0,0,0,0,0,568,977,627,571,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1590,1591,0,0,0,0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,1460,1224,555,0,0,0,0,0,0,0,0,0,0,0,0,0,1033,0, -0,0,0,0,0,0,0,1476,0,571,0,0,0,0,0,0,0,1224,571,0,0,0,0,0,0, -0,1224,0,0,0,0,0,585,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1034,1035,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1050,1051,0,0,1106,1107, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1122,1123, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1138,1139, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1224,0,0,0, -0,0,0,0,0,1124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1124,0, -0,0,0,0,0,1140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1140,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="8" name="Collision" width="25" height="25" visible="0" locked="1" opacity="0.42"> - <data encoding="csv"> -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,1816,1816,1816,1816,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,1816,0,0,0,1816,0,0,0,0,0,0,1816,1816,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,1816, -1816,1816,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioRoom_2.xml b/src/resources/dungeons/bienio/BienioRoom_2.xml deleted file mode 100644 index 7e1346999e4fd704216e82bea4a4d4bf925fbd69..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioRoom_2.xml +++ /dev/null @@ -1,153 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="25" height="25" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="25" height="25" locked="1"> - <data encoding="csv"> -291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291,291, -308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308, -217,200,218,199,199,218,200,218,218,216,201,199,217,201,217,199,200,200,199,200,216,201,216,218,199, -216,218,218,199,218,217,117,101,200,218,216,199,218,216,199,200,199,216,201,200,217,135,217,218,199, -216,200,199,185,204,202,220,199,216,199,199,217,199,201,169,201,201,201,201,200,217,201,199,199,218, -216,216,199,200,216,119,199,200,168,219,117,216,101,219,203,216,216,216,199,218,221,152,216,199,200, -201,218,218,217,199,102,101,135,201,199,200,151,135,100,153,135,218,216,199,201,118,216,218,200,199, -291,291,291,291,291,291,291,291,291,292,200,217,135,199,216,290,291,291,291,291,291,291,291,291,291, -308,308,308,308,308,308,308,308,308,309,200,199,218,204,199,307,308,308,308,308,308,308,308,308,308, -216,199,200,200,217,217,119,221,219,153,217,199,187,203,218,201,217,216,220,219,199,201,199,217,199, -201,199,200,218,218,119,204,218,218,217,135,200,117,102,199,200,186,101,217,216,200,201,218,218,199, -218,201,199,201,218,199,217,200,186,134,200,187,221,118,199,200,100,217,216,199,200,101,217,200,200, -136,202,200,102,201,169,134,101,151,204,221,219,102,152,153,200,135,185,221,217,152,187,153,151,201, -216,218,119,134,118,101,136,203,169,118,202,219,169,203,187,102,170,216,217,169,216,217,217,217,218, -218,185,100,151,136,135,220,219,152,100,101,151,100,134,135,216,216,216,217,203,169,217,216,201,218, -217,201,100,201,203,203,185,117,102,151,202,102,151,186,200,216,199,217,217,199,201,200,217,201,199, -218,217,201,119,202,151,102,102,153,202,118,169,220,218,199,218,17,291,291,291,291,291,291,291,291, -217,217,219,217,118,102,117,118,152,187,152,187,100,170,218,216,33,315,315,315,315,315,315,315,315, -217,219,100,220,152,219,151,152,153,187,100,170,203,118,201,217,33,201,217,201,218,199,217,216,218, -218,153,203,101,102,136,134,219,135,151,201,203,153,186,200,200,170,200,217,200,216,203,201,200,201, -201,134,216,153,151,102,136,117,135,221,218,102,119,217,221,153,204,203,220,151,201,153,218,199,218, -201,117,200,100,168,185,117,119,204,202,200,185,118,169,200,200,168,200,218,218,201,170,201,217,216, -216,203,169,217,199,101,199,200,200,101,217,200,216,136,218,200,34,216,117,101,216,199,200,199,201, -117,152,216,200,201,218,217,218,217,201,218,199,199,217,200,199,33,200,216,201,200,199,216,201,201, -307,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,309 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="25" height="25" locked="1"> - <data encoding="csv"> -31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -24,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,23 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,603,604,634,635,634,635,0,0,0,0,0,0,0,0,1106,1107,0,0,0,603,604,0,0, -0,0,619,620,650,651,650,651,0,0,0,0,0,0,0,0,1122,1123,0,649,652,619,1210,1211,0, -0,0,0,0,666,667,666,667,0,0,0,0,0,0,0,0,1138,1139,0,665,668,0,1226,1227,0, -0,1363,0,1343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1379,0,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,853,854,0,1295,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,869,870,0,1311,1606,0,0, -0,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1622,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1124,0,1048,1049,0,0,0,0,0,0,0,0,0,860,0,0,0,0,0,0,1109,1110,0, -0,0,1140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1125,1126,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,1003,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1423,1424,0,0,0,0,0,0,0,1019,0,1224,0,0,0,0,0,0,0,0,0, -0,1295,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1311,0,0,0,0,0,0,0,0,0,0,0,0,1002,0,0,0,0,1013,1014,0,1348,1349,0, -0,0,0,0,0,0,0,0,1606,0,0,0,0,0,1018,0,0,1360,1361,1029,1030,563,1364,1365,0, -0,0,0,0,0,0,0,0,1622,0,0,0,0,0,0,0,0,1376,1377,0,0,579,1380,1381,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1606,0,1224,0,0, -0,0,853,854,0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,1622,0,0,0,0, -0,0,869,870,0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1328,0,0,0,0,0,1394,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1344,0,0,0,0,0,1410,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,603,604,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,619,620,1209,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1225,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="25" height="25" opacity="0.53"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,1816,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioRoom_3.xml b/src/resources/dungeons/bienio/BienioRoom_3.xml deleted file mode 100644 index 1af47eb7d50f45f14fc55b65daa151f239ec73d9..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioRoom_3.xml +++ /dev/null @@ -1,153 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="55" height="25" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="55" height="25"> - <data encoding="csv"> -325,325,325,325,325,325,325,325,325,325,325,16,325,325,325,325,325,325,325,325,325,325,325,16,291,291,291,291,291,291,291,16,325,325,325,325,325,325,325,325,325,325,325,16,325,325,325,325,325,325,325,325,325,325,325, -342,342,342,342,342,342,342,342,342,342,342,33,342,342,342,342,342,342,342,342,342,342,342,33,315,315,315,315,315,315,315,33,342,342,342,342,342,342,342,342,342,342,342,33,342,342,342,342,342,342,342,342,342,342,342, -201,216,201,200,218,199,199,199,201,217,218,33,199,199,200,218,217,200,218,218,216,199,216,33,200,201,216,199,200,200,199,33,199,218,216,200,217,201,200,201,200,217,199,33,216,201,200,199,200,217,217,216,216,201,199, -200,199,201,200,218,216,200,218,218,218,200,33,217,199,201,200,199,200,200,218,201,199,218,33,216,218,218,169,201,200,201,33,217,199,199,217,199,217,218,217,217,217,218,33,217,200,200,199,218,218,217,217,201,217,201, -216,217,200,200,200,168,221,218,216,200,217,33,217,216,199,200,201,202,216,217,199,200,218,33,216,217,201,204,201,218,218,33,199,199,217,218,221,200,217,217,201,199,200,33,200,218,200,200,202,102,119,199,217,200,216, -201,201,201,200,216,151,216,216,217,200,216,33,216,216,218,199,199,199,201,200,199,217,218,33,216,216,217,153,221,200,200,33,201,201,216,200,217,218,217,201,216,216,216,33,218,200,218,201,199,169,216,199,218,199,217, -199,199,201,201,200,217,201,199,217,216,200,33,199,200,201,201,200,201,201,200,199,216,216,33,218,216,217,168,217,216,201,33,199,218,216,201,216,218,201,216,199,201,199,33,216,201,201,218,218,200,201,200,216,216,201, -291,291,291,292,200,218,218,290,291,291,291,298,291,291,291,292,199,216,201,290,291,291,291,299,200,216,217,218,200,200,217,297,291,291,291,292,217,199,201,290,291,291,291,298,291,291,291,292,200,217,199,290,291,291,291, -308,308,308,309,217,200,216,307,308,308,308,308,308,308,308,309,216,199,199,307,308,308,308,316,200,218,216,199,217,218,200,314,315,315,315,309,201,200,200,307,315,315,315,315,315,315,315,309,216,199,218,307,315,315,315, -219,200,199,201,217,201,199,199,216,199,201,216,199,218,201,201,218,218,201,201,201,216,216,200,216,200,199,153,200,199,199,217,200,218,216,200,199,217,199,201,218,201,199,216,218,217,216,216,199,216,201,199,200,217,200, -151,218,217,218,217,217,216,201,200,216,217,201,200,200,216,217,216,200,199,216,199,200,200,216,199,218,218,168,200,217,216,199,199,218,199,218,200,217,201,216,216,217,217,217,216,201,200,216,199,218,216,201,199,220,118, -168,200,217,218,201,152,187,220,216,169,199,217,200,201,219,201,199,102,199,218,200,200,216,201,217,200,201,216,199,201,200,216,199,218,136,200,201,200,152,200,201,217,218,218,216,199,199,217,199,199,199,201,118,219,218, -185,217,101,200,185,201,117,204,216,199,217,199,216,216,201,200,216,201,169,199,200,216,152,217,200,204,217,217,216,200,200,199,200,218,216,199,200,216,201,199,216,201,185,218,199,199,217,185,169,152,153,201,201,101,199, -202,220,170,101,200,199,200,200,216,218,217,152,118,101,200,200,199,201,201,216,218,216,199,216,201,200,217,135,201,200,217,200,217,218,201,168,199,218,218,199,218,201,218,199,218,201,217,102,216,217,151,217,200,218,201, -219,201,201,216,218,218,217,199,216,216,216,119,216,200,201,218,151,117,217,200,201,201,218,218,216,200,200,201,200,187,168,218,199,199,135,203,201,216,216,216,200,218,218,199,199,217,200,200,199,200,218,216,199,199,200, -219,217,216,199,217,199,217,217,199,217,199,217,216,216,200,217,201,217,216,201,201,201,201,200,199,217,217,218,218,200,217,200,217,199,199,200,201,200,200,218,200,201,216,218,200,217,218,201,201,216,200,200,216,200,218, -325,325,325,326,218,201,200,324,325,325,325,16,325,325,325,326,217,200,201,324,325,325,325,16,201,186,220,217,217,199,216,16,325,325,325,326,217,200,199,324,325,325,325,16,325,325,325,326,200,200,201,324,325,325,325, -342,342,342,343,201,216,218,341,342,342,342,33,342,342,342,343,218,216,216,341,342,342,342,33,216,216,216,216,217,216,218,33,342,342,342,343,201,199,216,341,342,342,342,33,342,342,342,343,201,199,216,341,342,342,342, -217,217,201,218,201,200,216,218,216,199,218,33,216,199,216,200,217,217,199,199,216,216,199,33,201,201,218,170,200,200,216,33,218,218,186,218,199,201,201,200,218,200,201,33,201,199,218,216,216,218,216,218,218,201,200, -218,201,199,200,201,217,216,200,216,200,201,33,217,218,152,218,218,199,217,217,218,218,217,33,201,200,218,153,216,217,216,33,218,217,219,217,216,199,216,200,201,200,216,33,216,216,201,217,200,199,199,217,217,217,200, -216,218,199,217,200,203,216,199,218,200,199,33,201,185,169,218,199,200,199,216,199,216,200,33,217,199,217,218,216,199,201,33,216,220,220,201,201,201,216,218,199,218,217,33,201,217,218,201,218,200,200,169,117,200,200, -201,218,216,200,203,153,100,200,216,201,199,33,201,201,200,216,200,199,100,201,218,201,217,33,218,218,218,218,218,218,218,33,200,217,169,217,199,199,217,200,216,217,199,33,199,216,216,199,199,200,216,218,216,218,216, -199,199,217,216,101,218,217,200,217,216,200,33,200,217,201,216,217,218,218,217,199,199,199,33,200,218,218,218,218,218,200,33,217,217,216,199,217,199,216,151,216,216,200,33,201,199,203,117,134,199,218,218,200,216,200, -201,217,200,218,217,201,218,199,200,218,218,33,216,216,200,217,218,217,218,200,218,200,218,33,200,216,218,218,218,218,218,33,218,201,201,218,217,216,200,200,199,217,200,33,200,200,218,216,217,199,218,200,200,201,216, -307,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,309 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="55" height="25" locked="1"> - <data encoding="csv"> -31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -24,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,23 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="55" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,785,786,0,0,0,0,0,0,0,0,0,0,785,786,0,0,0,0,0,0,0,0,0,0,0,0,0,785,786,0,0,0,0,0,0,0,0,0,785,786,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,801,802,0,0,0,0,0,0,0,0,0,0,801,802,0,0,0,0,0,0,0,0,0,0,0,0,0,801,802,0,0,0,0,0,0,0,0,0,801,802,0,0,0,0,0,963,964,0, -0,0,968,0,0,0,0,0,0,0,0,0,959,960,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1394,0,0,0,0,0,0,0,0,1003,0,0,0,0,0,0,0,0,0,0,979,980,0, -0,0,0,0,0,0,0,0,0,0,0,0,975,976,0,0,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1410,0,0,0,0,0,0,0,0,1019,0,0,0,0,0,0,0,0,0,0,995,996,0, -0,0,0,0,0,0,0,0,0,1006,0,0,991,992,0,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1022,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,0,0,1343,0,0,0,0,969,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,0,1224,0,0,0,0,985,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,634,635,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1017,0,0,0,0,0,0,1005,1006,0,0,0,0,0,0,0,0,0,1328,0,0,0,0,0,0,0,0,1176,1044,650,651,0,0,0,0,0,0,0,1005,1006,0,0,0,0,0,0,0,0,0,1124,0, -0,0,0,0,0,0,0,0,0,0,0,1021,1022,0,0,0,0,0,0,0,0,0,1344,0,0,0,0,0,0,0,0,1192,1060,666,667,0,0,0,0,0,0,0,1021,1022,0,0,0,0,0,0,0,0,0,1140,0, -0,0,0,0,0,0,0,0,1033,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472,473,474,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,488,489,490,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,504,505,506,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,520,521,522,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1034,1035,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1004,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1343,0,0,0, -0,0,1050,1051,0,0,0,0,0,0,0,0,0,0,0,1032,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1020,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,1013,1014,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,616,617,0,0,0,0,0,1013,1014,0,0,0,0,0,0,0,0,0,0,1154,1155,0, -0,653,654,0,0,0,0,0,1048,1049,0,0,0,1029,1030,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,632,633,0,0,0,0,0,1029,1030,0,0,0,1048,1049,0,0,0,0,0,0,0,0, -0,669,670,606,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1010,1011,1012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1002,1003,0,0,0,970,0,0,0,0,0,1026,1027,1028,0,0,0,0,0,0,0,0,0,0,0,0,1010,1011,1012,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,853,854,0,0,0,0,0,1018,1019,0,0,0,986,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1026,1027,1028,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1001,0, -0,0,869,870,0,0,0,0,0,1224,0,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1037,976,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,0, -0,1423,1424,1224,0,971,0,0,0,1360,1361,0,0,0,1343,0,0,0,0,1034,1035,0,0,0,0,0,0,0,0,0,0,0,0,0,1053,992,0,995,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,987,0,0,0,1376,1377,0,0,0,0,0,0,0,0,1050,1051,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="55" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,1045,1046,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1045,1046,0,0,0,0, -0,0,0,0,1042,1043,0,0,0,0,0,0,0,0,1061,1062,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1042,1043,0,0,0,0,0,0,0,0,0,0,1061,1062,0,961,0,0, -0,1039,1040,1041,1058,1059,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1005,1006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1058,1059,0,1010,1011,1012,0,0,0,1034,1035,0,1034,1035,0,977,0,0, -0,1055,1056,1057,0,0,0,0,0,0,0,0,0,0,0,0,1005,1006,0,0,0,1021,1022,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1026,1027,1028,0,0,0,1050,1051,0,1050,1051,0,0,0,0, -0,0,970,0,0,0,0,0,970,0,0,0,0,0,0,0,1021,1022,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,986,0,0,0,0,0,986,0,0,0,0,0,0,0,0,0,0,1005,1006,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1038,0,0,0,1034,1035,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1021,1022,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1054,0,0,0,1050,1051,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,523,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,539,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1295,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,445,446,449,449,449,449,449,447,448,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1311,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,449,449,449,449,449,449,449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,449,449,449,449,449,449,449,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1010,1011,1012,0,449,449,449,449,449,449,449,0,0,0,0,0,0,0,0,0,0,0,0,0,853,854,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1026,1001,1028,0,449,449,449,449,449,449,449,0,0,0,0,0,0,0,0,0,0,0,0,0,869,870,0,971,0,0,0,972,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,0,0,465,465,465,465,465,465,465,0,0,0,0,960,0,963,0,0,0,1224,0,0,0,0,0,987,0,0,0,988,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1032,0,979,1003,0,0,0,0,0,0,0,0,970,0,0,969,1010,1011,1012,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1001,1010,1011,1012,1019,0,0,0,0,0,0,0,0,986,0,0,985,1026,1027,1028,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,1026,1027,1028,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="55" height="25" visible="0" opacity="0.43"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,1816,1816,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,1816,1816,1816,1816,0,0,1816,1816,0,1816,1816,0,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,1816,1816,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,1816,0,0,0,0,0,0,0,0,1816,0,1816,0,0,0,0,0,0,0,0,1816,0,1816, -1816,0,1816,0,0,0,0,0,1816,1816,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,0,0,1816,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,1816,0,0,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,1816,1816,0,1816,0,0,0,1816,1816,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816, -1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,0,0,0,0,0,0,0,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,1816,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,0,0,0,0,0,0,0,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816, -1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,0,0,1816,0,0,0,0,0,0,0,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816,1816,1816,1816,1816,1816,0,0,0,1816,1816,1816,1816, -1816,1816,1816,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,1816,0,0,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,1816,0,0,0,0,0,1816,1816,1816,1816,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,1816,0,0,0,1816,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,0,0,0,1816,1816,1816,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,0,0,1816,1816,0,1816,1816,0,0,0,0,1816,0,0,0,1816,0,0,1816,0,1816,0,1816, -1816,0,0,0,0,1816,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,1816,1816,0,0,1816,0,0,0,0,0,0,0,1816,0,0,1816,1816,0,1816,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,1816,0,1816, -1816,0,0,0,0,0,0,0,0,1816,1816,1816,0,0,0,0,0,0,0,0,0,0,0,1816,0,0,0,0,0,0,0,1816,0,0,1816,0,0,1816,0,0,0,0,0,1816,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioStart.xml b/src/resources/dungeons/bienio/BienioStart.xml deleted file mode 100644 index 0505b378aa7bbe64f29016e3f0a5159cfddc54d3..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioStart.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="15" height="15" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="15" height="15" locked="1"> - <data encoding="csv"> -291,291,291,291,291,291,291,291,291,291,291,291,291,291,291, -308,308,308,308,308,308,308,308,308,308,308,308,308,308,308, -199,218,216,218,199,216,217,216,199,218,199,199,216,216,201, -201,216,201,200,218,218,218,217,217,201,201,201,218,217,216, -216,199,200,199,216,218,199,218,217,217,201,218,217,218,200, -217,216,199,216,201,199,218,200,200,216,218,200,199,216,218, -217,201,216,217,199,216,216,201,217,217,216,216,218,217,216, -218,200,201,200,216,199,200,201,217,199,200,216,216,199,200, -217,201,201,218,216,216,217,216,216,200,201,199,217,199,201, -216,217,216,199,217,218,199,200,217,199,218,217,201,200,218, -199,199,216,218,217,200,217,201,201,216,216,200,216,199,201, -201,201,217,199,216,216,216,201,199,199,218,199,218,200,200, -217,216,199,218,200,217,218,199,200,218,201,217,200,201,216, -200,217,201,218,216,217,200,201,201,200,218,200,201,201,199, -307,308,308,308,308,308,308,308,308,308,308,308,308,308,309 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="15" height="15" locked="1"> - <data encoding="csv"> -31,0,0,0,0,0,0,0,0,0,0,0,0,0,29, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -24,64,64,64,64,64,64,64,64,64,64,64,64,64,23 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="15" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,1044,0,0,0,0,0,0,0,1176,1048,1049,0, -0,0,0,1060,0,0,0,0,0,0,0,1192,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,581,582,583,0,0,0,0,0,0, -0,0,0,0,0,0,597,598,599,0,0,0,0,0,0, -0,0,0,0,0,0,613,614,615,0,0,0,0,0,0, -0,0,0,0,0,0,629,630,631,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,959,960,0,0,0,0,0,0,0,0,0,0,0,0, -0,975,976,0,0,0,0,0,0,0,0,0,1109,1110,0, -0,991,992,0,0,0,0,0,0,0,0,0,1125,1126,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="15" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="15" height="15" opacity="0.46"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,0,0,1816,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,1816,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,1816,0,0,0,0,0,0,0,0,0,1816,1816,1816, -1816,0,1816,0,0,0,0,0,0,0,0,0,1816,1816,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioTreasureRoom.xml b/src/resources/dungeons/bienio/BienioTreasureRoom.xml deleted file mode 100644 index e1a1def9ebcac10bf4d74dd7dcb68da62cb5dbc5..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioTreasureRoom.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="15" height="15" tilewidth="16" tileheight="16" infinite="0" nextlayerid="6" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="15" height="15" locked="1"> - <data encoding="csv"> -291,291,291,291,291,291,291,291,291,291,291,291,291,291,291, -308,308,308,308,308,308,308,308,308,308,308,308,308,308,308, -200,201,201,199,201,200,217,218,199,200,216,216,218,217,216, -216,216,199,216,216,216,216,200,217,218,200,199,200,200,199, -217,201,199,216,200,200,199,217,201,216,216,200,199,199,200, -199,218,200,217,199,218,199,200,200,201,216,201,217,201,201, -218,199,200,201,218,216,199,201,200,200,200,201,200,218,201, -199,218,217,199,200,201,216,199,201,199,216,216,216,200,217, -218,217,217,217,218,216,200,201,200,199,200,201,216,199,201, -217,201,201,216,201,200,200,216,218,199,218,200,218,200,217, -199,216,218,199,201,216,217,216,218,216,201,218,217,200,200, -201,200,199,201,217,199,201,217,199,199,200,199,216,201,199, -200,218,201,218,218,200,216,217,216,199,218,201,218,199,199, -201,216,201,216,199,200,216,200,199,218,200,200,218,200,216, -307,308,308,308,308,308,308,308,308,308,308,308,308,308,309 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="15" height="15" locked="1"> - <data encoding="csv"> -31,0,0,0,0,0,0,0,0,0,0,0,0,0,29, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -48,0,0,0,0,0,0,0,0,0,0,0,0,0,46, -24,64,64,64,64,64,64,64,64,64,64,64,64,64,23 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="15" height="15" locked="1"> - <data encoding="csv"> -0,1512,0,0,0,0,0,0,0,0,0,0,0,1513,0, -0,1528,1176,0,0,0,0,0,0,0,0,0,0,1529,0, -0,0,1192,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,959,960,661,662,663,0,0,0,0,0,0, -0,0,0,0,975,976,677,678,679,0,0,0,0,0,0, -0,0,0,0,991,992,693,694,695,0,0,0,0,0,0, -0,0,0,0,0,0,709,710,711,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1224,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="15" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="Collision" width="15" height="15" opacity="0.57"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,1816,1816,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,1816,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,0,0,0,0,0,0,0,0,0,0,0,0,0,1816, -1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioVerticalCorridorDownEntrance.xml b/src/resources/dungeons/bienio/BienioVerticalCorridorDownEntrance.xml deleted file mode 100644 index 31667b200fad5b265f3eef2cad3fa44b7be963c6..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioVerticalCorridorDownEntrance.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="7" height="3" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="7" height="3"> - <data encoding="csv"> -201,217,201,199,218,200,217, -199,216,200,199,217,217,218, -218,218,201,201,201,200,218 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="7" height="3"> - <data encoding="csv"> -31,0,0,0,0,0,29, -48,0,0,0,0,0,46, -48,0,0,0,0,0,46 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="Collision" width="7" height="3" locked="1" opacity="0.35"> - <data encoding="csv"> -1816,0,0,0,0,0,1816, -1816,0,0,0,0,0,1816, -1816,0,0,0,0,0,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/BienioVerticalCorridorUpEntrance.xml b/src/resources/dungeons/bienio/BienioVerticalCorridorUpEntrance.xml deleted file mode 100644 index 83a4115aa0ad9b62b09257992df3b5cb0d24dfde..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/BienioVerticalCorridorUpEntrance.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="7" height="3" tilewidth="16" tileheight="16" infinite="0" nextlayerid="7" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/bienio/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/bienio/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="7" height="3" locked="1"> - <data encoding="csv"> -216,217,216,200,216,217,201, -216,218,200,199,218,218,216, -217,199,200,199,217,218,218 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="7" height="3" locked="1"> - <data encoding="csv"> -48,0,0,0,0,0,46, -31,0,0,0,0,0,29, -7,0,0,0,0,0,6 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="Collision" width="7" height="3" locked="1" opacity="0.35"> - <data encoding="csv"> -1816,0,0,0,0,0,1816, -1816,0,0,0,0,0,1816, -1816,0,0,0,0,0,1816 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/bienio/Interiors_free_16x16.xml b/src/resources/dungeons/bienio/Interiors_free_16x16.xml deleted file mode 100644 index 321fb81c02f63cdf7be6f417c4474cdc73114e7b..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/Interiors_free_16x16.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="Interiors_free_16x16" tilewidth="16" tileheight="16" tilecount="1424" columns="16"> - <image source="resources/Tiles/Interiors_free_16x16.png" width="256" height="1424"/> -</tileset> diff --git a/src/resources/dungeons/bienio/Room_Builder_free_16x16.xml b/src/resources/dungeons/bienio/Room_Builder_free_16x16.xml deleted file mode 100644 index 374de6b18935ee6479fccd09dc75668c297a4c03..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/Room_Builder_free_16x16.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="Room_Builder_free_16x16" tilewidth="16" tileheight="16" tilecount="391" columns="17"> - <image source="resources/Tiles/Room_Builder_free_16x16.png" width="272" height="368"/> -</tileset> diff --git a/src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml b/src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml deleted file mode 100644 index 2df37664054b925cc80515f275faf0875ae94a17..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/Room_Builder_free_16x16_2.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="Room_Builder_free_16x16_2" tilewidth="16" tileheight="16" tilecount="391" columns="17"> - <image source="resources/Tiles/Room_Builder_free_16x16_2.png" width="272" height="368"/> -</tileset> diff --git a/src/resources/dungeons/bienio/collision.xml b/src/resources/dungeons/bienio/collision.xml deleted file mode 100644 index e39b7be571ea34d0b4b1278e371ffaa2f1b6eca2..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/bienio/collision.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="tilemap_packed" tilewidth="16" tileheight="16" tilecount="1" columns="1"> - <image source="resources/Tiles/collision.png" width="16" height="16"/> -</tileset> diff --git a/src/resources/dungeons/eletrica/EletricaHorizontalCorridor.xml b/src/resources/dungeons/eletrica/EletricaHorizontalCorridor.xml deleted file mode 100644 index 8b688f969a60a59db998b91f768453b4afda747f..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaHorizontalCorridor.xml +++ /dev/null @@ -1,87 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="15" height="7" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="15" height="7"> - <data encoding="csv"> -91,91,91,91,91,91,91,91,91,91,91,91,91,91,91, -104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, -204,219,220,204,221,220,220,202,221,202,202,220,204,202,202, -219,202,220,204,221,202,220,221,220,202,202,220,221,219,204, -202,202,219,221,204,219,219,220,219,202,204,204,219,221,219, -204,202,220,220,221,221,204,203,204,220,219,221,202,203,202, -104,104,104,104,104,104,104,104,104,104,104,104,104,104,104 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="atlas_16x" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x_2" width="15" height="7" locked="1"> - <data encoding="csv"> -2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2346,2346,2346,2346,2346,2346,2346,2346,2346,2346,2346,2346,2346,2346,2346, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="7" name="Collision" width="15" height="7" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaHorizontalCorridorLeftEntrance.xml b/src/resources/dungeons/eletrica/EletricaHorizontalCorridorLeftEntrance.xml deleted file mode 100644 index 3aaa6fc46cd7cfa581a9e8cc924be1cd714eb946..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaHorizontalCorridorLeftEntrance.xml +++ /dev/null @@ -1,87 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="3" height="7" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="2" name="Room_Builder_free_16x16_2" width="3" height="7"> - <data encoding="csv"> -91,92,203, -104,105,203, -219,203,219, -219,219,204, -221,204,221, -203,203,220, -104,105,204 -</data> - </layer> - <layer id="1" name="Room_Builder_free_16x16" width="3" height="7"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="5" name="atlas_16x" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x_2" width="3" height="7"> - <data encoding="csv"> -2538,2538,2492, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -2346,2346,2396, -0,0,2444 -</data> - </layer> - <layer id="7" name="Collision" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaHorizontalCorridorRightEntrance.xml b/src/resources/dungeons/eletrica/EletricaHorizontalCorridorRightEntrance.xml deleted file mode 100644 index 083eb212a169d67d9fde6ec31276027ee722a04f..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaHorizontalCorridorRightEntrance.xml +++ /dev/null @@ -1,87 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="3" height="7" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="2" name="Room_Builder_free_16x16_2" width="3" height="7"> - <data encoding="csv"> -203,90,91, -203,103,104, -220,203,202, -219,219,220, -220,204,221, -202,203,221, -219,103,104 -</data> - </layer> - <layer id="1" name="Room_Builder_free_16x16" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="5" name="atlas_16x" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x_2" width="3" height="7"> - <data encoding="csv"> -2488,2538,2538, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -2345,2346,2346, -2440,0,0 -</data> - </layer> - <layer id="7" name="Collision" width="3" height="7" locked="1"> - <data encoding="csv"> -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0, -0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaRoom_1.xml b/src/resources/dungeons/eletrica/EletricaRoom_1.xml deleted file mode 100644 index 2cc6ef6326499577f24903401781b604e218ef75..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaRoom_1.xml +++ /dev/null @@ -1,213 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="25" height="25" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,91,91,91,91,91,91,91,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,104,104,104,104,104,104,104,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,202,221,219,220,221,219,219,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,202,202,204,221,202,202,203,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,204,204,220,220,202,204,202,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,221,203,203,221,219,219,220,0,0,0,0,0,0,0,0,0, -91,91,91,91,91,91,91,91,92,203,219,204,203,204,202,203,90,91,91,91,91,91,91,91,91, -104,104,104,104,104,104,104,104,105,220,204,202,202,220,202,203,103,104,104,104,104,104,104,104,104, -202,203,204,202,203,204,202,203,204,202,203,203,221,220,202,202,203,204,202,203,204,202,203,204,202, -219,220,221,219,220,221,219,220,221,220,221,220,221,202,204,220,220,221,219,220,221,219,220,221,219, -202,203,204,202,203,204,202,203,204,220,204,219,202,204,203,203,203,204,202,203,204,202,203,204,202, -219,219,204,221,220,220,203,219,202,202,220,220,204,220,203,221,202,219,220,221,203,219,220,221,204, -202,220,203,220,203,221,203,203,204,221,202,220,204,220,219,203,203,219,202,204,221,221,203,220,203, -203,220,203,203,219,202,202,202,221,220,221,219,204,202,204,204,221,219,202,203,220,204,202,219,204, -220,221,219,220,220,221,202,203,202,204,221,203,203,220,202,220,220,221,219,204,204,204,220,204,203, -220,221,220,219,204,219,202,219,203,220,203,219,221,221,221,202,202,220,203,219,221,219,204,204,203, -202,203,204,202,203,204,202,202,221,221,220,204,221,202,221,221,221,204,202,203,204,202,203,204,202, -103,104,104,104,104,104,104,221,221,221,203,219,220,220,204,203,221,220,104,104,104,104,104,104,105, -0,0,0,0,0,0,0,202,221,203,220,220,220,204,202,221,219,202,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,202,219,221,204,221,220,203,204,203,219,219,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,221,204,202,202,204,219,220,220,220,219,202,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,202,203,204,203,221,221,204,220,204,203,202,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,204,204,202,204,221,204,219,219,219,202,204,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,103,104,204,202,220,220,221,202,204,104,105,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,103,104,104,104,104,104,105,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="25" height="25"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1048,1049,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1588,1589,0,0,0,0,0,1224,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1343,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1005,1006,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1021,1022,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="atlas_16x" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1980,0,0,0,0,1837,1838,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,1885,1886,0,0,0,0,0,0,0,0,0, -2304,2305,1830,1831,0,0,0,0,0,0,0,0,0,0,0,0,0,1827,1828,0,2307,0,0,0,0, -2352,2353,1878,1879,0,0,2167,0,0,0,0,0,0,0,0,0,0,1875,1876,2167,2355,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2265,0,0,0,0,0,0,0,2512,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2313,0,0,0,0,0,0,0,2560,2561,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2362,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2456,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2504,0,0,0,0,0,0,0,0,2360,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2408,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x_2" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,2491,2538,2538,2538,2538,2538,2489,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -2491,2538,2538,2538,2538,2538,2538,2538,2538,2492,0,0,0,0,0,2488,2538,2538,2538,2538,2538,2538,2538,2538,2489, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2395,2346,2346,2346,2346,2346,2346,2347,0,0,0,0,0,0,0,0,0,2345,2346,2346,2346,2346,2346,2346,2393, -0,0,0,0,0,0,0,2444,0,0,0,0,0,0,0,0,0,2440,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2444,0,0,0,0,0,0,0,0,0,2440,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2444,0,0,0,0,0,0,0,0,0,2440,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2444,0,0,0,0,0,0,0,0,0,2440,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2444,0,0,0,0,0,0,0,0,0,2440,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,2395,2346,2347,0,0,0,0,0,2345,2346,2393,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2538,2538,2538,2538,2538,2538,2538,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="7" name="Collision" width="25" height="25" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaRoom_2.xml b/src/resources/dungeons/eletrica/EletricaRoom_2.xml deleted file mode 100644 index 468b70557e9ce7c61ee321b8c8c97b036e27009a..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaRoom_2.xml +++ /dev/null @@ -1,353 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="25" height="45" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="25" height="45"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,91,91,91,91,91,91,91,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,104,104,104,104,104,104,104,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,221,221,204,220,221,220,220,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,203,221,220,203,204,203,204,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,203,204,219,204,203,204,204,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,91,91,91,92,202,220,220,203,204,203,203,90,91,91,91,0,0,0,0,0, -0,0,0,0,0,104,104,104,105,202,219,220,220,219,203,220,103,104,104,104,0,0,0,0,0, -0,0,0,0,0,220,221,202,219,220,203,219,202,204,221,220,204,203,203,202,0,0,0,0,0, -0,0,0,0,0,204,204,221,203,219,204,220,219,202,219,202,220,220,219,221,0,0,0,0,0, -0,0,0,0,0,221,221,220,219,204,220,203,220,221,202,219,203,204,203,202,0,0,0,0,0, -0,0,0,0,0,202,202,203,219,203,219,219,219,219,219,220,203,204,204,219,0,0,0,0,0, -0,0,0,0,0,204,204,219,221,202,204,220,202,202,204,203,219,202,220,220,0,0,0,0,0, -0,0,0,0,0,220,202,204,219,219,221,220,202,203,220,202,202,204,203,220,0,0,0,0,0, -0,0,0,0,0,219,219,220,204,204,202,219,219,203,203,219,220,219,220,203,0,0,0,0,0, -0,0,0,0,0,202,219,204,221,202,219,219,204,220,203,202,202,220,203,219,0,0,0,0,0, -0,0,0,0,0,220,202,220,204,203,204,202,221,219,221,202,202,202,202,203,0,0,0,0,0, -91,91,91,91,92,203,219,203,204,219,219,203,219,219,202,220,220,202,220,204,90,91,91,91,91, -104,104,104,104,105,220,203,203,219,220,219,221,221,204,219,220,202,220,203,203,103,104,104,104,104, -219,203,221,202,204,204,219,203,221,219,219,220,220,202,203,219,202,202,202,204,202,204,220,202,221, -204,202,204,219,221,219,204,204,221,219,220,203,221,220,221,203,221,219,204,220,203,221,204,221,219, -220,202,202,202,219,221,220,204,203,220,221,203,221,204,220,204,202,219,202,202,221,203,202,203,203, -219,220,220,219,219,220,221,204,203,203,203,219,219,219,220,221,220,204,204,204,202,220,203,221,202, -219,221,219,220,220,204,204,219,203,204,203,204,204,204,219,220,202,202,204,203,202,202,203,221,204, -202,220,202,221,204,220,220,221,203,221,204,203,204,220,203,203,220,220,219,220,203,220,204,202,219, -202,219,202,220,204,204,203,220,219,220,220,203,202,202,221,203,203,221,202,204,220,219,221,203,221, -221,220,204,202,221,204,220,220,202,221,220,219,204,220,221,220,220,204,220,220,203,202,204,219,203, -220,204,204,221,220,220,204,202,221,204,204,203,202,202,204,221,202,219,203,204,221,204,202,202,221, -220,219,221,219,204,221,221,219,204,204,202,220,221,219,204,202,221,219,221,220,203,203,221,202,219, -220,204,221,204,221,221,204,221,204,203,204,220,204,202,219,204,219,202,220,202,204,204,221,203,220, -220,219,204,220,203,219,203,219,220,219,221,221,202,203,202,202,204,204,202,203,220,202,221,203,203, -221,221,202,221,202,203,202,203,220,203,220,220,204,219,203,220,203,202,203,220,220,221,220,219,203, -220,203,202,203,220,220,219,220,221,204,221,221,221,202,202,220,221,221,219,203,202,221,221,202,204, -219,220,219,204,203,204,219,219,202,202,219,219,202,219,203,204,221,219,204,221,220,220,219,202,204, -219,219,219,204,221,219,219,202,221,219,221,202,220,203,202,203,202,221,202,220,220,219,202,202,203, -219,221,204,220,203,204,202,203,204,220,202,220,203,204,204,202,220,220,221,221,221,202,219,204,202, -220,221,220,204,219,220,202,204,219,221,220,202,219,202,219,203,202,204,203,202,219,203,220,219,203, -220,204,204,203,202,204,202,202,220,202,204,202,204,202,220,219,204,204,219,203,204,220,203,221,221, -219,219,204,202,202,221,204,203,220,220,204,220,219,202,219,204,219,219,219,202,220,219,220,202,202, -91,91,91,91,91,91,91,91,91,221,219,203,204,220,221,220,91,91,91,91,91,91,91,91,91, -104,104,104,104,104,104,104,104,104,203,203,221,220,221,202,203,104,104,104,104,104,104,104,104,104, -0,0,0,0,0,0,0,0,0,204,220,220,220,220,203,219,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,220,202,203,221,221,203,220,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,219,204,219,219,221,220,202,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,103,104,104,104,104,104,105,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="25" height="45" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,204,221,219,220,202,220,219,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,220,221,204,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,219,204,221,202,203,202,187,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="25" height="45" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,1154,1155,0,0,0,0,0,0,0,0,0,1044,0,0,0,0,0,0,0, -0,0,0,0,0,1176,649,652,0,0,0,0,0,0,0,0,0,1060,0,0,0,0,0,0,0, -0,0,0,0,0,1192,665,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,970,0,0,0,0,0,0,0,0,0,0,0,0,0,970,0,0,0,0,0, -0,0,0,0,0,986,0,0,0,0,0,0,0,0,0,0,0,0,0,986,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,970,0,0,0,0,1603,0,0,0,1224,0,0,0,0,970,0,0,0,0,0, -0,0,0,0,0,986,0,0,0,0,1619,0,0,0,0,0,0,0,0,986,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,634,635,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,634,635,1513,0, -0,0,650,651,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,650,651,1529,0, -0,0,666,667,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,666,667,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,972,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,971,0, -0,988,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1603,0,0,0,0,0,987,0, -0,0,0,0,0,0,853,854,0,0,0,0,0,0,0,0,0,1619,0,0,0,0,0,0,0, -0,0,0,0,0,0,869,870,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1124, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1140, -1109,1110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1125,1126,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,1423,1424,0,0,0,0,0,0,1224,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1295, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1311, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,972,0, -0,971,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,988,0, -0,987,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1010,1011,1012,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1026,1027,1028,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="25" height="45" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,971,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,987,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,1001,0,0,0,0,0, -0,0,0,0,0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1037,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1053,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1037,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1053,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1037,0,0, -0,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1053,0,0, -0,1017,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1003,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1001,0, -0,0,1019,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1017,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="atlas_16x" width="25" height="45" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x_2" width="25" height="45"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,2491,2538,2538,2538,2538,2538,2489,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,2392,2346,2346,2346,2346,2444,0,0,0,0,0,2440,2346,2346,2346,2346,2396,0,0,0,0, -0,0,0,0,2440,2538,2538,2538,2538,2539,0,0,0,0,0,2488,2538,2538,2538,2538,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -0,0,0,0,2440,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2444,0,0,0,0, -2346,2346,2346,2346,2393,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2395,2346,2346,2346,2346, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2538,2538,2538,2538,2538,2538,2538,2538,2538,2444,0,0,0,0,0,2440,2538,2538,2538,2538,2538,2538,2538,2538,2538, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2444,0,0,0,0,0,2440,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,2538,2538,2538,2538,2538,2538,2538,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="7" name="Collision" width="25" height="45" locked="1" opacity="0.52"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,2584,2584,2584,2584,2584,2584,2584,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,2584,2584,2584,2584,2584,0,0,0,0,0,0,0,2584,2584,2584,2584,2584,0,0,0,0, -0,0,0,0,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,0,0,0,0, -0,0,0,0,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,0,0,0,0, -0,0,0,0,2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584,0,0,0,0, -0,0,0,0,2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584,0,0,0,0, -0,0,0,0,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,0,0,0,0, -0,0,0,0,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,0,0,0,0, -0,0,0,0,2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584,2584,0,0,0,0, -0,0,0,0,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584,0,0,0,0, -0,0,0,0,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,0,0,0,0, -0,0,0,0,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,0,0,0,0, -2584,2584,2584,2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584,2584,2584,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584, -2584,2584,2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,0,0,2584, -2584,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2584,2584,2584,0,2584, -2584,2584,2584,2584,2584,2584,2584,2584,2584,0,0,0,0,0,0,0,2584,2584,2584,2584,2584,2584,2584,2584,2584, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,2584,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2584,2584,2584,2584,2584,2584,2584,2584,2584,0,0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaStart.xml b/src/resources/dungeons/eletrica/EletricaStart.xml deleted file mode 100644 index 305ee19b7180a9338eb9ea128bcac84ce43d73c8..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaStart.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="15" height="15" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="15" height="15"> - <data encoding="csv"> -91,91,91,91,91,91,91,91,91,91,91,91,91,91,91, -104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, -203,220,203,220,221,204,219,219,219,220,221,203,203,219,219, -202,203,220,219,203,202,202,221,204,220,221,219,220,220,204, -220,203,204,204,219,219,220,219,219,203,219,203,202,202,204, -221,202,219,202,203,220,202,221,220,204,203,221,202,221,220, -221,219,203,221,221,203,219,220,220,204,221,204,220,203,204, -204,204,220,202,202,220,203,219,203,203,204,220,204,202,204, -204,203,221,220,220,220,202,219,221,202,203,220,203,204,202, -220,204,221,220,203,220,203,204,221,221,203,219,219,219,220, -220,220,219,204,220,204,220,221,204,203,221,221,220,203,221, -204,220,221,221,203,202,203,220,203,220,204,220,221,220,204, -202,203,202,220,219,202,204,221,221,202,219,219,202,202,221, -0,221,203,203,204,202,220,221,221,204,204,219,204,221,0, -0,103,104,104,104,104,104,104,104,104,104,104,104,105,0 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="15" height="15"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="15" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,1044,1176,0,0,0,0,0,0,0,1002,1003,0,0, -0,0,1060,1192,0,0,0,0,0,0,0,1018,1019,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,661,662,663,0,0,0,0,0,0, -0,0,0,0,0,0,677,678,679,0,0,0,0,0,0, -0,0,0,0,0,0,693,694,695,0,0,0,0,0,0, -0,0,0,0,0,0,709,710,711,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,853,854,0,0, -0,0,1034,1035,0,0,0,0,0,0,0,869,870,0,0, -0,0,1050,1051,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="15" height="15" locked="1"> - <data encoding="csv"> -0,0,0,455,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,471,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,563,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,579,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="atlas_16x" width="15" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x_2" width="15" height="15"> - <data encoding="csv"> -2491,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2489, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2444,0,0,0,0,0,0,0,0,0,0,0,0,0,2440, -2489,0,0,0,0,0,0,0,0,0,0,0,0,0,2491, -2537,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2538,2539 -</data> - </layer> - <layer id="7" name="Collision" width="15" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaVerticalCorridor.xml b/src/resources/dungeons/eletrica/EletricaVerticalCorridor.xml deleted file mode 100644 index f20cdc790a378ab315c9f758140ad8d1b675ef7f..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaVerticalCorridor.xml +++ /dev/null @@ -1,143 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="7" height="15" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="7" height="15" locked="1"> - <data encoding="csv"> -202,221,220,219,204,203,221, -202,202,203,220,203,203,203, -203,202,203,221,219,220,203, -220,221,202,202,204,219,203, -202,219,219,220,221,220,202, -221,219,202,204,204,221,221, -204,220,219,204,221,202,204, -203,220,204,221,204,221,203, -219,219,220,219,220,202,204, -203,219,219,203,203,202,221, -220,220,203,220,219,203,204, -202,204,221,220,203,221,220, -219,204,203,202,202,220,221, -204,219,202,220,202,202,220, -204,219,203,204,220,204,203 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="5" name="atlas_16x" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x_2" width="7" height="15"> - <data encoding="csv"> -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440 -</data> - </layer> - <layer id="7" name="Collision" width="7" height="15" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaVerticalCorridorDownEntrance.xml b/src/resources/dungeons/eletrica/EletricaVerticalCorridorDownEntrance.xml deleted file mode 100644 index be00c335d0d2dabbfa9417350b956bd4f8e89c2c..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaVerticalCorridorDownEntrance.xml +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="7" height="3" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="7" height="3" locked="1"> - <data encoding="csv"> -220,204,219,202,221,203,221, -221,219,219,204,220,204,220, -219,219,203,220,221,203,219 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x" width="7" height="3"> - <data encoding="csv"> -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440 -</data> - </layer> - <layer id="7" name="atlas_16x_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="8" name="Collision" width="7" height="3"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/EletricaVerticalCorridorUpEntrance.xml b/src/resources/dungeons/eletrica/EletricaVerticalCorridorUpEntrance.xml deleted file mode 100644 index be00c335d0d2dabbfa9417350b956bd4f8e89c2c..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/EletricaVerticalCorridorUpEntrance.xml +++ /dev/null @@ -1,59 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<map version="1.10" tiledversion="1.10.1" orientation="orthogonal" renderorder="right-down" width="7" height="3" tilewidth="16" tileheight="16" infinite="0" nextlayerid="9" nextobjectid="1"> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="1" source="src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="392" source="src/resources/dungeons/eletrica/Interiors_free_16x16.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="1816" source="src/resources/dungeons/eletrica/atlas_16x.xml"/> - <tileset firstgid="2584" source="src/resources/dungeons/eletrica/collision.xml"/> - <layer id="1" name="Room_Builder_free_16x16" width="7" height="3" locked="1"> - <data encoding="csv"> -220,204,219,202,221,203,221, -221,219,219,204,220,204,220, -219,219,203,220,221,203,219 -</data> - </layer> - <layer id="2" name="Room_Builder_free_16x16_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="3" name="Interiors_free_16x16" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="4" name="Interiors_free_16x16_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="6" name="atlas_16x" width="7" height="3"> - <data encoding="csv"> -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440, -2444,0,0,0,0,0,2440 -</data> - </layer> - <layer id="7" name="atlas_16x_2" width="7" height="3" locked="1"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> - <layer id="8" name="Collision" width="7" height="3"> - <data encoding="csv"> -0,0,0,0,0,0,0, -0,0,0,0,0,0,0, -0,0,0,0,0,0,0 -</data> - </layer> -</map> diff --git a/src/resources/dungeons/eletrica/Interiors_free_16x16.xml b/src/resources/dungeons/eletrica/Interiors_free_16x16.xml deleted file mode 100644 index 321fb81c02f63cdf7be6f417c4474cdc73114e7b..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/Interiors_free_16x16.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="Interiors_free_16x16" tilewidth="16" tileheight="16" tilecount="1424" columns="16"> - <image source="resources/Tiles/Interiors_free_16x16.png" width="256" height="1424"/> -</tileset> diff --git a/src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml b/src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml deleted file mode 100644 index 2df37664054b925cc80515f275faf0875ae94a17..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/Room_Builder_free_16x16_2.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="Room_Builder_free_16x16_2" tilewidth="16" tileheight="16" tilecount="391" columns="17"> - <image source="resources/Tiles/Room_Builder_free_16x16_2.png" width="272" height="368"/> -</tileset> diff --git a/src/resources/dungeons/eletrica/atlas_16x.xml b/src/resources/dungeons/eletrica/atlas_16x.xml deleted file mode 100644 index 0588c28bb690a8882bc7bbb358124eae57d613ae..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/atlas_16x.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="atlas_16x" tilewidth="16" tileheight="16" tilecount="768" columns="48"> - <image source="resources/Tiles/atlas_16x.png" width="768" height="256"/> -</tileset> diff --git a/src/resources/dungeons/eletrica/collision.xml b/src/resources/dungeons/eletrica/collision.xml deleted file mode 100644 index e39b7be571ea34d0b4b1278e371ffaa2f1b6eca2..0000000000000000000000000000000000000000 --- a/src/resources/dungeons/eletrica/collision.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tileset version="1.10" tiledversion="1.10.1" name="tilemap_packed" tilewidth="16" tileheight="16" tilecount="1" columns="1"> - <image source="resources/Tiles/collision.png" width="16" height="16"/> -</tileset> diff --git a/src/resources/npcs/oldMan/oldMan_Down.png b/src/resources/npcs/oldMan/oldMan_Down.png deleted file mode 100644 index 60f6ceb56e64b791206f69cb604f064be24d0a61..0000000000000000000000000000000000000000 Binary files a/src/resources/npcs/oldMan/oldMan_Down.png and /dev/null differ diff --git a/src/resources/npcs/oldMan/oldMan_Left.png b/src/resources/npcs/oldMan/oldMan_Left.png deleted file mode 100644 index 018ade56de5180211dd2347f1325afd3c02494b2..0000000000000000000000000000000000000000 Binary files a/src/resources/npcs/oldMan/oldMan_Left.png and /dev/null differ diff --git a/src/resources/npcs/oldMan/oldMan_Right.png b/src/resources/npcs/oldMan/oldMan_Right.png deleted file mode 100644 index 83f253e12e838d99fdfdc9217859bcf8060fdf29..0000000000000000000000000000000000000000 Binary files a/src/resources/npcs/oldMan/oldMan_Right.png and /dev/null differ diff --git a/src/resources/npcs/oldMan/oldMan_Up.png b/src/resources/npcs/oldMan/oldMan_Up.png deleted file mode 100644 index 63517f5ecb5c538c3826008b8c99d66beb15f175..0000000000000000000000000000000000000000 Binary files a/src/resources/npcs/oldMan/oldMan_Up.png and /dev/null differ diff --git a/src/resources/player/player2.png b/src/resources/player/player2.png deleted file mode 100644 index 8daee923d5960cd7c83b5b68d38a907e02613d77..0000000000000000000000000000000000000000 Binary files a/src/resources/player/player2.png and /dev/null differ diff --git a/src/tile/BienioSupStrategy.java b/src/tile/BienioSupStrategy.java index 7d956b9f57d3e8557bf83b2e6e65c0999492517e..188ea904bb7916abde62cc70640a66e272ba39fd 100644 --- a/src/tile/BienioSupStrategy.java +++ b/src/tile/BienioSupStrategy.java @@ -14,7 +14,7 @@ public class BienioSupStrategy extends ChangeTileStrategy{ public BienioSupStrategy () { regions = new ArrayList<>(); regions.add(new int[]{Constants.TILE_SIZE * 33, Constants.TILE_SIZE * 42 , Constants.TILE_SIZE , Constants.TILE_SIZE * 2}); - regions.add(new int[]{Constants.TILE_SIZE * 12, Constants.TILE_SIZE * 19 , Constants.TILE_SIZE * 48, Constants.TILE_SIZE * 50}); + } /** @@ -25,14 +25,9 @@ public class BienioSupStrategy extends ChangeTileStrategy{ */ public int changeMap (GameEntity player, int mapNum) { int index = changePosition(player.getPosition()); - switch (index) { - case 0 -> { - player.setPosition(new Vector(Constants.TILE_SIZE * 13, Constants.TILE_SIZE * 47)); - return 0; - } - case 1 -> { - return -1; - } + if (index != -1) { + player.setPosition(new Vector(6 * Constants.TILE_SIZE, 47 * Constants.TILE_SIZE)); + return 0; } return mapNum; } diff --git a/src/tile/EstacionamentoStrategy.java b/src/tile/EstacionamentoStrategy.java index f24c30af613de33510feb95481a0d81506411794..dd0a466e895003b27c355d442a6cac8a5e21b412 100644 --- a/src/tile/EstacionamentoStrategy.java +++ b/src/tile/EstacionamentoStrategy.java @@ -13,8 +13,9 @@ public class EstacionamentoStrategy extends ChangeTileStrategy { */ public EstacionamentoStrategy () { regions = new ArrayList<>(); - regions.add(new int[]{Constants.TILE_SIZE * 4, Constants.TILE_SIZE * 8, Constants.TILE_SIZE * 48, Constants.TILE_SIZE * 49}); - regions.add(new int[]{Constants.TILE_SIZE * 48, Constants.TILE_SIZE * 49, Constants.TILE_SIZE * 21, Constants.TILE_SIZE * 24}); + regions.add(new int[]{Constants.TILE_SIZE * 39, Constants.TILE_SIZE * 46, Constants.TILE_SIZE, Constants.TILE_SIZE * 2}); + regions.add(new int[]{Constants.TILE_SIZE * 3, Constants.TILE_SIZE * 8, Constants.TILE_SIZE * 48, Constants.TILE_SIZE * 49}); + } /** @@ -25,15 +26,14 @@ public class EstacionamentoStrategy extends ChangeTileStrategy { */ public int changeMap (GameEntity player, int mapNum) { int index = changePosition(player.getPosition()); - switch (index) { - case 0 -> { - player.setPosition(new Vector(Constants.TILE_SIZE * 39, Constants.TILE_SIZE * 3)); - return 1; - } - case 1 -> { - player.setPosition(new Vector(Constants.TILE_SIZE * 39, Constants.TILE_SIZE * 3)); - return -3; - } + switch (index) { + case 0 -> { + return -1; + } + case 1 -> { + player.setPosition(new Vector(Constants.TILE_SIZE * 39, Constants.TILE_SIZE * 3)); + return 1; + } } return mapNum; } diff --git a/src/tile/Layer.java b/src/tile/Layer.java index 4925ed620cc19f50b628835a6b82ab66a0dae9d7..c5cb2e959e7b2a01ae767aa8d9e1c32f82395b72 100644 --- a/src/tile/Layer.java +++ b/src/tile/Layer.java @@ -20,9 +20,6 @@ public class Layer { public Layer(String[] data, int width, int height, int fistGrid, Sprite sprite) { this.tileMap = loadLayer(data, width, height, fistGrid, sprite); } - public Layer(int[][] data, int width, int height, int fistGid, Sprite sprite) { - this.tileMap = loadLayer(data, width, height, fistGid, sprite); - } /** * Método responsável por carregar a matriz de imagens @@ -39,19 +36,7 @@ public class Layer { for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { if (Integer.parseInt(data[i * width + j]) != 0) - layer[i][j] = tiles[Integer.parseInt(data[i * width + j]) - fistGrid]; - } - } - return layer; - } - - private BufferedImage[][] loadLayer (int[][] data, int width, int height, int fistGrid, Sprite sprite) { - BufferedImage[][] layer = new BufferedImage[height][width]; - BufferedImage[] tiles = loadTiles(sprite); - for (int i = 0; i < height; i++) { - for (int j = 0; j < width; j++) { - if (data[i][j] != 0) - layer[i][j] = tiles[data[i][j] - fistGrid]; + layer[i][j] = tiles[Integer.parseInt(data[i * width + j]) - fistGrid]; //Tile(tiles[Integer.parseInt(data[i * width + j]) - fistGrid]); } } return layer; @@ -67,7 +52,6 @@ public class Layer { int width = sprite.getSpriteWidth(); BufferedImage[] tiles = new BufferedImage[height * width]; - //O tile número "x" estará na posição x do vetor for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { @@ -100,7 +84,7 @@ public class Layer { private void checkCollision (int tileX, int tileY, GameEntity entity) { int difX = (int) Math.abs(tileY * Constants.TILE_SIZE + Constants.TILE_SIZE /2.0 - entity.getWorldPosX()); int difY = (int) Math.abs(tileX * Constants.TILE_SIZE + Constants.TILE_SIZE /2.0 - entity.getWorldPosY()); - System.out.println("TileX: " + tileX + "TileY: " + tileY); + if (tileMap[tileX][tileY] != null) { if (difX <= Constants.TILE_SIZE && difY <= Constants.TILE_SIZE) { if (difX < difY) { diff --git a/src/tile/MapTileManager.java b/src/tile/MapTileManager.java deleted file mode 100644 index bee8ffaa35faf9c067b48de1523bb0851e507895..0000000000000000000000000000000000000000 --- a/src/tile/MapTileManager.java +++ /dev/null @@ -1,139 +0,0 @@ -package tile; - -import java.awt.*; -import game_entity.GameEntity; -import gameloop.render.Draw; -import gameloop.render.DrawTileManager; -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; -import org.w3c.dom.Node; -import org.w3c.dom.Element; - -import java.util.ArrayList; - - -/** - * Classe que decide qual mapa seguir, carrega as imagens dos tiles e os desenha na janela do jogo - */ -public class MapTileManager implements TileManager{ - public ChangeTileStrategy changeStrategy; // Estratégia para mudanças de mapa - ArrayList<Layer> layers = new ArrayList<>(); // Conjunto de camadas (layers) que formam o mapa - int WorldRolls;// Número de linhas no mundo - int WorldColumns; //Número de colunas no mundo - - private ArrayList<int[][]> mapTileNumbers; - Draw drawMethod; - - /** - * Construtor da classe TileManager - * Adiciona um mapa e carrega os tiles - * @param path Caminho do arquivo de mapa - */ - public MapTileManager(String path, GameEntity player, ChangeTileStrategy strategy) { - addTileMap(path); - this.changeStrategy = strategy; - drawMethod = new DrawTileManager(layers, WorldRolls, WorldColumns, player); - } - - public MapTileManager(String path) { - addTileMap(path); - } - - /** Este método é responsável por implementar a lógica para a renderização dos tiles - * Implementa também a lógica da câmera do jogo (centrada no player) - * @param g2d Ferramenta que desenha as imagens na tela - */ - public void draw (Graphics2D g2d) { - drawMethod.draw(g2d); - } - - /** - * Método responsável por ler mapas - * @param path Caminho do arquivo de mapa - */ - public void addTileMap (String path) { - ArrayList<Sprite> sprites = new ArrayList<>(); - mapTileNumbers = new ArrayList<>(); - String name; - int height = 0; - int width = 0; - ArrayList<String[]> data = new ArrayList<>(); - ArrayList<TilesetDocument> tilesetDocuments = new ArrayList<>(); - NodeList list; - Node node; - Element element; - - try { - Document map = MapDocument.loadDocument(path); - list = MapDocument.getListByTag(map,"tileset"); - for (int temp = 0; temp < list.getLength(); temp++) { - node = list.item(temp); - if (node.getNodeType() == Node.ELEMENT_NODE) { - element = (Element) node; - System.out.println("atributos: " + element.getAttribute("firstgid") + ", " + element.getAttribute("source")); - tilesetDocuments.add(new TilesetDocument( - "/" + element.getAttribute("source"), - Integer.parseInt(element.getAttribute("firstgid"))) - ); - sprites.add(new Sprite( - tilesetDocuments.get(temp).getImagePath(), - tilesetDocuments.get(temp).getTileWidth(), - tilesetDocuments.get(temp).getTileHeight()) - ); - } - } - list = MapDocument.getListByTag(map,"layer"); - for (int i = 0; i < list.getLength(); i++) { - node = list.item(i); - if (node.getNodeType() == Node.ELEMENT_NODE) { - element = (Element) node; - name = element.getAttribute("name"); - if (i == 0) { - width = Integer.parseInt(element.getAttribute("width")); - height = Integer.parseInt(element.getAttribute("height")); - } - data.add(element.getElementsByTagName("data").item(0).getTextContent().replaceAll("\\s+", "").split(",")); - layers.add(new Layer( - data.get(i), - width, - height, - tilesetDocuments.get(i).getFirstgid(), - sprites.get(i)) - - ); - mapTileNumbers.add(getLayerMatrix(data.get(i), width, height, tilesetDocuments.get(i).getFirstgid())); - } - } - this.WorldColumns = width; - this.WorldRolls = height; - } catch (Exception e) { - e.printStackTrace(); - } - } - - /** - * @return Layer que tem tiles sólidos (deve possuir colisão) - */ - public Layer getCollisionLayer () { - return this.layers.get(this.layers.size() - 1); - } - - private int[][] getLayerMatrix (String[] data, int width, int height, int firstGid) { - int[][] matrix = new int[height][width]; - for (int i = 0; i < height; i++) { - for (int j = 0; j < width; j++) { - matrix[i][j] = Integer.parseInt(data[i * width + j]); - } - } - return matrix; - } - - public ArrayList<int[][]> getMapTileNumbers() { - return mapTileNumbers; - } - - - public ChangeTileStrategy getChangeStrategy() { - return changeStrategy; - } -} \ No newline at end of file diff --git a/src/tile/TileManager.java b/src/tile/TileManager.java index a1e31216046488299ca5db114a0df52fb1c958c5..73393a90ca5dde708aa2980992b6c1d3da53f88b 100644 --- a/src/tile/TileManager.java +++ b/src/tile/TileManager.java @@ -1,10 +1,134 @@ package tile; import java.awt.*; +import game_entity.GameEntity; +import org.w3c.dom.Document; +import org.w3c.dom.NodeList; +import org.w3c.dom.Node; +import org.w3c.dom.Element; -public interface TileManager { - void draw (Graphics2D g2d); - Layer getCollisionLayer (); - ChangeTileStrategy getChangeStrategy(); +import java.util.ArrayList; -} +import gameloop.Constants; + + +/** + * Classe que decide qual mapa seguir, carrega as imagens dos tiles e os desenha na janela do jogo + */ +public class TileManager { + public ChangeTileStrategy changeStrategy; // Estratégia para mudanças de mapa + ArrayList<Layer> layers = new ArrayList<>(); // Conjunto de camadas (layers) que formam o mapa + int WorldRolls;// Número de linhas no mundo + int WorldColumns; //Número de colunas no mundo + GameEntity player; + + /** + * Construtor da classe TileManager + * Adiciona um mapa e carrega os tiles + * @param path Caminho do arquivo de mapa + */ + public TileManager (String path, GameEntity player, ChangeTileStrategy strategy) { + addTileMap(path); + this.player = player; + this.changeStrategy = strategy; + } + + /** Este método é responsável por implementar a lógica para a renderização dos tiles + * Implementa também a lógica da câmera do jogo (centrada no player) + * @param g2d Ferramenta que desenha as imagens na tela + */ + public void draw (Graphics2D g2d) { + for (int worldRow = 0; worldRow < WorldRolls; worldRow++) { + for (int worldColumn = 0; worldColumn < WorldColumns; worldColumn++) { + int worldX = worldColumn * Constants.TILE_SIZE; + int worldY = worldRow * Constants.TILE_SIZE; + int screenX = worldX - (int)this.player.getWorldPosX() + Constants.WIDTH/2; + int screenY = worldY - (int)this.player.getWorldPosY() + Constants.HEIGHT/2; + + //Somente desenha na tela se a posição do tile estiver dentro dos limites da tela (mais uma borda de tamanho TILE_SIZE) + if (worldX + Constants.TILE_SIZE > this.player.getWorldPosX() - (float) Constants.WIDTH /2 && + worldX - Constants.TILE_SIZE < this.player.getWorldPosX() + (float) Constants.WIDTH /2 && + worldY + Constants.TILE_SIZE > this.player.getWorldPosY() - (float) Constants.HEIGHT /2 && + worldY - Constants.TILE_SIZE < this.player.getWorldPosY() + (float) Constants.HEIGHT /2) { + for (int i = 0; i < layers.size() - 1; i++) { + if (layers.get(i).getTileMap()[worldRow][worldColumn] != null) + g2d.drawImage( + layers.get(i).getTileMap()[worldRow][worldColumn], + screenX, screenY, + Constants.TILE_SIZE, + Constants.TILE_SIZE, + null + ); + } + + } + } + } + } + + /** + * Método responsável por ler mapas + * @param path Caminho do arquivo de mapa + */ + public void addTileMap (String path) { + ArrayList<Sprite> sprites = new ArrayList<>(); + int height = 0; + int width = 0; + ArrayList<String[]> data = new ArrayList<>(); + ArrayList<TilesetDocument> tilesetDocuments = new ArrayList<>(); + NodeList list; + Node node; + Element element; + + try { + Document map = MapDocument.loadDocument(path); + list = MapDocument.getListByTag(map,"tileset"); + for (int temp = 0; temp < list.getLength(); temp++) { + node = list.item(temp); + if (node.getNodeType() == Node.ELEMENT_NODE) { + element = (Element) node; + System.out.println("atributos: " + element.getAttribute("firstgid") + ", " + element.getAttribute("source")); + tilesetDocuments.add(new TilesetDocument( + "/" + element.getAttribute("source"), + Integer.parseInt(element.getAttribute("firstgid"))) + ); + sprites.add(new Sprite( + tilesetDocuments.get(temp).getImagePath(), + tilesetDocuments.get(temp).getTileWidth(), + tilesetDocuments.get(temp).getTileHeight()) + ); + } + } + list = MapDocument.getListByTag(map,"layer"); + for (int i = 0; i < list.getLength(); i++) { + node = list.item(i); + if (node.getNodeType() == Node.ELEMENT_NODE) { + element = (Element) node; + if (i == 0) { + width = Integer.parseInt(element.getAttribute("width")); + height = Integer.parseInt(element.getAttribute("height")); + } + data.add(element.getElementsByTagName("data").item(0).getTextContent().replaceAll("\\s+", "").split(",")); + layers.add(new Layer( + data.get(i), + width, + height, + tilesetDocuments.get(i).getFirstgid(), + sprites.get(i)) + ); + } + } + this.WorldColumns = width; + this.WorldRolls = height; + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * @return Layer que tem tiles sólidos (deve possuir colisão) + */ + public Layer getCollisionLayer () { + return this.layers.get(this.layers.size() - 1); + } +} \ No newline at end of file diff --git a/src/tile/ZonaAbertaStrategy.java b/src/tile/ZonaAbertaStrategy.java index 50a22eefa7609e20077be26033dcaafe41d31517..b6de20db06606d682781e9d266c459039e5bc150 100644 --- a/src/tile/ZonaAbertaStrategy.java +++ b/src/tile/ZonaAbertaStrategy.java @@ -12,7 +12,7 @@ public class ZonaAbertaStrategy extends ChangeTileStrategy{ */ public ZonaAbertaStrategy() { regions = new ArrayList<>(); - regions.add(new int[]{Constants.TILE_SIZE * 19, Constants.TILE_SIZE * 28, Constants.TILE_SIZE * 49, Constants.TILE_SIZE * 49}); + regions.add(new int[]{Constants.TILE_SIZE * 19, Constants.TILE_SIZE * 28, Constants.TILE_SIZE * 48, Constants.TILE_SIZE * 49}); } @@ -24,9 +24,13 @@ public class ZonaAbertaStrategy extends ChangeTileStrategy{ */ public int changeMap (GameEntity player, int mapNum) { int index = changePosition(player.getPosition()); - System.out.println(index); - if (index == 0) { - return -1; + switch (index) { + case 0 -> { + return -1; + } + case -1 -> { + return 0; + } } return mapNum; } diff --git a/src/tile/dungeon/BienioDungeonFactory.java b/src/tile/dungeon/BienioDungeonFactory.java deleted file mode 100644 index 2cecd4e9cd306850ec04223a5de82829c1fac519..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/BienioDungeonFactory.java +++ /dev/null @@ -1,49 +0,0 @@ -package tile.dungeon; - -import java.util.ArrayList; - -public class BienioDungeonFactory implements DungeonAbstractFactory { - @Override - public ArrayList<DungeonTile> createRoom() { - ArrayList<DungeonTile> rooms = new ArrayList<>(); - rooms.add(new DungeonTile("/src/resources/dungeons/bienio/BienioRoom_1.xml")); - rooms.add(new DungeonTile("/src/resources/dungeons/bienio/BienioRoom_2.xml")); - rooms.add(new DungeonTile("/src/resources/dungeons/bienio/BienioRoom_3.xml")); - rooms.add(new DungeonTile("/src/resources/dungeons/bienio/BienioBossRoom.xml")); - return rooms; - } - - @Override - public DungeonTile createHorizontalCorridor() { - return new DungeonTile("/src/resources/dungeons/bienio/BienioCorredorHorizontal_1.xml"); - } - - @Override - public DungeonTile createVerticalCorridor() { - return new DungeonTile("/src/resources/dungeons/bienio/BienioCorredorVertical_2.xml"); - } - - @Override - public DungeonTile createVerticalUpEntrance() { - return new DungeonTile("/src/resources/dungeons/bienio/BienioVerticalCorridorUpEntrance.xml"); - } - @Override - public DungeonTile createHorizontalRightEntrance() { - return new DungeonTile("/src/resources/dungeons/bienio/BienioHorizontalCorridorRightEntrance.xml"); - } - - @Override - public DungeonTile createHorizontalLeftEntrance() { - return new DungeonTile("/src/resources/dungeons/bienio/BienioHorizontalCorridorLeftEntrance.xml"); - } - - @Override - public DungeonTile createVerticalDownEntrance() { - return new DungeonTile("/src/resources/dungeons/bienio/BienioVerticalCorridorDownEntrance.xml"); - } - - @Override - public int maxLayers() { - return 7; - } -} diff --git a/src/tile/dungeon/BienioLayers.java b/src/tile/dungeon/BienioLayers.java deleted file mode 100644 index 6f46974c2d0e46eb1c1045b7538e2be110f43499..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/BienioLayers.java +++ /dev/null @@ -1,16 +0,0 @@ -package tile.dungeon; - -public final class BienioLayers extends LayerInfo { - public BienioLayers () { - fistGid = new int[]{1, 1, 392, 392, 1816}; - imagePath = new String[]{ - "/resources/Tiles/Room_Builder_free_16x16_2.png", - "/resources/Tiles/Room_Builder_free_16x16_2.png", - "/resources/Tiles/Interiors_free_16x16.png", - "/resources/Tiles/Interiors_free_16x16.png", - "/resources/Tiles/collision.png" - }; - TileWidth = 16; - TileHeight = 16; - } -} diff --git a/src/tile/dungeon/DungeonAbstractFactory.java b/src/tile/dungeon/DungeonAbstractFactory.java deleted file mode 100644 index f48a83ae64422cd9ba4cc35e67a026e017bef909..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/DungeonAbstractFactory.java +++ /dev/null @@ -1,14 +0,0 @@ -package tile.dungeon; - -import java.util.ArrayList; - -public interface DungeonAbstractFactory{ - ArrayList<DungeonTile> createRoom(); - DungeonTile createHorizontalCorridor(); - DungeonTile createVerticalCorridor(); - DungeonTile createVerticalUpEntrance(); - DungeonTile createHorizontalRightEntrance(); - DungeonTile createHorizontalLeftEntrance(); - DungeonTile createVerticalDownEntrance(); - int maxLayers(); -} diff --git a/src/tile/dungeon/DungeonFactoryProvider.java b/src/tile/dungeon/DungeonFactoryProvider.java deleted file mode 100644 index d5934c2b38030e2caaf455a7c57768d1dbc16b75..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/DungeonFactoryProvider.java +++ /dev/null @@ -1,11 +0,0 @@ -package tile.dungeon; - -import java.util.Objects; - -public class DungeonFactoryProvider { - public static DungeonAbstractFactory getFactory (String type) { - if (Objects.equals(type, "bienio")) return new BienioDungeonFactory(); - else if (Objects.equals(type, "eletrica")) return new EletricaDungeonFactory(); - return null; - } -} diff --git a/src/tile/dungeon/DungeonTile.java b/src/tile/dungeon/DungeonTile.java deleted file mode 100644 index 22e6ed45832e22edbf2713836e67cd701d968ed8..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/DungeonTile.java +++ /dev/null @@ -1,24 +0,0 @@ -package tile.dungeon; - -import tile.MapTileManager; - -import java.util.ArrayList; - -public class DungeonTile { - private ArrayList<int[][]> mapTileNumbers; - - public DungeonTile (String path) { - getInfo(path); - } - - private void getInfo (String path) { - MapTileManager tile = new MapTileManager(path); - mapTileNumbers = tile.getMapTileNumbers(); - } - - public ArrayList<int[][]> getMapTileNumbers() { - return mapTileNumbers; - } - -} - diff --git a/src/tile/dungeon/EletricaDungeonFactory.java b/src/tile/dungeon/EletricaDungeonFactory.java deleted file mode 100644 index 0efc16db1018c987aaa83a61db5506383653508c..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/EletricaDungeonFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -package tile.dungeon; - -import java.util.ArrayList; - -public class EletricaDungeonFactory implements DungeonAbstractFactory{ - @Override - public ArrayList<DungeonTile> createRoom() { - ArrayList<DungeonTile> rooms = new ArrayList<>(); - rooms.add(new DungeonTile("/src/resources/dungeons/eletrica/EletricaRoom_1.xml")); - rooms.add(new DungeonTile("/src/resources/dungeons/eletrica/EletricaRoom_2.xml")); - return rooms; - } - - @Override - public DungeonTile createHorizontalCorridor() { - return new DungeonTile("/src/resources/dungeons/eletrica/EletricaHorizontalCorridor.xml"); - } - - @Override - public DungeonTile createVerticalCorridor() { - return new DungeonTile("/src/resources/dungeons/eletrica/EletricaVerticalCorridor.xml"); - } - - @Override - public DungeonTile createVerticalUpEntrance() { - return new DungeonTile("/src/resources/dungeons/eletrica/EletricaVerticalCorridorUpEntrance.xml"); - } - - @Override - public DungeonTile createHorizontalRightEntrance() { - return new DungeonTile("/src/resources/dungeons/eletrica/EletricaHorizontalCorridorRightEntrance.xml"); - } - - @Override - public DungeonTile createHorizontalLeftEntrance() { - return new DungeonTile("/src/resources/dungeons/eletrica/EletricaHorizontalCorridorLeftEntrance.xml"); - } - - @Override - public DungeonTile createVerticalDownEntrance() { - return new DungeonTile("/src/resources/dungeons/eletrica/EletricaVerticalCorridorDownEntrance.xml"); - } - - @Override - public int maxLayers() { - return 7; - } -} diff --git a/src/tile/dungeon/EletricaLayers.java b/src/tile/dungeon/EletricaLayers.java deleted file mode 100644 index da86f64e9e62c867841033eb4eb639d756718181..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/EletricaLayers.java +++ /dev/null @@ -1,18 +0,0 @@ -package tile.dungeon; - -public final class EletricaLayers extends LayerInfo{ - public EletricaLayers () { - fistGid = new int[]{1, 1, 392, 392, 1816, 1816, 2584}; - imagePath = new String[]{ - "/resources/Tiles/Room_Builder_free_16x16_2.png", - "/resources/Tiles/Room_Builder_free_16x16_2.png", - "/resources/Tiles/Interiors_free_16x16.png", - "/resources/Tiles/Interiors_free_16x16.png", - "/resources/Tiles/atlas_16x.png", - "/resources/Tiles/atlas_16x.png", - "/resources/Tiles/collision.png" - }; - TileWidth = 16; - TileHeight = 16; - } -} diff --git a/src/tile/dungeon/LayerInfo.java b/src/tile/dungeon/LayerInfo.java deleted file mode 100644 index d232ca456a74e988e9963ef8ce62da267efdda50..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/LayerInfo.java +++ /dev/null @@ -1,8 +0,0 @@ -package tile.dungeon; - -public abstract class LayerInfo { - public int[] fistGid; - public String[] imagePath; - public int TileWidth; - public int TileHeight; -} diff --git a/src/tile/dungeon/LayerInfoProvider.java b/src/tile/dungeon/LayerInfoProvider.java deleted file mode 100644 index 8d826f3e853ef4650eca181a5d54002b9a7aea3b..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/LayerInfoProvider.java +++ /dev/null @@ -1,12 +0,0 @@ -package tile.dungeon; - - -import java.util.Objects; - -public class LayerInfoProvider { - public static LayerInfo getLayerInfo (String type) { - if (Objects.equals(type, "bienio")) return new BienioLayers(); - else if (Objects.equals(type, "eletrica")) return new EletricaLayers(); - return null; - } -} diff --git a/src/tile/dungeon/TileDungeonManager.java b/src/tile/dungeon/TileDungeonManager.java deleted file mode 100644 index b08e6ca46eed6fa6faefda510a27f746c55cf131..0000000000000000000000000000000000000000 --- a/src/tile/dungeon/TileDungeonManager.java +++ /dev/null @@ -1,59 +0,0 @@ -package tile.dungeon; - -import game_entity.GameEntity; -import gameloop.render.Draw; -import gameloop.render.DrawTileManager; -import tile.*; - -import java.awt.*; -import java.util.ArrayList; - -public class TileDungeonManager implements TileManager { - Draw drawMethod; - ArrayList<Layer> layers; - public ChangeTileStrategy changeStrategy; - - public TileDungeonManager (ArrayList<int[][]> dungeonNumbers, String type, GameEntity player, ChangeTileStrategy changeStrategy) { - LayerInfo info = LayerInfoProvider.getLayerInfo(type); - assert info != null; - int WorldRows = dungeonNumbers.get(0).length; - int WorldColumns = dungeonNumbers.get(0)[0].length; - layers = loadLayers(dungeonNumbers, info, WorldRows, WorldColumns); - drawMethod = new DrawTileManager(layers, WorldRows, WorldColumns, player); - this.changeStrategy = changeStrategy; - } - - private ArrayList<Layer> loadLayers (ArrayList<int[][]> dungeonNumbers, LayerInfo info, int rows, int columns) { - ArrayList<Sprite> sprites = new ArrayList<>(); - ArrayList<Layer> layers = new ArrayList<>(); - for (int i = 0; i < info.imagePath.length; i++) { - sprites.add(new Sprite( - info.imagePath[i], - info.TileWidth, - info.TileHeight - ) - ); - layers.add(new Layer( - dungeonNumbers.get(i), - rows, - columns, - info.fistGid[i], - sprites.get(i)) - ); - } - return layers; - } - - public void draw (Graphics2D g2d) { - drawMethod.draw(g2d); - } - - @Override - public Layer getCollisionLayer() { - return this.layers.get(this.layers.size() - 1); - } - - public ChangeTileStrategy getChangeStrategy() { - return changeStrategy; - } -}