@@ -247,16 +247,20 @@ bool dd::Systems::KrakenSystem::OnContact(const dd::Events::Contact &event)
247247
248248 auto projectile = m_World->GetComponent <Components::Projectile>(otherEntitiy);
249249 if (projectile != nullptr ) {
250- Events::ScoreEvent es;
251- es.Score = 23 ;
252- EventBroker->Publish (es);
253- Events::KrakenHit e;
254- e.Kraken = krakenEntity;
255- e.Hitter = otherEntitiy;
256- e.MaxHealth = kraken->MaxHealth ;
257- e.CurrentHealth = kraken->Health ;
258- e.NewHealth = kraken->Health - 1 ;
259- EventBroker->Publish (e);
250+ if (m_RandomKraken) {
251+ Events::ScoreEvent es;
252+ es.Score = 23 ;
253+ EventBroker->Publish (es);
254+ Events::KrakenHit e;
255+ e.Kraken = krakenEntity;
256+ e.Hitter = otherEntitiy;
257+ auto transform = m_World->GetComponent <Components::Transform>(otherEntitiy);
258+ e.PlaceHit = transform->Position ;
259+ e.MaxHealth = kraken->MaxHealth ;
260+ e.CurrentHealth = kraken->Health ;
261+ e.NewHealth = kraken->Health - 1 ;
262+ EventBroker->Publish (e);
263+ }
260264 m_World->RemoveEntity (otherEntitiy);
261265 return true ;
262266 }
@@ -273,6 +277,8 @@ bool dd::Systems::KrakenSystem::OnContact(const dd::Events::Contact &event)
273277 Events::KrakenHit e;
274278 e.Kraken = krakenEntity;
275279 e.Hitter = otherEntitiy;
280+ auto transform = m_World->GetComponent <Components::Transform>(otherEntitiy);
281+ e.PlaceHit = transform->Position ;
276282 e.MaxHealth = kraken->MaxHealth ;
277283 e.CurrentHealth = kraken->Health ;
278284 e.NewHealth = kraken->Health - 1 ;
@@ -317,7 +323,6 @@ bool dd::Systems::KrakenSystem::OnKrakenAttack(const dd::Events::KrakenAttack &e
317323bool dd::Systems::KrakenSystem::OnKrakenHit (const dd::Events::KrakenHit &event)
318324{
319325 auto kraken = m_World->GetComponent <Components::Kraken>(event.Kraken );
320- auto transform = m_World->GetComponent <Components::Transform>(event.Hitter );
321326 kraken->Health --;
322327 kraken->CurrentAction = 3 ;
323328 // kraken->Health -= 15;
@@ -362,7 +367,7 @@ bool dd::Systems::KrakenSystem::OnKrakenHit(const dd::Events::KrakenHit &event)
362367 poof.NumberOfTicks = 1 ;
363368 poof.ParticleLifeTime = 1 .5f ;
364369 poof.ParticlesPerTick = 2 ;
365- poof.Position = transform-> Position ;
370+ poof.Position = event. PlaceHit ;
366371 poof.ScaleValues .clear ();
367372 poof.ScaleValues .push_back (glm::vec3 (0 .5f ));
368373 poof.ScaleValues .push_back (glm::vec3 (2 .f , 2 .f , 0 .2f ));
0 commit comments