mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-27 16:01:17 +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 CHAOHOLD_MAX (3*TICRATE/2)
|
||||
#define CHAOHOLD_BEGIN 7
|
||||
#define CHAOHOLD_END 3
|
||||
#define CHAOHOLD_STANDARD (40) // (Close to 3*TICRATE/2 after padding, but adjusted to evenly divide by 10)
|
||||
#define CHAOHOLD_MAJOR (60) //(3*CHAOHOLD_STANDARD/2)
|
||||
#define CHAOHOLD_BEGIN (7)
|
||||
#define CHAOHOLD_END (3)
|
||||
#define CHAOHOLD_PADDING (CHAOHOLD_BEGIN + CHAOHOLD_END)
|
||||
|
||||
extern struct timeattackmenu_s {
|
||||
|
||||
|
|
|
|||
|
|
@ -6102,18 +6102,25 @@ challengedesc:
|
|||
major = true;
|
||||
tilex += 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;
|
||||
baseradius = ((CHAOHOLD_MAX - challengesmenu.chaokeyhold)*baseradius)*(FRACUNIT/CHAOHOLD_END);
|
||||
baseradius = ((chaohold_duration - challengesmenu.chaokeyhold)*baseradius)*(FRACUNIT/CHAOHOLD_END);
|
||||
}
|
||||
|
||||
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 thiskeyx, thiskeyy;
|
||||
|
|
@ -6140,11 +6147,11 @@ challengedesc:
|
|||
radius <<= FRACBITS;
|
||||
|
||||
keyholdrotation += 360 * ((challengesmenu.chaokeyhold - CHAOHOLD_BEGIN))
|
||||
* (FRACUNIT/(CHAOHOLD_MAX - (CHAOHOLD_BEGIN + CHAOHOLD_END)));
|
||||
* (FRACUNIT/(CHAOHOLD_STANDARD)); // intentionally not chaohold_duration
|
||||
|
||||
if (i == 0)
|
||||
{
|
||||
INT32 time = 3 - (keyholdrotation - 1) / (90 * FRACUNIT);
|
||||
INT32 time = (major ? 5 : 3) - (keyholdrotation - 1) / (90 * FRACUNIT);
|
||||
if (time <= 5 && time >= 0)
|
||||
V_DrawScaledPatch(tilex + 2, tiley - 2, 0, kp_eggnum[time]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -382,7 +382,14 @@ void M_ChallengesTick(void)
|
|||
{
|
||||
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
|
||||
gamedata->chaokeys -= (unlockables[challengesmenu.currentunlock].majorunlock == true)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue