41 Commits

Author SHA1 Message Date
0efbd480ac Add LICENSE.txt
All checks were successful
Linux arm64 / Build (push) Successful in 11m20s
2024-05-23 17:25:13 +02:00
7c4ed3910f action: xmake latest
All checks were successful
Linux arm64 / Build (push) Successful in 1m4s
2024-02-24 13:06:56 +01:00
90c834cc49 Squashed commit of the following:
All checks were successful
Linux arm64 / Build (push) Successful in 6m2s
commit a8cbebc8d11d3621924b189a58a4f150d30324e9
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 14:00:26 2024 +0100

    jsp

commit a00ae1f6d9db33efef5e276bfc7101a1d24cf7d8
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 13:17:03 2024 +0100

    lol

commit d3dcaf3659251bb8fb0d4984ea188601a058757b
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 13:02:12 2024 +0100

    zsdf

commit 8ce343ff361ba0618d09d488404ff15c7d19de66
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 12:55:39 2024 +0100

    caca

commit 9f2a818ee57c751cb1283f12cfcc2c3617a3bd63
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 12:38:20 2024 +0100

    remove run name

commit b618dc176980ef18ae9a04f43a8abef311ca4329
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 12:20:35 2024 +0100

    change action name

commit 3092a403fdb2ded81d6f7558f621d0f8ac5dc1f5
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 12:06:03 2024 +0100

    fix action typo

commit 0cd675ef6c42758bef182307cce55d74aa2959fe
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 11:56:16 2024 +0100

    add action cache name

    Signed-off-by: Simon Pribylski <sim16.prib@gmail.com>

commit 4a6e6754f0a82a35fa4d6793321c7d27cb3e9f37
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sat Feb 10 11:28:48 2024 +0100

    remove ssl ignore

    Signed-off-by: Simon Pribylski <sim16.prib@gmail.com>

commit 1808ca96ec84390915ace0678bc824d92cc3d1b3
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:29:10 2024 +0100

    change action name

commit 5a966bbe77463a93ab210cd4b6a122ab1d440486
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:22:16 2024 +0100

    cpp standard global

commit 673d1457162dda9018712d0a19ac5b3954ad265f
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:21:36 2024 +0100

    add glew dep

commit b64eb6dd3ef535183dd0620beeeaa99deb323c97
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:16:23 2024 +0100

    confirm

commit 1bf8065179b74f3dd194e05739a064097bdc2ebd
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:15:37 2024 +0100

    remove sudo

commit 2dc4ee69ebba3821916963a96621d6f8b59d4808
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:09:55 2024 +0100

    install apt

commit 69574b9c5a5074c2fdf87dfc8c068d9c64f7704c
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 10:31:11 2024 +0100

    add xmake cache

commit 4d7d04c6722ca8e94d10569f25ae582265866948
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:21:45 2024 +0100

    aaaaaaaaaaaaaaaaaa

commit aa7dac26cd9900c676e4662fadb7832700a3363a
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:13:08 2024 +0100

    fiiiiiiiiiiiiiix xmake root

commit 3604b44d04f492254911a0508e8555aca61b4d26
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:05:43 2024 +0100

    fix xmake root

commit cfcb8d4df46c6febeca47dff2f0447048b8f68ad
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:03:56 2024 +0100

    run xmake as root

commit dbef2d27138ccce1124cc1979867baf15e897a7f
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 00:54:54 2024 +0100

    xmake action

commit 42196398ced1e7f38c0234d82dc7cd65ef7aeb6d
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 00:53:29 2024 +0100

    xmake

commit 51256d8c15066120c2df3a72063856a0a47f8b59
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 00:47:35 2024 +0100

    Fix Linux.yaml

    add cert

commit 9c024fa8eb92765aff3fb195ce7c8c10a1b49d0b
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sun Dec 31 22:34:54 2023 +0100

    Add Linux actions
2024-02-10 16:02:51 +01:00
d23761dc10 Squashed commit of the following:
Some checks failed
Linux arm / Build (push) Has been cancelled
commit 1808ca96ec84390915ace0678bc824d92cc3d1b3
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:29:10 2024 +0100

    change action name

commit 5a966bbe77463a93ab210cd4b6a122ab1d440486
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:22:16 2024 +0100

    cpp standard global

commit 673d1457162dda9018712d0a19ac5b3954ad265f
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:21:36 2024 +0100

    add glew dep

commit b64eb6dd3ef535183dd0620beeeaa99deb323c97
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:16:23 2024 +0100

    confirm

commit 1bf8065179b74f3dd194e05739a064097bdc2ebd
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:15:37 2024 +0100

    remove sudo

commit 2dc4ee69ebba3821916963a96621d6f8b59d4808
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 13:09:55 2024 +0100

    install apt

commit 69574b9c5a5074c2fdf87dfc8c068d9c64f7704c
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 10:31:11 2024 +0100

    add xmake cache

commit 4d7d04c6722ca8e94d10569f25ae582265866948
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:21:45 2024 +0100

    aaaaaaaaaaaaaaaaaa

commit aa7dac26cd9900c676e4662fadb7832700a3363a
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:13:08 2024 +0100

    fiiiiiiiiiiiiiix xmake root

commit 3604b44d04f492254911a0508e8555aca61b4d26
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:05:43 2024 +0100

    fix xmake root

commit cfcb8d4df46c6febeca47dff2f0447048b8f68ad
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 01:03:56 2024 +0100

    run xmake as root

commit dbef2d27138ccce1124cc1979867baf15e897a7f
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 00:54:54 2024 +0100

    xmake action

commit 42196398ced1e7f38c0234d82dc7cd65ef7aeb6d
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 00:53:29 2024 +0100

    xmake

commit 51256d8c15066120c2df3a72063856a0a47f8b59
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Mon Jan 1 00:47:35 2024 +0100

    Fix Linux.yaml

    add cert

commit 9c024fa8eb92765aff3fb195ce7c8c10a1b49d0b
Author: Simon Pribylski <sim16.prib@gmail.com>
Date:   Sun Dec 31 22:34:54 2023 +0100

    Add Linux actions
2024-02-10 15:49:25 +01:00
3d8fd2e519 refactor xmake.lua 2023-09-03 11:02:22 +02:00
4bd32e8d0b chore: bump version to alpha-0.4.0 2023-09-02 20:29:51 +02:00
09bba12814 prevent player from joining mid game 2023-09-02 20:27:26 +02:00
bb76e9493f sync player when joining mid game 2023-08-26 11:49:52 +02:00
Simon Pribylski
808ef7b3f6 moved player leave packet 2023-08-26 11:27:05 +02:00
Simon Pribylski
23938a0cb5 fix mob id 2023-08-26 11:21:28 +02:00
Simon Pribylski
5631efcf9e remove mobs on player leave 2023-08-26 10:46:20 +02:00
Simon Pribylski
8e7b446003 add RemoveMobPacket 2023-08-26 10:35:26 +02:00
Simon Pribylski
51ec035490 remove towers on player leave 2023-08-26 10:25:52 +02:00
1f94ae2586 use of SAFE_CHECK 2023-08-15 19:33:09 +02:00
7b8c13612c fix login crash 2023-08-15 19:32:44 +02:00
a36716d8e4 fix player login 2023-08-15 19:20:13 +02:00
debf9e974c useless cam functions 2023-08-15 19:19:54 +02:00
380ecf3a27 fixed server world upload 2023-08-15 13:47:56 +02:00
b3157be641 change lib name 2023-08-15 13:06:31 +02:00
1e3b672897 remove player from team when leaving 2023-08-15 13:01:50 +02:00
d1aa5cd8aa balance team on player join 2023-08-14 18:54:36 +02:00
dbe91b52fd send team update after restart 2023-08-14 18:41:51 +02:00
7ab8c79fdf changed player join/leave message 2023-08-14 18:34:07 +02:00
8f2a22762a fixing button crash 2023-08-14 18:33:41 +02:00
f0c3325141 name randomizer 2023-08-14 18:33:24 +02:00
1d00e0098a fix player sync 2023-08-14 18:18:43 +02:00
ee5a27ac54 show integrated server stats 2023-08-14 18:10:05 +02:00
49a5a09537 add restart command 2023-08-14 17:46:49 +02:00
f9f80fc4fb summon debug 2023-08-14 15:00:05 +02:00
4997715672 players stat reset after game end 2023-08-14 14:59:37 +02:00
3fe480d121 connection removal safety 2023-08-14 14:59:15 +02:00
c46226c1ae disconnect queue 2023-08-14 14:58:26 +02:00
8630421734 set summon menu cooldown 2023-08-14 14:29:41 +02:00
60b81003c0 Don't disconnect when game is over 2023-08-14 14:25:10 +02:00
7986e55846 fix persistent players 2023-08-14 13:59:30 +02:00
0c0fd155ed add client disconnect button 2023-08-14 13:46:10 +02:00
7f650f282c back to lobby state when server ends 2023-08-14 13:35:17 +02:00
118a04cd01 xmake.lua : add lib target 2023-08-14 13:31:52 +02:00
d529c79150 server console input 2023-08-13 13:44:05 +02:00
ddbba997e5 Working server 2023-08-13 12:38:32 +02:00
50c17e8ed1 restructure project 2023-08-13 11:59:13 +02:00
216 changed files with 1155 additions and 543 deletions

View File

@@ -0,0 +1,32 @@
name: Linux arm64
run-name: Build And Test
on: [push]
jobs:
Build:
runs-on: ubuntu-latest
steps:
- name: Install deps
run : |
apt update
apt install -y libsdl2-dev libglew-dev
- name: Check out repository code
uses: actions/checkout@v3
- name: Prepare Xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
xmake-version: latest
actions-cache-folder: '.xmake-cache'
actions-cache-key: 'ubuntu'
- name: XMake config
run: xmake f -p linux -y --root
- name: Build
run: xmake --root
- name: Test
run: xmake test --root

21
LICENSE.txt Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Simon Pribylski
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -1,17 +1,17 @@
#pragma once
#include "ClientConnexion.h"
#include "ClientGame.h"
#include "client/ClientConnexion.h"
#include "client/game/ClientGame.h"
#include "game/Team.h"
#include "game/Player.h"
#include "td/game/Team.h"
#include "td/game/Player.h"
#include "protocol/Protocol.h"
#include "protocol/packets/SendMobsPacket.h"
#include "td/protocol/Protocol.h"
#include "td/protocol/packets/SendMobsPacket.h"
#include "render/Renderer.h"
#include "client/render/Renderer.h"
#include "network/Network.h"
#include "td/network/Network.h"
namespace td {
namespace client {

View File

@@ -1,8 +1,8 @@
#pragma once
#include "protocol/PacketHandler.h"
#include "network/TCPSocket.h"
#include "game/Connexion.h"
#include "td/protocol/PacketHandler.h"
#include "td/network/TCPSocket.h"
#include "td/network/Connexion.h"
namespace td {
namespace client {

View File

@@ -1,13 +1,13 @@
#pragma once
#include "game/BaseGame.h"
#include "td/game/BaseGame.h"
#include "protocol/PacketHandler.h"
#include "td/protocol/PacketHandler.h"
#include "WorldClient.h"
#include "render/WorldRenderer.h"
#include "render/Renderer.h"
#include "client/render/WorldRenderer.h"
#include "client/render/Renderer.h"
namespace td {
namespace client {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "game/World.h"
#include "protocol/PacketHandler.h"
#include "td/game/World.h"
#include "td/protocol/PacketHandler.h"
namespace td {
namespace client {
@@ -13,12 +13,14 @@ private:
ClientGame* m_Game;
public:
WorldClient(ClientGame* game);
virtual ~WorldClient();
virtual void HandlePacket(const protocol::WorldBeginDataPacket* packet) override;
virtual void HandlePacket(const protocol::WorldDataPacket* packet) override;
virtual void HandlePacket(const protocol::SpawnMobPacket* packet) override;
virtual void HandlePacket(const protocol::UpgradeTowerPacket* packet) override;
virtual void HandlePacket(const protocol::WorldAddTowerPacket* packet) override;
virtual void HandlePacket(const protocol::RemoveMobPacket* packet) override;
virtual void HandlePacket(const protocol::RemoveTowerPacket* packet) override;
virtual void HandlePacket(const protocol::UpdateMobStatesPacket* packet) override;
virtual void HandlePacket(const protocol::UpdateCastleLifePacket* packet) override;

View File

@@ -1,10 +1,10 @@
#pragma once
#include "Defines.h"
#include "td/Defines.h"
#include <memory>
#include "loader/GLLoader.h"
#include "render/shaders/WorldShader.h"
#include "render/shaders/EntityShader.h"
#include "client/render/shaders/WorldShader.h"
#include "client/render/shaders/EntityShader.h"
namespace td {
namespace render {
@@ -58,6 +58,7 @@ public:
void SetCamAngularMovement(const Vec2f& mov);
void SetCamMovement(const Vec2f& lastCursorPos, const Vec2f& currentCursorPos);
void SetCamLook(const Vec2f& worldPos);
void ResetCamLook();
void SetBackgroundColor(const Vec3f& color) { m_BackgroundColor = color; }

View File

@@ -2,7 +2,7 @@
#include <cstdint>
#include <memory>
#include "render/loader/GLLoader.h"
#include "client/render/loader/GLLoader.h"
namespace td {

View File

@@ -1,14 +1,14 @@
#pragma once
#include "game/World.h"
#include "td/game/World.h"
#include "render/Renderer.h"
#include "render/VertexCache.h"
#include "client/render/Renderer.h"
#include "client/render/VertexCache.h"
#include "render/gui/TowerPlacePopup.h"
#include "render/gui/TowerUpgradePopup.h"
#include "render/gui/MobTooltip.h"
#include "render/gui/CastleTooltip.h"
#include "client/render/gui/TowerPlacePopup.h"
#include "client/render/gui/TowerUpgradePopup.h"
#include "client/render/gui/MobTooltip.h"
#include "client/render/gui/CastleTooltip.h"
namespace td {
@@ -48,6 +48,7 @@ public:
void Update();
void Render();
void ResetCam();
void SetCamPos(float camX, float camY);
void MoveCam(float relativeX, float relativeY);

View File

@@ -1,16 +1,19 @@
#pragma once
#include "SummonMenu.h"
#include "td/game/BaseGame.h"
namespace td {
namespace gui {
class GameMenu : public GuiWidget {
class GameMenu : public GuiWidget, public game::GameListener {
private:
std::unique_ptr<SummonMenu> m_SummonMenu;
public:
GameMenu(client::Client* client);
virtual void OnGameBegin();
virtual void Render();
private:
void ShowTPS();
@@ -18,6 +21,8 @@ private:
void ShowPlayers();
void ShowLobbyProgress();
void ShowTeamSelection();
void DisconnectButton();
};
} // namespace gui

View File

@@ -1,7 +1,7 @@
#pragma once
#include "render/gui/imgui/imgui.h"
#include "game/Team.h"
#include "client/render/gui/imgui/imgui.h"
#include "td/game/Team.h"
namespace td {
namespace render {

View File

@@ -4,13 +4,15 @@
#include "imgui/imgui_filebrowser.h"
#include "game/server/Server.h"
#include "server/Server.h"
#include <memory>
namespace td {
namespace gui {
class ServerGui;
class MainMenu : public GuiWidget {
private:
bool m_TriedToConnect = false;
@@ -22,6 +24,7 @@ private:
imgui_addons::ImGuiFileBrowser m_FileDialog;
std::unique_ptr<server::Server> m_Server;
std::unique_ptr<ServerGui> m_ServerGui;
public:
MainMenu(client::Client* client);
~MainMenu();

View File

@@ -0,0 +1,19 @@
#pragma once
#include "GuiWidget.h"
#include "server/Server.h"
namespace td {
namespace gui {
class ServerGui : public GuiWidget {
private:
server::Server* m_Server;
public:
ServerGui(client::Client* client, server::Server* server);
virtual void Render();
};
} // namespace gui
} // namespace td

View File

@@ -3,7 +3,7 @@
#include "GuiWidget.h"
#include <array>
#include "game/Mobs.h"
#include "td/game/Mobs.h"
namespace td {
namespace gui {

View File

@@ -9,7 +9,7 @@
#include <memory>
#include "render/gui/GuiManager.h"
#include "client/render/gui/GuiManager.h"
struct SDL_Window;
typedef void* SDL_GLContext;

View File

@@ -2,7 +2,7 @@
#include "GuiWidget.h"
#include "Defines.h"
#include "td/Defines.h"
namespace td {
namespace gui {

View File

@@ -2,7 +2,7 @@
#include "GuiWidget.h"
#include "Defines.h"
#include "td/Defines.h"
namespace td {
namespace gui {

View File

@@ -107,7 +107,7 @@ namespace ImGui
}
*/
#include "render/GL.h"
#include "client/render/GL.h"
#if defined(__ANDROID__)
#define IMGUI_IMPL_OPENGL_LOADER_ES3

View File

@@ -1,7 +1,7 @@
#ifndef IMGUIFILEBROWSER_H
#define IMGUIFILEBROWSER_H
#include "render/gui/imgui/imgui.h"
#include "client/render/gui/imgui/imgui.h"
#include <string>
#include <vector>

View File

@@ -1,6 +1,6 @@
#pragma once
#include "game/World.h"
#include "td/game/World.h"
#include "GLLoader.h"
namespace td {

View File

@@ -1,8 +1,8 @@
#pragma once
#include <string>
#include "Defines.h"
#include "render/GL.h"
#include "td/Defines.h"
#include "client/render/GL.h"
namespace td {
namespace shader {

View File

@@ -1,8 +1,8 @@
#pragma once
#include "misc/DataBuffer.h"
#include "td/misc/DataBuffer.h"
#define TD_VERSION "alpha-0.3.0"
#define TD_VERSION "alpha-0.4.0"
namespace td {
namespace utils {

View File

@@ -2,7 +2,7 @@
#include <vector>
#include "misc/Time.h"
#include "td/misc/Time.h"
namespace td {
namespace server {
@@ -12,7 +12,7 @@ class Server;
class Lobby {
private:
Server* m_Server;
bool m_GameStarted = false;
bool m_LobbyOpened = false;
std::uint64_t m_StartTimerTime = 0;
std::vector<std::uint8_t> m_Players;
utils::AutoTimer m_Timer;
@@ -22,6 +22,8 @@ public:
void OnPlayerJoin(std::uint8_t playerID);
void OnPlayerLeave(std::uint8_t playerID);
void OpenLobby();
void SendTimeRemaining();
void Tick();

View File

@@ -3,13 +3,13 @@
#include <map>
#include <thread>
#include "network/TCPListener.h"
#include "protocol/Protocol.h"
#include "protocol/PacketDispatcher.h"
#include "protocol/PacketHandler.h"
#include "ServerGame.h"
#include "ServerConnexion.h"
#include "Lobby.h"
#include "td/network/TCPListener.h"
#include "td/protocol/Protocol.h"
#include "td/protocol/PacketDispatcher.h"
#include "td/protocol/PacketHandler.h"
#include "server/game/ServerGame.h"
#include "server/ServerConnexion.h"
#include "server/Lobby.h"
#define SERVER_TPS 20
#define SERVER_TICK 1000 / SERVER_TPS
@@ -63,17 +63,23 @@ private:
std::thread m_Thread;
bool m_ServerRunning;
public:
Server(const std::string& worldFilePath);
Server();
virtual ~Server();
bool Start(std::uint16_t port);
bool Start(std::uint16_t port, bool blocking);
void Stop(); // force the server to stop
void Close(); // at the end of a game
void Restart(); // go back to lobby state
bool LoadMap(const std::string& worldFilePath);
bool IsMapLoaded();
void RemoveConnexion(std::uint8_t connexionID);
void BroadcastPacket(const protocol::Packet* packet);
float GetMSPT() const { return m_TickCounter.GetMSPT(); }
float GetTPS() const { return m_TickCounter.GetTPS(); }
bool IsRunning() { return m_ServerRunning; }
@@ -95,6 +101,7 @@ private:
void Clean();
void StartThread();
void StopThread();
void ServerLoop();
void Tick(std::uint64_t delta);
void OnPlayerJoin(std::uint8_t id);

View File

@@ -1,10 +1,10 @@
#pragma once
#include "network/TCPSocket.h"
#include "protocol/PacketHandler.h"
#include "protocol/PacketDispatcher.h"
#include "game/Player.h"
#include "game/Connexion.h"
#include "td/network/TCPSocket.h"
#include "td/protocol/PacketHandler.h"
#include "td/protocol/PacketDispatcher.h"
#include "td/game/Player.h"
#include "td/network/Connexion.h"
namespace td {
namespace server {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "game/BaseGame.h"
#include "misc/Time.h"
#include "td/game/BaseGame.h"
#include "td/misc/Time.h"
#include "ServerWorld.h"
namespace td {
@@ -23,6 +23,8 @@ public:
ServerWorld* GetServerWorld() { return &m_ServerWorld; }
virtual void Tick(std::uint64_t delta);
virtual void Reset() override;
void StartGame();
// GameListener
@@ -31,6 +33,9 @@ public:
virtual void OnGameBegin() override;
virtual void OnGameEnd() override;
virtual void OnGameClose() override;
virtual void OnPlayerJoin(game::PlayerID id) override;
virtual void OnPlayerLeave(game::PlayerID id) override;
private:
void BalanceTeams();
void InitPlayerStats();

View File

@@ -1,6 +1,6 @@
#pragma once
#include "game/World.h"
#include "td/game/World.h"
namespace td {
namespace server {

View File

@@ -2,6 +2,9 @@
#include <cstdint>
#define SAFE_CHECK(expr) if(!(expr)) return
namespace td {
static constexpr float PI = 3.141592653f;

View File

@@ -1,8 +1,8 @@
#pragma once
#include "game/Team.h"
#include "game/World.h"
#include "game/Player.h"
#include "td/game/Team.h"
#include "td/game/World.h"
#include "td/game/Player.h"
namespace td {
namespace game {
@@ -42,6 +42,8 @@ public:
virtual void Tick(std::uint64_t delta);
virtual void Reset();
Team& GetRedTeam() { return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)]; }
const Team& GetRedTeam() const { return m_Teams[static_cast<std::uint8_t>(TeamColor::Red)]; }
@@ -65,6 +67,8 @@ public:
const TeamList& GetTeams() const { return m_Teams; }
void RemovePlayer(PlayerID pId);
};
} // namespace game

View File

@@ -1,11 +1,11 @@
#pragma once
#include "Defines.h"
#include "td/Defines.h"
#include "Towers.h"
#include "Types.h"
#include "Team.h"
#include "misc/ObjectNotifier.h"
#include "td/misc/ObjectNotifier.h"
#include <vector>
#include <memory>
@@ -99,7 +99,7 @@ private:
utils::CooldownTimer m_AttackTimer;
public:
Mob(MobID id, MobLevel level, PlayerID sender) : m_Sender(sender), m_Level(level),
Mob(MobID id, MobLevel level, PlayerID sender) : m_ID(id), m_Sender(sender), m_Level(level),
m_HitCooldown(0), m_EffectFireTimer(1000), m_EffectPoisonTimer(1000),
m_EffectHealTimer(1000), m_CastleTarget(nullptr), m_AttackTimer(1000) {

View File

@@ -2,8 +2,8 @@
#include <string>
#include "game/Team.h"
#include "game/PlayerUpgrades.h"
#include "td/game/Team.h"
#include "td/game/PlayerUpgrades.h"
namespace td {
namespace game {

View File

@@ -2,7 +2,7 @@
#include "Types.h"
#include "misc/Shapes.h"
#include "td/misc/Shapes.h"
#include <vector>
#include <memory>
@@ -74,6 +74,7 @@ public:
void AddPlayer(Player* newPlayer);
void RemovePlayer(const Player* player);
void ClearPlayers();
TeamColor GetColor() const;

View File

@@ -3,10 +3,10 @@
#include <string>
#include <memory>
#include "misc/Time.h"
#include "misc/Shapes.h"
#include "td/misc/Time.h"
#include "td/misc/Shapes.h"
#include "game/Types.h"
#include "td/game/Types.h"
namespace td {
namespace game {

View File

@@ -3,7 +3,7 @@
#include <cstdint>
// include Log for every files
#include "misc/Log.h"
#include "td/misc/Log.h"
namespace td {
namespace game {

View File

@@ -171,7 +171,10 @@ public:
void Tick(std::uint64_t delta);
void Reset(); // clear mobs and towers
void SpawnMobAt(MobID id, MobType type, std::uint8_t level, PlayerID sender, float x, float y, Direction dir);
MobPtr RemoveMob(MobID id);
TowerPtr PlaceTowerAt(TowerID id, TowerType type, std::int32_t x, std::int32_t y, PlayerID builder);
TowerPtr RemoveTower(TowerID id);
@@ -217,7 +220,9 @@ public:
const TeamList& GetTeams() const;
TowerList& GetTowers() { return m_Towers; }
const TowerList& GetTowers() const { return m_Towers; }
TowerPtr GetTowerById(TowerID tower);
const Player* GetPlayerById(PlayerID id) const;

View File

@@ -1,6 +1,6 @@
#pragma once
#include "Defines.h"
#include "td/Defines.h"
#include <cmath>
namespace td {

View File

@@ -1,9 +1,9 @@
#pragma once
#include "network/TCPSocket.h"
#include "protocol/PacketHandler.h"
#include "protocol/PacketDispatcher.h"
#include "game/Player.h"
#include "td/network/TCPSocket.h"
#include "td/protocol/PacketHandler.h"
#include "td/protocol/PacketDispatcher.h"
#include "td/game/Player.h"
namespace td {
namespace protocol {

View File

@@ -12,10 +12,10 @@
#include <fcntl.h>
#endif
#include "network/Socket.h"
#include "network/IPAddress.h"
#include "network/UDPSocket.h"
#include "network/TCPSocket.h"
#include "td/network/Socket.h"
#include "td/network/IPAddress.h"
#include "td/network/UDPSocket.h"
#include "td/network/TCPSocket.h"
namespace td {
namespace network {

View File

@@ -5,7 +5,7 @@
#include <vector>
#include <memory>
#include "misc/DataBuffer.h"
#include "td/misc/DataBuffer.h"
#ifdef _WIN32
#include <ws2tcpip.h>

View File

@@ -1,8 +1,8 @@
#ifndef NETWORK_TCP_SOCKET_H_
#define NETWORK_TCP_SOCKET_H_
#include "network/IPAddress.h"
#include "network/Socket.h"
#include "td/network/IPAddress.h"
#include "td/network/Socket.h"
#include <cstdint>

View File

@@ -1,8 +1,8 @@
#ifndef NETWORK_UDP_SOCKET_H_
#define NETWORK_UDP_SOCKET_H_
#include "network/IPAddress.h"
#include "network/Socket.h"
#include "td/network/IPAddress.h"
#include "td/network/Socket.h"
#include <cstdint>

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
#include <map>
#include <vector>

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "protocol/PacketsForward.h"
#include "td/protocol/Protocol.h"
#include "td/protocol/PacketsForward.h"
namespace td {
namespace protocol {
@@ -27,6 +27,7 @@ public:
virtual void HandlePacket(const PlayerLeavePacket* packet) {}
virtual void HandlePacket(const PlayerListPacket* packet) {}
virtual void HandlePacket(const PlayerLoginPacket* packet) {}
virtual void HandlePacket(const RemoveMobPacket* packet) {}
virtual void HandlePacket(const RemoveTowerPacket* packet) {}
virtual void HandlePacket(const SelectTeamPacket* packet) {}
virtual void HandlePacket(const SendMobsPacket* packet) {}

View File

@@ -8,6 +8,7 @@
#include "packets/PlayerLeavePacket.h"
#include "packets/PlayerListPacket.h"
#include "packets/PlayerLoginPacket.h"
#include "packets/RemoveMobPacket.h"
#include "packets/RemoveTowerPacket.h"
#include "packets/SelectTeamPacket.h"
#include "packets/SendMobsPacket.h"

View File

@@ -29,6 +29,7 @@ class UpdateCastleLifePacket;
class UpdateMobStatesPacket;
class PlayerBuyItemPacket;
class PlayerBuyMobUpgradePacket;
class RemoveMobPacket;
} // namespace protocol
} // namespace td

View File

@@ -1,6 +1,6 @@
#pragma once
#include "misc/DataBuffer.h"
#include "td/misc/DataBuffer.h"
#include <memory>
@@ -13,7 +13,6 @@ enum class PacketType : std::uint8_t {
// client --> server
PlayerLogin = 0,
SelectTeam,
SpawnMob,
SendMobs,
PlaceTower,
@@ -33,6 +32,8 @@ enum class PacketType : std::uint8_t {
WorldAddTower,
UpdateMobStates,
UpdateCastleLife,
SpawnMob,
RemoveMob,
// client <--> server
KeepAlive,

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -0,0 +1,27 @@
#pragma once
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {
class RemoveMobPacket : public Packet {
private:
game::MobID m_MobID;
public:
RemoveMobPacket() {}
RemoveMobPacket(game::MobID id) : m_MobID(id) {}
virtual ~RemoveMobPacket() {}
virtual DataBuffer Serialize(bool packetID = true) const;
virtual void Deserialize(DataBuffer& data);
virtual void Dispatch(PacketHandler* handler) const;
game::MobID GetMobID() const { return m_MobID; }
virtual PacketType GetType() const { return PacketType::RemoveMob; }
};
} // namespace protocol
} // namespace td

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

View File

@@ -1,7 +1,7 @@
#pragma once
#include "protocol/Protocol.h"
#include "game/BaseGame.h"
#include "td/protocol/Protocol.h"
#include "td/game/BaseGame.h"
namespace td {
namespace protocol {

View File

@@ -1,6 +1,6 @@
#pragma once
#include "protocol/Protocol.h"
#include "td/protocol/Protocol.h"
namespace td {
namespace protocol {

Some files were not shown because too many files have changed in this diff Show More