mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Adjust Prison followers based on feedback...
- Exist for 1.5 seconds before disappearing
- Flickers away in the last half second
- Twice as many spawned, at half the size
- Different arc
- Severely reduced gravity
- Don't jump if they hypothetically touch the floor
This commit is contained in:
parent
9e49f761b0
commit
3805a4d5f0
3 changed files with 23 additions and 8 deletions
|
|
@ -207,6 +207,12 @@ Obj_AudienceThink
|
|||
{
|
||||
boolean landed = false;
|
||||
|
||||
if (mobj->fuse && mobj->fuse < (TICRATE/2))
|
||||
{
|
||||
mobj->renderflags ^= RF_DONTDRAW;
|
||||
return; // no jumping when you hit the floor, your gravity is weird
|
||||
}
|
||||
|
||||
if (audience_mainstate(mobj) == S_NULL)
|
||||
{
|
||||
// Uninitialised, don't do anything funny.
|
||||
|
|
|
|||
|
|
@ -2108,11 +2108,11 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
|||
{
|
||||
dir = FixedAngle(P_RandomKey(PR_RANDOMAUDIENCE, 360)*FRACUNIT);
|
||||
|
||||
const fixed_t launchmomentum = 11 * mapobjectscale;
|
||||
const fixed_t launchmomentum = 7 * mapobjectscale;
|
||||
const fixed_t jaggedness = 4;
|
||||
angle_t launchangle;
|
||||
UINT8 i;
|
||||
for (i = 0; i < 3; i++, dir += ANGLE_120)
|
||||
for (i = 0; i < 6; i++, dir += ANG60)
|
||||
{
|
||||
cur = P_SpawnMobj(
|
||||
target->x, target->y,
|
||||
|
|
@ -2130,13 +2130,9 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
|||
if (P_MobjWasRemoved(cur))
|
||||
break;
|
||||
|
||||
// For Followers, this makes them
|
||||
// MF2_AMBUSH - try to always look at the nearest player
|
||||
// MF2_DONTRESPAWN - Check for death pits
|
||||
cur->flags2 |= (MF2_AMBUSH|MF2_DONTRESPAWN);
|
||||
|
||||
cur->hitlag = target->hitlag;
|
||||
|
||||
cur->destscale /= 2;
|
||||
P_SetScale(cur, cur->destscale/TICRATE);
|
||||
cur->scalespeed = cur->destscale/TICRATE;
|
||||
cur->z -= cur->height/2;
|
||||
|
|
@ -2145,7 +2141,13 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
|||
cur->flags2 |= (source->flags2 & MF2_OBJECTFLIP);
|
||||
cur->eflags |= (source->eflags & MFE_VERTICALFLIP);
|
||||
|
||||
launchangle = FixedAngle(P_RandomRange(PR_RANDOMAUDIENCE, 60/jaggedness, 80/jaggedness) * jaggedness*FRACUNIT);
|
||||
launchangle = FixedAngle(
|
||||
(
|
||||
(
|
||||
P_RandomRange(PR_RANDOMAUDIENCE, 12/jaggedness, 24/jaggedness) * jaggedness
|
||||
) + (i & 1)*16
|
||||
) * FRACUNIT
|
||||
);
|
||||
|
||||
cur->momz = P_MobjFlip(target) // THIS one uses target!
|
||||
* P_ReturnThrustY(cur, launchangle, launchmomentum);
|
||||
|
|
@ -2156,6 +2158,9 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
|||
cur, cur->angle,
|
||||
P_ReturnThrustX(cur, launchangle, launchmomentum)
|
||||
);
|
||||
|
||||
cur->fuse = (3*TICRATE)/2;
|
||||
cur->flags |= MF_NOCLIPHEIGHT;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1278,6 +1278,10 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case MT_RANDOMAUDIENCE:
|
||||
if (mo->fuse)
|
||||
gravityadd /= 10;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue