allow configuring thundershield radius

This commit is contained in:
minenice55 2026-02-18 17:13:35 -05:00
parent 41cfd0d722
commit 92f3ecdd83
3 changed files with 10 additions and 7 deletions

View file

@ -82,6 +82,8 @@ consvar_t cv_huditemamount = CVAR_INIT ("showitemamountnumber", "Vanilla", CV_SA
consvar_t cv_karteggmine_slotlock = CVAR_INIT ("karteggmine_slotlock", "Off", CV_NETVAR|CV_CHEAT|CV_GUARD, CV_OnOff, NULL);
consvar_t cv_karteggmine_slotbrick = CVAR_INIT ("karteggmine_slotbrick", "On", CV_NETVAR|CV_CHEAT|CV_GUARD, CV_OnOff, NULL);
consvar_t cv_kartthunder_radius = CVAR_INIT ("kartthunder_radius", "320", CV_NETVAR|CV_CHEAT|CV_GUARD, CV_Natural, NULL);
void K_RegisterItem(kartitemtype_e itemtype)
{
@ -1854,8 +1856,6 @@ static void K_DoHyudoroSteal(player_t *player)
}
}
#define THUNDERRADIUS 320
// Rough size of the outer-rim sprites, after scaling.
// (The hitbox is already pretty strict due to only 1 active frame,
// we don't need to have it disjointedly small too...)
@ -1870,7 +1870,7 @@ void K_DoThunderShield(player_t *player)
angle_t an;
S_StartSound(player->mo, sfx_zio3);
K_ThunderShieldAttack(player->mo, (THUNDERRADIUS + THUNDERSPRITE) * FRACUNIT);
K_ThunderShieldAttack(player->mo, (cv_kartthunder_radius.value + THUNDERSPRITE) * FRACUNIT);
// spawn vertical bolt
mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_THOK);
@ -1899,18 +1899,17 @@ void K_DoThunderShield(player_t *player)
an = ANGLE_22h;
for (i=0; i<15; i++)
{
sx = player->mo->x + FixedMul((player->mo->scale*THUNDERRADIUS), FINECOSINE((an*i)>>ANGLETOFINESHIFT));
sy = player->mo->y + FixedMul((player->mo->scale*THUNDERRADIUS), FINESINE((an*i)>>ANGLETOFINESHIFT));
sx = player->mo->x + FixedMul((player->mo->scale*cv_kartthunder_radius.value), FINECOSINE((an*i)>>ANGLETOFINESHIFT));
sy = player->mo->y + FixedMul((player->mo->scale*cv_kartthunder_radius.value), FINESINE((an*i)>>ANGLETOFINESHIFT));
mo = P_SpawnMobj(sx, sy, player->mo->z, MT_THOK);
mo->angle = an*i;
mo->extravalue1 = THUNDERRADIUS; // Used to know whether we should teleport by radius or something.
mo->extravalue1 = cv_kartthunder_radius.value; // Used to know whether we should teleport by radius or something.
mo->scale = player->mo->scale*3;
P_SetTarget(&mo->target, player->mo);
P_SetMobjState(mo, S_KSPARK1);
}
}
#undef THUNDERRADIUS
#undef THUNDERSPRITE
#define MAXSHARDCOUNT 40

View file

@ -232,6 +232,8 @@ void K_PlayerItemThink(player_t *player, boolean onground);
extern consvar_t cv_karteggmine_slotlock;
extern consvar_t cv_karteggmine_slotbrick;
extern consvar_t cv_kartthunder_radius;
#define BUBBLEBOOSTTIME (7 * sneakertime / 10)
#ifdef __cplusplus

View file

@ -474,6 +474,8 @@ void K_RegisterKartStuff(void)
CV_RegisterVar(&cv_karteggmine_slotlock);
CV_RegisterVar(&cv_karteggmine_slotbrick);
CV_RegisterVar(&cv_kartthunder_radius);
}
//}