Fire scripts to run when engines and guns are destroyed.
This commit is contained in:
parent
62cf2e9558
commit
04f2d7a203
|
@ -256,10 +256,27 @@ static void componentDie(void)
|
||||||
|
|
||||||
static void gunDie(void)
|
static void gunDie(void)
|
||||||
{
|
{
|
||||||
|
Entity *e;
|
||||||
|
|
||||||
self->alive = ALIVE_DEAD;
|
self->alive = ALIVE_DEAD;
|
||||||
addSmallExplosion();
|
addSmallExplosion();
|
||||||
playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y);
|
playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y);
|
||||||
addDebris(self->x, self->y, 3 + rand() % 4);
|
addDebris(self->x, self->y, 3 + rand() % 4);
|
||||||
|
|
||||||
|
for (e = battle.entityHead.next ; e != NULL ; e = e->next)
|
||||||
|
{
|
||||||
|
if (e != self && e->health > 0 && e->owner == self->owner && e->type == ET_COMPONENT_GUN)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
runScriptFunction("CAP_GUNS_DESTROYED %s", self->owner->name);
|
||||||
|
|
||||||
|
if (--self->owner->systemPower == 1)
|
||||||
|
{
|
||||||
|
runScriptFunction("CAP_HELPLESS %s", self->owner->name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void engineThink(void)
|
static void engineThink(void)
|
||||||
|
@ -280,7 +297,7 @@ static void engineDie(void)
|
||||||
|
|
||||||
for (e = battle.entityHead.next ; e != NULL ; e = e->next)
|
for (e = battle.entityHead.next ; e != NULL ; e = e->next)
|
||||||
{
|
{
|
||||||
if (e != self && e->owner == self->owner && e->type == ET_COMPONENT_ENGINE)
|
if (e != self && e->health > 0 && e->owner == self->owner && e->type == ET_COMPONENT_ENGINE)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -295,6 +312,11 @@ static void engineDie(void)
|
||||||
|
|
||||||
runScriptFunction("CAP_ENGINES_DESTROYED %s", self->owner->name);
|
runScriptFunction("CAP_ENGINES_DESTROYED %s", self->owner->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (--self->owner->systemPower == 1)
|
||||||
|
{
|
||||||
|
runScriptFunction("CAP_HELPLESS %s", self->owner->name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void die(void)
|
static void die(void)
|
||||||
|
@ -385,7 +407,7 @@ static void loadCapitalShipDef(char *filename)
|
||||||
e->shieldRechargeRate = cJSON_GetObjectItem(root, "shieldRechargeRate")->valueint;
|
e->shieldRechargeRate = cJSON_GetObjectItem(root, "shieldRechargeRate")->valueint;
|
||||||
e->texture = getTexture(cJSON_GetObjectItem(root, "texture")->valuestring);
|
e->texture = getTexture(cJSON_GetObjectItem(root, "texture")->valuestring);
|
||||||
e->speed = 1;
|
e->speed = 1;
|
||||||
e->systemPower = MAX_SYSTEM_POWER;
|
e->systemPower = 3;
|
||||||
e->flags = EF_NO_HEALTH_BAR;
|
e->flags = EF_NO_HEALTH_BAR;
|
||||||
|
|
||||||
e->action = think;
|
e->action = think;
|
||||||
|
|
Loading…
Reference in New Issue