configurable attraction shield player damage
was told we want this
This commit is contained in:
parent
699153fd52
commit
06a90d9809
8 changed files with 29 additions and 12 deletions
|
|
@ -548,11 +548,11 @@ consvar_t cv_kartstacking_flame_stackable = CVAR_INIT ("vanillaboost_flame_stack
|
|||
|
||||
consvar_t cv_kartstacking_attraction_speedboost_himin = CVAR_INIT ("vanillaboost_attraction_speedboost_himin", "0.42", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_speedboost_himax = CVAR_INIT ("vanillaboost_attraction_speedboost_himax", "0.50", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_speedboost_normmin = CVAR_INIT ("vanillaboost_attraction_speedboost_normmin", "0.15", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_speedboost_normmax = CVAR_INIT ("vanillaboost_attraction_speedboost_normmax", "0.20", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_accelboost_hi = CVAR_INIT ("vanillaboost_attraction_accelboost_hi", "18.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_accelboost_norm = CVAR_INIT ("vanillaboost_attraction_accelboost_norm", "4.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_handleboost = CVAR_INIT ("vanillaboost_attraction_handleboost", "1.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_speedboost_normmin = CVAR_INIT ("vanillaboost_attraction_speedboost_normmin", "0.24", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_speedboost_normmax = CVAR_INIT ("vanillaboost_attraction_speedboost_normmax", "0.32", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_accelboost_hi = CVAR_INIT ("vanillaboost_attraction_accelboost_hi", "16.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_accelboost_norm = CVAR_INIT ("vanillaboost_attraction_accelboost_norm", "8.0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_handleboost = CVAR_INIT ("vanillaboost_attraction_handleboost", "0", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartstacking_attraction_stackable = CVAR_INIT ("vanillaboost_attraction_stackable", "On", CV_NETVAR|CV_GUARD, CV_OnOff, NULL);
|
||||
|
||||
consvar_t cv_kartstacking_start_speedboost = CVAR_INIT ("vanillaboost_start_speedboost", "0.25", CV_NETVAR|CV_CHEAT|CV_FLOAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
|
|
@ -718,6 +718,10 @@ consvar_t cv_kartflame_fastfuel = CVAR_INIT ("kartflame_fastfuel", "On", CV_NETV
|
|||
consvar_t cv_kartflame_offroadburn = CVAR_INIT ("kartflame_offroadburn", "On", CV_NETVAR, CV_OnOff, NULL);
|
||||
consvar_t cv_kartattraction_assistpower = CVAR_INIT ("kartattraction_assistpower", "0.5", CV_NETVAR|CV_FLOAT, CV_Unsigned, NULL);
|
||||
|
||||
// Attraction Shield damage toggles
|
||||
static CV_PossibleValue_t kartattractiondmg_cons_t[] = {{0, "None"}, {DMG_WIPEOUT, "Wipe-out"}, {DMG_FLIPOVER, "Flip-over"}, {DMG_EXPLODE, "Explode"}, {0, NULL}};
|
||||
consvar_t cv_kartattraction_aoedmg = CVAR_INIT ("kartattraction_assistpower", "None", CV_NETVAR|CV_FLOAT, kartattractiondmg_cons_t, NULL);
|
||||
|
||||
// "Arrow Bullet": above a certain speed threshold, an aura in the shape of the Shrink arrow
|
||||
// covers you, signaling protection from (most) items and players.
|
||||
// Default threshold percentage is currently 166%.
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ extern consvar_t cv_kartbubble_boost_offroadignore;
|
|||
extern consvar_t cv_kartflame_fastfuel;
|
||||
extern consvar_t cv_kartflame_offroadburn;
|
||||
extern consvar_t cv_kartattraction_assistpower;
|
||||
extern consvar_t cv_kartattraction_aoedmg;
|
||||
extern consvar_t cv_kartaltshrink_arrowbullet;
|
||||
extern consvar_t cv_kartaltshrink_arrowbulletthres;
|
||||
|
||||
|
|
|
|||
|
|
@ -596,6 +596,7 @@ boolean K_LandMineCollide(mobj_t *t1, mobj_t *t2)
|
|||
|
||||
static mobj_t *lightningSource;
|
||||
static fixed_t lightningDist;
|
||||
static boolean attractionhipower;
|
||||
|
||||
static inline BlockItReturn_t PIT_ThunderShieldAttack(mobj_t *thing)
|
||||
{
|
||||
|
|
@ -696,7 +697,7 @@ static inline BlockItReturn_t PIT_AttractionShieldAttack(mobj_t *thing)
|
|||
return BMIT_ABORT;
|
||||
}
|
||||
|
||||
if (thing->player)
|
||||
if (thing->player && (ATTRACTIONAOEDAMAGE == 0 || (!attractionhipower)))
|
||||
{
|
||||
// Don't damage players
|
||||
return BMIT_CONTINUE;
|
||||
|
|
@ -741,16 +742,24 @@ static inline BlockItReturn_t PIT_AttractionShieldAttack(mobj_t *thing)
|
|||
K_SetIndirectItemCooldown(0);
|
||||
}
|
||||
|
||||
P_DamageMobj(thing, lightningSource, lightningSource, 1, DMG_VOLTAGE|DMG_CANTHURTSELF);
|
||||
if (thing->player)
|
||||
{
|
||||
P_DamageMobj(thing, lightningSource, lightningSource, 1, ATTRACTIONAOEDAMAGE|DMG_CANTHURTSELF);
|
||||
}
|
||||
else
|
||||
{
|
||||
P_DamageMobj(thing, lightningSource, lightningSource, 1, DMG_VOLTAGE|DMG_CANTHURTSELF);
|
||||
}
|
||||
return BMIT_CONTINUE;
|
||||
}
|
||||
|
||||
void K_AttractionShieldAttack(mobj_t *actor, fixed_t size)
|
||||
void K_AttractionShieldAttack(mobj_t *actor, fixed_t size, boolean hipower)
|
||||
{
|
||||
INT32 bx, by, xl, xh, yl, yh;
|
||||
|
||||
lightningDist = FixedMul(size, actor->scale);
|
||||
lightningSource = actor;
|
||||
attractionhipower = hipower;
|
||||
|
||||
// Use blockmap to check for nearby shootables
|
||||
yh = (unsigned)(actor->y + lightningDist - bmaporgy)>>MAPBLOCKSHIFT;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ boolean K_MineCollide(mobj_t *t1, mobj_t *t2);
|
|||
boolean K_MineExplosionCollide(mobj_t *t1, mobj_t *t2);
|
||||
boolean K_LandMineCollide(mobj_t *t1, mobj_t *t2);
|
||||
void K_ThunderShieldAttack(mobj_t *actor, fixed_t size);
|
||||
void K_AttractionShieldAttack(mobj_t *actor, fixed_t size);
|
||||
void K_AttractionShieldAttack(mobj_t *actor, fixed_t size, boolean hipower);
|
||||
|
||||
boolean K_BubbleShieldReflect(mobj_t *t1, mobj_t *t2);
|
||||
boolean K_BubbleShieldCanReflect(mobj_t *t);
|
||||
|
|
|
|||
|
|
@ -1923,7 +1923,7 @@ void K_DoAttractionShield(player_t *player, boolean hipower)
|
|||
}
|
||||
|
||||
S_StartSound(player->mo, sfx_zio3);
|
||||
K_AttractionShieldAttack(player->mo, (cv_kartthunder_radius.value + THUNDERSPRITE) * FRACUNIT);
|
||||
K_AttractionShieldAttack(player->mo, (cv_kartthunder_radius.value + THUNDERSPRITE) * FRACUNIT, hipower);
|
||||
|
||||
// spawn vertical bolt
|
||||
mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_THOK);
|
||||
|
|
|
|||
|
|
@ -241,10 +241,11 @@ extern consvar_t cv_karteggmine_slotbrick;
|
|||
extern consvar_t cv_kartthunder_radius;
|
||||
|
||||
#define BUBBLEBOOSTTIME (7 * sneakertime / 10)
|
||||
|
||||
#define ATTRACTIONCHARGETIME ((92*TICRATE)/60)
|
||||
#define ATTRACTIONATTACKTIME_FULL (TICRATE)
|
||||
#define ATTRACTIONATTACKTIME_MAX (TICRATE/2)
|
||||
#define ATTRACTIONATTACKTIME_MIN (TICRATE/3)
|
||||
#define ATTRACTIONATTACKTIME_MAX (3*TICRATE/4)
|
||||
#define ATTRACTIONATTACKTIME_MIN (TICRATE/2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
|
|
|
|||
|
|
@ -457,6 +457,7 @@ void K_RegisterKartStuff(void)
|
|||
CV_RegisterVar(&cv_kartflame_fastfuel);
|
||||
CV_RegisterVar(&cv_kartflame_offroadburn);
|
||||
CV_RegisterVar(&cv_kartattraction_assistpower);
|
||||
CV_RegisterVar(&cv_kartattraction_aoedmg);
|
||||
CV_RegisterVar(&cv_kartaltshrink_arrowbullet);
|
||||
CV_RegisterVar(&cv_kartaltshrink_arrowbulletthres);
|
||||
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ extern vector3_t clusterpoint, clusterdtf;
|
|||
#define FLAMEHANDLEBOOST CV_Get(&cv_kartstacking_flame_handleboost)
|
||||
#define FLAMESTACKABLE CV_Get(&cv_kartstacking_flame_stackable)
|
||||
|
||||
#define ATTRACTIONAOEDAMAGE CV_Get(&cv_kartattraction_aoedmg)
|
||||
#define ATTRACTIONSPEEDHIMIN CV_Get(&cv_kartstacking_attraction_speedboost_himin)
|
||||
#define ATTRACTIONSPEEDHIMAX CV_Get(&cv_kartstacking_attraction_speedboost_himax)
|
||||
#define ATTRACTIONSPEEDNORMMIN CV_Get(&cv_kartstacking_attraction_speedboost_normmin)
|
||||
|
|
|
|||
Loading…
Reference in a new issue