From e974b6e4b78c0a29efb7f01938fefefeab8d59d7 Mon Sep 17 00:00:00 2001 From: TehRealSalt Date: Fri, 30 Mar 2018 00:53:25 -0400 Subject: [PATCH] MK rules for Battle scoring and quick fix for karma items --- src/g_game.c | 8 ++------ src/k_kart.c | 14 +++++++------- src/p_inter.c | 39 ++++++++++++++++++--------------------- src/p_map.c | 2 -- 4 files changed, 27 insertions(+), 36 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index d02edcb5..b896c30f 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -3385,12 +3385,8 @@ static void G_DoWorldDone(void) { if (server) { - if (G_RaceGametype()) - // SRB2kart: don't reset player between maps - D_MapChange(nextmap+1, gametype, ultimatemode, false, 0, false, false); - else - // resetplayer in match/tag/CTF for more equality - D_MapChange(nextmap+1, gametype, ultimatemode, true, 0, false, false); + // SRB2kart: don't reset player between maps + D_MapChange(nextmap+1, gametype, ultimatemode, false, 0, false, false); } gameaction = ga_nothing; diff --git a/src/k_kart.c b/src/k_kart.c index 2134d7a0..54ae147f 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1390,8 +1390,8 @@ void K_SpinPlayer(player_t *player, mobj_t *source) if (G_BattleGametype()) { - if (source && source->player && player != source->player) - P_AddPlayerScore(source->player, 1); + /*if (source && source->player && player != source->player) + P_AddPlayerScore(source->player, 1);*/ if (player->kartstuff[k_balloon] > 0) { @@ -1448,8 +1448,8 @@ void K_SquishPlayer(player_t *player, mobj_t *source) if (G_BattleGametype()) { - if (source && source->player && player != source->player) - P_AddPlayerScore(source->player, 1); + /*if (source && source->player && player != source->player) + P_AddPlayerScore(source->player, 1);*/ if (player->kartstuff[k_balloon] > 0) { @@ -1505,7 +1505,7 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju if (source->player->kartstuff[k_comebackpoints] >= 3) K_StealBalloon(source->player, player, true); } - P_AddPlayerScore(source->player, 1); + //P_AddPlayerScore(source->player, 1); } if (player->kartstuff[k_balloon] > 0) @@ -3437,8 +3437,8 @@ void K_CheckBalloons(void) if (playeringame[winnernum]) { - P_AddPlayerScore(&players[winnernum], numingame); - CONS_Printf(M_GetText("%s recieved %d points for winning!\n"), player_names[winnernum], numingame*2); + P_AddPlayerScore(&players[winnernum], 1); + CONS_Printf(M_GetText("%s recieved a point for winning!\n")); } for (i = 0; i < MAXPLAYERS; i++) diff --git a/src/p_inter.c b/src/p_inter.c index d77940dc..98481ebb 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -152,30 +152,27 @@ void P_ResetStarposts(void) // boolean P_CanPickupItem(player_t *player, boolean weapon) { - if (player->bot && weapon) - return false; - - //if (player->powers[pw_flashing] > (flashingtics/4)*3 && player->powers[pw_flashing] <= flashingtics) - // return false; - /*if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0) // No balloons in Match return false;*/ - if (player->kartstuff[k_bootaketimer] || player->kartstuff[k_boostolentimer] - || player->kartstuff[k_growshrinktimer] > 1 || player->kartstuff[k_goldshroomtimer]) // Item-specific timer going off - return false; + if (weapon) + { + if (player->kartstuff[k_bootaketimer] || player->kartstuff[k_boostolentimer] + || player->kartstuff[k_growshrinktimer] > 1 || player->kartstuff[k_goldshroomtimer]) // Item-specific timer going off + return false; - if (player->kartstuff[k_itemroulette] - || player->kartstuff[k_greenshell] || player->kartstuff[k_triplegreenshell] - || player->kartstuff[k_redshell] || player->kartstuff[k_tripleredshell] - || player->kartstuff[k_banana] || player->kartstuff[k_triplebanana] - || player->kartstuff[k_fakeitem] & 2 || player->kartstuff[k_magnet] - || player->kartstuff[k_bobomb] || player->kartstuff[k_blueshell] - || player->kartstuff[k_mushroom] || player->kartstuff[k_fireflower] - || player->kartstuff[k_star] || player->kartstuff[k_goldshroom] - || player->kartstuff[k_lightning] || player->kartstuff[k_megashroom] - || player->kartstuff[k_boo] || player->kartstuff[k_feather] & 1) // Item slot already taken up - return false; + if (player->kartstuff[k_itemroulette] + || player->kartstuff[k_greenshell] || player->kartstuff[k_triplegreenshell] + || player->kartstuff[k_redshell] || player->kartstuff[k_tripleredshell] + || player->kartstuff[k_banana] || player->kartstuff[k_triplebanana] + || player->kartstuff[k_fakeitem] & 2 || player->kartstuff[k_magnet] + || player->kartstuff[k_bobomb] || player->kartstuff[k_blueshell] + || player->kartstuff[k_mushroom] || player->kartstuff[k_fireflower] + || player->kartstuff[k_star] || player->kartstuff[k_goldshroom] + || player->kartstuff[k_lightning] || player->kartstuff[k_megashroom] + || player->kartstuff[k_boo] || player->kartstuff[k_feather] & 1) // Item slot already taken up + return false; + } return true; } @@ -414,7 +411,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) switch (special->type) { case MT_RANDOMITEM: // SRB2kart - if (!P_CanPickupItem(player, false)) + if (!P_CanPickupItem(player, true)) return; if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0) diff --git a/src/p_map.c b/src/p_map.c index 6935be9d..0dea23b6 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -1682,7 +1682,6 @@ static boolean PIT_CheckThing(mobj_t *thing) return true; } else if (thing->player->kartstuff[k_comebackmode] == 1 - && tmthing->player->kartstuff[k_balloon] > 0) { thing->player->kartstuff[k_comebackmode] = 0; thing->player->kartstuff[k_comebackpoints]++; @@ -1695,7 +1694,6 @@ static boolean PIT_CheckThing(mobj_t *thing) return true; } else if (tmthing->player->kartstuff[k_comebackmode] == 1 - && thing->player->kartstuff[k_balloon] > 0) { tmthing->player->kartstuff[k_comebackmode] = 0; tmthing->player->kartstuff[k_comebackpoints]++;