Commit graph

328 commits

Author SHA1 Message Date
toaster
9e50fea2dc Now that Super Emerald minimap graphics are in the game, use them on the Sealed Star progression bar. 2023-05-30 13:30:22 +01:00
Sal
15dce65efb Merge branch 'bot-game-speed' into 'master'
Bots: Rebalance rubberband speeds

See merge request KartKrew/Kart!1244
2023-05-20 03:59:03 +00:00
Sally Coolatta
cbb684cd25 Bots: Add bot name to debugbots
For the frontrunner behavior
2023-05-19 01:29:46 -04:00
Sally Coolatta
724beb0ffe Bots: Improve rubberbanding further
- Use easing functions for the rubberbanding values themselves, for more fine-control over the end-points and the curves.
- Fixed K_UpdateRubberband being broken from using shift instead of divide.
- Rename `debugbotpredict` to `debugbots`, it now displays some of the bots' botvars values as well. If the player isn't a bot, it will show them from the first place bot (for inspecting the rubberband value).
- Bot turning buff was increased, from x1.25 to x2.0. Noticed that Tails bots were failing turns on Popcorn Workshop. I personally think that Tails bots shouldn't be failing very many turns unless if they're finding objects, and constant wall-bumping should be reserved for Eggman and Metal :P
2023-05-19 01:00:55 -04:00
toaster
e40921bf0d K_drawKartMinimap: When the player NO CONTESTs:
- If the player's MT_KART_LEFTOVER is being followed instead of their flung corpse
    - Flicker with the object.
- Else, don't draw anything
Fixes the teleporting corpse minimap tracking when you NO CONTEST.
2023-05-15 20:51:25 +01:00
toaster
e1b0ad3eaf K_DrawKartMinimap: Fix ghosts not being drawn properly
Check for progressionbar was being accidentially inverted
2023-05-15 20:38:59 +01:00
SteelT
c419d037e8 Port the menu drawer function
- k_hud.c: Add K_DrawSticker function (was previously named M_DrawSticker)
- Seperated the confirm handling into the menu ticker (fixes the confirm delay being framerate dependent)
- Updated to use the button graphics
2023-05-14 20:21:03 -04:00
toaster
36d8bce14d Replace K_DrawTabRankings with Y_PlayerStandingsDrawer
TODO: Ping, LAGLESS
2023-05-11 18:11:40 +01:00
Oni
5c5157bce5 Merge branch 'finish-jingles-tidy' into 'master'
Finish Jingles Tidy

See merge request KartKrew/Kart!1217
2023-05-10 06:42:54 +00:00
toaster
d6c86b97b6 K_drawKartFreePlay: Fix alignment for good
Uses V_StringScaledWidth instead of manually inserted spacing
2023-05-03 18:05:51 +01:00
toaster
d27a2fc7ef Battle Fullscreen: Adjust battle completion text to 5 and a half seconds (from 6) 2023-05-02 18:16:25 +01:00
toaster
ab68be49e1 cv_antigrief
- Increments a timer on human players who aren't making progress, does it even faster if they're going backwards.
    - Only applies in:
        - Netgames
        - GTR_CIRCUIT after the timer starts
        - If there's no timelimit, pointlimit, or K_Cooperative (because unproductive behaviour there will be punished by other rules)
    - The rate at which this changes needs trial and error, but getting the feature functional is more important to start out with.
- If this timer reaches cv_antigrief's value in seconds , the player gets a "Grief Strike"
    - This doesn't happen if:
        - There's only one active player in the server, so FREE PLAY permits mappers to test what increments/decrements the counter
            - Turn `debugwaypoints` on to observe this
        - The cvar is set to 0
    - Less than 3 grief strikes is a forced spectate
    - Anything more is a kick via "automatic grief detection"
        - Unless your node is the host (or an admin)
    - Remove grief strike strike for finishing normally

# Conflicts:
#	src/d_clisrv.h
2023-05-01 16:57:35 +01:00
James R
0e87a77e54 K_DrawMapThumbnail, K_DrawLikeMapThumbnail: correct argument types to fixed_t 2023-04-26 14:14:44 -07:00
James R
d9b406f4d0 Add TIMER_FONT, rename V_DrawKartString to V_DrawTimerString
Separates timer and FREE PLAY fonts.
2023-04-21 00:34:06 -07:00
Sally Coolatta
996ca9adad Z Voting 2023-04-20 15:55:38 -04:00
toaster
1f018f8d27 k_hud.c: Consistently use TC_DEFAULT instead of 0 for R_GetTranslationColormap 2023-04-07 18:03:29 +01:00
toaster
7abb2ce162 K_drawKartMinimap: Add progression meter variation
- Uses a lot of existing apparatus, just leveraged to draw horizontally instead of a full map.
- Currently only functional in Sealed Star contexts, due to K_GetCircuitLength having no clean alternative for sprint tracks.
    - Tracks Catcher/Emerald.
- K_drawKartProgressionMinimapIcon and K_getKartProgressionMinimapDistance
    - Abstracts the progress of converting distance to finish into a position on the bar.
    - Sibling function of K_drawKartMinimapIcon
        - The author of this commit wanted to make it an alternate outcome of this function, which it shares a lot of similarity with, but doing waypoint traversal in HUD for objects that don't independently track their distance would absolutely tank performance.
        - Tidying up in the main function permitted less minimap state to be used in these.
2023-04-07 18:01:50 +01:00
toaster
e82082fd06 K_UpdateDistanceFromFinishLine: Do not destroy distancetofinish value if the player NO CONTESTed 2023-04-07 00:55:04 +01:00
toaster
0ac2541eb9 k_drawKartTImestamp: Clean up SPB Attack distance bar
- Use a minimap-like graphic for the background area
    - The goofy name comes from a delightfully awful development conversation
- Make the entire thing snap to the screen's bottom and slide in
- Fix a potential sqrt of a negative/zero value
2023-04-07 00:49:06 +01:00
toaster
ba3e6765ef K_DrawKartMinimap: Bugfixes to NO CONTEST X
- Fix Race NO CONTEST X not being colormapped
- Fix non-local players not being NO CONTEST X-ified
2023-04-07 00:39:30 +01:00
toaster
c174e25401 Adjust position of Rings/Lives, Spheres, Speedometer and Accessibility Icons when gametype info is not drawn
Necessary to make Tutorial/Sealed Stars not have a huge gap where the big information used to be
2023-04-03 00:28:38 +01:00
toaster
8d66b279f8 FREE PLAY: Correct mistaken assumptions.
- Make the check consistent between HUD and Challenge conditions by revolving both around M_NotFreePlay.
    - The HUD appearance checked every individual component of K_CanChangeRules, so just straight up do that here.
    - If the rules can be changed, battleprisons is always FREE PLAY no matter how many players are present (because it can change quickly).
2023-04-03 00:28:38 +01:00
toaster
24d8b20124 GT_TUTORIAL
- Replaces `tutorialmode`.
- Forces gamespeed to Easy, with no POSITION.
    - Laps are currently disabled as well, but this can be changed if necessary.
- Hides Free Play.
- Does not count as a played round (except for Chao Keys).

`tutorialmap` has also been removed. This will be replaced in a later commit with something that plays nicer with Ring Racers' existing systems.
2023-04-03 00:28:37 +01:00
toaster
a0cdc6b71a FREE PLAY: Make a little more consistent
- Cooperative gametypes do not count as FREE PLAY
- Sealed Stars count as a Cooperative gametype
- Fix Battle Fullscreen having had inverted presence of FREE PLAY since bosses were added
2023-04-03 00:28:36 +01:00
James R
62624efcef Parties: fix interaction with viewpoint management / spectator mode
- Fixes G_ResetView and G_ResetViews not accounting for
  parties -- fixes viewpoint switching while in parties.
- Fixes spectator controls sometimes activating while in
  parties.
2023-04-02 17:26:34 +01:00
James R
9b5b07b03c Completely rewrite party management code
Replaces g_splitscreen.c with g_party.cpp. Simplifies
party management functions.

Moves externs out of already bloated doomstat.h and
g_game.h into g_party.h.

Cuts down on globals spam.
2023-04-02 17:26:33 +01:00
Oni
b9bbb6cb8a Merge branch 'conditions-cascading' into 'master'
Conditions Cascading

Closes #366

See merge request KartKrew/Kart!1053
2023-03-23 23:51:30 +00:00
James R
06fa67d9c5 Show waypoints on the minimap, if debugwaypoints is enabled
- Uses in level waypoint colors:
  - Green for player's next waypoint
  - Pink for shortcuts
  - Gray for disabled waypoints
  - Yellow for ego orb
  - Blue for ordinary waypoints
- The player's next waypoint appears slightly larger
2023-03-19 17:06:59 -07:00
toaster
7d8fe85767 battleprisons rename compilation repair 2023-03-19 13:06:55 +00:00
toaster
4c0077e07c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading 2023-03-19 13:01:06 +00:00
toaster
421896b939 Jart review: Whitespace reinsertion 2023-03-19 12:51:16 +00:00
toaster
5232da8f24 HUD tracking polish
Inexplicably, all positional checks were inverted.
This wasn't causing too many problems because the onScreen condition was inverted too, but if it would be above your screen on the opposite side of you, it would be considered onscreen when facing 180 degrees away perfectly.
By swapping viewx/y/z and point->x/y/z, and inverting onScreen, we kill this annoying lack of polish for good.
2023-03-18 00:25:22 +00:00
toaster
81e880464a CD Special Stage UFO changes
- MT_CDUFO is now a valid type of Prison in Prison Break
    - Tracked on counter
    - Tracked on HUD
    - Tracked on minimap
- P_AddBrokenPrison in p_inter.c
    - Generalises behaviour on breaking a Prison Break object
- MT_CDUFO polish
    - Can now be broken with all damaging objects EXCEPT Shield Orbinaut/Shield Jawz
        - These two are exceptions to prevent them from denying you your on-contact item grab., which these will still give you if you touch them
    - Breaking the object by touching it now causes hitlag instead of fireworks
        - The fireworks were to make touching it feel good... but hitlag feels better :P
    - Now supports mapobjectscale directly.
    - Scaled 1.5x mapobjectscale
    - Hitbox now far closer to actual sprite (which was just replaced, but was inexplicably far away from the old one too)
2023-03-18 00:22:44 +00:00
James R
82866f74d0 Use only single digit if less than ten lives in HUD 2023-03-15 23:23:06 -07:00
toaster
2e1efaff0c Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into conditions-cascading
# Conflicts:
#	src/k_battle.c
#	src/k_hud_track.cpp
#	src/k_kart.c
#	src/p_inter.c
2023-03-14 21:59:19 +00:00
James R
aed6e06ea5 Add tens place digit to lives count HUD 2023-03-13 18:43:10 -07:00
James R
1f70b9c63c Merge remote-tracking branch 'origin/bumpers-ARE-health' 2023-03-13 00:51:44 -07:00
toaster
241475155b Rename "Break the Capsules" to "Prison Break"
We had this collective consciousness bigbrain moment in VC together, and it can literally only happen in this branch because unlocks.pk3 is the only main-game asset that needs to change for it
Solves the big problem we had with mixing up Item Capsules and ~~Battle Capsules~~ PRISON EGGS
2023-03-12 20:17:46 +00:00
Sally Coolatta
f2afc65af4 Merge branch 'bot-improvements-round-12' of https://git.do.srb2.org/KartKrew/Kart into bot-improvements-round-12 2023-03-09 03:07:38 -05:00
James R
6d305deacc Fix 2P FINISH text scrolling
Was using the wrong center offset.
2023-03-08 19:01:02 -08:00
James R
7669ae7bde Rankings HUD and minimap check for PF_ELIMINATED
Dying to the Barrier:

- crosses out your rankings icon
- hides your minimap icon
2023-03-08 19:01:02 -08:00
James R
a3c64068e6 Replace bumpers completely with health
Adds some functions:

- K_Bumpers, bumper count for the count, intended for
  where player->bumpers was used in HUD and visual
  contexts.
- K_BumpersToHealth, converts bumper count to health
  points.

player->mo->health replaces player->bumpers where it was
used in health contexts.

Removes some functions:

- K_HandleBumperChanges
- K_DestroyBumpers

Everything K_HandleBumperChanges did has either been
removed or moved elsewhere. P_KillMobj also already called
K_CheckBumpers.

K_DestroyBumpers became pointless after player->bumpers
was removed.
2023-03-07 22:54:33 -08:00
James R
3843f0c3cd Remove more Karma Bomb crap
- remove Karma Bomb boost trail condition
- remove Karma Bomb condition for Eggman Mark
- remove Karma Bomb condition for hiding player name tags
- remove Karma Bomb player translucency
- remove Karma Bomb respawn invincibility
- remove Karma Bomb speed buff
- remove Karma Bomb sphere digestion
- remove Overtime Karma
2023-03-07 22:32:28 -08:00
Oni
cdc56ab2cc Merge branch 'podium' into 'master'
Podium

See merge request KartKrew/Kart!1014
2023-03-07 05:58:20 +00:00
Sally Coolatta
6ae28c4cdb Add final position as a ranking requirement
1st is a large bonus, 2nd is a medium bonus, 3rd place is no bonus, and everything below is a penalty. This will help make Loser Valley grades never be above a C at most.
2023-03-06 18:31:20 -05:00
Sally Coolatta
23a00b1d00 Move GP ranking data to grandprixinfo 2023-03-06 18:26:08 -05:00
Sally Coolatta
d5d0647ae6 Remove difficulty as a ranking requirement
Was a cute idea, but removing it since it's not something you can 100% guarantee every time, which was the same reasoning for getting rid of times getting damaged / dealing damage from the requirements.
2023-03-06 18:26:06 -05:00
Sally Coolatta
3c07641938 Add final position as a ranking requirement
1st is a large bonus, 2nd is a medium bonus, 3rd place is no bonus, and everything below is a penalty. This will help make Loser Valley grades never be above a C at most.
2023-03-06 18:26:06 -05:00
Sally Coolatta
3d1070c2f2 Show ranking data on the screen 2023-03-06 18:25:16 -05:00
Sally Coolatta
f7851623ff Calculate a bot difficulty to reach
13 is very unlikely for Normal, likely impossible for Easy. (If we want a bonus game speeds, it should be explicitly defined)
2023-03-06 18:25:15 -05:00