From 788c98144f34d20ffbff30ac32b0e32607163296 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Fri, 15 Jun 2018 02:18:43 -0400 Subject: [PATCH] Item tweakings - Mines last twice as long - Mines can appear in 1st with a measly 5% chance, for maximum ass-blasting - Mine shiiiiink sound no longer plays globally - Thrown Bananas and Eggman Monitors bounce off walls like Mines - Hyudoro can steal from anyone - Halved invincibility alarm/music distance - Getting out Orbinaut/Jawz plays a shield sound - Using Shrink plays a devastating Chaotix sound - SPB plays a high-pitched wail when it's locked in - Hyudoro plays a ghosty sound when used - Fixed Battle arrow roulette --- src/info.c | 54 ++++++++++++++++++++++++++-------------------------- src/k_kart.c | 37 ++++++++++++++++++++--------------- src/p_mobj.c | 2 +- src/p_tick.c | 3 +++ src/sounds.c | 20 +++++++++---------- 5 files changed, 63 insertions(+), 53 deletions(-) diff --git a/src/info.c b/src/info.c index 3fe47a76..43baf852 100644 --- a/src/info.c +++ b/src/info.c @@ -2685,7 +2685,7 @@ state_t states[NUMSTATES] = {SPR_SSMN, 10, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY6}, // S_SSMINE_DEPLOY5 {SPR_SSMN, 9, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY7}, // S_SSMINE_DEPLOY6 {SPR_SSMN, 10, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY8}, // S_SSMINE_DEPLOY7 - {SPR_SSMN, 11, 1, {A_PlaySound}, sfx_cdfm39, 0, S_SSMINE_DEPLOY9}, // S_SSMINE_DEPLOY8 + {SPR_SSMN, 11, 1, {A_PlaySound}, sfx_cdfm39, 1, S_SSMINE_DEPLOY9}, // S_SSMINE_DEPLOY8 {SPR_SSMN, 10, 1, {NULL}, 0, 0, S_SSMINE_DEPLOY10}, // S_SSMINE_DEPLOY9 {SPR_SSMN, 11, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY11}, // S_SSMINE_DEPLOY10 {SPR_SSMN, 12, 3, {NULL}, 0, 0, S_SSMINE_DEPLOY12}, // S_SSMINE_DEPLOY11 @@ -14477,7 +14477,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 100, // mass 1, // damage sfx_fake, // activesound - MF_SHOOTABLE, // flags + MF_BOUNCE|MF_SHOOTABLE, // flags S_NULL // raisestate }, @@ -14504,7 +14504,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = 100, // mass 1, // damage sfx_peel, // activesound - MF_SHOOTABLE, // flags + MF_BOUNCE|MF_SHOOTABLE, // flags S_NULL // raisestate }, @@ -14698,30 +14698,30 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = }, { // MT_SSMINE - -1, // doomednum - S_SSMINE_AIR1, // spawnstate - 1, // spawnhealth - S_NULL, // seestate - sfx_tossed, // seesound - 105, // reactiontime - sfx_None, // attacksound - S_NULL, // painstate - 288*FRACUNIT, // painchance - sfx_None, // painsound - S_NULL, // meleestate - S_NULL, // missilestate - S_SSMINE_EXPLODE, // deathstate - S_NULL, // xdeathstate - sfx_None, // deathsound - 0, // speed - 16*FRACUNIT, // radius - 24*FRACUNIT, // height - 0, // display offset - 100, // mass - 1, // damage - sfx_bomb, // activesound - MF_BOUNCE|MF_SHOOTABLE, // flags - S_NULL // raisestate + -1, // doomednum + S_SSMINE_AIR1, // spawnstate + 1, // spawnhealth + S_NULL, // seestate + sfx_tossed, // seesound + 6*TICRATE, // reactiontime + sfx_None, // attacksound + S_NULL, // painstate + 288*FRACUNIT, // painchance + sfx_None, // painsound + S_NULL, // meleestate + S_NULL, // missilestate + S_SSMINE_EXPLODE, // deathstate + S_NULL, // xdeathstate + sfx_None, // deathsound + 0, // speed + 16*FRACUNIT, // radius + 24*FRACUNIT, // height + 0, // display offset + 100, // mass + 1, // damage + sfx_bomb, // activesound + MF_BOUNCE|MF_SHOOTABLE, // flags + S_NULL // raisestate }, { // MT_SSMINE_SHIELD diff --git a/src/k_kart.c b/src/k_kart.c index 106ddacb..4784662d 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -369,13 +369,13 @@ static INT32 K_KartItemOddsRace[NUMKARTRESULTS][9] = /*Sneaker*/ {20, 0, 0, 3, 7, 6, 0, 0, 0 }, // Sneaker /*Rocket Sneaker*/ { 0, 0, 0, 0, 0, 3, 5, 4, 0 }, // Rocket Sneaker /*Invincibility*/ { 0, 0, 0, 0, 0, 1, 6, 9,16 }, // Invincibility - /*Banana*/ { 0, 9, 4, 2, 1, 0, 0, 0, 0 }, // Banana + /*Banana*/ { 0, 8, 4, 2, 1, 0, 0, 0, 0 }, // Banana /*Eggman Monitor*/ { 0, 4, 2, 1, 0, 0, 0, 0, 0 }, // Eggman Monitor /*Orbinaut*/ { 0, 6, 4, 3, 2, 0, 0, 0, 0 }, // Orbinaut /*Jawz*/ { 0, 0, 3, 2, 2, 1, 0, 0, 0 }, // Jawz - /*Mine*/ { 0, 0, 1, 2, 1, 0, 0, 0, 0 }, // Mine + /*Mine*/ { 0, 1, 1, 2, 1, 0, 0, 0, 0 }, // Mine /*Ballhog*/ { 0, 0, 1, 2, 1, 0, 0, 0, 0 }, // Ballhog - /*Self-Propelled Bomb*/ { 0, 0, 0, 1, 2, 2, 1, 0, 0 }, // Self-Propelled Bomb + /*Self-Propelled Bomb*/ { 0, 0, 1, 1, 2, 3, 2, 1, 0 }, // Self-Propelled Bomb /*Grow*/ { 0, 0, 0, 0, 0, 0, 1, 1, 2 }, // Grow /*Shrink*/ { 0, 0, 0, 0, 0, 0, 1, 2, 2 }, // Shrink /*Lightning Shield*/ { 0, 1, 2, 0, 0, 0, 0, 0, 0 }, // Lightning Shield @@ -1446,7 +1446,7 @@ void K_SquishPlayer(player_t *player, mobj_t *source) player->kartstuff[k_comebacktimer] = comebacktime; - player->kartstuff[k_squishedtimer] = 1*TICRATE; + player->kartstuff[k_squishedtimer] = TICRATE; player->powers[pw_flashing] = K_GetKartFlashing(); @@ -2184,7 +2184,7 @@ static void K_DoHyudoroSteal(player_t *player) && player != &players[i] && !players[i].exiting && !players[i].spectator // Player in-game // Can steal from this player - && ((G_RaceGametype() && players[i].kartstuff[k_position] < player->kartstuff[k_position]) + && (G_RaceGametype() //&& players[i].kartstuff[k_position] < player->kartstuff[k_position]) || (G_BattleGametype() && players[i].kartstuff[k_balloon] > 0)) // Has an item @@ -2198,6 +2198,7 @@ static void K_DoHyudoroSteal(player_t *player) } prandom = P_RandomFixed(); + S_StartSound(player->mo, sfx_s3k92); if ((G_RaceGametype() && player->kartstuff[k_position] == 1) || numplayers == 0) // No-one can be stolen from? Get longer invisibility for nothing { @@ -2227,6 +2228,9 @@ static void K_DoHyudoroSteal(player_t *player) players[stealplayer].kartstuff[k_itemtype] = KITEM_NONE; players[stealplayer].kartstuff[k_itemamount] = 0; players[stealplayer].kartstuff[k_itemheld] = 0; + + if (P_IsLocalPlayer(players[stealplayer]) && !splitscreen) + S_StartSound(NULL, sfx_s3k92); } } @@ -2247,7 +2251,7 @@ static void K_DoShrink(player_t *player) { INT32 i; - //S_StartSound(player->mo, sfx_bkpoof); // Sound the BANG! + S_StartSound(player->mo, sfx_kc46); // Sound the BANG! player->pflags |= PF_ATTACKDOWN; for (i = 0; i < MAXPLAYERS; i++) @@ -2505,7 +2509,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) S_StopSoundByID(player->mo, sfx_kgrow); // Stop it } - // AAAAAAND handle the SMK star alarm + // AAAAAAND handle the invincibility alarm if (player->mo->health > 0 && (player->mo->player->kartstuff[k_invincibilitytimer] > 0 || player->mo->player->kartstuff[k_growshrinktimer] > 0)) { @@ -2965,11 +2969,9 @@ void K_MoveKartPlayer(player_t *player, boolean onground) overlay->destscale = player->mo->scale; P_SetScale(overlay, player->mo->scale); } - player->kartstuff[k_invincibilitytimer] = itemtime; // Activate it + player->kartstuff[k_invincibilitytimer] = itemtime+(2*TICRATE); // 10 seconds K_PlayTauntSound(player->mo); player->kartstuff[k_itemamount]--; - if (gametype != GT_RACE) - player->kartstuff[k_poweritemtimer] = 10*TICRATE; player->pflags |= PF_ATTACKDOWN; } break; @@ -3087,7 +3089,8 @@ void K_MoveKartPlayer(player_t *player, boolean onground) player->kartstuff[k_itemheld] = 2; player->pflags |= PF_ATTACKDOWN; - K_PlayTauntSound(player->mo); + //K_PlayTauntSound(player->mo); + S_StartSound(player->mo, sfx_s3k3a); for (moloop = 0; moloop < player->kartstuff[k_itemamount]; moloop++) { @@ -3154,7 +3157,8 @@ void K_MoveKartPlayer(player_t *player, boolean onground) player->kartstuff[k_itemheld] = 2; player->pflags |= PF_ATTACKDOWN; - K_PlayTauntSound(player->mo); + //K_PlayTauntSound(player->mo); + S_StartSound(player->mo, sfx_s3k3a); for (moloop = 0; moloop < player->kartstuff[k_itemamount]; moloop++) { @@ -3284,12 +3288,10 @@ void K_MoveKartPlayer(player_t *player, boolean onground) K_PlayTauntSound(player->mo); player->mo->scalespeed = FRACUNIT/TICRATE; player->mo->destscale = 3*(mapheaderinfo[gamemap-1]->mobj_scale)/2; - player->kartstuff[k_growshrinktimer] = itemtime; + player->kartstuff[k_growshrinktimer] = itemtime+(4*TICRATE); // 12 seconds S_StartSound(player->mo, sfx_kc5a); player->pflags |= PF_ATTACKDOWN; player->kartstuff[k_itemamount]--; - if (gametype != GT_RACE) - player->kartstuff[k_poweritemtimer] = 10*TICRATE; } break; case KITEM_SHRINK: @@ -3363,6 +3365,11 @@ void K_MoveKartPlayer(player_t *player, boolean onground) || player->kartstuff[k_growshrinktimer] > 0)) player->kartstuff[k_poweritemtimer] = 10*TICRATE; + if (player->kartstuff[k_itemtype] == KITEM_SPB + || player->kartstuff[k_itemtype] == KITEM_SHRINK + || spbincoming) + indirectitemcooldown = 20*TICRATE; + if (player->kartstuff[k_hyudorotimer] > 0) { if (splitscreen) diff --git a/src/p_mobj.c b/src/p_mobj.c index a1ccdae1..5be6ea20 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -6968,7 +6968,7 @@ void P_MobjThinker(mobj_t *mobj) if (mobj->target->player->kartstuff[k_itemroulette]) { P_SetMobjState(mobj, S_PLAYERARROW_BOX); - mobj->tracer->frame = FF_FULLBRIGHT|((stplyr->kartstuff[k_itemroulette] % (13*3)) / 3); + mobj->tracer->frame = FF_FULLBRIGHT|((mobj->target->player->kartstuff[k_itemroulette] % (13*3)) / 3); } else if (mobj->target->player->kartstuff[k_itemtype]) { diff --git a/src/p_tick.c b/src/p_tick.c index 57574d6f..70450913 100644 --- a/src/p_tick.c +++ b/src/p_tick.c @@ -703,7 +703,10 @@ void P_Ticker(boolean run) } if (hurtthisguy != -1) + { players[hurtthisguy].kartstuff[k_deathsentence] = TICRATE+1; + S_StartSound(players[hurtthisguy].mo, sfx_kc57); + } } if (indirectitemcooldown) diff --git a/src/sounds.c b/src/sounds.c index dad85ffc..3cf54148 100644 --- a/src/sounds.c +++ b/src/sounds.c @@ -405,7 +405,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"s3k37", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k38", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k39", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"s3k3a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"s3k3a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Kart item shield {"s3k3b", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k3c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k3d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, @@ -416,7 +416,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"s3k42", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k43", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k44", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"s3k45", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"s3k45", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Kart Lightning Shield use {"s3k46", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k47", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k48", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, @@ -493,7 +493,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"s3k8f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k90", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k91", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"s3k92", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"s3k92", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Kart Hyudoro use {"s3k93", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k94", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"s3k95", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, @@ -645,7 +645,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"cdfm36", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"cdfm37", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"cdfm38", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"cdfm39", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"cdfm39", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // SS Mine deployed {"cdfm40", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"cdfm41", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"cdfm42", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, @@ -703,7 +703,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"kc2c", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc2d", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc2e", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"kc2f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Pogo Spring + {"kc2f", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Pogo Spring use {"kc30", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc31", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc32", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, @@ -726,7 +726,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"kc43", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc44", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc45", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"kc46", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"kc46", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Shrink use {"kc47", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc48", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Vote picked {"kc49", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, @@ -743,7 +743,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"kc54", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc55", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc56", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"kc57", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, + {"kc57", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // SPB locked in {"kc58", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"kc59", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Shrink {"kc5a", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Grow @@ -777,8 +777,8 @@ sfxinfo_t S_sfx[NUMSFX] = {"mlap", true, 127, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"sboost", true, 90, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"mush", false, 90, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"kinvnc", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR}, - {"kgrow", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR}, + {"kinvnc", false, 140, 8, -1, NULL, 0, -1, -1, LUMPERROR}, + {"kgrow", false, 140, 8, -1, NULL, 0, -1, -1, LUMPERROR}, {"bomb", false, 110, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"bomb2", false, 110, 8, -1, NULL, 0, -1, -1, LUMPERROR}, {"peel", false, 100, 0, -1, NULL, 0, -1, -1, LUMPERROR}, @@ -804,7 +804,7 @@ sfxinfo_t S_sfx[NUMSFX] = {"shelit", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR}, {"vroom", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, {"boing", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, - {"smkinv", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR}, + {"smkinv", false, 140, 8, -1, NULL, 0, -1, -1, LUMPERROR}, {"screec", false, 52, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // SRB2kart - Skin sounds