Some Battle fixes and additions

- mapgotboxes is synched
- Karma bombs/items flash while spinning out
- Karma bombs have a sound + explosion when hitting someone
- Karma bombs can no longer attempt to attack a player that is flashing and have to WAIT... again
- Fixed MT_GREENITEM's bounce sound, after breaking from last commit (WHY ARE YOU ABUSING MARIO MODE SOUNDS, STOP, AGHH)
This commit is contained in:
TehRealSalt 2018-06-03 20:11:08 -04:00
parent 937d95e5a8
commit 23af399f61
4 changed files with 34 additions and 6 deletions

View file

@ -14686,7 +14686,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL, // seestate S_NULL, // seestate
sfx_tossed, // seesound sfx_tossed, // seesound
8, // reactiontime 8, // reactiontime
sfx_tink, // attacksound sfx_mario1, // attacksound
S_NULL, // painstate S_NULL, // painstate
0, // painchance 0, // painchance
sfx_None, // painsound sfx_None, // painsound

View file

@ -3268,7 +3268,11 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (player->kartstuff[k_comebackmode] == 1 else if (player->kartstuff[k_comebackmode] == 1
&& player->mo->tracer->state != &states[S_PLAYERITEM]) && player->mo->tracer->state != &states[S_PLAYERITEM])
P_SetMobjState(player->mo->tracer, S_PLAYERITEM); P_SetMobjState(player->mo->tracer, S_PLAYERITEM);
player->mo->tracer->flags2 &= ~MF2_DONTDRAW;
if (player->powers[pw_flashing] && (leveltime & 1))
player->mo->tracer->flags2 |= MF2_DONTDRAW;
else
player->mo->tracer->flags2 &= ~MF2_DONTDRAW;
} }
} }
else if (G_RaceGametype() || player->kartstuff[k_balloon] > 0) else if (G_RaceGametype() || player->kartstuff[k_balloon] > 0)

View file

@ -1668,21 +1668,42 @@ static boolean PIT_CheckThing(mobj_t *thing)
if (thing->player->kartstuff[k_balloon] <= 0 || tmthing->player->kartstuff[k_balloon] <= 0) if (thing->player->kartstuff[k_balloon] <= 0 || tmthing->player->kartstuff[k_balloon] <= 0)
{ {
if (thing->player->kartstuff[k_comebackmode] == 0 if (thing->player->kartstuff[k_comebackmode] == 0
&& tmthing->player->kartstuff[k_balloon] > 0) && (tmthing->player->kartstuff[k_balloon] > 0
&& !tmthing->player->powers[pw_flashing]))
{ {
mobj_t *boom = P_SpawnMobj(thing->x, thing->y, thing->z, MT_BOOMPARTICLE);
boom->scale = thing->scale;
boom->destscale = thing->scale;
boom->momz = 5*FRACUNIT;
if (thing->player->skincolor)
boom->color = thing->player->skincolor;
else
boom->color = SKINCOLOR_RED;
S_StartSound(boom, sfx_s3k4e);
K_ExplodePlayer(tmthing->player, thing); K_ExplodePlayer(tmthing->player, thing);
thing->player->kartstuff[k_comebacktimer] = comebacktime; thing->player->kartstuff[k_comebacktimer] = comebacktime;
return true; return true;
} }
else if (tmthing->player->kartstuff[k_comebackmode] == 0 else if (tmthing->player->kartstuff[k_comebackmode] == 0
&& thing->player->kartstuff[k_balloon] > 0) && (thing->player->kartstuff[k_balloon] > 0
&& !thing->player->powers[pw_flashing]))
{ {
mobj_t *boom = P_SpawnMobj(tmthing->x, tmthing->y, tmthing->z, MT_BOOMPARTICLE);
boom->scale = tmthing->scale;
boom->destscale = tmthing->scale;
boom->momz = 5*FRACUNIT;
if (tmthing->player->skincolor)
boom->color = tmthing->player->skincolor;
else
boom->color = SKINCOLOR_RED;
S_StartSound(boom, sfx_s3k4e);
K_ExplodePlayer(thing->player, tmthing); K_ExplodePlayer(thing->player, tmthing);
tmthing->player->kartstuff[k_comebacktimer] = comebacktime; tmthing->player->kartstuff[k_comebacktimer] = comebacktime;
return true; return true;
} }
else if (thing->player->kartstuff[k_comebackmode] == 1 else if (thing->player->kartstuff[k_comebackmode] == 1
&& (tmthing->player->kartstuff[k_balloon] > 0 && P_CanPickupItem(tmthing->player, true))) && (tmthing->player->kartstuff[k_balloon] > 0
&& P_CanPickupItem(tmthing->player, true)))
{ {
thing->player->kartstuff[k_comebackmode] = 0; thing->player->kartstuff[k_comebackmode] = 0;
thing->player->kartstuff[k_comebackpoints]++; thing->player->kartstuff[k_comebackpoints]++;
@ -1695,7 +1716,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true; return true;
} }
else if (tmthing->player->kartstuff[k_comebackmode] == 1 else if (tmthing->player->kartstuff[k_comebackmode] == 1
&& (thing->player->kartstuff[k_balloon] > 0 && P_CanPickupItem(thing->player, true))) && (thing->player->kartstuff[k_balloon] > 0
&& P_CanPickupItem(thing->player, true)))
{ {
tmthing->player->kartstuff[k_comebackmode] = 0; tmthing->player->kartstuff[k_comebackmode] = 0;
tmthing->player->kartstuff[k_comebackpoints]++; tmthing->player->kartstuff[k_comebackpoints]++;

View file

@ -3252,6 +3252,7 @@ static void P_NetArchiveMisc(void)
WRITEUINT8(save_p, mirrormode); WRITEUINT8(save_p, mirrormode);
WRITEUINT8(save_p, franticitems); WRITEUINT8(save_p, franticitems);
WRITEUINT8(save_p, comeback); WRITEUINT8(save_p, comeback);
WRITEINT32(save_p, numgotboxes); // Probably shouldn't need nummapboxes
// Is it paused? // Is it paused?
if (paused) if (paused)
@ -3343,6 +3344,7 @@ static inline boolean P_NetUnArchiveMisc(void)
mirrormode = (boolean)READUINT8(save_p); mirrormode = (boolean)READUINT8(save_p);
franticitems = (boolean)READUINT8(save_p); franticitems = (boolean)READUINT8(save_p);
comeback = (boolean)READUINT8(save_p); comeback = (boolean)READUINT8(save_p);
numgotboxes = READINT32(save_p);
// Is it paused? // Is it paused?
if (READUINT8(save_p) == 0x2f) if (READUINT8(save_p) == 0x2f)