From 7613cabfae1aca9a3a709b18779f463997e1d3b8 Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 5 Jan 2022 03:17:38 -0500 Subject: [PATCH 1/4] No flashing tics in Battle --- src/k_kart.c | 11 +++++++++-- src/p_user.c | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index 53426531a..255dff396 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -2962,11 +2962,18 @@ UINT16 K_GetKartFlashing(player_t *player) { UINT16 tics = flashingtics; - if (!player) + if (gametype == GT_BATTLE) + { + // TODO: gametyperules + return 1; + } + + if (player == NULL) + { return tics; + } tics += (tics/8) * (player->kartspeed); - return tics; } diff --git a/src/p_user.c b/src/p_user.c index a5b07fbc6..f96eb80ee 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -4553,7 +4553,7 @@ void P_PlayerThink(player_t *player) || (player->pflags & PF_NOCONTEST) // NO CONTEST explosion || ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0 && player->karmadelay))) { - if (player->flashing > 0 && player->flashing < K_GetKartFlashing(player) + if (player->flashing > 1 && player->flashing < K_GetKartFlashing(player) && (leveltime & 1)) player->mo->renderflags |= RF_DONTDRAW; else From bb53ee22be8d6f69162bd1866e68ed1bff0c1afe Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 5 Jan 2022 03:24:19 -0500 Subject: [PATCH 2/4] Buff tether in Battle - /4 minimum distance - x2 speed --- src/k_kart.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 255dff396..8a1f02451 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1721,6 +1721,7 @@ static void K_UpdateDraft(player_t *player) { fixed_t topspd = K_GetKartSpeed(player, false); fixed_t draftdistance; + fixed_t minDist; UINT8 leniency; UINT8 i; @@ -1740,6 +1741,13 @@ static void K_UpdateDraft(player_t *player) draftdistance = FixedMul(draftdistance, K_GetKartGameSpeedScalar(gamespeed)); } + minDist = 640 * player->mo->scale; + if (gametype == GT_BATTLE) + { + // TODO: gametyperules + minDist /= 4; + } + // On the contrary, the leniency period biases toward high weight. // (See also: the leniency variable in K_SpawnDraftDust) leniency = (3*TICRATE)/4 + ((player->kartweight-1) * (TICRATE/4)); @@ -1798,7 +1806,7 @@ static void K_UpdateDraft(player_t *player) #ifndef EASYDRAFTTEST // TOO close to draft. - if (dist < FixedMul(RING_DIST>>1, player->mo->scale)) + if (dist < minDist) continue; // Not close enough to draft. @@ -2866,6 +2874,13 @@ static void K_GetKartBoostPower(player_t *player) { // 30% - 44%, each point of speed adds 1.75% fixed_t draftspeed = ((3*FRACUNIT)/10) + ((player->kartspeed-1) * ((7*FRACUNIT)/400)); + + if (gametype == GT_BATTLE) + { + // TODO: gametyperules + draftspeed *= 2; + } + speedboost += FixedMul(draftspeed, player->draftpower); // (Drafting suffers no boost stack penalty.) numboosts++; } From 7533472799562f8aa6d8916359ae00a085d5de6c Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 5 Jan 2022 03:46:19 -0500 Subject: [PATCH 3/4] Less Karma Bomb CBT - Karma delay is 3sec instead of 10sec - Karma delay is only used for initially changing into a bomb --- src/g_game.c | 2 +- src/k_kart.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index e4fd7d209..2d927d158 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -261,7 +261,7 @@ INT32 stealtime = TICRATE/2; INT32 sneakertime = TICRATE + (TICRATE/3); INT32 itemtime = 8*TICRATE; INT32 bubbletime = TICRATE/2; -INT32 comebacktime = 10*TICRATE; +INT32 comebacktime = 3*TICRATE; INT32 bumptime = 6; INT32 greasetics = 3*TICRATE; INT32 wipeoutslowtime = 20; diff --git a/src/k_kart.c b/src/k_kart.c index 8a1f02451..bd6924e12 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -3481,13 +3481,14 @@ void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers) karmahitbox->destscale = player->mo->destscale; P_SetScale(karmahitbox, player->mo->scale); + player->karmadelay = comebacktime; + if (netgame) { CONS_Printf(M_GetText("%s lost all of their bumpers!\n"), player_names[player-players]); } } - player->karmadelay = comebacktime; K_CalculateBattleWanted(); K_CheckBumpers(); } From b31d66e7f8fb3bd0e357831461924a32e46459ac Mon Sep 17 00:00:00 2001 From: Sally Coolatta Date: Wed, 5 Jan 2022 05:10:09 -0500 Subject: [PATCH 4/4] PLEASE NO RNG --- src/k_battle.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/k_battle.c b/src/k_battle.c index c4902fb05..4b8bf219a 100644 --- a/src/k_battle.c +++ b/src/k_battle.c @@ -469,16 +469,15 @@ void K_RunPaperItemSpawners(void) firstUnspawnedEmerald ); } - else if (P_RandomChance(FRACUNIT/3)) + else { drop = K_SpawnSphereBox( spotList[r]->x, spotList[r]->y, spotList[r]->z + (128 * mapobjectscale * flip), FixedAngle(P_RandomRange(0, 359) * FRACUNIT), flip, 10 ); - } - else - { + K_FlipFromObject(drop, spotList[r]); + drop = K_CreatePaperItem( spotList[r]->x, spotList[r]->y, spotList[r]->z + (128 * mapobjectscale * flip), FixedAngle(P_RandomRange(0, 359) * FRACUNIT), flip,