diff --git a/data/fighters/dart.json b/data/fighters/dart.json index 091a5d6..c69d123 100644 --- a/data/fighters/dart.json +++ b/data/fighters/dart.json @@ -17,5 +17,9 @@ "x" : 8, "y" : 0 } - ] + ], + "missiles" : { + "type" : "MISSILE_MISSILE", + "ammo" : 2 + } } diff --git a/data/fighters/simpleDart.json b/data/fighters/simpleDart.json index 6faec60..3716d71 100644 --- a/data/fighters/simpleDart.json +++ b/data/fighters/simpleDart.json @@ -17,5 +17,9 @@ "x" : 8, "y" : 0 } - ] + ], + "missiles" : { + "type" : "MISSILE_MISSILE", + "ammo" : 2 + } } diff --git a/src/battle/ai.c b/src/battle/ai.c index 8b5f8ca..a8d0087 100644 --- a/src/battle/ai.c +++ b/src/battle/ai.c @@ -287,9 +287,16 @@ static int hasClearShot(void) static void preAttack(void) { - if (!self->reload && self->guns[0].type) + if (!self->reload) { - fireGuns(self); + if (self->missiles.ammo == 0 || (rand() % 50) > 0) + { + fireGuns(self); + } + else + { + fireMissile(self); + } } } diff --git a/src/battle/ai.h b/src/battle/ai.h index 8c24f85..ad424ac 100644 --- a/src/battle/ai.h +++ b/src/battle/ai.h @@ -29,6 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. extern int mod(int n, int x); extern int getDistance(int x1, int y1, int x2, int y2); extern void fireGuns(Entity *owner); +extern void fireMissile(Entity *owner); extern float getAngle(int x1, int y1, int x2, int y2); extern void applyFighterThrust(void); extern void applyFighterBrakes(void); diff --git a/src/battle/fighters.c b/src/battle/fighters.c index f9c90c5..556d7c2 100644 --- a/src/battle/fighters.c +++ b/src/battle/fighters.c @@ -104,6 +104,8 @@ static void randomizeDart(Entity *dart) randomizeDartGuns(dart); + dart->missiles.ammo = rand() % 3; + sprintf(textureName, "gfx/fighters/dart0%d.png", 1 + rand() % 7); dart->texture = getTexture(textureName);