Complete mission if player escapes.
This commit is contained in:
parent
197a9fc799
commit
b44f208f6c
|
@ -227,10 +227,25 @@ void doFighter(void)
|
||||||
battle.stats[STAT_ENEMIES_DISABLED]++;
|
battle.stats[STAT_ENEMIES_DISABLED]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (self->target != NULL && self->target->alive != ALIVE_ALIVE)
|
||||||
|
{
|
||||||
|
self->target = NULL;
|
||||||
|
|
||||||
|
if (self != player)
|
||||||
|
{
|
||||||
|
self->action = doAI;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self->alive == ALIVE_ESCAPED)
|
if (self->alive == ALIVE_ESCAPED)
|
||||||
{
|
{
|
||||||
|
if (self == player)
|
||||||
|
{
|
||||||
|
completeMission();
|
||||||
|
}
|
||||||
|
|
||||||
if (self->side != SIDE_ALLIES)
|
if (self->side != SIDE_ALLIES)
|
||||||
{
|
{
|
||||||
addHudMessage(colors.red, "Mission target has escaped.");
|
addHudMessage(colors.red, "Mission target has escaped.");
|
||||||
|
@ -279,6 +294,8 @@ void doFighter(void)
|
||||||
{
|
{
|
||||||
addHudMessage(colors.red, "Ally has been killed");
|
addHudMessage(colors.red, "Ally has been killed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
checkTrigger("ALLIES_KILLED", TRIGGER_LOSSES);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -534,6 +551,24 @@ void fleeAllEnemies(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void retreatAllies(void)
|
||||||
|
{
|
||||||
|
Entity *e;
|
||||||
|
|
||||||
|
for (e = battle.entityHead.next ; e != NULL ; e = e->next)
|
||||||
|
{
|
||||||
|
if (e->type == ET_FIGHTER && e->side == SIDE_ALLIES)
|
||||||
|
{
|
||||||
|
e->flags |= EF_FLEEING;
|
||||||
|
|
||||||
|
e->aiFlags |= AIF_AVOIDS_COMBAT;
|
||||||
|
e->aiFlags |= AIF_UNLIMITED_RANGE;
|
||||||
|
e->aiFlags |= AIF_GOAL_EXTRACTION;
|
||||||
|
e->aiFlags &= ~AIF_FOLLOWS_PLAYER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Entity *getFighterDef(char *name)
|
Entity *getFighterDef(char *name)
|
||||||
{
|
{
|
||||||
Entity *f;
|
Entity *f;
|
||||||
|
|
|
@ -47,6 +47,7 @@ extern char *readFile(char *filename);
|
||||||
extern long lookup(char *name);
|
extern long lookup(char *name);
|
||||||
extern long flagsToLong(char *flags);
|
extern long flagsToLong(char *flags);
|
||||||
extern void addShieldSplinterEffect(Entity *ent);
|
extern void addShieldSplinterEffect(Entity *ent);
|
||||||
|
extern void completeMission(void);
|
||||||
|
|
||||||
extern App app;
|
extern App app;
|
||||||
extern Battle battle;
|
extern Battle battle;
|
||||||
|
|
Loading…
Reference in New Issue