mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-12-25 09:22:33 +00:00
Improvements from the netgame
- Double active time - Increase height they spawn from - Slow down swing speed the tiniest bit - Add an extra 7 for first place - Increase hitbox - Make particles into hitbox - Tweak item odds
This commit is contained in:
parent
892863db05
commit
b8bbdda1f3
4 changed files with 80 additions and 28 deletions
|
|
@ -24085,7 +24085,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
48*FRACUNIT, // radius
|
||||
52*FRACUNIT, // radius
|
||||
120*FRACUNIT, // height
|
||||
0, // display offset
|
||||
0, // mass
|
||||
|
|
@ -24166,13 +24166,13 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
16*FRACUNIT, // radius
|
||||
16*FRACUNIT, // height
|
||||
26*FRACUNIT, // radius
|
||||
26*FRACUNIT, // height
|
||||
0, // display offset
|
||||
0, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_SCENERY|MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -365,7 +365,7 @@ static INT32 K_KartItemOddsRace[NUMKARTRESULTS-1][8] =
|
|||
/*Ballhog*/ { 0, 0, 2, 2, 0, 0, 0, 0 }, // Ballhog
|
||||
/*Self-Propelled Bomb*/ { 0, 0, 0, 0, 0, 2, 4, 0 }, // Self-Propelled Bomb
|
||||
/*Grow*/ { 0, 0, 0, 1, 2, 3, 0, 0 }, // Grow
|
||||
/*Shrink*/ { 0, 0, 0, 0, 0, 0, 4, 2 }, // Shrink
|
||||
/*Shrink*/ { 0, 0, 0, 0, 0, 2, 4, 2 }, // Shrink
|
||||
/*Lightning Shield*/ { 1, 0, 0, 0, 0, 0, 0, 0 }, // Lightning Shield
|
||||
/*Bubble Shield*/ { 0, 1, 2, 1, 0, 0, 0, 0 }, // Bubble Shield
|
||||
/*Flame Shield*/ { 0, 0, 0, 0, 0, 1, 3, 5 }, // Flame Shield
|
||||
|
|
@ -375,7 +375,7 @@ static INT32 K_KartItemOddsRace[NUMKARTRESULTS-1][8] =
|
|||
/*Kitchen Sink*/ { 0, 0, 0, 0, 0, 0, 0, 0 }, // Kitchen Sink
|
||||
/*Drop Target*/ { 3, 0, 0, 0, 0, 0, 0, 0 }, // Drop Target
|
||||
/*Sneaker x2*/ { 0, 0, 2, 2, 2, 0, 0, 0 }, // Sneaker x2
|
||||
/*Sneaker x3*/ { 0, 0, 0, 1, 6,10, 4, 0 }, // Sneaker x3
|
||||
/*Sneaker x3*/ { 0, 0, 0, 1, 6, 8, 4, 0 }, // Sneaker x3
|
||||
/*Banana x3*/ { 0, 1, 1, 0, 0, 0, 0, 0 }, // Banana x3
|
||||
/*Banana x10*/ { 0, 0, 0, 1, 0, 0, 0, 0 }, // Banana x10
|
||||
/*Orbinaut x3*/ { 0, 0, 1, 0, 0, 0, 0, 0 }, // Orbinaut x3
|
||||
|
|
|
|||
|
|
@ -25,14 +25,16 @@
|
|||
|
||||
#define POHBEE_HOVER (256 << FRACBITS)
|
||||
#define POHBEE_SPEED (128 << FRACBITS)
|
||||
#define POHBEE_TIME (15 * TICRATE)
|
||||
#define POHBEE_TIME (30 * TICRATE)
|
||||
#define POHBEE_DIST (4096 << FRACBITS)
|
||||
|
||||
#define GUN_SWING (ANGLE_90 - ANG10)
|
||||
#define GUN_SWINGTIME (3 * TICRATE)
|
||||
#define GUN_SWINGTIME (4 * TICRATE)
|
||||
|
||||
#define CHAIN_SIZE (16)
|
||||
|
||||
#define EXTRA_FOR_FIRST (7)
|
||||
|
||||
enum
|
||||
{
|
||||
POHBEE_MODE_SPAWN,
|
||||
|
|
@ -321,7 +323,7 @@ static void ShrinkLaserThinker(mobj_t *pohbee, mobj_t *gun, mobj_t *laser)
|
|||
P_SetScale(particle, particle->scale * 2);
|
||||
particle->destscale = 0;
|
||||
|
||||
particle->momz = 2 * particle->scale * P_MobjFlip(particle);
|
||||
//particle->momz = 2 * particle->scale * P_MobjFlip(particle);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -570,7 +572,7 @@ static void CreatePohbee(player_t *owner, waypoint_t *start, waypoint_t *end, UI
|
|||
|
||||
// Valid spawning conditions,
|
||||
// we can start creating each individual part.
|
||||
pohbee = P_SpawnMobjFromMobj(start->mobj, 0, 0, POHBEE_HOVER * 3, MT_SHRINK_POHBEE);
|
||||
pohbee = P_SpawnMobjFromMobj(start->mobj, 0, 0, FixedDiv(size, mapobjectscale) + POHBEE_HOVER * 3, MT_SHRINK_POHBEE);
|
||||
P_SetTarget(&pohbee_owner(pohbee), owner->mo);
|
||||
|
||||
pohbee_mode(pohbee) = POHBEE_MODE_SPAWN;
|
||||
|
|
@ -622,6 +624,7 @@ void Obj_CreateShrinkPohbees(player_t *owner)
|
|||
waypoint_t *start;
|
||||
waypoint_t *end;
|
||||
UINT8 lasers;
|
||||
boolean first;
|
||||
} pohbees[MAXPLAYERS];
|
||||
size_t numPohbees = 0;
|
||||
|
||||
|
|
@ -684,6 +687,12 @@ void Obj_CreateShrinkPohbees(player_t *owner)
|
|||
pohbees[j].start = GetPohbeeStart(player->nextwaypoint);
|
||||
pohbees[j].end = endWaypoint;
|
||||
pohbees[j].lasers = 1;
|
||||
|
||||
if (player->position == 1)
|
||||
{
|
||||
pohbees[j].first = true;
|
||||
}
|
||||
|
||||
numPohbees++;
|
||||
}
|
||||
}
|
||||
|
|
@ -691,5 +700,18 @@ void Obj_CreateShrinkPohbees(player_t *owner)
|
|||
for (i = 0; i < numPohbees; i++)
|
||||
{
|
||||
CreatePohbee(owner, pohbees[i].start, pohbees[i].end, pohbees[i].lasers);
|
||||
|
||||
if (pohbees[i].first == true)
|
||||
{
|
||||
// Add a chain of extra ones for 1st place.
|
||||
waypoint_t *prev = pohbees[i].end;
|
||||
|
||||
for (j = 0; j < EXTRA_FOR_FIRST; j++)
|
||||
{
|
||||
waypoint_t *new = GetPohbeeEnd(pohbees[i].end);
|
||||
CreatePohbee(owner, prev, new, 1);
|
||||
prev = new;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
66
src/p_map.c
66
src/p_map.c
|
|
@ -740,46 +740,76 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing)
|
|||
|
||||
// SRB2kart 011617 - Colission[sic] code for kart items //{
|
||||
|
||||
if (thing->type == MT_SHRINK_GUN)
|
||||
if (thing->type == MT_SHRINK_GUN || thing->type == MT_SHRINK_PARTICLE)
|
||||
{
|
||||
if (tmthing->type != MT_PLAYER)
|
||||
{
|
||||
return BMIT_CONTINUE;
|
||||
}
|
||||
|
||||
// Use special collision for the laser gun.
|
||||
// The laser sprite itself is just a visual,
|
||||
// the gun itself does the colliding for us.
|
||||
if (tmthing->z > thing->z)
|
||||
if (thing->type == MT_SHRINK_GUN)
|
||||
{
|
||||
return BMIT_CONTINUE; // overhead
|
||||
}
|
||||
// Use special collision for the laser gun.
|
||||
// The laser sprite itself is just a visual,
|
||||
// the gun itself does the colliding for us.
|
||||
if (tmthing->z > thing->z)
|
||||
{
|
||||
return BMIT_CONTINUE; // overhead
|
||||
}
|
||||
|
||||
if (tmthing->z + tmthing->height < thing->floorz)
|
||||
if (tmthing->z + tmthing->height < thing->floorz)
|
||||
{
|
||||
return BMIT_CONTINUE; // underneath
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return BMIT_CONTINUE; // underneath
|
||||
if (tmthing->z > thing->z + thing->height)
|
||||
{
|
||||
return BMIT_CONTINUE; // overhead
|
||||
}
|
||||
|
||||
if (tmthing->z + tmthing->height < thing->z)
|
||||
{
|
||||
return BMIT_CONTINUE; // underneath
|
||||
}
|
||||
}
|
||||
|
||||
return Obj_ShrinkLaserCollide(thing, tmthing) ? BMIT_CONTINUE : BMIT_ABORT;
|
||||
}
|
||||
else if (tmthing->type == MT_SHRINK_GUN)
|
||||
else if (tmthing->type == MT_SHRINK_GUN || tmthing->type == MT_SHRINK_PARTICLE)
|
||||
{
|
||||
if (thing->type != MT_PLAYER)
|
||||
{
|
||||
return BMIT_CONTINUE;
|
||||
}
|
||||
|
||||
// Use special collision for the laser gun.
|
||||
// The laser sprite itself is just a visual,
|
||||
// the gun itself does the colliding for us.
|
||||
if (thing->z > tmthing->z)
|
||||
if (thing->type == MT_SHRINK_GUN)
|
||||
{
|
||||
return BMIT_CONTINUE; // overhead
|
||||
}
|
||||
// Use special collision for the laser gun.
|
||||
// The laser sprite itself is just a visual,
|
||||
// the gun itself does the colliding for us.
|
||||
if (thing->z > tmthing->z)
|
||||
{
|
||||
return BMIT_CONTINUE; // overhead
|
||||
}
|
||||
|
||||
if (thing->z + thing->height < tmthing->floorz)
|
||||
if (thing->z + thing->height < tmthing->floorz)
|
||||
{
|
||||
return BMIT_CONTINUE; // underneath
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return BMIT_CONTINUE; // underneath
|
||||
if (tmthing->z > thing->z + thing->height)
|
||||
{
|
||||
return BMIT_CONTINUE; // overhead
|
||||
}
|
||||
|
||||
if (tmthing->z + tmthing->height < thing->z)
|
||||
{
|
||||
return BMIT_CONTINUE; // underneath
|
||||
}
|
||||
}
|
||||
|
||||
return Obj_ShrinkLaserCollide(tmthing, thing) ? BMIT_CONTINUE : BMIT_ABORT;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue