Merge remote-tracking branch 'origin/FriendlyHost/Join' into Menu
# Conflicts: # include/Game/Systems/MainMenuSystem.h # src/Engine/GUI/MainMenuSystem.cpp
This commit is contained in:
@@ -29,18 +29,7 @@
|
||||
#include "Core/EAmmoPickup.h"
|
||||
#include "Network/ESearchForServers.h"
|
||||
#include "../Game/Events/EDashAbility.h"
|
||||
|
||||
struct ServerInfo
|
||||
{
|
||||
ServerInfo(std::string a, int b, std::string c, int d)
|
||||
{
|
||||
Address = a; Port = b; Name = c; PlayersConnected = d;
|
||||
}
|
||||
std::string Address = "";
|
||||
int Port = 0;
|
||||
std::string Name = "";
|
||||
int PlayersConnected = 0;
|
||||
};
|
||||
#include "Network/EDisplayServerlist.h"
|
||||
|
||||
class Client : public Network
|
||||
{
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
#ifndef Events_DisplayServerlist_h__
|
||||
#define Events_DisplayServerlist_h__
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "Core/Event.h"
|
||||
|
||||
struct ServerInfo
|
||||
{
|
||||
ServerInfo(std::string address, int port, std::string name, int players)
|
||||
{
|
||||
Address = address; Port = port; Name = name; PlayersConnected = players;
|
||||
}
|
||||
std::string Address = "";
|
||||
int Port = 0;
|
||||
std::string Name = "";
|
||||
int PlayersConnected = 0;
|
||||
};
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct DisplayServerlist : public Event
|
||||
{
|
||||
std::vector<ServerInfo> Serverlist;
|
||||
};
|
||||
|
||||
}
|
||||
#endif
|
||||
@@ -7,6 +7,8 @@
|
||||
#include "Core/Event.h"
|
||||
#include "Systems/SpawnerSystem.h"
|
||||
|
||||
#include "Network/ESearchForServers.h"
|
||||
|
||||
class ServerListSystem : public PureSystem
|
||||
{
|
||||
public:
|
||||
@@ -17,6 +19,9 @@ public:
|
||||
|
||||
private:
|
||||
IRenderer* m_Renderer;
|
||||
|
||||
//EventRelay<ServerListSystem, Events::SomeEventLol> m_EServerListRecieved;
|
||||
//bool OnServerListRecieved(const Events::SomeEventLol& e)
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -82,7 +82,10 @@ void Client::Update()
|
||||
if (m_SearchingForServers) {
|
||||
if (m_SearchingTime < (1000* (std::clock() - m_StartSearchTime) / (double)CLOCKS_PER_SEC)) {
|
||||
m_SearchingForServers = false;
|
||||
displayServerlist();
|
||||
//displayServerlist();
|
||||
Events::DisplayServerlist e;
|
||||
e.Serverlist = m_Serverlist;
|
||||
m_EventBroker->Publish(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,12 +466,6 @@ void Client::disconnect()
|
||||
|
||||
bool Client::OnInputCommand(const Events::InputCommand & e)
|
||||
{
|
||||
// TEMP
|
||||
if (e.Command == "SearchForServers" && e.Value > 0) {
|
||||
Events::SearchForServers e;
|
||||
m_EventBroker->Publish(e);
|
||||
}
|
||||
|
||||
if (e.PlayerID != -1) {
|
||||
return false;
|
||||
}
|
||||
@@ -553,7 +550,6 @@ bool Client::OnSearchForServers(const Events::SearchForServers& e)
|
||||
m_SearchingForServers = true;
|
||||
m_StartSearchTime = std::clock();
|
||||
m_Serverlist.clear();
|
||||
LOG_INFO("Searching for LAN servers...\n");
|
||||
Packet packet(MessageType::ServerlistRequest);
|
||||
m_ServerlistRequest.Broadcast(packet, 13); // TODO: Config
|
||||
return true;
|
||||
|
||||
@@ -137,20 +137,13 @@ Game::Game(int argc, char* argv[])
|
||||
m_SystemPipeline->AddSystem<LifetimeSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<CapturePointSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<CapturePointHUDSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<PickupSpawnSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<AmmoPickupSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<TextFieldReader>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<AbilityCooldownHUDSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<CapturePointArrowHUDSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<CapturePointSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<CapturePointHUDSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<PickupSpawnSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<AmmoPickupSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<TextFieldReader>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<BoostSystem>(updateOrderLevel);
|
||||
m_SystemPipeline->AddSystem<ButtonSystem>(updateOrderLevel, m_Renderer);
|
||||
m_SystemPipeline->AddSystem<MainMenuSystem>(updateOrderLevel, m_Renderer);
|
||||
|
||||
@@ -96,6 +96,7 @@ bool AmmoPickupSystem::OnAmmoPickup(Events::AmmoPickup & e)
|
||||
}
|
||||
|
||||
currentAmmo = std::min(currentAmmo + e.AmmoGain, maxWeaponAmmo);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -114,8 +115,11 @@ bool AmmoPickupSystem::OnTriggerLeave(Events::TriggerLeave& e) {
|
||||
}
|
||||
|
||||
void AmmoPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
||||
//trigger should be valid but if it isnt we just return (to avoid crash)
|
||||
if (!trigger.Valid()) {
|
||||
return;
|
||||
}
|
||||
int maxWeaponAmmo = (int)player["AssaultWeapon"]["MaxAmmo"];
|
||||
int& currentAmmo = (int)player["AssaultWeapon"]["Ammo"];
|
||||
int ammoGiven = 0.01*(double)trigger["AmmoPickup"]["AmmoGain"] * maxWeaponAmmo;
|
||||
|
||||
Events::AmmoPickup ePlayerAmmoPickup;
|
||||
@@ -123,9 +127,6 @@ void AmmoPickupSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger) {
|
||||
ePlayerAmmoPickup.Player = player;
|
||||
m_EventBroker->Publish(ePlayerAmmoPickup);
|
||||
|
||||
//immediately give the player the ammo (on server)
|
||||
currentAmmo = std::min(currentAmmo + ammoGiven, maxWeaponAmmo);
|
||||
|
||||
//copy position, ammogain, respawntimer (twice since one of the values will be counted down to 0, the other will be set in the new object)
|
||||
//we need to copy all values since each value can be different for each ammoPickup
|
||||
m_ETriggerTouchVector.push_back({ (glm::vec3)trigger["Transform"]["Position"], trigger["AmmoPickup"]["AmmoGain"],
|
||||
|
||||
@@ -83,6 +83,10 @@ bool PickupSpawnSystem::OnTriggerLeave(Events::TriggerLeave& e)
|
||||
}
|
||||
void PickupSpawnSystem::DoPickup(EntityWrapper &player, EntityWrapper &trigger)
|
||||
{
|
||||
//trigger should be valid but if it isnt we just return (to avoid crash)
|
||||
if (!trigger.Valid()) {
|
||||
return;
|
||||
}
|
||||
double healthGiven = 0.01*(double)trigger["HealthPickup"]["HealthGain"] * (double)player["Health"]["MaxHealth"];
|
||||
|
||||
//only the server will increase the players hp and set it in the next delta
|
||||
|
||||
@@ -5,7 +5,7 @@ ServerListSystem::ServerListSystem(SystemParams params, IRenderer* renderer)
|
||||
, PureSystem("ServerList")
|
||||
, m_Renderer(renderer)
|
||||
{
|
||||
|
||||
//Subscribe to OnServerListRecieved
|
||||
}
|
||||
|
||||
void ServerListSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cServerList, double dt)
|
||||
@@ -15,5 +15,6 @@ void ServerListSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper&
|
||||
|
||||
void ServerListSystem::RefreshList()
|
||||
{
|
||||
|
||||
//Send out request for a server list.
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user