MK rules for Battle scoring

and quick fix for karma items
This commit is contained in:
TehRealSalt 2018-03-30 00:53:25 -04:00
parent 3d8441fe54
commit e974b6e4b7
4 changed files with 27 additions and 36 deletions

View File

@ -3385,12 +3385,8 @@ static void G_DoWorldDone(void)
{ {
if (server) if (server)
{ {
if (G_RaceGametype()) // SRB2kart: don't reset player between maps
// SRB2kart: don't reset player between maps D_MapChange(nextmap+1, gametype, ultimatemode, false, 0, false, false);
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);
} }
gameaction = ga_nothing; gameaction = ga_nothing;

View File

@ -1390,8 +1390,8 @@ void K_SpinPlayer(player_t *player, mobj_t *source)
if (G_BattleGametype()) if (G_BattleGametype())
{ {
if (source && source->player && player != source->player) /*if (source && source->player && player != source->player)
P_AddPlayerScore(source->player, 1); P_AddPlayerScore(source->player, 1);*/
if (player->kartstuff[k_balloon] > 0) if (player->kartstuff[k_balloon] > 0)
{ {
@ -1448,8 +1448,8 @@ void K_SquishPlayer(player_t *player, mobj_t *source)
if (G_BattleGametype()) if (G_BattleGametype())
{ {
if (source && source->player && player != source->player) /*if (source && source->player && player != source->player)
P_AddPlayerScore(source->player, 1); P_AddPlayerScore(source->player, 1);*/
if (player->kartstuff[k_balloon] > 0) 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) if (source->player->kartstuff[k_comebackpoints] >= 3)
K_StealBalloon(source->player, player, true); K_StealBalloon(source->player, player, true);
} }
P_AddPlayerScore(source->player, 1); //P_AddPlayerScore(source->player, 1);
} }
if (player->kartstuff[k_balloon] > 0) if (player->kartstuff[k_balloon] > 0)
@ -3437,8 +3437,8 @@ void K_CheckBalloons(void)
if (playeringame[winnernum]) if (playeringame[winnernum])
{ {
P_AddPlayerScore(&players[winnernum], numingame); P_AddPlayerScore(&players[winnernum], 1);
CONS_Printf(M_GetText("%s recieved %d points for winning!\n"), player_names[winnernum], numingame*2); CONS_Printf(M_GetText("%s recieved a point for winning!\n"));
} }
for (i = 0; i < MAXPLAYERS; i++) for (i = 0; i < MAXPLAYERS; i++)

View File

@ -152,30 +152,27 @@ void P_ResetStarposts(void)
// //
boolean P_CanPickupItem(player_t *player, boolean weapon) 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 /*if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0) // No balloons in Match
return false;*/ return false;*/
if (player->kartstuff[k_bootaketimer] || player->kartstuff[k_boostolentimer] if (weapon)
|| player->kartstuff[k_growshrinktimer] > 1 || player->kartstuff[k_goldshroomtimer]) // Item-specific timer going off {
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 (player->kartstuff[k_itemroulette] if (player->kartstuff[k_itemroulette]
|| player->kartstuff[k_greenshell] || player->kartstuff[k_triplegreenshell] || player->kartstuff[k_greenshell] || player->kartstuff[k_triplegreenshell]
|| player->kartstuff[k_redshell] || player->kartstuff[k_tripleredshell] || player->kartstuff[k_redshell] || player->kartstuff[k_tripleredshell]
|| player->kartstuff[k_banana] || player->kartstuff[k_triplebanana] || player->kartstuff[k_banana] || player->kartstuff[k_triplebanana]
|| player->kartstuff[k_fakeitem] & 2 || player->kartstuff[k_magnet] || player->kartstuff[k_fakeitem] & 2 || player->kartstuff[k_magnet]
|| player->kartstuff[k_bobomb] || player->kartstuff[k_blueshell] || player->kartstuff[k_bobomb] || player->kartstuff[k_blueshell]
|| player->kartstuff[k_mushroom] || player->kartstuff[k_fireflower] || player->kartstuff[k_mushroom] || player->kartstuff[k_fireflower]
|| player->kartstuff[k_star] || player->kartstuff[k_goldshroom] || player->kartstuff[k_star] || player->kartstuff[k_goldshroom]
|| player->kartstuff[k_lightning] || player->kartstuff[k_megashroom] || player->kartstuff[k_lightning] || player->kartstuff[k_megashroom]
|| player->kartstuff[k_boo] || player->kartstuff[k_feather] & 1) // Item slot already taken up || player->kartstuff[k_boo] || player->kartstuff[k_feather] & 1) // Item slot already taken up
return false; return false;
}
return true; return true;
} }
@ -414,7 +411,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
switch (special->type) switch (special->type)
{ {
case MT_RANDOMITEM: // SRB2kart case MT_RANDOMITEM: // SRB2kart
if (!P_CanPickupItem(player, false)) if (!P_CanPickupItem(player, true))
return; return;
if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0) if (G_BattleGametype() && player->kartstuff[k_balloon] <= 0)

View File

@ -1682,7 +1682,6 @@ static boolean PIT_CheckThing(mobj_t *thing)
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)
{ {
thing->player->kartstuff[k_comebackmode] = 0; thing->player->kartstuff[k_comebackmode] = 0;
thing->player->kartstuff[k_comebackpoints]++; thing->player->kartstuff[k_comebackpoints]++;
@ -1695,7 +1694,6 @@ 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)
{ {
tmthing->player->kartstuff[k_comebackmode] = 0; tmthing->player->kartstuff[k_comebackmode] = 0;
tmthing->player->kartstuff[k_comebackpoints]++; tmthing->player->kartstuff[k_comebackpoints]++;