Add fireball particles, add max lifespan to fireball
This commit is contained in:
@@ -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 ||
|
||||
|
||||
Reference in New Issue
Block a user