Blood in progress. <- period

This commit is contained in:
Stiffly
2015-10-23 14:39:26 +02:00
parent 525868e228
commit 485cdb7b5e
2 changed files with 126 additions and 82 deletions
+1
View File
@@ -98,6 +98,7 @@ private:
bool OnBrickGenerating(const dd::Events::BrickGenerating &event); bool OnBrickGenerating(const dd::Events::BrickGenerating &event);
bool OnArrivedAtNewStage(const dd::Events::ArrivedAtNewStage &event); bool OnArrivedAtNewStage(const dd::Events::ArrivedAtNewStage &event);
void GetBrickSet(); void GetBrickSet();
void CreateBloodEffect(glm::vec3);
}; };
} }
+125 -82
View File
@@ -118,51 +118,51 @@ void dd::Systems::KrakenSystem::UpdateEntity(double dt, EntityID entity, EntityI
krakenAttack.PlayerStrength = 0.05; krakenAttack.PlayerStrength = 0.05;
EventBroker->Publish(krakenAttack); EventBroker->Publish(krakenAttack);
break; break;
case 3: // Brick Generating // case 3: // Brick Generating
{ // {
m_NumberOfActions++; // m_NumberOfActions++;
kraken->CurrentAction = 1; // kraken->CurrentAction = 1;
Events::BrickGenerating e; // Events::BrickGenerating e;
e.Origin1 = glm::vec3(-5, 7, -10); // e.Origin1 = glm::vec3(-5, 7, -10);
e.Origin2 = glm::vec3(5, 7, -10); // e.Origin2 = glm::vec3(5, 7, -10);
if (kraken->Health > 20) { // if (kraken->Health > 20) {
e.SetCluster = 0; // e.SetCluster = 0;
} else if (kraken->Health > 10) { // } else if (kraken->Health > 10) {
e.SetCluster = 1; // e.SetCluster = 1;
} else { // } else {
e.SetCluster = 2; // e.SetCluster = 2;
} // }
std::uniform_real_distribution<float> dist(1, 6.999f); // std::uniform_real_distribution<float> dist(1, 6.999f);
float random = dist(m_RandomGenerator); // float random = dist(m_RandomGenerator);
e.Set = random; // e.Set = random;
EventBroker->Publish(e); // EventBroker->Publish(e);
break; // break;
} // }
case 4: // Brick Generating second case // case 4: // Brick Generating second case
{ // {
kraken->CurrentAction = 1; // kraken->CurrentAction = 1;
Events::BrickGenerating e; // Events::BrickGenerating e;
e.Origin1 = glm::vec3(-5, 7, -10); // e.Origin1 = glm::vec3(-5, 7, -10);
e.Origin2 = glm::vec3(5, 7, -10); // e.Origin2 = glm::vec3(5, 7, -10);
if (kraken->Health > 20) { // if (kraken->Health > 20) {
e.SetCluster = 0; // e.SetCluster = 0;
} else if (kraken->Health > 10) { // } else if (kraken->Health > 10) {
e.SetCluster = 1; // e.SetCluster = 1;
} else { // } else {
e.SetCluster = 2; // e.SetCluster = 2;
} // }
std::uniform_real_distribution<float> dist(1, 6.999f); // std::uniform_real_distribution<float> dist(1, 6.999f);
float random = dist(m_RandomGenerator); // float random = dist(m_RandomGenerator);
e.Set = random; // e.Set = random;
EventBroker->Publish(e); // EventBroker->Publish(e);
break; // break;
} // }
case 5: // Taunting // case 5: // Taunting
if (m_ReturnToIdle) { // if (m_ReturnToIdle) {
m_ReturnToIdle = false; // m_ReturnToIdle = false;
kraken->CurrentAction = Idle; // kraken->CurrentAction = Idle;
} // }
break; // break;
default: default:
//LOG_INFO("Something's probably off about the random number generator."); //LOG_INFO("Something's probably off about the random number generator.");
break; break;
@@ -291,45 +291,27 @@ bool dd::Systems::KrakenSystem::OnKrakenHit(const dd::Events::KrakenHit &event)
auto ball = m_World->GetComponent<Components::Transform>(event.Hitter); auto ball = m_World->GetComponent<Components::Transform>(event.Hitter);
if (ball != nullptr) { if (ball != nullptr) {
//Particle trail // //Particle trail
Events::CreateParticleSequence trail; // Events::CreateParticleSequence trail;
trail.parent = event.Hitter; // trail.parent = event.Hitter;
trail.AlphaValues.push_back(1.f); // trail.AlphaValues.push_back(1.f);
trail.AlphaValues.push_back(0.f); // trail.AlphaValues.push_back(0.f);
trail.ScaleValues.push_back(glm::vec3(0.08f)); // trail.ScaleValues.push_back(glm::vec3(0.08f));
trail.ScaleValues.push_back(glm::vec3(0.f)); // trail.ScaleValues.push_back(glm::vec3(0.f));
trail.RadiusDistribution = 2; // trail.RadiusDistribution = 2;
trail.EmitterLifeTime = 1.f; // trail.EmitterLifeTime = 1.f;
trail.ParticleLifeTime = 1.f; // trail.ParticleLifeTime = 1.f;
trail.ParticlesPerTick = 1; // trail.ParticlesPerTick = 1;
trail.SpawnRate = 0.5f; // trail.SpawnRate = 0.5f;
trail.Speed = 10.f; // trail.Speed = 10.f;
trail.EmittingAngle = glm::half_pi<float>(); // trail.EmittingAngle = glm::half_pi<float>();
trail.SpriteFile = "Textures/Particles/FadeBall.png"; // trail.SpriteFile = "Textures/Particles/FadeBall.png";
trail.Color = glm::vec4(1, 0, 0, 1); // trail.Color = glm::vec4(1, 0, 0, 1);
//p.Spread = ... // //p.Spread = ...
EventBroker->Publish(trail); // EventBroker->Publish(trail);
} }
//ParticlePoof CreateBloodEffect(transform->Position);
Events::CreateParticleSequence poof;
poof.EmitterLifeTime = 4;
poof.EmittingAngle = glm::half_pi<float>();
poof.Spread = 0.5f;
poof.NumberOfTicks = 1;
poof.ParticleLifeTime = 1.5f;
poof.ParticlesPerTick = 2;
poof.Position = transform->Position;
poof.ScaleValues.clear();
poof.ScaleValues.push_back(glm::vec3(0.5f));
poof.ScaleValues.push_back(glm::vec3(2.f, 2.f, 0.2f));
poof.SpriteFile = "Textures/Particles/Cloud_Particle.png";
poof.Color = glm::vec4(1, 0, 0, 1);
poof.AlphaValues.clear();
poof.AlphaValues.push_back(1.f);
poof.AlphaValues.push_back(0.f);
poof.Speed = 20;
EventBroker->Publish(poof);
//std::cout << kraken->Health << std::endl; //std::cout << kraken->Health << std::endl;
//kraken->Health = -1; //kraken->Health = -1;
@@ -437,4 +419,65 @@ bool dd::Systems::KrakenSystem::OnArrivedAtNewStage(const dd::Events::ArrivedAtN
m_KrakenHasArrived = true; m_KrakenHasArrived = true;
} }
return true; return true;
}
void dd::Systems::KrakenSystem::CreateBloodEffect(glm::vec3 pos)
{
//ParticlePoof
Events::CreateParticleSequence dust;
dust.EmitterLifeTime = 4;
dust.EmittingAngle = glm::half_pi<float>();
dust.Spread = 0.5f;
dust.NumberOfTicks = 1;
dust.ParticleLifeTime = 2.f;
dust.ParticlesPerTick = 1;
dust.Position = pos;
dust.ScaleValues.clear();
dust.ScaleValues.push_back(glm::vec3(0.5f));
dust.ScaleValues.push_back(glm::vec3(2.f, 2.f, 0.2f));
dust.SpriteFile = "Textures/Particles/Cloud_Particle.png";
dust.Color = glm::vec4(1, 0, 0, 1);
dust.AlphaValues.clear();
dust.AlphaValues.push_back(1.f);
dust.AlphaValues.push_back(0.f);
dust.Speed = 20;
EventBroker->Publish(dust);
std::uniform_real_distribution<float> dist(glm::pi<float>(), glm::two_pi<float>());
for (int i = 0; i < 3; i++) {
float angle = dist(m_RandomGenerator);
Events::CreateParticleSequence squirt;
squirt.EmitterLifeTime = 0.5f;
squirt.EmittingAngle = angle;
squirt.Spread = 0;
squirt.SpawnRate = 0.01f;
squirt.ParticleLifeTime = 0.5f;
squirt.ParticlesPerTick = 1;
squirt.Position = pos;
squirt.ScaleValues.clear();
squirt.ScaleValues.push_back(glm::vec3(0.09f));
squirt.SpriteFile = "Textures/Particles/FadeBall.png";
squirt.Color = glm::vec4(1, 0, 0, 1);
squirt.AlphaValues.clear();
squirt.AlphaValues.push_back(1.f);
squirt.AlphaValues.push_back(0.f);
squirt.Speed = 1000;
EventBroker->Publish(squirt);
}
Events::CreateParticleSequence drop;
drop.EmitterLifeTime = 0.5f;
drop.EmittingAngle = glm::two_pi<float>() + glm::pi<float>();
drop.Spread = glm::two_pi<float>();
drop.ParticleLifeTime = 0.5f;
drop.ParticlesPerTick = 5;
drop.Position = pos;
drop.ScaleValues.clear();
drop.ScaleValues.push_back(glm::vec3(0.2f));
drop.SpriteFile = "Textures/Particles/FadeBall.png";
drop.Color = glm::vec4(1, 0, 0, 1);
drop.AlphaValues.clear();
drop.AlphaValues.push_back(1.f);
drop.AlphaValues.push_back(0.f);
drop.Speed = 100;
EventBroker->Publish(drop);
} }