aboutsummaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorUneven Prankster <unevenprankster@protonmail.com>2023-10-15 21:28:29 -0300
committerUneven Prankster <unevenprankster@protonmail.com>2023-10-15 21:28:29 -0300
commit1c0cc775732201f4c4d3ee0d6772be786b3b4aa1 (patch)
treef5d692d046868261275c7430a624c3ea9ed75d3d /src/game
parenta89f892640cf12f75c7ce18e6e88c70a8d3965ed (diff)
A lot has certainly happened!
Diffstat (limited to 'src/game')
-rw-r--r--src/game/battle.h1
-rw-r--r--src/game/config.h7
-rw-r--r--src/game/enemy.c107
-rw-r--r--src/game/enemy.h29
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