mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-26 15:31:03 +00:00
Merge branch 'infini-tether' into 'master'
Infini tether See merge request KartKrew/Kart!644
This commit is contained in:
commit
dc39834953
3 changed files with 47 additions and 18 deletions
|
|
@ -675,6 +675,12 @@ static inline BlockItReturn_t PIT_LightningShieldAttack(mobj_t *thing)
|
|||
return BMIT_ABORT;
|
||||
}
|
||||
|
||||
if (thing == NULL || P_MobjWasRemoved(thing))
|
||||
{
|
||||
// Invalid?
|
||||
return BMIT_ABORT;
|
||||
}
|
||||
|
||||
if (thing == lightningSource)
|
||||
{
|
||||
// Don't explode yourself!!
|
||||
|
|
|
|||
33
src/k_kart.c
33
src/k_kart.c
|
|
@ -1700,9 +1700,13 @@ static void K_DrawDraftCombiring(player_t *player, player_t *victim, fixed_t cur
|
|||
UINT8 c;
|
||||
|
||||
if (maxdist == 0)
|
||||
c = 0;
|
||||
{
|
||||
c = leveltime % CHAOTIXBANDCOLORS;
|
||||
}
|
||||
else
|
||||
{
|
||||
c = FixedMul(CHAOTIXBANDCOLORS<<FRACBITS, FixedDiv(curdist-minimumdist, maxdist-minimumdist)) >> FRACBITS;
|
||||
}
|
||||
|
||||
stepx = (victim->mo->x - player->mo->x) / CHAOTIXBANDLEN;
|
||||
stepy = (victim->mo->y - player->mo->y) / CHAOTIXBANDLEN;
|
||||
|
|
@ -1721,8 +1725,16 @@ static void K_DrawDraftCombiring(player_t *player, player_t *victim, fixed_t cur
|
|||
curz + (P_RandomRange(24,48)*mapobjectscale),
|
||||
MT_SIGNSPARKLE);
|
||||
|
||||
P_SetMobjState(band, S_SIGNSPARK1 + (leveltime % 11));
|
||||
P_SetScale(band, (band->destscale = (3*player->mo->scale)/2));
|
||||
if (maxdist == 0)
|
||||
{
|
||||
P_SetMobjState(band, S_KSPARK1 + (leveltime % 8));
|
||||
P_SetScale(band, (band->destscale = player->mo->scale));
|
||||
}
|
||||
else
|
||||
{
|
||||
P_SetMobjState(band, S_SIGNSPARK1 + (leveltime % 11));
|
||||
P_SetScale(band, (band->destscale = (3*player->mo->scale)/2));
|
||||
}
|
||||
|
||||
band->color = colors[c];
|
||||
band->colorized = true;
|
||||
|
|
@ -1892,9 +1904,14 @@ static void K_UpdateDraft(player_t *player)
|
|||
}
|
||||
|
||||
// No one to draft off of? Then you can knock that off.
|
||||
if (player->draftleeway) // Prevent small disruptions from stopping your draft.
|
||||
if (player->draftleeway > 0) // Prevent small disruptions from stopping your draft.
|
||||
{
|
||||
player->draftleeway--;
|
||||
if (P_IsObjectOnGround(player->mo) == true)
|
||||
{
|
||||
// Allow maintaining tether in air setpieces.
|
||||
player->draftleeway--;
|
||||
}
|
||||
|
||||
if (player->lastdraft >= 0
|
||||
&& player->lastdraft < MAXPLAYERS
|
||||
&& playeringame[player->lastdraft]
|
||||
|
|
@ -3109,6 +3126,12 @@ static void K_GetKartBoostPower(player_t *player)
|
|||
draftspeed *= 2;
|
||||
}
|
||||
|
||||
if (player->itemtype == KITEM_LIGHTNINGSHIELD)
|
||||
{
|
||||
// infinite tether
|
||||
draftspeed *= 2;
|
||||
}
|
||||
|
||||
speedboost += FixedMul(draftspeed, player->draftpower); // (Drafting suffers no boost stack penalty.)
|
||||
numboosts++;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14032,21 +14032,21 @@ void A_LightningFollowPlayer(mobj_t *actor)
|
|||
if (!actor->target)
|
||||
return;
|
||||
|
||||
if (actor->extravalue1) // Make the radius also follow the player somewhat accuratly
|
||||
{
|
||||
if (actor->extravalue1) // Make the radius also follow the player somewhat accuratly
|
||||
{
|
||||
sx = actor->target->x + FixedMul((actor->target->scale*actor->extravalue1), FINECOSINE((actor->angle)>>ANGLETOFINESHIFT));
|
||||
sy = actor->target->y + FixedMul((actor->target->scale*actor->extravalue1), FINESINE((actor->angle)>>ANGLETOFINESHIFT));
|
||||
P_MoveOrigin(actor, sx, sy, actor->target->z);
|
||||
}
|
||||
else // else just teleport to player directly
|
||||
P_MoveOrigin(actor, actor->target->x, actor->target->y, actor->target->z);
|
||||
|
||||
K_MatchGenericExtraFlags(actor, actor->target); // copy our target for graviflip
|
||||
actor->momx = actor->target->momx;
|
||||
actor->momy = actor->target->momy;
|
||||
actor->momz = actor->target->momz; // Give momentum since we don't teleport to our player literally every frame.
|
||||
sx = actor->target->x + FixedMul((actor->target->scale*actor->extravalue1), FINECOSINE((actor->angle)>>ANGLETOFINESHIFT));
|
||||
sy = actor->target->y + FixedMul((actor->target->scale*actor->extravalue1), FINESINE((actor->angle)>>ANGLETOFINESHIFT));
|
||||
P_MoveOrigin(actor, sx, sy, actor->target->z);
|
||||
}
|
||||
else // else just teleport to player directly
|
||||
{
|
||||
P_MoveOrigin(actor, actor->target->x, actor->target->y, actor->target->z);
|
||||
}
|
||||
|
||||
K_MatchGenericExtraFlags(actor, actor->target); // copy our target for graviflip
|
||||
actor->momx = actor->target->momx;
|
||||
actor->momy = actor->target->momy;
|
||||
actor->momz = actor->target->momz; // Give momentum since we don't teleport to our player literally every frame.
|
||||
}
|
||||
|
||||
// A_FZBoomFlash:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue