mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-04-16 15:31:04 +00:00
Reverted scoring back to what it was before, change order-of-operations to allow switcheroos from bombs.
This commit is contained in:
parent
e4c96fcd7f
commit
4a9c3618c3
3 changed files with 21 additions and 78 deletions
22
src/k_kart.c
22
src/k_kart.c
|
@ -3764,10 +3764,7 @@ void K_CheckBalloons(void)
|
|||
UINT8 i;
|
||||
UINT8 numingame = 0;
|
||||
SINT8 winnernum = -1;
|
||||
|
||||
#if 0
|
||||
return; // set to 1 to test comeback mechanics while alone
|
||||
#endif
|
||||
INT32 winnerscoreadd = 0;
|
||||
|
||||
if (!multiplayer)
|
||||
return;
|
||||
|
@ -3787,21 +3784,24 @@ void K_CheckBalloons(void)
|
|||
return;
|
||||
|
||||
numingame++;
|
||||
winnerscoreadd += players[i].score;
|
||||
|
||||
if (players[i].kartstuff[k_balloon] <= 0) // if you don't have any balloons, you're probably not a winner
|
||||
continue;
|
||||
else if (winnernum > -1) // TWO winners? that's dumb :V
|
||||
return;
|
||||
|
||||
winnernum = i;
|
||||
winnerscoreadd -= players[i].score;
|
||||
}
|
||||
|
||||
if (numingame <= 1)
|
||||
return;
|
||||
/*if (numingame <= 1)
|
||||
return;*/
|
||||
|
||||
if (playeringame[winnernum])
|
||||
if (winnernum > -1 && playeringame[winnernum])
|
||||
{
|
||||
players[winnernum].score += 1;
|
||||
CONS_Printf(M_GetText("%s recieved a point for winning!\n"), player_names[winnernum]);
|
||||
players[winnernum].score += winnerscoreadd;
|
||||
CONS_Printf(M_GetText("%s recieved %d point%s for winning!\n"), player_names[winnernum], winnerscoreadd, (winnerscoreadd == 1 ? "" : "s"));
|
||||
}
|
||||
|
||||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
|
@ -5176,7 +5176,7 @@ void K_drawKartHUD(void)
|
|||
// This is handled by console/menu values
|
||||
K_initKartHUD();
|
||||
|
||||
// Draw that fun first person HUD!
|
||||
// Draw that fun first person HUD! Drawn ASAP so it looks more "real".
|
||||
if ((stplyr == &players[displayplayer] && !camera.chase)
|
||||
|| ((splitscreen && stplyr == &players[secondarydisplayplayer]) && !camera2.chase)
|
||||
|| ((splitscreen > 1 && stplyr == &players[thirddisplayplayer]) && !camera3.chase)
|
||||
|
@ -5187,7 +5187,7 @@ void K_drawKartHUD(void)
|
|||
if (leveltime < 15 && stplyr == &players[displayplayer])
|
||||
{
|
||||
if (leveltime <= 5)
|
||||
V_DrawFill(0,0,BASEVIDWIDTH,BASEVIDHEIGHT,120); // Pure white on first three frames, to hide SRB2's awful level load artifacts
|
||||
V_DrawFill(0,0,BASEVIDWIDTH,BASEVIDHEIGHT,120); // Pure white on first few frames, to hide SRB2's awful level load artifacts
|
||||
else
|
||||
V_DrawFadeScreen(120, 15-leveltime); // Then gradually fade out from there
|
||||
}
|
||||
|
|
|
@ -455,15 +455,14 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
boom->color = SKINCOLOR_RED;
|
||||
S_StartSound(boom, special->info->attacksound);
|
||||
|
||||
K_ExplodePlayer(player, special->target);
|
||||
|
||||
special->target->player->kartstuff[k_comebackpoints] += 2;
|
||||
if (netgame && cv_hazardlog.value)
|
||||
CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[special->target->player-players], player_names[player-players]);
|
||||
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
|
||||
K_StealBalloon(special->target->player, player, true);
|
||||
|
||||
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
|
||||
|
||||
K_ExplodePlayer(player, special->target);
|
||||
}
|
||||
}
|
||||
else if (special->target->player->kartstuff[k_comebackmode] == 1 && P_CanPickupItem(player, true))
|
||||
|
@ -471,16 +470,17 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
mobj_t *poof = P_SpawnMobj(tmthing->x, tmthing->y, tmthing->z, MT_EXPLODE);
|
||||
S_StartSound(poof, special->info->seesound);
|
||||
|
||||
player->kartstuff[k_itemroulette] = 1;
|
||||
player->kartstuff[k_roulettetype] = 1;
|
||||
|
||||
special->target->player->kartstuff[k_comebackmode] = 0;
|
||||
special->target->player->kartstuff[k_comebackpoints]++;
|
||||
|
||||
if (netgame && cv_hazardlog.value)
|
||||
CONS_Printf(M_GetText("%s gave an item to %s.\n"), player_names[special->target->player-players], player_names[player-players]);
|
||||
if (special->target->player->kartstuff[k_comebackpoints] >= 3)
|
||||
K_StealBalloon(special->target->player, player, true);
|
||||
special->target->player->kartstuff[k_comebacktimer] = comebacktime;
|
||||
|
||||
player->kartstuff[k_itemroulette] = 1;
|
||||
player->kartstuff[k_roulettetype] = 1;
|
||||
}
|
||||
return;
|
||||
// ***************************************** //
|
||||
|
|
65
src/p_user.c
65
src/p_user.c
|
@ -1039,11 +1039,7 @@ void P_DoSuperTransformation(player_t *player, boolean giverings)
|
|||
// Adds to the player's score
|
||||
void P_AddPlayerScore(player_t *player, UINT32 amount)
|
||||
{
|
||||
UINT32 oldscore;
|
||||
|
||||
#if 1
|
||||
return; // Nope, still don't need this for Battle even
|
||||
#endif
|
||||
//UINT32 oldscore;
|
||||
|
||||
if (player->bot)
|
||||
player = &players[consoleplayer];
|
||||
|
@ -1051,60 +1047,7 @@ void P_AddPlayerScore(player_t *player, UINT32 amount)
|
|||
if (player->exiting) // srb2kart
|
||||
return;
|
||||
|
||||
// NiGHTS does it different!
|
||||
if (gamestate == GS_LEVEL && mapheaderinfo[gamemap-1]->typeoflevel & TOL_NIGHTS)
|
||||
{
|
||||
if ((netgame || multiplayer) && G_IsSpecialStage(gamemap))
|
||||
{ // Pseudo-shared score for multiplayer special stages.
|
||||
INT32 i;
|
||||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
if (playeringame[i] && players[i].pflags & PF_NIGHTSMODE)
|
||||
{
|
||||
oldscore = players[i].marescore;
|
||||
|
||||
// Don't go above MAXSCORE.
|
||||
if (players[i].marescore + amount < MAXSCORE)
|
||||
players[i].marescore += amount;
|
||||
else
|
||||
players[i].marescore = MAXSCORE;
|
||||
|
||||
// Continues are worthless in netgames.
|
||||
// If that stops being the case uncomment this.
|
||||
/* if (!ultimatemode && players[i].marescore > 50000
|
||||
&& oldscore < 50000)
|
||||
{
|
||||
players[i].continues += 1;
|
||||
players[i].gotcontinue = true;
|
||||
if (P_IsLocalPlayer(player))
|
||||
S_StartSound(NULL, sfx_flgcap);
|
||||
} */
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
oldscore = player->marescore;
|
||||
|
||||
// Don't go above MAXSCORE.
|
||||
if (player->marescore + amount < MAXSCORE)
|
||||
player->marescore += amount;
|
||||
else
|
||||
player->marescore = MAXSCORE;
|
||||
|
||||
if (!ultimatemode && !(netgame || multiplayer) && G_IsSpecialStage(gamemap)
|
||||
&& player->marescore >= 50000 && oldscore < 50000)
|
||||
{
|
||||
player->continues += 1;
|
||||
player->gotcontinue = true;
|
||||
if (P_IsLocalPlayer(player))
|
||||
S_StartSound(NULL, sfx_flgcap);
|
||||
}
|
||||
}
|
||||
|
||||
if (gametype == GT_COOP)
|
||||
return;
|
||||
}
|
||||
|
||||
oldscore = player->score;
|
||||
//oldscore = player->score;
|
||||
|
||||
// Don't go above MAXSCORE.
|
||||
if (player->score + amount < MAXSCORE)
|
||||
|
@ -1113,11 +1056,11 @@ void P_AddPlayerScore(player_t *player, UINT32 amount)
|
|||
player->score = MAXSCORE;
|
||||
|
||||
// check for extra lives every 50000 pts
|
||||
if (!ultimatemode && !modeattacking && player->score > oldscore && player->score % 50000 < amount && (gametype == GT_COMPETITION || gametype == GT_COOP))
|
||||
/*if (!ultimatemode && !modeattacking && player->score > oldscore && player->score % 50000 < amount && (gametype == GT_COMPETITION || gametype == GT_COOP))
|
||||
{
|
||||
P_GivePlayerLives(player, (player->score/50000) - (oldscore/50000));
|
||||
P_PlayLivesJingle(player);
|
||||
}
|
||||
}*/
|
||||
|
||||
// In team match, all awarded points are incremented to the team's running score.
|
||||
if (gametype == GT_TEAMMATCH)
|
||||
|
|
Loading…
Reference in a new issue