diff --git a/src/k_kart.c b/src/k_kart.c index 88201b96..b511ebf0 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1919,7 +1919,14 @@ void K_ExplodePlayer(player_t *player, mobj_t *source) // A bit of a hack, we ju } if (source && source->player && player != source->player) + { + if (source->player->kartstuff[k_balloon] <= 0) + { + source->player->kartstuff[k_comebackpoints] += 2; + CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[source->player-players], player_names[player-players]); + } P_AddPlayerScore(source->player, 1); + } K_CheckBalloons(); } diff --git a/src/p_inter.c b/src/p_inter.c index bff3a030..380bbea3 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -2097,14 +2097,14 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source) { if (metalrecording) // Ack! Metal Sonic shouldn't die! Cut the tape, end recording! G_StopMetalRecording(); - if (gametype == GT_MATCH && cv_match_scoring.value == 0 // note, no team match suicide penalty + /*if (gametype == GT_MATCH && cv_match_scoring.value == 0 // note, no team match suicide penalty && ((target == source) || (source == NULL && inflictor == NULL) || (source && !source->player))) { // Suicide penalty - Not in Kart - //if (target->player->score >= 50) - // target->player->score -= 50; - //else - // target->player->score = 0; - } + if (target->player->score >= 50) + target->player->score -= 50; + else + target->player->score = 0; + }*/ target->flags2 &= ~MF2_DONTDRAW; } @@ -2123,7 +2123,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source) } // Award Score Tails - { + /*{ // Enemies shouldn't award points in Kart INT32 score = 0; if (maptol & TOL_NIGHTS) // Enemies always worth 200, bosses don't do anything. @@ -2199,7 +2199,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source) } P_AddPlayerScore(source->player, score); - } + }*/ } // if a player avatar dies... diff --git a/src/p_map.c b/src/p_map.c index 982d544e..4a175c92 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -1642,32 +1642,26 @@ static boolean PIT_CheckThing(mobj_t *thing) if (gametype != GT_RACE) { - if ((thing->player->kartstuff[k_balloon] <= 0 || tmthing->player->kartstuff[k_balloon] <= 0) - && (thing->player->kartstuff[k_comebackmode] == 0 && tmthing->player->kartstuff[k_comebackmode] == 0)) + if ((thing->player->kartstuff[k_balloon] <= 0 && thing->player->kartstuff[k_comebackmode] == 0) + || (tmthing->player->kartstuff[k_balloon] <= 0 && tmthing->player->kartstuff[k_comebackmode] == 0)) { if (tmthing->player->kartstuff[k_balloon] > 0) { - thing->player->kartstuff[k_comebackpoints] += 2; - CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[thing->player-players], player_names[tmthing->player-players]); + K_ExplodePlayer(tmthing->player, thing); if (thing->player->kartstuff[k_comebackpoints] >= 3) K_StealBalloon(thing->player, tmthing->player, true); - K_ExplodePlayer(tmthing->player, thing); - thing->player->kartstuff[k_comebacktimer] = comebacktime; return true; } else if (thing->player->kartstuff[k_balloon] > 0) { - tmthing->player->kartstuff[k_comebackpoints] += 2; - CONS_Printf(M_GetText("%s bombed %s!\n"), player_names[tmthing->player-players], player_names[thing->player-players]); + K_ExplodePlayer(thing->player, tmthing); if (tmthing->player->kartstuff[k_comebackpoints] >= 3) K_StealBalloon(tmthing->player, thing->player, true); - K_ExplodePlayer(thing->player, tmthing); - tmthing->player->kartstuff[k_comebacktimer] = comebacktime; return true; } diff --git a/src/p_mobj.c b/src/p_mobj.c index 4349bdcc..bb6d76c0 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7760,6 +7760,15 @@ void P_MobjThinker(mobj_t *mobj) } } + if (gametype != GT_RACE) + { + mobj->friction -= 1228; + if (mobj->friction > FRACUNIT) + mobj->friction = FRACUNIT; + if (mobj->friction < 0) + mobj->friction = 0; + } + P_InstaThrust(mobj, R_PointToAngle2(0, 0, mobj->momx, mobj->momy), topspeed); sec2 = P_ThingOnSpecial3DFloor(mobj);