mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-26 12:01:47 +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
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
0, // speed
|
0, // speed
|
||||||
48*FRACUNIT, // radius
|
52*FRACUNIT, // radius
|
||||||
120*FRACUNIT, // height
|
120*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
0, // mass
|
0, // mass
|
||||||
|
|
@ -24166,13 +24166,13 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_None, // deathsound
|
sfx_None, // deathsound
|
||||||
0, // speed
|
0, // speed
|
||||||
16*FRACUNIT, // radius
|
26*FRACUNIT, // radius
|
||||||
16*FRACUNIT, // height
|
26*FRACUNIT, // height
|
||||||
0, // display offset
|
0, // display offset
|
||||||
0, // mass
|
0, // mass
|
||||||
0, // damage
|
0, // damage
|
||||||
sfx_None, // activesound
|
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
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -365,7 +365,7 @@ static INT32 K_KartItemOddsRace[NUMKARTRESULTS-1][8] =
|
||||||
/*Ballhog*/ { 0, 0, 2, 2, 0, 0, 0, 0 }, // Ballhog
|
/*Ballhog*/ { 0, 0, 2, 2, 0, 0, 0, 0 }, // Ballhog
|
||||||
/*Self-Propelled Bomb*/ { 0, 0, 0, 0, 0, 2, 4, 0 }, // Self-Propelled Bomb
|
/*Self-Propelled Bomb*/ { 0, 0, 0, 0, 0, 2, 4, 0 }, // Self-Propelled Bomb
|
||||||
/*Grow*/ { 0, 0, 0, 1, 2, 3, 0, 0 }, // Grow
|
/*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
|
/*Lightning Shield*/ { 1, 0, 0, 0, 0, 0, 0, 0 }, // Lightning Shield
|
||||||
/*Bubble Shield*/ { 0, 1, 2, 1, 0, 0, 0, 0 }, // Bubble 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
|
/*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
|
/*Kitchen Sink*/ { 0, 0, 0, 0, 0, 0, 0, 0 }, // Kitchen Sink
|
||||||
/*Drop Target*/ { 3, 0, 0, 0, 0, 0, 0, 0 }, // Drop Target
|
/*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 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 x3*/ { 0, 1, 1, 0, 0, 0, 0, 0 }, // Banana x3
|
||||||
/*Banana x10*/ { 0, 0, 0, 1, 0, 0, 0, 0 }, // Banana x10
|
/*Banana x10*/ { 0, 0, 0, 1, 0, 0, 0, 0 }, // Banana x10
|
||||||
/*Orbinaut x3*/ { 0, 0, 1, 0, 0, 0, 0, 0 }, // Orbinaut x3
|
/*Orbinaut x3*/ { 0, 0, 1, 0, 0, 0, 0, 0 }, // Orbinaut x3
|
||||||
|
|
|
||||||
|
|
@ -25,14 +25,16 @@
|
||||||
|
|
||||||
#define POHBEE_HOVER (256 << FRACBITS)
|
#define POHBEE_HOVER (256 << FRACBITS)
|
||||||
#define POHBEE_SPEED (128 << FRACBITS)
|
#define POHBEE_SPEED (128 << FRACBITS)
|
||||||
#define POHBEE_TIME (15 * TICRATE)
|
#define POHBEE_TIME (30 * TICRATE)
|
||||||
#define POHBEE_DIST (4096 << FRACBITS)
|
#define POHBEE_DIST (4096 << FRACBITS)
|
||||||
|
|
||||||
#define GUN_SWING (ANGLE_90 - ANG10)
|
#define GUN_SWING (ANGLE_90 - ANG10)
|
||||||
#define GUN_SWINGTIME (3 * TICRATE)
|
#define GUN_SWINGTIME (4 * TICRATE)
|
||||||
|
|
||||||
#define CHAIN_SIZE (16)
|
#define CHAIN_SIZE (16)
|
||||||
|
|
||||||
|
#define EXTRA_FOR_FIRST (7)
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
POHBEE_MODE_SPAWN,
|
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);
|
P_SetScale(particle, particle->scale * 2);
|
||||||
particle->destscale = 0;
|
particle->destscale = 0;
|
||||||
|
|
||||||
particle->momz = 2 * particle->scale * P_MobjFlip(particle);
|
//particle->momz = 2 * particle->scale * P_MobjFlip(particle);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -570,7 +572,7 @@ static void CreatePohbee(player_t *owner, waypoint_t *start, waypoint_t *end, UI
|
||||||
|
|
||||||
// Valid spawning conditions,
|
// Valid spawning conditions,
|
||||||
// we can start creating each individual part.
|
// 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);
|
P_SetTarget(&pohbee_owner(pohbee), owner->mo);
|
||||||
|
|
||||||
pohbee_mode(pohbee) = POHBEE_MODE_SPAWN;
|
pohbee_mode(pohbee) = POHBEE_MODE_SPAWN;
|
||||||
|
|
@ -622,6 +624,7 @@ void Obj_CreateShrinkPohbees(player_t *owner)
|
||||||
waypoint_t *start;
|
waypoint_t *start;
|
||||||
waypoint_t *end;
|
waypoint_t *end;
|
||||||
UINT8 lasers;
|
UINT8 lasers;
|
||||||
|
boolean first;
|
||||||
} pohbees[MAXPLAYERS];
|
} pohbees[MAXPLAYERS];
|
||||||
size_t numPohbees = 0;
|
size_t numPohbees = 0;
|
||||||
|
|
||||||
|
|
@ -684,6 +687,12 @@ void Obj_CreateShrinkPohbees(player_t *owner)
|
||||||
pohbees[j].start = GetPohbeeStart(player->nextwaypoint);
|
pohbees[j].start = GetPohbeeStart(player->nextwaypoint);
|
||||||
pohbees[j].end = endWaypoint;
|
pohbees[j].end = endWaypoint;
|
||||||
pohbees[j].lasers = 1;
|
pohbees[j].lasers = 1;
|
||||||
|
|
||||||
|
if (player->position == 1)
|
||||||
|
{
|
||||||
|
pohbees[j].first = true;
|
||||||
|
}
|
||||||
|
|
||||||
numPohbees++;
|
numPohbees++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -691,5 +700,18 @@ void Obj_CreateShrinkPohbees(player_t *owner)
|
||||||
for (i = 0; i < numPohbees; i++)
|
for (i = 0; i < numPohbees; i++)
|
||||||
{
|
{
|
||||||
CreatePohbee(owner, pohbees[i].start, pohbees[i].end, pohbees[i].lasers);
|
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 //{
|
// 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)
|
if (tmthing->type != MT_PLAYER)
|
||||||
{
|
{
|
||||||
return BMIT_CONTINUE;
|
return BMIT_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use special collision for the laser gun.
|
if (thing->type == MT_SHRINK_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
|
// 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;
|
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)
|
if (thing->type != MT_PLAYER)
|
||||||
{
|
{
|
||||||
return BMIT_CONTINUE;
|
return BMIT_CONTINUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Use special collision for the laser gun.
|
if (thing->type == MT_SHRINK_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
|
// 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;
|
return Obj_ShrinkLaserCollide(tmthing, thing) ? BMIT_CONTINUE : BMIT_ABORT;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue