mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-03-14 07:06:41 +00:00
Merge branch 'line-460-animate-2' into 'master'
Play ring collect animation for line 460 Closes #235 See merge request KartKrew/Kart!627
This commit is contained in:
commit
9cb72a73d7
4 changed files with 30 additions and 4 deletions
25
src/k_kart.c
25
src/k_kart.c
|
|
@ -3435,6 +3435,27 @@ void K_SetHitLagForObjects(mobj_t *mo1, mobj_t *mo2, INT32 tics, boolean fromDam
|
|||
K_AddHitLag(mo2, finalTics, false); // mo2 is the inflictor, so don't use the damage property.
|
||||
}
|
||||
|
||||
void K_AwardPlayerRings(player_t *player, INT32 rings, boolean overload)
|
||||
{
|
||||
UINT16 superring;
|
||||
|
||||
if (!overload)
|
||||
{
|
||||
INT32 totalrings =
|
||||
RINGTOTAL(player) + (player->superring / 3);
|
||||
|
||||
/* capped at 20 rings */
|
||||
if ((totalrings + rings) > 20)
|
||||
rings = (20 - totalrings);
|
||||
}
|
||||
|
||||
superring = player->superring + (rings * 3);
|
||||
|
||||
/* check if not overflow */
|
||||
if (superring > player->superring)
|
||||
player->superring = superring;
|
||||
}
|
||||
|
||||
void K_DoInstashield(player_t *player)
|
||||
{
|
||||
mobj_t *layera;
|
||||
|
|
@ -10099,9 +10120,9 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
}
|
||||
break;
|
||||
case KITEM_SUPERRING:
|
||||
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO && player->superring < (UINT16_MAX - (10*3)))
|
||||
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO)
|
||||
{
|
||||
player->superring += (10*3);
|
||||
K_AwardPlayerRings(player, 10, true);
|
||||
player->itemamount--;
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ void K_KartPlayerAfterThink(player_t *player);
|
|||
angle_t K_MomentumAngle(mobj_t *mo);
|
||||
void K_AddHitLag(mobj_t *mo, INT32 tics, boolean fromDamage);
|
||||
void K_SetHitLagForObjects(mobj_t *mo1, mobj_t *mo2, INT32 tics, boolean fromDamage);
|
||||
void K_AwardPlayerRings(player_t *player, INT32 rings, boolean overload);
|
||||
void K_DoInstashield(player_t *player);
|
||||
void K_DoPowerClash(player_t *t1, player_t *t2);
|
||||
void K_BattleAwardHit(player_t *player, player_t *victim, mobj_t *inflictor, UINT8 bumpersRemoved);
|
||||
|
|
|
|||
|
|
@ -1408,7 +1408,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
|||
// special behavior for ring capsules
|
||||
if (target->threshold == KITEM_SUPERRING)
|
||||
{
|
||||
player->superring = min(player->superring + 5*target->movecount*3, UINT16_MAX);
|
||||
K_AwardPlayerRings(player, 5 * target->movecount, true);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3659,7 +3659,11 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
|
|||
return;
|
||||
|
||||
if (delay <= 0 || !(leveltime % delay))
|
||||
P_GivePlayerRings(mo->player, rings);
|
||||
{
|
||||
// No Climb: don't cap rings to 20
|
||||
K_AwardPlayerRings(mo->player, rings,
|
||||
(line->flags & ML_NOCLIMB) == ML_NOCLIMB);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue