From ede89eefd151b0f46465e549278525cf61a82ea1 Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 18 Nov 2015 16:04:12 +0000 Subject: [PATCH] Shield damage effect updates. Laser will cause shield to disable for 10 seconds. --- gfx/battle/shieldSplinter.png | Bin 0 -> 202 bytes sound/322603__clippysounds__glass-break.ogg | Bin 0 -> 25427 bytes .../49678__ejfortin__energy-short-sword-7.ogg | Bin 0 -> 15451 bytes src/battle/battle.c | 2 + src/battle/battle.h | 1 + src/battle/effects.c | 119 +++++++++++++----- src/battle/fighters.c | 34 +++-- src/battle/fighters.h | 1 + src/system/sound.c | 5 +- 9 files changed, 121 insertions(+), 41 deletions(-) create mode 100644 gfx/battle/shieldSplinter.png create mode 100644 sound/322603__clippysounds__glass-break.ogg create mode 100644 sound/49678__ejfortin__energy-short-sword-7.ogg diff --git a/gfx/battle/shieldSplinter.png b/gfx/battle/shieldSplinter.png new file mode 100644 index 0000000000000000000000000000000000000000..3bcfee12725925c53013ab2b33433ae55b9c00b3 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VY)RhkERL)U+-9lH>0w$a!g-mBgcV`>ryK+kIZg4 lE0S`#!==XmQXxDnp|90y&*K_0t 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 = self->x + (rand() % 16 - rand() % 16); e->y = self->y + (rand() % 16 - rand() % 16); - e->texture = t; + e->texture = explosionTexture; e->health = 0; e->size = 32; @@ -115,7 +124,6 @@ void addFighterExplosion(void) { int i; Effect *e; - SDL_Texture *t = getTexture("gfx/battle/explosion.png"); for (i = 0 ; i < 32 ; i++) { @@ -132,7 +140,7 @@ void addFighterExplosion(void) e->dx *= 0.025; e->dy = (rand() % 25) - (rand() % 25); e->dy *= 0.025; - e->texture = t; + e->texture = explosionTexture; e->health = 0; e->size = 32 + (rand() % 64); e->r = 255; @@ -171,7 +179,6 @@ void addMissileExplosion(Bullet *b) { int i; Effect *e; - SDL_Texture *t = getTexture("gfx/battle/explosion.png"); for (i = 0 ; i < 8 ; i++) { @@ -188,7 +195,7 @@ void addMissileExplosion(Bullet *b) e->dx *= 0.025; e->dy = (rand() % 25) - (rand() % 25); e->dy *= 0.025; - e->texture = t; + e->texture = explosionTexture; e->health = 0; e->size = 32 + (rand() % 64); e->r = 255; @@ -223,29 +230,6 @@ void addMissileExplosion(Bullet *b) } } -static void setRandomFlameHue(Effect *e) -{ - e->r = 255; - - switch (rand() % 4) - { - case 0: - break; - - case 1: - e->g = 128; - break; - - case 2: - e->g = 255; - break; - - case 3: - e->g = e->b = 255; - break; - } -} - void addEngineEffect(void) { Effect *e; @@ -266,7 +250,7 @@ void addEngineEffect(void) e->x += rand() % 4; e->x -= rand() % 4; - e->texture = getTexture("gfx/battle/explosion.png"); + e->texture = explosionTexture; e->health = 0; e->size = 16; e->r = 128; @@ -298,7 +282,7 @@ void addMissileEngineEffect(Bullet *b) e->x += rand() % 4; e->x -= rand() % 4; - e->texture = getTexture("gfx/battle/explosion.png"); + e->texture = explosionTexture; e->health = 0; e->size = 12; setRandomFlameHue(e); @@ -307,3 +291,76 @@ void addMissileEngineEffect(Bullet *b) e->x -= e->size / 2; e->y -= e->size / 2; } + +void addShieldSplinterEffect(Entity *ent) +{ + int i; + Effect *e; + + for (i = 0 ; i < 48 ; i++) + { + e = malloc(sizeof(Effect)); + memset(e, 0, sizeof(Effect)); + battle.effectTail->next = e; + battle.effectTail = e; + + e->type = EFFECT_LINE; + e->x = ent->x; + e->y = ent->y; + e->dx = rand() % 64 - rand() % 64; + e->dx *= 0.1; + e->dy = rand() % 64 - rand() % 64; + e->dy *= 0.1; + + e->a = 255; + + setRandomShieldHue(e); + } +} + +static void setRandomFlameHue(Effect *e) +{ + e->r = 255; + + switch (rand() % 4) + { + case 0: + break; + + case 1: + e->g = 128; + break; + + case 2: + e->g = 255; + break; + + case 3: + e->g = e->b = 255; + break; + } +} + +static void setRandomShieldHue(Effect *e) +{ + e->b = 255; + + switch (rand() % 4) + { + case 0: + e->g = 128; + break; + + case 1: + e->g = 196; + break; + + case 2: + e->g = 255; + break; + + case 3: + e->r = e->g = 255; + break; + } +} diff --git a/src/battle/fighters.c b/src/battle/fighters.c index c8eda0a..ad60d10 100644 --- a/src/battle/fighters.c +++ b/src/battle/fighters.c @@ -385,6 +385,8 @@ void applyFighterBrakes(void) void damageFighter(Entity *f, int amount, long flags) { + int prevShield = f->shield; + if (flags & BF_SYSTEM_DAMAGE) { f->systemPower = MAX(0, f->systemPower - amount); @@ -397,22 +399,36 @@ void damageFighter(Entity *f, int amount, long flags) f->action = NULL; } } + else if (flags & BF_SHIELD_DAMAGE) + { + f->shield = MAX(-(FPS * 10), f->shield - amount); + + if (f->shield <= 0 && prevShield > 0) + { + playBattleSound(SND_SHIELD_BREAK, f->x, f->y); + addShieldSplinterEffect(f); + } + } else { - f->shield -= amount; - - if (f->shield < 0) + if (f->shield > 0) { - f->health -= abs(f->shield); - f->shield = 0; + f->shield = MAX(0, f->shield - amount); + } + else + { + f->health -= amount; f->armourHit = 255; playBattleSound(SND_ARMOUR_HIT, f->x, f->y); } - else if (f->shield > 0) - { - f->shieldHit = 255; - } + } + + if (f->shield > 0) + { + f->shieldHit = 255; + + playBattleSound(SND_SHIELD_HIT, f->x, f->y); } } diff --git a/src/battle/fighters.h b/src/battle/fighters.h index ec2466f..c67d170 100644 --- a/src/battle/fighters.h +++ b/src/battle/fighters.h @@ -46,6 +46,7 @@ extern void attachRope(void); extern char *readFile(char *filename); extern long lookup(char *name); extern long flagsToLong(char *flags); +extern void addShieldSplinterEffect(Entity *ent); extern App app; extern Battle battle; diff --git a/src/system/sound.c b/src/system/sound.c index 2c1387c..75e6993 100644 --- a/src/system/sound.c +++ b/src/system/sound.c @@ -92,8 +92,11 @@ void playBattleSound(int id, int x, int y) static void loadSounds(void) { sounds[SND_ARMOUR_HIT] = Mix_LoadWAV("sound/275151__bird-man__gun-shot.ogg"); + sounds[SND_SHIELD_HIT] = Mix_LoadWAV("sound/49678__ejfortin__energy-short-sword-7.ogg"); sounds[SND_PLASMA] = Mix_LoadWAV("sound/268344__julien-matthey__jm-noiz-laser-01.ogg"); - sounds[SND_MAG] = Mix_LoadWAV("sound/18382__inferno__hvylas.ogg"); + sounds[SND_LASER] = Mix_LoadWAV("sound/18382__inferno__hvylas.ogg"); + sounds[SND_MAG] = Mix_LoadWAV("sound/146725__fins__laser.ogg"); + sounds[SND_SHIELD_BREAK] = Mix_LoadWAV("sound/322603__clippysounds__glass-break.ogg"); sounds[SND_PARTICLE] = Mix_LoadWAV("sound/77087__supraliminal__laser-short.ogg"); sounds[SND_MISSILE] = Mix_LoadWAV("sound/65787__iwilldstroyu__laserrocket.ogg"); sounds[SND_BOOST] = Mix_LoadWAV("sound/18380__inferno__hvrl.ogg");