Further capital ship tweaks.
This commit is contained in:
parent
91822f1ca3
commit
c8eecdd316
|
@ -48,7 +48,7 @@
|
||||||
"x" : -110,
|
"x" : -110,
|
||||||
"y" : 20,
|
"y" : 20,
|
||||||
"reloadTime" : 10,
|
"reloadTime" : 10,
|
||||||
"type" : "BT_PARTICLE",
|
"type" : "BT_PLASMA",
|
||||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
||||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||||
},
|
},
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
"x" : -110,
|
"x" : -110,
|
||||||
"y" : 100,
|
"y" : 100,
|
||||||
"reloadTime" : 10,
|
"reloadTime" : 10,
|
||||||
"type" : "BT_PARTICLE",
|
"type" : "BT_PLASMA",
|
||||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
||||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||||
},
|
},
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
"x" : -110,
|
"x" : -110,
|
||||||
"y" : 180,
|
"y" : 180,
|
||||||
"reloadTime" : 10,
|
"reloadTime" : 10,
|
||||||
"type" : "BT_PARTICLE",
|
"type" : "BT_PLASMA",
|
||||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
||||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||||
},
|
},
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
"x" : 110,
|
"x" : 110,
|
||||||
"y" : 20,
|
"y" : 20,
|
||||||
"reloadTime" : 10,
|
"reloadTime" : 10,
|
||||||
"type" : "BT_PARTICLE",
|
"type" : "BT_PLASMA",
|
||||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
||||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||||
},
|
},
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
"x" : 110,
|
"x" : 110,
|
||||||
"y" : 100,
|
"y" : 100,
|
||||||
"reloadTime" : 10,
|
"reloadTime" : 10,
|
||||||
"type" : "BT_PARTICLE",
|
"type" : "BT_PLASMA",
|
||||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
||||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||||
},
|
},
|
||||||
|
@ -98,7 +98,7 @@
|
||||||
"x" : 110,
|
"x" : 110,
|
||||||
"y" : 180,
|
"y" : 180,
|
||||||
"reloadTime" : 10,
|
"reloadTime" : 10,
|
||||||
"type" : "BT_PARTICLE",
|
"type" : "BT_PLASMA",
|
||||||
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
"flags" : "EF_TAKES_DAMAGE+EF_STATIC",
|
||||||
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
"aiFlags" : "AIF_AGGRESSIVE+AIF_LONG_RANGE_FIRE"
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ Entity *spawnCapitalShip(char *name, int x, int y, int side)
|
||||||
|
|
||||||
for (def = defHead.next ; def != NULL ; def = def->next)
|
for (def = defHead.next ; def != NULL ; def = def->next)
|
||||||
{
|
{
|
||||||
if (strcmp(def->name, name) == 0)
|
if ((strcmp(def->name, name) == 0) || (def->owner != NULL && strcmp(def->owner->name, name) == 0))
|
||||||
{
|
{
|
||||||
e = spawnEntity();
|
e = spawnEntity();
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ static void think(void)
|
||||||
|
|
||||||
static void gunThink(void)
|
static void gunThink(void)
|
||||||
{
|
{
|
||||||
doAI();
|
/*doAI();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void componentDie(void)
|
static void componentDie(void)
|
||||||
|
@ -78,8 +78,11 @@ static void componentDie(void)
|
||||||
addSmallExplosion();
|
addSmallExplosion();
|
||||||
playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y);
|
playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y);
|
||||||
|
|
||||||
|
if (self->type == ET_CAPITAL_SHIP_COMPONENT)
|
||||||
|
{
|
||||||
self->owner->health--;
|
self->owner->health--;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void die(void)
|
static void die(void)
|
||||||
{
|
{
|
||||||
|
@ -167,8 +170,8 @@ static void loadComponents(Entity *parent, cJSON *components)
|
||||||
e->active = 1;
|
e->active = 1;
|
||||||
|
|
||||||
e->type = ET_CAPITAL_SHIP_COMPONENT;
|
e->type = ET_CAPITAL_SHIP_COMPONENT;
|
||||||
STRNCPY(e->name, parent->name, MAX_NAME_LENGTH);
|
sprintf(e->name, "%s (Component)", parent->name);
|
||||||
STRNCPY(e->defName, parent->defName, MAX_NAME_LENGTH);
|
sprintf(e->defName, "%s (Component)", parent->defName);
|
||||||
e->health = e->maxHealth = cJSON_GetObjectItem(component, "health")->valueint;
|
e->health = e->maxHealth = cJSON_GetObjectItem(component, "health")->valueint;
|
||||||
e->offsetX = cJSON_GetObjectItem(component, "x")->valueint;
|
e->offsetX = cJSON_GetObjectItem(component, "x")->valueint;
|
||||||
e->offsetY = cJSON_GetObjectItem(component, "y")->valueint;
|
e->offsetY = cJSON_GetObjectItem(component, "y")->valueint;
|
||||||
|
@ -186,8 +189,12 @@ static void loadComponents(Entity *parent, cJSON *components)
|
||||||
e->flags = flagsToLong(cJSON_GetObjectItem(component, "flags")->valuestring);
|
e->flags = flagsToLong(cJSON_GetObjectItem(component, "flags")->valuestring);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
e->systemPower = 100;
|
||||||
|
|
||||||
e->die = componentDie;
|
e->die = componentDie;
|
||||||
|
|
||||||
|
e->owner = parent;
|
||||||
|
|
||||||
component = component->next;
|
component = component->next;
|
||||||
|
|
||||||
parent->health++;
|
parent->health++;
|
||||||
|
@ -200,8 +207,6 @@ static void loadGuns(Entity *parent, cJSON *guns)
|
||||||
Entity *e;
|
Entity *e;
|
||||||
cJSON *gun;
|
cJSON *gun;
|
||||||
|
|
||||||
parent->health = 0;
|
|
||||||
|
|
||||||
if (guns)
|
if (guns)
|
||||||
{
|
{
|
||||||
gun = guns->child;
|
gun = guns->child;
|
||||||
|
@ -216,8 +221,8 @@ static void loadGuns(Entity *parent, cJSON *guns)
|
||||||
e->active = 1;
|
e->active = 1;
|
||||||
|
|
||||||
e->type = ET_CAPITAL_SHIP_GUN;
|
e->type = ET_CAPITAL_SHIP_GUN;
|
||||||
STRNCPY(e->name, parent->name, MAX_NAME_LENGTH);
|
sprintf(e->name, "%s (Cannon)", parent->name);
|
||||||
STRNCPY(e->defName, parent->defName, MAX_NAME_LENGTH);
|
sprintf(e->defName, "%s (Cannon)", parent->defName);
|
||||||
e->health = e->maxHealth = cJSON_GetObjectItem(gun, "health")->valueint;
|
e->health = e->maxHealth = cJSON_GetObjectItem(gun, "health")->valueint;
|
||||||
e->reloadTime = cJSON_GetObjectItem(gun, "reloadTime")->valueint;
|
e->reloadTime = cJSON_GetObjectItem(gun, "reloadTime")->valueint;
|
||||||
e->offsetX = cJSON_GetObjectItem(gun, "x")->valueint;
|
e->offsetX = cJSON_GetObjectItem(gun, "x")->valueint;
|
||||||
|
@ -237,12 +242,14 @@ static void loadGuns(Entity *parent, cJSON *guns)
|
||||||
|
|
||||||
SDL_QueryTexture(e->texture, NULL, NULL, &e->w, &e->h);
|
SDL_QueryTexture(e->texture, NULL, NULL, &e->w, &e->h);
|
||||||
|
|
||||||
|
e->systemPower = 100;
|
||||||
|
|
||||||
e->action = gunThink;
|
e->action = gunThink;
|
||||||
e->die = componentDie;
|
e->die = componentDie;
|
||||||
|
|
||||||
gun = gun->next;
|
e->owner = parent;
|
||||||
|
|
||||||
parent->health++;
|
gun = gun->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -363,7 +363,7 @@ static void selectTarget(void)
|
||||||
|
|
||||||
for (e = battle.entityHead.next ; e != NULL ; e = e->next)
|
for (e = battle.entityHead.next ; e != NULL ; e = e->next)
|
||||||
{
|
{
|
||||||
if (e->active && e != player && e->type == ET_FIGHTER && e->side != player->side && e->alive == ALIVE_ALIVE && (!(e->flags & EF_DISABLED)))
|
if (e->active && e != player && (e->flags & EF_TAKES_DAMAGE) && e->side != player->side && e->alive == ALIVE_ALIVE && (!(e->flags & EF_DISABLED)) && i < MAX_SELECTABLE_TARGETS)
|
||||||
{
|
{
|
||||||
dist = getDistance(self->x, self->y, e->x, e->y);
|
dist = getDistance(self->x, self->y, e->x, e->y);
|
||||||
if (dist < closest)
|
if (dist < closest)
|
||||||
|
|
Loading…
Reference in New Issue