Blood in progress. <- period
This commit is contained in:
@@ -98,6 +98,7 @@ private:
|
||||
bool OnBrickGenerating(const dd::Events::BrickGenerating &event);
|
||||
bool OnArrivedAtNewStage(const dd::Events::ArrivedAtNewStage &event);
|
||||
void GetBrickSet();
|
||||
void CreateBloodEffect(glm::vec3);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
+125
-82
@@ -118,51 +118,51 @@ void dd::Systems::KrakenSystem::UpdateEntity(double dt, EntityID entity, EntityI
|
||||
krakenAttack.PlayerStrength = 0.05;
|
||||
EventBroker->Publish(krakenAttack);
|
||||
break;
|
||||
case 3: // Brick Generating
|
||||
{
|
||||
m_NumberOfActions++;
|
||||
kraken->CurrentAction = 1;
|
||||
Events::BrickGenerating e;
|
||||
e.Origin1 = glm::vec3(-5, 7, -10);
|
||||
e.Origin2 = glm::vec3(5, 7, -10);
|
||||
if (kraken->Health > 20) {
|
||||
e.SetCluster = 0;
|
||||
} else if (kraken->Health > 10) {
|
||||
e.SetCluster = 1;
|
||||
} else {
|
||||
e.SetCluster = 2;
|
||||
}
|
||||
std::uniform_real_distribution<float> dist(1, 6.999f);
|
||||
float random = dist(m_RandomGenerator);
|
||||
e.Set = random;
|
||||
EventBroker->Publish(e);
|
||||
break;
|
||||
}
|
||||
case 4: // Brick Generating second case
|
||||
{
|
||||
kraken->CurrentAction = 1;
|
||||
Events::BrickGenerating e;
|
||||
e.Origin1 = glm::vec3(-5, 7, -10);
|
||||
e.Origin2 = glm::vec3(5, 7, -10);
|
||||
if (kraken->Health > 20) {
|
||||
e.SetCluster = 0;
|
||||
} else if (kraken->Health > 10) {
|
||||
e.SetCluster = 1;
|
||||
} else {
|
||||
e.SetCluster = 2;
|
||||
}
|
||||
std::uniform_real_distribution<float> dist(1, 6.999f);
|
||||
float random = dist(m_RandomGenerator);
|
||||
e.Set = random;
|
||||
EventBroker->Publish(e);
|
||||
break;
|
||||
}
|
||||
case 5: // Taunting
|
||||
if (m_ReturnToIdle) {
|
||||
m_ReturnToIdle = false;
|
||||
kraken->CurrentAction = Idle;
|
||||
}
|
||||
break;
|
||||
// case 3: // Brick Generating
|
||||
// {
|
||||
// m_NumberOfActions++;
|
||||
// kraken->CurrentAction = 1;
|
||||
// Events::BrickGenerating e;
|
||||
// e.Origin1 = glm::vec3(-5, 7, -10);
|
||||
// e.Origin2 = glm::vec3(5, 7, -10);
|
||||
// if (kraken->Health > 20) {
|
||||
// e.SetCluster = 0;
|
||||
// } else if (kraken->Health > 10) {
|
||||
// e.SetCluster = 1;
|
||||
// } else {
|
||||
// e.SetCluster = 2;
|
||||
// }
|
||||
// std::uniform_real_distribution<float> dist(1, 6.999f);
|
||||
// float random = dist(m_RandomGenerator);
|
||||
// e.Set = random;
|
||||
// EventBroker->Publish(e);
|
||||
// break;
|
||||
// }
|
||||
// case 4: // Brick Generating second case
|
||||
// {
|
||||
// kraken->CurrentAction = 1;
|
||||
// Events::BrickGenerating e;
|
||||
// e.Origin1 = glm::vec3(-5, 7, -10);
|
||||
// e.Origin2 = glm::vec3(5, 7, -10);
|
||||
// if (kraken->Health > 20) {
|
||||
// e.SetCluster = 0;
|
||||
// } else if (kraken->Health > 10) {
|
||||
// e.SetCluster = 1;
|
||||
// } else {
|
||||
// e.SetCluster = 2;
|
||||
// }
|
||||
// std::uniform_real_distribution<float> dist(1, 6.999f);
|
||||
// float random = dist(m_RandomGenerator);
|
||||
// e.Set = random;
|
||||
// EventBroker->Publish(e);
|
||||
// break;
|
||||
// }
|
||||
// case 5: // Taunting
|
||||
// if (m_ReturnToIdle) {
|
||||
// m_ReturnToIdle = false;
|
||||
// kraken->CurrentAction = Idle;
|
||||
// }
|
||||
// break;
|
||||
default:
|
||||
//LOG_INFO("Something's probably off about the random number generator.");
|
||||
break;
|
||||
@@ -291,45 +291,27 @@ bool dd::Systems::KrakenSystem::OnKrakenHit(const dd::Events::KrakenHit &event)
|
||||
|
||||
auto ball = m_World->GetComponent<Components::Transform>(event.Hitter);
|
||||
if (ball != nullptr) {
|
||||
//Particle trail
|
||||
Events::CreateParticleSequence trail;
|
||||
trail.parent = event.Hitter;
|
||||
trail.AlphaValues.push_back(1.f);
|
||||
trail.AlphaValues.push_back(0.f);
|
||||
trail.ScaleValues.push_back(glm::vec3(0.08f));
|
||||
trail.ScaleValues.push_back(glm::vec3(0.f));
|
||||
trail.RadiusDistribution = 2;
|
||||
trail.EmitterLifeTime = 1.f;
|
||||
trail.ParticleLifeTime = 1.f;
|
||||
trail.ParticlesPerTick = 1;
|
||||
trail.SpawnRate = 0.5f;
|
||||
trail.Speed = 10.f;
|
||||
trail.EmittingAngle = glm::half_pi<float>();
|
||||
trail.SpriteFile = "Textures/Particles/FadeBall.png";
|
||||
trail.Color = glm::vec4(1, 0, 0, 1);
|
||||
//p.Spread = ...
|
||||
EventBroker->Publish(trail);
|
||||
// //Particle trail
|
||||
// Events::CreateParticleSequence trail;
|
||||
// trail.parent = event.Hitter;
|
||||
// trail.AlphaValues.push_back(1.f);
|
||||
// trail.AlphaValues.push_back(0.f);
|
||||
// trail.ScaleValues.push_back(glm::vec3(0.08f));
|
||||
// trail.ScaleValues.push_back(glm::vec3(0.f));
|
||||
// trail.RadiusDistribution = 2;
|
||||
// trail.EmitterLifeTime = 1.f;
|
||||
// trail.ParticleLifeTime = 1.f;
|
||||
// trail.ParticlesPerTick = 1;
|
||||
// trail.SpawnRate = 0.5f;
|
||||
// trail.Speed = 10.f;
|
||||
// trail.EmittingAngle = glm::half_pi<float>();
|
||||
// trail.SpriteFile = "Textures/Particles/FadeBall.png";
|
||||
// trail.Color = glm::vec4(1, 0, 0, 1);
|
||||
// //p.Spread = ...
|
||||
// EventBroker->Publish(trail);
|
||||
}
|
||||
|
||||
//ParticlePoof
|
||||
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);
|
||||
CreateBloodEffect(transform->Position);
|
||||
|
||||
//std::cout << kraken->Health << std::endl;
|
||||
//kraken->Health = -1;
|
||||
@@ -437,4 +419,65 @@ bool dd::Systems::KrakenSystem::OnArrivedAtNewStage(const dd::Events::ArrivedAtN
|
||||
m_KrakenHasArrived = 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);
|
||||
}
|
||||
Reference in New Issue
Block a user