summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-11-08 23:54:23 +0100
committerAki <please@ignore.pl>2022-11-08 23:55:25 +0100
commitcaa48ce5946d093daaf950751dfa1432ea5373a9 (patch)
tree2a5b9d7586ab36a320b50b45175f4b8df46ae085
parent471bf1adab9022a4261f2f4bc7ce24ce977ccda7 (diff)
downloadkurator-caa48ce5946d093daaf950751dfa1432ea5373a9.zip
kurator-caa48ce5946d093daaf950751dfa1432ea5373a9.tar.gz
kurator-caa48ce5946d093daaf950751dfa1432ea5373a9.tar.bz2
Creating skeleton for battle simulation and universe data
This might be a bit too much and a bit too blindly, but let's see how it evolves.
-rw-r--r--CMakeLists.txt3
-rw-r--r--battles/CMakeLists.txt14
-rw-r--r--battles/include/kurator/battles/Battle.h22
-rw-r--r--battles/include/kurator/battles/Scenario.h22
-rw-r--r--battles/include/kurator/battles/ShipConfig.h23
-rw-r--r--battles/src/Battle.cpp18
-rw-r--r--universe/CMakeLists.txt8
-rw-r--r--universe/include/kurator/universe/ShipType.h20
-rw-r--r--universe/include/kurator/universe/TurretType.h22
9 files changed, 152 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 07becab..6a2541b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,5 +3,8 @@ project(kurator)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_EXTENSIONS No)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic")
+find_package(EnTT 3 REQUIRED)
find_package(raylib 4 REQUIRED)
+add_subdirectory(battles)
add_subdirectory(kurator)
+add_subdirectory(universe)
diff --git a/battles/CMakeLists.txt b/battles/CMakeLists.txt
new file mode 100644
index 0000000..c9b2c19
--- /dev/null
+++ b/battles/CMakeLists.txt
@@ -0,0 +1,14 @@
+project(battles)
+add_library(
+ ${PROJECT_NAME}
+ src/Battle.cpp
+)
+target_include_directories(
+ ${PROJECT_NAME}
+ PUBLIC include
+)
+target_link_libraries(
+ ${PROJECT_NAME}
+ PUBLIC EnTT::EnTT
+ PUBLIC universe
+)
diff --git a/battles/include/kurator/battles/Battle.h b/battles/include/kurator/battles/Battle.h
new file mode 100644
index 0000000..0923f36
--- /dev/null
+++ b/battles/include/kurator/battles/Battle.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <entt/entity/registry.hpp>
+
+#include "Scenario.h"
+
+
+namespace kurator
+{
+namespace battles
+{
+
+
+struct Battle
+{
+ explicit Battle(Scenario scenario);
+ entt::registry registry;
+};
+
+
+} // namespace battles
+} // namespace kurator
diff --git a/battles/include/kurator/battles/Scenario.h b/battles/include/kurator/battles/Scenario.h
new file mode 100644
index 0000000..94adf73
--- /dev/null
+++ b/battles/include/kurator/battles/Scenario.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <vector>
+
+#include "ShipConfig.h"
+
+
+namespace kurator
+{
+namespace battles
+{
+
+
+struct Scenario
+{
+ using TeamComposition = std::vector<ShipConfig>;
+ std::vector<TeamComposition> teams;
+};
+
+
+} // namespace battles
+} // namespace kurator
diff --git a/battles/include/kurator/battles/ShipConfig.h b/battles/include/kurator/battles/ShipConfig.h
new file mode 100644
index 0000000..f2315fe
--- /dev/null
+++ b/battles/include/kurator/battles/ShipConfig.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <vector>
+
+#include <kurator/universe/ShipType.h>
+#include <kurator/universe/TurretType.h>
+
+
+namespace kurator
+{
+namespace battles
+{
+
+
+struct ShipConfig
+{
+ universe::ShipType type;
+ std::vector<universe::TurretType> turrets;
+};
+
+
+} // namespace battles
+} // namespace kurator
diff --git a/battles/src/Battle.cpp b/battles/src/Battle.cpp
new file mode 100644
index 0000000..e185a68
--- /dev/null
+++ b/battles/src/Battle.cpp
@@ -0,0 +1,18 @@
+#include <kurator/battles/Battle.h>
+
+#include <kurator/battles/Scenario.h>
+
+
+namespace kurator
+{
+namespace battles
+{
+
+
+Battle::Battle(Scenario)
+{
+}
+
+
+} // namespace battles
+} // namespace kurator
diff --git a/universe/CMakeLists.txt b/universe/CMakeLists.txt
new file mode 100644
index 0000000..24457c5
--- /dev/null
+++ b/universe/CMakeLists.txt
@@ -0,0 +1,8 @@
+project(universe)
+add_library(
+ ${PROJECT_NAME} INTERFACE
+)
+target_include_directories(
+ ${PROJECT_NAME}
+ INTERFACE include
+)
diff --git a/universe/include/kurator/universe/ShipType.h b/universe/include/kurator/universe/ShipType.h
new file mode 100644
index 0000000..5f5eec1
--- /dev/null
+++ b/universe/include/kurator/universe/ShipType.h
@@ -0,0 +1,20 @@
+#pragma once
+
+#include <string>
+
+
+namespace kurator
+{
+namespace universe
+{
+
+
+struct ShipType
+{
+ std::string name;
+ double base_health_points;
+};
+
+
+} // namespace universe
+} // namespace kurator
diff --git a/universe/include/kurator/universe/TurretType.h b/universe/include/kurator/universe/TurretType.h
new file mode 100644
index 0000000..b3a6eb2
--- /dev/null
+++ b/universe/include/kurator/universe/TurretType.h
@@ -0,0 +1,22 @@
+#pragma once
+
+#include <string>
+
+
+namespace kurator
+{
+namespace universe
+{
+
+
+struct TurretType
+{
+ std::string name;
+ double base_damage;
+ double rate_of_fire;
+ double range;
+};
+
+
+} // namespace universe
+} // namespace kurator