Add fireball particles, add max lifespan to fireball

This commit is contained in:
2024-02-10 11:39:01 +01:00
parent 1c6fab51c6
commit 1487d67a3b
5 changed files with 57 additions and 38 deletions

View File

@@ -376,19 +376,29 @@ void updateTower(ecs_iter_t *it) {
Vector2 dir = Vector2Subtract(targetPos, center);
dir = Vector2Normalize(dir);
dir = Vector2Scale(dir, tower[i].projectileSpeed);
dir = Vector2Scale(dir, tower[i].projSpeed);
ecs_entity_t proj = entityCreateEmpty();
ecs_set(ECS, proj, Position, { center.x, center.y });
ecs_set(ECS, proj, Velocity, { dir.x, dir.y });
ecs_set(ECS, proj, Projectile, {
.damage = randFloatRange(tower[i].minDamage, tower[i].maxDamage),
.damage = randFloatRange(tower[i].projMinDamage, tower[i].projMaxDamage),
.target = targetPos,
.radius = tower[i].projectileRadius,
.damageCount = tower[i].projectileDamageCount
.radius = tower[i].projRadius,
.damageCount = tower[i].projDamageCount
});
ecs_set(ECS, proj, Owner, { owner[i].player });
f32 lifespan = randFloatRange(tower[i].projMinLifespan, tower[i].projMaxLifespan);
ecs_set(ECS, proj, DelayDelete, { .time = lifespan });
ecs_entity_t projEmitter = entityCreateEmpty();
ParticleEmitter emitter = GET_FIREBALL_EMITTER();
emitter.targetParticles = ecs_id(ParticleLayer1);
emitter.pos = center;
ecs_set_ptr(ECS, projEmitter, ParticleEmitter, &emitter);
ecs_set(ECS, projEmitter, EmitterAttachment, { .baseEntity = proj });
tower[i].fireElapsed = 0.0f;
}
@@ -453,9 +463,6 @@ void updateProjectile(ecs_iter_t *it) {
continue;
}
DrawRectangleV((Vector2) {bounds.x, bounds.y}, (Vector2) {bounds.width, bounds.height},
RED);
pos[i] = Vector2Add(pos[i], Vector2Scale(vel[i], dt));
if (pos[i].x < 0.0f || pos[i].y < 0.0f ||
pos[i].x >= game->map.width * game->map.tileWidth ||