Added generic warnings for capital ships, rather than scripted ones.

This commit is contained in:
Steve 2016-05-03 11:54:19 +01:00
parent e4dd447d18
commit 690e469ff3
5 changed files with 46 additions and 74 deletions

View File

@ -137,30 +137,6 @@
"MSG_BOX Wingmate;They're everywhere! I--" "MSG_BOX Wingmate;They're everywhere! I--"
] ]
}, },
{
"function" : "CAP_ENGINES_DESTROYED UNF Cleopatra",
"lines" : [
"IMPORTANT_MSG_BOX UNF Cleopatra;This is UNF Cleopatra. We are engine crippled. Please provide cover support!"
]
},
{
"function" : "CAP_HEALTH UNF Cleopatra 3",
"lines" : [
"IMPORTANT_MSG_BOX UNF Cleopatra;Mayday! Mayday! We are taking heavy damage! Please assist ASAP!"
]
},
{
"function" : "CAP_ENGINES_DESTROYED UNF Artemis",
"lines" : [
"IMPORTANT_MSG_BOX Wing Commander;Artemis has lost her engines. We need to keep those Pandorans off her!"
]
},
{
"function" : "CAP_HEALTH UNF Artemis 3",
"lines" : [
"IMPORTANT_MSG_BOX UNF Artemis;All fighters, we're taking a pounding here, we don't know how much longer we can survive this."
]
},
{ {
"function" : "CAPITAL_SHIPS_LOST 1", "function" : "CAPITAL_SHIPS_LOST 1",
"lines" : [ "lines" : [

View File

@ -107,30 +107,6 @@
"WAIT_MSG_BOX", "WAIT_MSG_BOX",
"COMPLETE_MISSION" "COMPLETE_MISSION"
] ]
},
{
"function" : "CAP_ENGINES_DESTROYED UNF Hopper",
"lines" : [
"IMPORTANT_MSG_BOX UNF Hopper;Our engines have been shot out! We're a sitting duck!"
]
},
{
"function" : "CAP_HEALTH UNF Hopper 6",
"lines" : [
"IMPORTANT_MSG_BOX UNF Hopper;We're taking damage here, guys! Please step it up."
]
},
{
"function" : "CAP_HEALTH UNF Hopper 3",
"lines" : [
"IMPORTANT_MSG_BOX UNF Hopper;We're sustaining heavy damage! All fighters, please assist, ASAP!"
]
},
{
"function" : "CAP_HEALTH UNF Hopper 1",
"lines" : [
"IMPORTANT_MSG_BOX UNF Hopper;Mayday! Mayday! Defences are critical. We can't hold out much longer!"
]
} }
] ]
} }

View File

@ -100,30 +100,6 @@
"WAIT_MSG_BOX", "WAIT_MSG_BOX",
"COMPLETE_MISSION" "COMPLETE_MISSION"
] ]
},
{
"function" : "CAP_ENGINES_DESTROYED UNF Lovelace",
"lines" : [
"IMPORTANT_MSG_BOX UNF Lovelace;Our engines have been shot out! We're a sitting duck!"
]
},
{
"function" : "CAP_HEALTH UNF Lovelace 6",
"lines" : [
"IMPORTANT_MSG_BOX UNF Lovelace;We're taking damage here, Sparrows. Please step it up."
]
},
{
"function" : "CAP_HEALTH UNF Lovelace 3",
"lines" : [
"IMPORTANT_MSG_BOX UNF Lovelace;We're sustaining heavy damage! All fighters, please assist, ASAP!"
]
},
{
"function" : "CAP_HEALTH UNF Lovelace 1",
"lines" : [
"IMPORTANT_MSG_BOX UNF Lovelace;Mayday! Mayday! Defences are critical. We can't hold out much longer!"
]
} }
] ]
} }

View File

@ -34,6 +34,9 @@ static void loadComponents(Entity *parent, cJSON *components);
static void loadGuns(Entity *parent, cJSON *guns); static void loadGuns(Entity *parent, cJSON *guns);
static void loadEngines(Entity *parent, cJSON *engines); static void loadEngines(Entity *parent, cJSON *engines);
static void disable(void); static void disable(void);
static void issueEnginesDestroyedMessage(Entity *cap);
static void issueGunsDestroyedMessage(Entity *cap);
static void issueDamageMessage(Entity *cap);
static Entity defHead, *defTail; static Entity defHead, *defTail;
@ -252,6 +255,11 @@ static void componentDie(void)
if (self->owner->health > 0) if (self->owner->health > 0)
{ {
runScriptFunction("CAP_HEALTH %s %d", self->owner->name, self->owner->health); runScriptFunction("CAP_HEALTH %s %d", self->owner->name, self->owner->health);
if (self->side == player->side)
{
issueDamageMessage(self->owner);
}
} }
} }
@ -274,6 +282,11 @@ static void gunDie(void)
runScriptFunction("CAP_GUNS_DESTROYED %s", self->owner->name); runScriptFunction("CAP_GUNS_DESTROYED %s", self->owner->name);
if (self->side == player->side)
{
issueGunsDestroyedMessage(self->owner);
}
if (--self->owner->systemPower == 1) if (--self->owner->systemPower == 1)
{ {
disable(); disable();
@ -312,6 +325,11 @@ static void engineDie(void)
self->owner->dx = self->owner->dy = 0; self->owner->dx = self->owner->dy = 0;
runScriptFunction("CAP_ENGINES_DESTROYED %s", self->owner->name); runScriptFunction("CAP_ENGINES_DESTROYED %s", self->owner->name);
if (self->side == player->side)
{
issueEnginesDestroyedMessage(self->owner);
}
} }
if (--self->owner->systemPower == 1) if (--self->owner->systemPower == 1)
@ -729,6 +747,32 @@ void loadCapitalShips(cJSON *node)
} }
} }
static void issueEnginesDestroyedMessage(Entity *cap)
{
addMessageBox(cap->name, _("We've lost engines! We're a sitting duck!"), 1);
}
static void issueGunsDestroyedMessage(Entity *cap)
{
addMessageBox(cap->name, _("Our guns have been shot out! We have no defences!"), 1);
}
static void issueDamageMessage(Entity *cap)
{
if (cap->health == cap->maxHealth - 1)
{
addMessageBox(cap->name, _("Be advised, we're taking damage here. Please step up support."), 1);
}
else if (cap->health == cap->maxHealth / 2)
{
addMessageBox(cap->name, _("We're sustaining heavy damage! All fighters, please assist, ASAP!"), 1);
}
else if (cap->health == 1)
{
addMessageBox(cap->name, _("Mayday! Mayday! Defences are critical. We can't hold out much longer!"), 1);
}
}
void destroyCapitalShipDefs(void) void destroyCapitalShipDefs(void)
{ {
Entity *e; Entity *e;

View File

@ -21,8 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define TURN_SPEED 0.1 #define TURN_SPEED 0.1
#define TURN_THRESHOLD 2 #define TURN_THRESHOLD 2
#define AVOID_FORCE 500
#include "../common.h" #include "../common.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
@ -52,6 +50,8 @@ extern char *getTranslatedString(char *string);
extern void addLargeExplosion(void); extern void addLargeExplosion(void);
extern char **toTypeArray(char *types, int *numTypes); extern char **toTypeArray(char *types, int *numTypes);
extern void updateCondition(char *name, int type); extern void updateCondition(char *name, int type);
extern void addMessageBox(char *title, char *body, int important);
extern Battle battle; extern Battle battle;
extern Entity *player;
extern Entity *self; extern Entity *self;