fixup! Merge remote-tracking branch 'origin/master' into WeaponSystem
This commit is contained in:
@@ -21,8 +21,8 @@ public:
|
|||||||
DamageIndicatorSystem(SystemParams params);
|
DamageIndicatorSystem(SystemParams params);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
EventRelay<DamageIndicatorSystem, Events::PlayerDamage> m_DamageTakenFromPlayer;
|
EventRelay<DamageIndicatorSystem, Events::PlayerDamage> m_EPlayerDamage;
|
||||||
bool OnPlayerDamageTaken(Events::PlayerDamage& e);
|
bool OnPlayerDamage(Events::PlayerDamage& e);
|
||||||
|
|
||||||
EventRelay<DamageIndicatorSystem, Events::SetCamera> m_ESetCamera;
|
EventRelay<DamageIndicatorSystem, Events::SetCamera> m_ESetCamera;
|
||||||
bool OnSetCamera(const Events::SetCamera& e);
|
bool OnSetCamera(const Events::SetCamera& e);
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
DamageIndicatorSystem::DamageIndicatorSystem(SystemParams params)
|
DamageIndicatorSystem::DamageIndicatorSystem(SystemParams params)
|
||||||
: System(params)
|
: System(params)
|
||||||
{
|
{
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_DamageTakenFromPlayer, &DamageIndicatorSystem::OnPlayerDamageTaken);
|
EVENT_SUBSCRIBE_MEMBER(m_EPlayerDamage, &DamageIndicatorSystem::OnPlayerDamage);
|
||||||
//current camera
|
//current camera
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_ESetCamera, &DamageIndicatorSystem::OnSetCamera);
|
EVENT_SUBSCRIBE_MEMBER(m_ESetCamera, &DamageIndicatorSystem::OnSetCamera);
|
||||||
|
|
||||||
@@ -12,23 +12,27 @@ DamageIndicatorSystem::DamageIndicatorSystem(SystemParams params)
|
|||||||
auto entityFile = ResourceManager::Load<EntityFile>("Schema/Entities/DamageIndicator.xml");
|
auto entityFile = ResourceManager::Load<EntityFile>("Schema/Entities/DamageIndicator.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DamageIndicatorSystem::OnPlayerDamageTaken(Events::PlayerDamage& e)
|
bool DamageIndicatorSystem::OnPlayerDamage(Events::PlayerDamage& e)
|
||||||
{
|
{
|
||||||
if (m_CurrentCamera == -1) {
|
if (m_CurrentCamera == EntityID_Invalid) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.Victim != LocalPlayer) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//grab players direction
|
//grab players direction
|
||||||
auto playerOrientation = glm::quat((glm::vec3)e.Player["Transform"]["Orientation"]);
|
auto playerOrientation = glm::quat((glm::vec3)e.Victim["Transform"]["Orientation"]);
|
||||||
|
|
||||||
//get the position vectors, but ignore the y-height
|
//get the position vectors, but ignore the y-height
|
||||||
auto enemyPosition = (glm::vec3) e.PlayerShooter["Transform"]["Position"];
|
auto enemyPosition = (glm::vec3)e.Inflictor["Transform"]["Position"];
|
||||||
auto playerPosition = (glm::vec3) e.Player["Transform"]["Position"];
|
auto playerPosition = (glm::vec3)e.Victim["Transform"]["Position"];
|
||||||
enemyPosition.y = 0.0f;
|
enemyPosition.y = 0.0f;
|
||||||
playerPosition.y = 0.0f;
|
playerPosition.y = 0.0f;
|
||||||
|
|
||||||
//calculate the enemy to player vector
|
//calculate the enemy to player vector
|
||||||
auto enemyPlayerVector = glm::normalize((glm::vec3) playerPosition - enemyPosition);
|
auto enemyPlayerVector = glm::normalize(playerPosition - enemyPosition);
|
||||||
|
|
||||||
//get angle from players current rotation, this angle is how much you rotate around the y-axis
|
//get angle from players current rotation, this angle is how much you rotate around the y-axis
|
||||||
auto playerAngle = glm::angle(playerOrientation);
|
auto playerAngle = glm::angle(playerOrientation);
|
||||||
|
|||||||
@@ -323,6 +323,7 @@ bool AssaultWeaponBehaviour::shoot(double damage)
|
|||||||
|
|
||||||
// Deal damage!
|
// Deal damage!
|
||||||
Events::PlayerDamage ePlayerDamage;
|
Events::PlayerDamage ePlayerDamage;
|
||||||
|
ePlayerDamage.Inflictor = m_Player;
|
||||||
ePlayerDamage.Victim = victim;
|
ePlayerDamage.Victim = victim;
|
||||||
ePlayerDamage.Damage = damage;
|
ePlayerDamage.Damage = damage;
|
||||||
m_EventBroker->Publish(ePlayerDamage);
|
m_EventBroker->Publish(ePlayerDamage);
|
||||||
|
|||||||
@@ -94,5 +94,3 @@ bool WeaponSystem::OnPlayerSpawned(Events::PlayerSpawned& e)
|
|||||||
// TODO: Select the active one specified by player component
|
// TODO: Select the active one specified by player component
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ePlayerDamage.PlayerShooter = eShoot.Player;
|
|
||||||
Reference in New Issue
Block a user