Skip to content

About

🦆 Chemical Duck: tower defense estilo Plants vs. Zombies, com patos contra fantasmas. Feito em Godot 4

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Chemical Duck

🦆 Chemical Duck

Um tower defense no estilo Plants vs. Zombies, só que com patos.
Choque os ovos, junte energia e não deixe os fantasmas atravessarem o gramado.

Godot GDScript Status

Gameplay: patos atirando gelo, fogo e gosma verde contra fantasmas no gramado

🎮 Como jogar

  1. Escolha seus patos antes da fase e monte a sua barra de patos.
  2. Clique num pato da barra e depois num buraco do gramado para colocá-lo. Cada pato custa energia.
  3. O pato nasce como um ovo, que balança até chocar. Só depois disso ele começa a agir.
  4. Clique nas energias que o Pato Amarelo produz para ganhar +25 de energia. Você começa a fase com 50.
  5. Os fantasmas chegam em ondas pelas 5 faixas. Se um deles chegar ao fim do gramado, é game over.
  6. Derrote todos os inimigos para liberar a próxima fase.

🐣 Os patos

Pato Custo O que faz
Pato Amarelo 50 Não ataca. A cada 5 s, solta uma energia para você coletar.
Pato Químico 75 Atira gosma verde a cada 1 s.
Pato de Gelo 100 Atira bolas de gelo a cada 2 s.
Pato de Fogo 125 Atira bolas de fogo a cada 0,7 s, o mais rápido do time.

Os patos de ataque só atiram quando há um inimigo na frente deles, na mesma faixa. Cada tiro tira 25 de vida, e os inimigos têm 100.

👻 Os inimigos

Inimigo Comportamento
Fantasma Flutua da direita para a esquerda e ataca o pato que estiver no caminho até destruí-lo.

✨ Funcionalidades

  • 🗺️ 6 fases, cada uma com as suas ondas definidas em JSON (waveJson/).
  • 🔓 Progressão: as fases são liberadas conforme você avança.
  • 💾 Saves em slots, guardados em user://saves/.
  • ⚙️ Configurações: resolução (1920×1080, 1600×900 e 1280×720), tela cheia e volume. Ficam salvas em user://config.cfg.
  • ⏸️ Pausa, tela de game over e transições com fade.

🛠️ Rodando o projeto

  1. Instale o Godot 4.3 ou mais novo.
  2. Clone o repositório:
    git clone https://github.com/LeandroCustodio2002/tower-defense.git
  3. No Godot, clique em Import, selecione o project.godot e abra o projeto.
  4. Aperte F5 para jogar. A cena inicial é o menu principal (scenes/ui/MainMenu.tscn).

🧩 Criando uma fase

Cada fase é um JSON em waveJson/:

{
  "levelId": 0,
  "numEnemys": 7,
  "waves": [
    { "enemy": 0, "quant": 1, "timeBefore": 10 },
    { "enemy": 0, "quant": 2, "timeBefore": 10 },
    { "enemy": 0, "quant": 4, "timeBefore": 30 }
  ]
}
Campo Significado
levelId Número da fase. Vencer libera a levelId + 1.
numEnemys Total de inimigos da fase. Ao chegar a 0, você vence.
waves[].quant Quantos inimigos a onda tem. Eles nascem em faixas aleatórias, um a cada 1,5 s.
waves[].timeBefore Segundos de espera antes da onda.
waves[].enemy Tipo do inimigo (por enquanto só existe o 0).

Depois, adicione a fase na tela de seleção (scenes/worlds/LevelSelection.tscn) com o levelId e o level_json_path.

Criando um pato

Os patos são recursos do tipo Duck (resources/duck.gd). Para criar um novo, duplique um dos .tres em resources/ e ajuste:

Campo Para quê
bullet Cena do projétil (ou da energia, se não for de ataque)
bulletTime Intervalo entre os disparos, em segundos
cost Custo em energia
isAtkDuck true atira só quando há inimigo na faixa; false produz sempre
life Vida do pato
spriteContent Sprite

📁 Estrutura

├── resources/        # Patos (Duck .tres) e o script do recurso
├── scenes/
│   ├── ducks/        # Cenas dos patos e do ovo
│   ├── enemys/       # Fantasma
│   ├── Projectiles/  # Tiros: padrão, gelo, fogo e gosma
│   ├── collectibles/ # Energia
│   ├── level/        # Faixas e buracos do gramado
│   ├── ui/           # Menus, barra de patos, pausa, saves, configurações
│   └── worlds/       # Seleção de fases
├── scripts/          # Scripts GDScript (Global e SaveManager são autoloads)
├── sprites/          # Patos, ovos, inimigos, projéteis e UI
├── songs/            # Música e efeitos
└── waveJson/         # Ondas de cada fase

Feito com 🦆 por Leandro Custódio

About

🦆 Chemical Duck: tower defense estilo Plants vs. Zombies, com patos contra fantasmas. Feito em Godot 4

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages