diff --git a/assets/Models/Brick/InkBrick.png b/assets/Models/Brick/InkBrick.png new file mode 100755 index 0000000..459f7e2 Binary files /dev/null and b/assets/Models/Brick/InkBrick.png differ diff --git a/include/Game/PadSystem.h b/include/Game/PadSystem.h index e21229e..0e9f9cd 100755 --- a/include/Game/PadSystem.h +++ b/include/Game/PadSystem.h @@ -107,8 +107,9 @@ private: float m_Edge = 2.8f; float m_PadOriginalHeight = -4.8; float m_PadHeight = m_PadOriginalHeight; + EntityID m_KrakenArm = NULL; + EntityID m_KrakenArmHitbox = NULL; float m_PadRiseSpeed = 0.2; - EntityID m_KrakenArm; Components::Transform* m_Transform = nullptr; Components::Pad* m_Pad = nullptr; std::shared_ptr m_StickTransform; diff --git a/src/game/Game/LevelSystem.cpp b/src/game/Game/LevelSystem.cpp index ba06fcc..de6ceb3 100755 --- a/src/game/Game/LevelSystem.cpp +++ b/src/game/Game/LevelSystem.cpp @@ -439,8 +439,9 @@ EntityID dd::Systems::LevelSystem::CreateBrick(int row, int line, glm::vec2 spac auto type = m_World->AddComponent(brick); model->ModelFile = "Models/Brick/StickyBrick.obj"; } else if (typeInt == InkBlasterBrick) { - cBrick->Type = InkBlasterBrick; + cBrick->Type = InkBlasterBrick; auto type = m_World->AddComponent(brick); + //model->ModelFile = "Models/Brick/InkBrick.obj"; model->Color = glm::vec4(0.1f, 0.1f, 0.1f, 1.0f); } else if (typeInt == KrakenAttackBrick) { cBrick->Type = KrakenAttackBrick; @@ -1100,7 +1101,7 @@ void dd::Systems::LevelSystem::GetNextLevel() 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0}; color = {w, w, w, w, w, w, w, diff --git a/src/game/Game/PadSystem.cpp b/src/game/Game/PadSystem.cpp index b88cbae..3b3048c 100755 --- a/src/game/Game/PadSystem.cpp +++ b/src/game/Game/PadSystem.cpp @@ -476,16 +476,36 @@ bool dd::Systems::PadSystem::OnKrakenAttack(const dd::Events::KrakenAttack &even transform->Velocity = glm::vec3(0, 0, 0); acceleration = glm::vec3(0, 0, 0); - + LOG_INFO("Kraken arm duuude"); if (!m_KrakenArm){ + LOG_INFO("InKrakenArmDuuude"); m_KrakenArm = m_World->CreateEntity(Entity()); auto transform = m_World->AddComponent(m_KrakenArm); transform->Position = glm::vec3(1.f, -3.0f, 0.f); auto model = m_World->AddComponent(m_KrakenArm); - model->ModelFile = "Models/kraken/Arm.dae"; - auto animation = m_World->AddComponent(m_KrakenArm); - animation->Speed = 1.0f; + model->ModelFile = "Models/Kraken/Arm.dae"; + auto animation = m_World->AddComponent(m_KrakenArm); + animation->Speed = 1.0f; + animation->Loop = false; m_World->CommitEntity(m_KrakenArm); + + m_KrakenArmHitbox = m_World->CreateEntity(); + auto hb_transform = m_World->AddComponent(m_KrakenArmHitbox); + hb_transform->Position = transform->Position + glm::vec3(-1.f, -5.0f, -10.f); + //hb_transform->Position = glm::vec3(-2.f, -8.0f, -10.f); + hb_transform->Scale = glm::vec3(2.5f, 2.5f, 1.f); + hb_transform->Velocity = glm::vec3(0.f, 10.f, 0.f); + //auto hb_sprite = m_World->AddComponent(m_KrakenArmHitbox); + //hb_sprite->SpriteFile = "Textures/Core/ErrorTexture.png"; + auto hb_physics = m_World->AddComponent(m_KrakenArmHitbox); + hb_physics->Calculate = true; + hb_physics->CollisionType = CollisionType::Type::Static; + hb_physics->Category = CollisionLayer::Type::Other; + hb_physics->Mask = CollisionLayer::Type::Water; + hb_physics->GravityScale = 0.f; + auto hb_HitBox = m_World->AddComponent(m_KrakenArmHitbox); + hb_HitBox->Radius = 1.25f; + m_World->CommitEntity(m_KrakenArmHitbox); } SetTransform(transform); @@ -506,7 +526,9 @@ bool dd::Systems::PadSystem::OnKrakenAttackEnd(const dd::Events::KrakenAttackEnd m_PlayerStrength = 0; m_World->RemoveEntity(m_KrakenArm); + m_World->RemoveEntity(m_KrakenArmHitbox); m_KrakenArm = NULL; + m_KrakenArmHitbox = NULL; return true; } diff --git a/src/game/Physics/PhysicsSystem.cpp b/src/game/Physics/PhysicsSystem.cpp index ce67687..794302c 100755 --- a/src/game/Physics/PhysicsSystem.cpp +++ b/src/game/Physics/PhysicsSystem.cpp @@ -37,6 +37,7 @@ void dd::Systems::PhysicsSystem::InitializeWater() m_ParticleSystemDef.radius = radius; m_ParticleSystemDef.gravityScale = gravityScale; m_ParticleSystemDef.density = 4.f; + m_ParticleSystemDef.surfaceTensionNormalStrength = 0.07; m_WaterParticleSystem = m_PhysicsWorld->CreateParticleSystem(&m_ParticleSystemDef); }