From 989621071dc8ce292ca8c985cfed887c88f121ce Mon Sep 17 00:00:00 2001
From: nathansmithsmith <nathansmith7@mailfence.com>
Date: Fri, 8 Sep 2023 20:26:53 -0600
Subject: Played with shot gun thingy a bit more

---
 src/entities/sergente.c | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

(limited to 'src')

diff --git a/src/entities/sergente.c b/src/entities/sergente.c
index 0336355..f161622 100644
--- a/src/entities/sergente.c
+++ b/src/entities/sergente.c
@@ -68,16 +68,11 @@ Vector3 getSergenteShotSpread() {
 
 void updateGunsSergente(Game * game, Entity * entity) {
 	int i;
+	int hits = 0;
 	float t = GetTime();
 	Sergente * data = (Sergente*)entity->data;
 	Entity * player = getEntityFromWorld(game->world, 0);
-	Bullet shots[SERGENTE_SHOT_COUNT];
-
-	// debug draw.
-	for (i = 0; i < SERGENTE_SHOT_COUNT; ++i) {
-		DrawRay(data->shots[i].ray, BLUE);
-		DrawCube(data->shots[i].ray.position, 1.0, 1.0, 1.0, BLUE);
-	}
+	Bullet shot;
 
 	// Cool down.
 	if (t - data->timeSinceLastShot < SERGENTE_COOL_DOWN)
@@ -96,14 +91,16 @@ void updateGunsSergente(Game * game, Entity * entity) {
 		direction = Vector3Add(dirToPlayer, getSergenteShotSpread());
 
 		// Create shot.
-		shots[i] = createBulletFromDirection(*entity, direction, SERGENTE_DAMAGE);
+		shot = createBulletFromDirection(*entity, direction, SERGENTE_DAMAGE);
 
 		// Shoot it.
-		//printf("%d\n", shootBulletAtEntity(player, shots[i]).hit);
+		hits += shootBulletAtEntity(player, shot).hit ? 1 : 0;
 
-		data->shots[i] = shots[i];
+		data->shots[i] = shot;
 	}
 
+	printf("%f\n", (float)hits / SERGENTE_SHOT_COUNT);
+
 	data->timeSinceLastShot = t;
 }
 
@@ -118,14 +115,22 @@ void updateSergente(Game * game, Entity * entity) {
 	if (Vector3Distance(entity->position, data->target) <= SERGENTE_NEXT_POINT_THRESHOLD)
 		createSergenteTarget(game, entity);
 
-	//updateRotationSergente(game, entity);
+	updateGunsSergente(game, entity);
+	updateRotationSergente(game, entity);
 	entityCheckTransformedCollisionModel(entity);
 }
 
 void drawSergente(Game * game, Entity * entity) {
 	entityDraw(entity);
 
-	updateGunsSergente(game, entity);
+	// Debug shots
+	int i;
+	Sergente * data = (Sergente*)entity->data;
+
+	for (i = 0; i < SERGENTE_SHOT_COUNT; ++i) {
+		DrawRay(data->shots[i].ray, BLUE);
+		DrawCube(data->shots[i].ray.position, 1.0, 1.0, 1.0, BLUE);
+	}
 
 	// Test if facing player always.
 	//DrawLine3D(
-- 
cgit v1.2.3