mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +00:00
Longer delay for using a Chao Key on a Major Challenge Tile
Also tidies up a lot of the code and constants related to the Key usage timing
This commit is contained in:
parent
3e901b312c
commit
f29430f29c
3 changed files with 26 additions and 10 deletions
|
|
@ -1214,9 +1214,11 @@ void M_DrawAddons(void);
|
||||||
|
|
||||||
#define TILEFLIP_MAX 16
|
#define TILEFLIP_MAX 16
|
||||||
|
|
||||||
#define CHAOHOLD_MAX (3*TICRATE/2)
|
#define CHAOHOLD_STANDARD (40) // (Close to 3*TICRATE/2 after padding, but adjusted to evenly divide by 10)
|
||||||
#define CHAOHOLD_BEGIN 7
|
#define CHAOHOLD_MAJOR (60) //(3*CHAOHOLD_STANDARD/2)
|
||||||
#define CHAOHOLD_END 3
|
#define CHAOHOLD_BEGIN (7)
|
||||||
|
#define CHAOHOLD_END (3)
|
||||||
|
#define CHAOHOLD_PADDING (CHAOHOLD_BEGIN + CHAOHOLD_END)
|
||||||
|
|
||||||
extern struct timeattackmenu_s {
|
extern struct timeattackmenu_s {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6102,18 +6102,25 @@ challengedesc:
|
||||||
major = true;
|
major = true;
|
||||||
tilex += challengesgridstep/2;
|
tilex += challengesgridstep/2;
|
||||||
tiley += challengesgridstep/2;
|
tiley += challengesgridstep/2;
|
||||||
baseradius *= 2;
|
baseradius = (7*baseradius)/4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (challengesmenu.chaokeyhold >= CHAOHOLD_MAX - CHAOHOLD_END)
|
const INT32 chaohold_duration =
|
||||||
|
CHAOHOLD_PADDING
|
||||||
|
+ (major
|
||||||
|
? CHAOHOLD_MAJOR
|
||||||
|
: CHAOHOLD_STANDARD
|
||||||
|
);
|
||||||
|
|
||||||
|
if (challengesmenu.chaokeyhold >= chaohold_duration - CHAOHOLD_END)
|
||||||
{
|
{
|
||||||
ending = true;
|
ending = true;
|
||||||
baseradius = ((CHAOHOLD_MAX - challengesmenu.chaokeyhold)*baseradius)*(FRACUNIT/CHAOHOLD_END);
|
baseradius = ((chaohold_duration - challengesmenu.chaokeyhold)*baseradius)*(FRACUNIT/CHAOHOLD_END);
|
||||||
}
|
}
|
||||||
|
|
||||||
INT16 specifickeyholdtime = challengesmenu.chaokeyhold;
|
INT16 specifickeyholdtime = challengesmenu.chaokeyhold;
|
||||||
|
|
||||||
for (i = 0; i < (major ? 10 : 1); i++, specifickeyholdtime -= 4)
|
for (i = 0; i < (major ? 10 : 1); i++, specifickeyholdtime -= (CHAOHOLD_STANDARD/10))
|
||||||
{
|
{
|
||||||
fixed_t radius = baseradius;
|
fixed_t radius = baseradius;
|
||||||
fixed_t thiskeyx, thiskeyy;
|
fixed_t thiskeyx, thiskeyy;
|
||||||
|
|
@ -6140,11 +6147,11 @@ challengedesc:
|
||||||
radius <<= FRACBITS;
|
radius <<= FRACBITS;
|
||||||
|
|
||||||
keyholdrotation += 360 * ((challengesmenu.chaokeyhold - CHAOHOLD_BEGIN))
|
keyholdrotation += 360 * ((challengesmenu.chaokeyhold - CHAOHOLD_BEGIN))
|
||||||
* (FRACUNIT/(CHAOHOLD_MAX - (CHAOHOLD_BEGIN + CHAOHOLD_END)));
|
* (FRACUNIT/(CHAOHOLD_STANDARD)); // intentionally not chaohold_duration
|
||||||
|
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
{
|
{
|
||||||
INT32 time = 3 - (keyholdrotation - 1) / (90 * FRACUNIT);
|
INT32 time = (major ? 5 : 3) - (keyholdrotation - 1) / (90 * FRACUNIT);
|
||||||
if (time <= 5 && time >= 0)
|
if (time <= 5 && time >= 0)
|
||||||
V_DrawScaledPatch(tilex + 2, tiley - 2, 0, kp_eggnum[time]);
|
V_DrawScaledPatch(tilex + 2, tiley - 2, 0, kp_eggnum[time]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -382,7 +382,14 @@ void M_ChallengesTick(void)
|
||||||
{
|
{
|
||||||
challengesmenu.chaokeyhold++;
|
challengesmenu.chaokeyhold++;
|
||||||
|
|
||||||
if (challengesmenu.chaokeyhold > CHAOHOLD_MAX)
|
const UINT32 chaohold_duration =
|
||||||
|
CHAOHOLD_PADDING
|
||||||
|
+ ((unlockables[challengesmenu.currentunlock].majorunlock == true)
|
||||||
|
? CHAOHOLD_MAJOR
|
||||||
|
: CHAOHOLD_STANDARD
|
||||||
|
);
|
||||||
|
|
||||||
|
if (challengesmenu.chaokeyhold > chaohold_duration)
|
||||||
{
|
{
|
||||||
#ifndef CHAOKEYDEBUG
|
#ifndef CHAOKEYDEBUG
|
||||||
gamedata->chaokeys -= (unlockables[challengesmenu.currentunlock].majorunlock == true)
|
gamedata->chaokeys -= (unlockables[challengesmenu.currentunlock].majorunlock == true)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue