Enemy swarm movement
This commit is contained in:
@@ -115,10 +115,57 @@ ecs_entity_t entityCreateWorker(const Position position, Player player, Game *ga
|
||||
return e;
|
||||
}
|
||||
|
||||
ecs_entity_t entityRecruit(EntityType type, Position position, Player player, Game *game) {
|
||||
ecs_entity_t entityCreateSwarmGoblin(const Position position, Player player, Game *game) {
|
||||
ecs_entity_t e = entityCreateBaseUnit(position, 10.0f, player, ENTITY_GOBLIN, ANIM_IDLE, game);
|
||||
ecs_set(ECS, e, Swarm, {
|
||||
.currWaypoint = 0,
|
||||
});
|
||||
ecs_set(ECS, e, Health, {
|
||||
.startHP = 40.0f,
|
||||
.hp = 40.0f,
|
||||
.lastChanged = -1.0f
|
||||
});
|
||||
|
||||
Unit *unit = ecs_get_mut(ECS, e, Unit);
|
||||
unit->minDamage = 5.0f;
|
||||
unit->maxDamage = 10.0f;
|
||||
unit->attackCooldown = 1.0f;
|
||||
unit->maxSpeed = 20.0f;
|
||||
|
||||
return e;
|
||||
}
|
||||
ecs_entity_t entityCreateSwarmOrc(const Position position, Player player, Game *game) {
|
||||
ecs_entity_t e = entityCreateBaseUnit(position, 10.0f, player, ENTITY_ORC, ANIM_IDLE, game);
|
||||
ecs_set(ECS, e, Swarm, {
|
||||
.currWaypoint = 0,
|
||||
});
|
||||
ecs_set(ECS, e, Health, {
|
||||
.startHP = 80.0f,
|
||||
.hp = 80.0f,
|
||||
.lastChanged = -1.0f
|
||||
});
|
||||
|
||||
Unit *unit = ecs_get_mut(ECS, e, Unit);
|
||||
unit->minDamage = 8.0f;
|
||||
unit->maxDamage = 22.0f;
|
||||
unit->attackCooldown = 1.8f;
|
||||
unit->maxSpeed = 12.0f;
|
||||
|
||||
return e;
|
||||
}
|
||||
|
||||
ecs_entity_t entityCreate(EntityType type, Position position, Player player, Game *game) {
|
||||
switch (type) {
|
||||
case ENTITY_WORKER:
|
||||
entityCreateWorker(position, player, game);
|
||||
return entityCreateWorker(position, player, game);
|
||||
case ENTITY_SOLDIER:
|
||||
return entityCreateSoldier(position, player, game);
|
||||
case ENTITY_WARRIOR:
|
||||
return entityCreateWarrior(position, player, game);
|
||||
case ENTITY_GOBLIN:
|
||||
return entityCreateSwarmGoblin(position, player, game);
|
||||
case ENTITY_ORC:
|
||||
return entityCreateSwarmOrc(position, player, game);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user