diff options
Diffstat (limited to 'src/entities/mussolini.c')
-rw-r--r-- | src/entities/mussolini.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/entities/mussolini.c b/src/entities/mussolini.c index ed137b1..a7428da 100644 --- a/src/entities/mussolini.c +++ b/src/entities/mussolini.c @@ -6,6 +6,17 @@ #include "world.h" #include "entity.h" +const Vector3 mussoliniLaunchPositions[MUSSOLINI_LAUNCH_POSITIONS_COUNT] = { + (Vector3){-66.047, 30.628, 40.838}, + (Vector3){-66.047, 10.209, 40.838}, + (Vector3){-66.047, -10.209, 40.838}, + (Vector3){-66.047, -30.628, 40.838}, + (Vector3){66.047, 30.628, 40.838}, + (Vector3){66.047, 10.209, 40.838}, + (Vector3){66.047, -10.209, 40.838}, + (Vector3){66.047, -30.628, 40.838} +}; + void initMussolini(Entity * entity, Game * game) { entity->model = &game->assets.models[MUSSOLINI_ASSET]; entity->collisionModel = entityCreateCollisionModel(*entity->model); @@ -43,7 +54,17 @@ void updateMussoliniGuns(Game * game, Entity * entity) { // Shoot missile. Entity missile = createEntity(ENTITY_MISSILE, game); - missile.position = entity->position; + + // Set missile position. + SetRandomSeed(clock()); + Vector3 missileStartPosition = mussoliniLaunchPositions[GetRandomValue(0, MUSSOLINI_LAUNCH_POSITIONS_COUNT)]; + + missile.position = Vector3Add( + entity->position, + Vector3RotateByQuaternion(missileStartPosition, entity->rotation) + ); + + // Launch this mother fucker!!! launchMissileAtTarget(&missile, player->position, 200.0); startMissileCountDown(&missile, 4.0); scheduleEntityToAdd(&game->world, missile); |