diff --git a/include/Engine/Input/FirstPersonInputController.h b/include/Engine/Input/FirstPersonInputController.h index 67e7270e..777c0331 100644 --- a/include/Engine/Input/FirstPersonInputController.h +++ b/include/Engine/Input/FirstPersonInputController.h @@ -213,7 +213,6 @@ bool FirstPersonInputController::OnCommand(const Events::InputComm } } - EntityWrapper firstPersonModel = m_PlayerEntity.FirstChildByName("Hands"); if (firstPersonModel.Valid()) { if (val > 0) { // Walk/Run diff --git a/resources/Schema/Entities/RayAssaultBlue.xml b/resources/Schema/Entities/RayAssaultBlue.xml index c358a4d5..b474ff2c 100644 --- a/resources/Schema/Entities/RayAssaultBlue.xml +++ b/resources/Schema/Entities/RayAssaultBlue.xml @@ -5,6 +5,7 @@ 0.079999998211860657 + @@ -17,10 +18,8 @@ Textures/Effects/NewRay5.png true - true - @@ -35,10 +34,8 @@ Textures/Effects/NewRay5.png true - true - diff --git a/resources/Schema/Entities/RayDefenderBlue.xml b/resources/Schema/Entities/RayDefenderBlue.xml index 066f2fb1..56a416ce 100644 --- a/resources/Schema/Entities/RayDefenderBlue.xml +++ b/resources/Schema/Entities/RayDefenderBlue.xml @@ -5,6 +5,7 @@ 0.079999998211860657 + @@ -17,12 +18,10 @@ Textures/Effects/NewRay7.png true - true - - + @@ -35,12 +34,10 @@ Textures/Effects/NewRay7.png true - true - - + diff --git a/resources/Schema/Entities/RaySideArmBlue.xml b/resources/Schema/Entities/RaySideArmBlue.xml index 072f8e95..f48a8fc3 100644 --- a/resources/Schema/Entities/RaySideArmBlue.xml +++ b/resources/Schema/Entities/RaySideArmBlue.xml @@ -3,11 +3,12 @@ - 0.08 + 0.080000000000000002 - 0.08 + 0.080000000000000002 + @@ -20,10 +21,8 @@ Textures/Effects/NewRay5.png true - true - @@ -38,10 +37,8 @@ Textures/Effects/NewRay5.png true - true - diff --git a/resources/Schema/Entities/ReloadEffectWorld.xml b/resources/Schema/Entities/ReloadEffectWorld.xml index ae6d3a3e..a5ffb087 100644 --- a/resources/Schema/Entities/ReloadEffectWorld.xml +++ b/resources/Schema/Entities/ReloadEffectWorld.xml @@ -6,12 +6,14 @@ 2 - true - - - true - + + + + 1.3399996757507324 true + true + true + 5.0899982452392578 Models/Weapons/Blue/AssaultWeaponBlue.mesh diff --git a/resources/Schema/Entities/SidearmWeaponBlueWorld.xml b/resources/Schema/Entities/SidearmWeaponBlueWorld.xml index d497e955..d32c0dee 100644 --- a/resources/Schema/Entities/SidearmWeaponBlueWorld.xml +++ b/resources/Schema/Entities/SidearmWeaponBlueWorld.xml @@ -2,6 +2,7 @@ + Models/Weapons/Blue/SecondaryWeaponBlue.mesh @@ -9,16 +10,37 @@ - + - - Schema/Entities/RayBlue.xml - - + - + + + + + Schema/Entities/RaySideArmBlue.xml + + + + + + + + + + + Schema/Entities/MuzzleFlashSideArmBlue.xml + + + + + + + + + diff --git a/resources/Schema/Entities/SidearmWeaponView.xml b/resources/Schema/Entities/SidearmWeaponView.xml index d3dcda66..11e049d4 100644 --- a/resources/Schema/Entities/SidearmWeaponView.xml +++ b/resources/Schema/Entities/SidearmWeaponView.xml @@ -11,17 +11,6 @@ - - - - Schema/Entities/Ray2Red.xml - - - - - - - @@ -38,8 +27,9 @@ - Textures/Core/UnitHexagon.png + Models/Core/UnitQuad.mesh + Textures/Core/UnitHexagon.png @@ -56,16 +46,16 @@ - - Player - SidearmWeapon - MagazineAmmo - 16 Fonts/DroidSans.ttf,64 + + Player + SidearmWeapon + MagazineAmmo + @@ -92,6 +82,37 @@ + + + + + + + + + + + Schema/Entities/RaySideArmBlue.xml + + + + + + + + + + + Schema/Entities/MuzzleFlashSideArmBlue.xml + + + + + + + + + diff --git a/resources/Schema/Entities/WeaponAssaultBlueView.xml b/resources/Schema/Entities/WeaponAssaultBlueView.xml index e1d6b852..1c1e9cf7 100644 --- a/resources/Schema/Entities/WeaponAssaultBlueView.xml +++ b/resources/Schema/Entities/WeaponAssaultBlueView.xml @@ -8,6 +8,7 @@ Models/Characters/Assault/FirstPersonAssaultBlue.mesh + false @@ -90,9 +91,10 @@ 1.5 Models/Weapons/Blue/AssaultWeaponBlue.mesh + false - + @@ -131,7 +133,7 @@ Schema/Entities/RayAssaultBlue.xml - + diff --git a/resources/Schema/Entities/WeaponAssaultBlueWorld.xml b/resources/Schema/Entities/WeaponAssaultBlueWorld.xml index cb1acae6..aa844329 100644 --- a/resources/Schema/Entities/WeaponAssaultBlueWorld.xml +++ b/resources/Schema/Entities/WeaponAssaultBlueWorld.xml @@ -2,6 +2,7 @@ + Models/Weapons/Blue/AssaultWeaponBlue.mesh @@ -9,17 +10,6 @@ - - - - Schema/Entities/RayBlue.xml - - - - - - - @@ -29,6 +19,38 @@ + + + + + + + + + + + + Schema/Entities/MuzzleFlashBlue.xml + + + + + + + + + + + Schema/Entities/RayAssaultBlue.xml + + + + + + + + + diff --git a/resources/Schema/Entities/WeaponDefenderBlueView.xml b/resources/Schema/Entities/WeaponDefenderBlueView.xml index 9e3d6a51..65475dc2 100644 --- a/resources/Schema/Entities/WeaponDefenderBlueView.xml +++ b/resources/Schema/Entities/WeaponDefenderBlueView.xml @@ -8,6 +8,7 @@ Models/Characters/Defender/FirstPersonDefenderBlue.mesh + false @@ -154,7 +155,7 @@ true - + @@ -244,9 +245,10 @@ Models/Weapons/Blue/DefenderWeaponBlue.mesh + false - + @@ -265,7 +267,7 @@ - + @@ -275,7 +277,7 @@ Schema/Entities/RayDefenderBlue.xml - + @@ -286,7 +288,7 @@ Schema/Entities/MuzzleFlashBlue.xml - + diff --git a/resources/Schema/Entities/WeaponDefenderBlueWorld.xml b/resources/Schema/Entities/WeaponDefenderBlueWorld.xml index bf87a789..18cf28da 100644 --- a/resources/Schema/Entities/WeaponDefenderBlueWorld.xml +++ b/resources/Schema/Entities/WeaponDefenderBlueWorld.xml @@ -2,6 +2,7 @@ + Models/Weapons/Blue/DefenderWeaponBlue.mesh @@ -9,17 +10,6 @@ - - - - Schema/Entities/DefenderRayBlue.xml - - - - - - - @@ -29,6 +19,38 @@ + + + + + + + + + + + Schema/Entities/RayDefenderBlue.xml + + + + + + + + + + + Schema/Entities/MuzzleFlashBlue.xml + + + + + + + + + + diff --git a/resources/Schema/Entities/WeaponSidearmAssaultBlueView.xml b/resources/Schema/Entities/WeaponSidearmAssaultBlueView.xml index e48cffba..d0a98be5 100644 --- a/resources/Schema/Entities/WeaponSidearmAssaultBlueView.xml +++ b/resources/Schema/Entities/WeaponSidearmAssaultBlueView.xml @@ -8,6 +8,7 @@ Models/Characters/Assault/FirstPersonAssaultBlue.mesh + false @@ -183,6 +184,7 @@ 1.2999999523162842 Models/Weapons/Blue/SecondaryWeaponBlue.mesh + false @@ -204,7 +206,7 @@ - + @@ -213,9 +215,7 @@ Schema/Entities/RaySideArmBlue.xml - - - + diff --git a/resources/Schema/Entities/WeaponSidearmDefenderBlueView.xml b/resources/Schema/Entities/WeaponSidearmDefenderBlueView.xml index 129082ed..0d647ba7 100644 --- a/resources/Schema/Entities/WeaponSidearmDefenderBlueView.xml +++ b/resources/Schema/Entities/WeaponSidearmDefenderBlueView.xml @@ -8,6 +8,7 @@ Models/Characters/Defender/FirstPersonDefenderBlue.mesh + false @@ -86,7 +87,7 @@ R_Ammo_Joint - + @@ -183,9 +184,10 @@ 1.5 Models/Weapons/Blue/SecondaryWeaponBlue.mesh + false - + @@ -204,10 +206,19 @@ - + + + + + Schema/Entities/RaySideArmBlue.xml + + + + + @@ -219,17 +230,6 @@ - - - - Schema/Entities/RaySideArmBlue.xml - - - - - - - diff --git a/src/Game/Systems/Weapon/AssaultWeaponBehaviour.cpp b/src/Game/Systems/Weapon/AssaultWeaponBehaviour.cpp index b58cf158..d6293bca 100644 --- a/src/Game/Systems/Weapon/AssaultWeaponBehaviour.cpp +++ b/src/Game/Systems/Weapon/AssaultWeaponBehaviour.cpp @@ -235,7 +235,8 @@ void AssaultWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi float distance = traceRayDistance(origin, direction); EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner); if (ray.Valid()) { - ((Field)ray["Transform"]["Scale"]).z(distance); + ((Field)ray["Transform"]["Scale"]).x(distance); + ((Field)ray["Transform"]["Position"]).z(-distance/2.f); } } //MuzzleFlash diff --git a/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp b/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp index 945c6071..b700583b 100644 --- a/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp +++ b/src/Game/Systems/Weapon/DefenderWeaponBehaviour.cpp @@ -395,9 +395,12 @@ void DefenderWeaponBehaviour::spawnTracers(ComponentWrapper cWeapon, WeaponInfo& glm::vec3 muzzlePosition = TransformSystem::AbsolutePosition(muzzle); glm::quat muzzleOrientation = TransformSystem::AbsoluteOrientation(muzzle); - rayOrigin = muzzlePosition; glm::vec3 muzzleToHit = hitPosition - muzzlePosition; + + rayOrigin = muzzlePosition + (muzzleToHit/2.f); + + glm::vec3 lookVector = glm::normalize(-muzzleToHit); float pitch = std::asin(-lookVector.y); float yaw = std::atan2(lookVector.x, lookVector.z); @@ -459,8 +462,8 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w } // Temp hit decal - EntityWrapper hit = ResourceManager::Load("Schema/Entities/HitTest.xml")->MergeInto(m_World); - (Field)hit["Transform"]["Position"] = pick.Position; +// EntityWrapper hit = ResourceManager::Load("Schema/Entities/HitTest.xml")->MergeInto(m_World); +// (Field)hit["Transform"]["Position"] = pick.Position; // Don't let us shoot ourselves in the foot somehow if (victim == LocalPlayer) { @@ -477,12 +480,17 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w // Check for friendly fire if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)wi.Player["Team"]["Team"]) { - // TODO: Ammo sharing + // Give boost + Events::PlayerDamage ePlayerDamage; + ePlayerDamage.Inflictor = wi.Player; + ePlayerDamage.Victim = victim; + ePlayerDamage.Damage = 0; + m_EventBroker->Publish(ePlayerDamage); continue; } damageSum[victim] += pelletDamage; - ((Field)hit["Model"]["Color"]).z(1.f); + // ((Field)hit["Model"]["Color"]).z(1.f); } // Deal damage! @@ -493,7 +501,6 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w ePlayerDamage.Victim = kv.first; ePlayerDamage.Damage = kv.second; m_EventBroker->Publish(ePlayerDamage); - LOG_DEBUG("Dealt %f damage to #%i", kv.second, kv.first.ID); } } diff --git a/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp b/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp index 57534786..8ce9d444 100644 --- a/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp +++ b/src/Game/Systems/Weapon/SidearmWeaponBehaviour.cpp @@ -223,15 +223,16 @@ void SidearmWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi return; } - //Tracer + // Tracer EntityWrapper tracerSpawner = weaponModelEntity.FirstChildByName("WeaponMuzzleRay"); if (tracerSpawner.Valid()) { glm::vec3 origin = TransformSystem::AbsolutePosition(tracerSpawner); - glm::vec3 direction = TransformSystem::AbsoluteOrientation(tracerSpawner) * glm::vec3(0, 0, -1); + glm::vec3 direction = glm::quat(TransformSystem::AbsoluteOrientationEuler(tracerSpawner)) * glm::vec3(0, 0, -1); float distance = traceRayDistance(origin, direction); EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner); if (ray.Valid()) { - ((Field)ray["Transform"]["Scale"]).z(distance); + ((Field)ray["Transform"]["Scale"]).x(distance); + ((Field)ray["Transform"]["Position"]).z(-distance/2.f); } }