diff options
| author | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
|---|---|---|
| committer | Uneven Prankster <unevenprankster@protonmail.com> | 2023-10-15 21:28:29 -0300 |
| commit | 1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 (patch) | |
| tree | f5d692d046868261275c7430a624c3ea9ed75d3d /src/game | |
| parent | a89f892640cf12f75c7ce18e6e88c70a8d3965ed (diff) | |
A lot has certainly happened!
Diffstat (limited to 'src/game')
| -rw-r--r-- | src/game/battle.h | 1 | ||||
| -rw-r--r-- | src/game/config.h | 7 | ||||
| -rw-r--r-- | src/game/enemy.c | 107 | ||||
| -rw-r--r-- | src/game/enemy.h | 29 |
4 files changed, 144 insertions, 0 deletions
diff --git a/src/game/battle.h b/src/game/battle.h new file mode 100644 index 0000000..7b9637e --- /dev/null +++ b/src/game/battle.h @@ -0,0 +1 @@ +#pragma once
\ No newline at end of file diff --git a/src/game/config.h b/src/game/config.h new file mode 100644 index 0000000..7e17f45 --- /dev/null +++ b/src/game/config.h @@ -0,0 +1,7 @@ +#pragma once + +#define GAME_NAME "Conflict deFuse" +#define GAME_WIDTH 320 +#define GAME_HEIGHT 240 +#define DEFAULT_SCALE 2 +#define FRAMERATE 60
\ No newline at end of file diff --git a/src/game/enemy.c b/src/game/enemy.c new file mode 100644 index 0000000..34034ab --- /dev/null +++ b/src/game/enemy.c @@ -0,0 +1,107 @@ +#include "enemy.c" + +static const Enemy enemy_defines[ENEMY_SIZE] = { + { + "Amanita", + ENEMY_AMANITA, + 32, + 20 + }, + { + "Felticia", + ENEMY_FELTICIA, + 40, + 16 + }, + { + "Flatwoods Monster", + ENEMY_FLATWOODS, + 38, + 18 + }, + { + "Time Square", + ENEMY_SQUARE, + 16, + 40 + }, + { + "Robot Gangster", + ENEMY_GANGSTER, + 48, + 12 + }, + { + "Loveland Frog", + ENEMY_FROG, + 28, + 16 + }, + { + "Hanako-san", + ENEMY_HANAKO, + 40, + 40 + }, + { + "Dover Demon", + ENEMY_DOVER, + 38, + 40 + }, + { + "Jersey Devil", + ENEMY_JERSEY, + 50, + 20 + }, + { + "Mothman", + ENEMY_MOTHMAN, + 40, + 10 + }, + { + "Sackman", + ENEMY_SACKMAN, + 48, + 20 + } +}; + +static Enemy stationed[3] = {0}; + +void add_enemy(const EnemyType type) +{ + for(int i = 0; i < 3; ++i){ + if(stationed[i].name == NULL){ + stationed[i] = enemy_defines[type]; + break; + } + } +} + +void damage_enemy(const u8 loc, const i8 dmg) +{ + if(loc > 2) + return; + + if(stationed[i].name == NULL) + return; + + stationed[i].health -= dmg + if(stationed[i].health <= 0) + stationed[i] = {0}; +} + +bool check_active_enemies(void) +{ + bool nice = true; + for(int i = 0; i < 3; ++i){ + if(stationed[i].name != NULL){ + nice = false; + break; + } + + return nice; +}
\ No newline at end of file diff --git a/src/game/enemy.h b/src/game/enemy.h new file mode 100644 index 0000000..4e82e92 --- /dev/null +++ b/src/game/enemy.h @@ -0,0 +1,29 @@ +#pragma once + +#include "../gunner/config.h" + +typedef enum{ + ENEMY_AMANITA = 0, + ENEMY_FELTICIA = 1, + ENEMY_FLATWOODS = 2, + ENEMY_SQUARE = 3, + ENEMY_GANGSTER = 4, + ENEMY_FROG = 5, + ENEMY_HANAKO = 6, + ENEMY_DOVER = 7, + ENEMY_JERSEY = 8, + ENEMY_MOTHMAN = 9, + ENEMY_SACKMAN = 10, + ENEMY_SIZE +}EnemyType; + +typedef struct{ + const char* name; + u8 enemy_type; + i8 health; + i8 mana; +}Enemy; + +void add_enemy(const EnemyType type); +void damage_enemy(const u8 loc, const i8 dmg); +bool check_active_enemies(void);
\ No newline at end of file |
