mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-18 03:22:35 +00:00
Merge branch 'whip-thief-pt1' into 'master'
Whip thief Pt 1 See merge request kart-krew-dev/ring-racers-internal!2597
This commit is contained in:
commit
565733224f
5 changed files with 24 additions and 12 deletions
|
|
@ -75,7 +75,7 @@ boolean K_BananaBallhogCollide(mobj_t *t1, mobj_t *t2)
|
|||
if (t1->type == MT_BALLHOGBOOM && t2->type == MT_BALLHOGBOOM)
|
||||
return true; // Ballhogs don't collide with eachother
|
||||
|
||||
if (K_TryPickMeUp(t1, t2))
|
||||
if (K_TryPickMeUp(t1, t2, false))
|
||||
return true;
|
||||
|
||||
if (t2->player)
|
||||
|
|
@ -178,7 +178,7 @@ boolean K_EggItemCollide(mobj_t *t1, mobj_t *t2)
|
|||
if (t1->health <= 0 || t2->health <= 0)
|
||||
return true;
|
||||
|
||||
if (K_TryPickMeUp(t1, t2))
|
||||
if (K_TryPickMeUp(t1, t2, false))
|
||||
return true;
|
||||
|
||||
if (!P_CanPickupItem(t2->player, PICKUP_EGGBOX))
|
||||
|
|
@ -434,7 +434,7 @@ boolean K_LandMineCollide(mobj_t *t1, mobj_t *t2)
|
|||
if (t1->health <= 0 || t2->health <= 0)
|
||||
return true;
|
||||
|
||||
if (K_TryPickMeUp(t1, t2))
|
||||
if (K_TryPickMeUp(t1, t2, false))
|
||||
return true;
|
||||
|
||||
if (t2->player)
|
||||
|
|
@ -544,7 +544,7 @@ boolean K_DropTargetCollide(mobj_t *t1, mobj_t *t2)
|
|||
if (t2->player && (t2->player->hyudorotimer || t2->player->justbumped))
|
||||
return true;
|
||||
|
||||
if (K_TryPickMeUp(t1, t2))
|
||||
if (K_TryPickMeUp(t1, t2, false))
|
||||
return true;
|
||||
|
||||
if (draggeddroptarget && P_MobjWasRemoved(draggeddroptarget))
|
||||
|
|
@ -1042,7 +1042,14 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim)
|
|||
}
|
||||
else if (victim->type == MT_DROPTARGET || victim->type == MT_DROPTARGET_SHIELD)
|
||||
{
|
||||
K_DropTargetCollide(victim, shield);
|
||||
if (K_TryPickMeUp(attacker, victim, true))
|
||||
{
|
||||
shield->hitlag = attacker->hitlag; // players hitlag is handled in K_TryPickMeUp, and we need to set for the shield too
|
||||
}
|
||||
else
|
||||
{
|
||||
K_DropTargetCollide(victim, shield);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
|
@ -1059,8 +1066,13 @@ boolean K_InstaWhipCollide(mobj_t *shield, mobj_t *victim)
|
|||
shield->extravalue1 = 1;
|
||||
}
|
||||
|
||||
if (P_DamageMobj(victim, shield, attacker, 1, DMG_NORMAL))
|
||||
if (K_TryPickMeUp(attacker, victim, true))
|
||||
{
|
||||
shield->hitlag = attacker->hitlag; // players hitlag is handled in K_TryPickMeUp, and we need to set for the shield too
|
||||
}
|
||||
else
|
||||
{
|
||||
P_DamageMobj(victim, shield, attacker, 1, DMG_NORMAL);
|
||||
K_AddHitLag(attacker, attackerHitlag, false);
|
||||
shield->hitlag = attacker->hitlag;
|
||||
}
|
||||
|
|
@ -1074,7 +1086,7 @@ boolean K_KitchenSinkCollide(mobj_t *t1, mobj_t *t2)
|
|||
if (((t1->target == t2) || (!(t2->flags & (MF_ENEMY|MF_BOSS)) && (t1->target == t2->target))) && (t1->threshold > 0 || (t2->type != MT_PLAYER && t2->threshold > 0)))
|
||||
return true;
|
||||
|
||||
if (K_TryPickMeUp(t1, t2))
|
||||
if (K_TryPickMeUp(t1, t2, false))
|
||||
return true;
|
||||
|
||||
if (t2->player)
|
||||
|
|
|
|||
|
|
@ -15908,7 +15908,7 @@ static boolean K_PickUp(player_t *player, mobj_t *picked)
|
|||
}
|
||||
|
||||
// ACHTUNG this destroys items when returning true, make sure to bail out
|
||||
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2)
|
||||
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2, boolean allowHostile)
|
||||
{
|
||||
if (!m1 || P_MobjWasRemoved(m1))
|
||||
return false;
|
||||
|
|
@ -15943,7 +15943,7 @@ boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2)
|
|||
if (inflictor->target->player && G_SameTeam(inflictor->target->player, victim->player))
|
||||
allied = true;
|
||||
|
||||
if (!allied)
|
||||
if (!allied && !allowHostile)
|
||||
return false;
|
||||
|
||||
// CONS_Printf("target check passed\n");
|
||||
|
|
|
|||
|
|
@ -327,7 +327,7 @@ void K_BotHitPenalty(player_t *player);
|
|||
|
||||
boolean K_IsPickMeUpItem(mobjtype_t type);
|
||||
|
||||
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2);
|
||||
boolean K_TryPickMeUp(mobj_t *m1, mobj_t *m2, boolean allowHostile);
|
||||
|
||||
fixed_t K_TeamComebackMultiplier(player_t *player);
|
||||
|
||||
|
|
|
|||
|
|
@ -190,7 +190,7 @@ boolean Obj_OrbinautJawzCollide(mobj_t *t1, mobj_t *t2)
|
|||
return true;
|
||||
}
|
||||
|
||||
if (K_TryPickMeUp(t1, t2))
|
||||
if (K_TryPickMeUp(t1, t2, false))
|
||||
return true;
|
||||
|
||||
if (t1->type == MT_GARDENTOP)
|
||||
|
|
|
|||
|
|
@ -667,7 +667,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
|
|||
if (!player->mo || player->spectator)
|
||||
return;
|
||||
|
||||
if (K_TryPickMeUp(special, toucher))
|
||||
if (K_TryPickMeUp(special, toucher, false))
|
||||
return;
|
||||
|
||||
// attach to player!
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue