Allow shadow mines to hunt player, or wander around if not near them.
This commit is contained in:
parent
7dea0c440e
commit
915eec5cf0
|
@ -128,10 +128,26 @@ static void lookForPlayer(void)
|
||||||
{
|
{
|
||||||
distance = getDistance(self->x, self->y, player->x, player->y);
|
distance = getDistance(self->x, self->y, player->x, player->y);
|
||||||
|
|
||||||
if (distance < SCREEN_WIDTH)
|
if (distance < SCREEN_WIDTH * 2)
|
||||||
{
|
{
|
||||||
dx = player->x - self->x;
|
dx = player->x - self->x;
|
||||||
dy = player->y - self->y;
|
dy = player->y - self->y;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (--self->aiActionTime > 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dx = rand() % 1000;
|
||||||
|
dx -= rand() % 1000;
|
||||||
|
|
||||||
|
dy = rand() % 1000;
|
||||||
|
dy -= rand() % 1000;
|
||||||
|
|
||||||
|
self->aiActionTime = FPS * (5 + (rand() % 15));
|
||||||
|
}
|
||||||
|
|
||||||
norm = sqrt(dx * dx + dy * dy);
|
norm = sqrt(dx * dx + dy * dy);
|
||||||
|
|
||||||
|
@ -153,7 +169,6 @@ static void lookForPlayer(void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
self->systemPower = SYSTEM_POWER;
|
self->systemPower = SYSTEM_POWER;
|
||||||
}
|
}
|
||||||
|
@ -174,6 +189,8 @@ static void die(void)
|
||||||
self->alive = ALIVE_DEAD;
|
self->alive = ALIVE_DEAD;
|
||||||
|
|
||||||
updateObjective(self->name, TT_DESTROY);
|
updateObjective(self->name, TT_DESTROY);
|
||||||
|
|
||||||
|
runScriptFunction("MINES_DESTROYED %d", battle.stats[STAT_MINES_DESTROYED]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doSplashDamage(void)
|
static void doSplashDamage(void)
|
||||||
|
|
|
@ -32,6 +32,7 @@ extern void addMineExplosion(void);
|
||||||
extern void damageFighter(Entity *e, int amount, long flags);
|
extern void damageFighter(Entity *e, int amount, long flags);
|
||||||
extern void playBattleSound(int id, int x, int y);
|
extern void playBattleSound(int id, int x, int y);
|
||||||
extern void updateObjective(char *name, int type);
|
extern void updateObjective(char *name, int type);
|
||||||
|
extern void runScriptFunction(const char *format, ...);
|
||||||
|
|
||||||
extern Battle battle;
|
extern Battle battle;
|
||||||
extern Entity *player;
|
extern Entity *player;
|
||||||
|
|
Loading…
Reference in New Issue