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 0906978a2a
commit 8408b1fef4
4 changed files with 34 additions and 6 deletions

View file

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

View file

@ -3268,7 +3268,11 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
else if (player->kartstuff[k_comebackmode] == 1
&& player->mo->tracer->state != &states[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)

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_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);
thing->player->kartstuff[k_comebacktimer] = comebacktime;
return true;
}
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);
tmthing->player->kartstuff[k_comebacktimer] = comebacktime;
return true;
}
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_comebackpoints]++;
@ -1695,7 +1716,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true;
}
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_comebackpoints]++;

View file

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