Commit graph

134 commits

Author SHA1 Message Date
James R
db0175a94d Battle: add barriertime cheat, change Overtime Barrier shrink speed for testing 2024-01-06 01:41:36 -08:00
James R
19d9d1e318 Battle: use Easing_OutSine to shrink Overtime Barrier
Modifies netsave.
2024-01-05 18:05:41 -08:00
James R
a759626335 Battle: flash emeralds on screen when someone wins by collecting all 7
- Modifies netsave
2024-01-05 15:56:23 -08:00
James R
6431ef8250 Battle: screen shake when Barrier arms and once it reaches smallest radius
- Plays sound effect when Barrier reaches minimum size.
2024-01-05 15:56:23 -08:00
James R
c9398e21be Battle: cecho "HURRY UP!!" when Barrier appears 2024-01-05 15:56:23 -08:00
James R
c192e57426 Battle: Overtime music
- Fade out level music for 1.5 seconds when "Hurry up!"
  plays.
- Play SHWDWN when level music finishes fading out.
- Switch to SHWDN2 when there are 2 players left and the
  Overtime Barrier has reached its smallest size.
  - Plays a loud noise to mask the transition.
2024-01-05 15:56:23 -08:00
James R
02bacc9a6f Battle UFOs, Checkpoints: use srb2::MobjList instead of standard containers
- Net synced; new mechanism in p_link.cpp to automatically
  manage mobj pointers at the global scope
2023-12-03 10:44:11 -08:00
toaster
0762b93ef2 Tutorial skipping challenge - first pass
- Go to a MainCfg-specified map on its guessed gametype
    - `TutorialChallengeMap = RR_ZonedCity`
- Some unique settings
    - K_CanChangeRules() == false
    - If GTR_CIRCUIT, make it Hard Speed
    - If GTR_BUMPERS, die in one hit
    - If GTR_BOTS, make them all difficulty 13 of the default bot skin
    - No Medals or Spray Cans during the Tutorial Challenge
- Complete the stage in 1st place or don't bother at all
- Has the "Give up" menu option available, but no "Try Again"
- Condition for successfully completing the Tutorial Skip
    - `Condition1 = TutorialSkip`

Related bugfixes:
- Correctly wipe skipstats when returning to the Title/menus
- Typing of `ultimatemode` (hey this isn't accessible by anything right now I wonder)
2023-11-16 21:44:52 +00:00
toaster
4c5005d46f K_StartingBumperCount: Versus contexts also have a GP difficulty-locked quantity 2023-10-29 12:42:30 +00:00
AJ Martinez
dbe25d8be4 Fix Prisons difficulty to respond to GP settings 2023-10-23 19:55:54 -07:00
AJ Martinez
5cdedd53ba Prisons: respond to game difficulty 2023-10-22 17:16:04 -07:00
James R.
bcd4963f2e Always set starting bumpers in P_SpawnPlayer 2023-10-03 21:28:33 -07:00
James R
71f9b79e71 Prisons: fix exit conditions around spectating
Fixes player death not ending a Prisons round, bugged
debug feature.

Now, do it properly. Don't end the round if the last
player spectates.

This is more than a debug feature; in Free Play, it lets
the player spectate and fly around if they want to, and
even come back in, all without restarting the level.
2023-08-26 12:35:16 +01:00
Sally Coolatta
f02e6dbe3c Final thing args code cleanup
- Fix the last few bugs I could find with thing args
- Move version update code
- Rename internal variables to `thing_[string]args` to make older code merge issues more obvious
2023-08-22 02:14:09 -04:00
Oni
07aabdfdb3 Merge branch 'battle-emerald-collect' into 'master'
Emerald collection polish, animation for Battle and tweak to Sealed Star

See merge request KartKrew/Kart!1408
2023-08-20 06:10:35 +00:00
James R
01e2a26689 DEVELOP: let us spectate or pause the game at all times
TODO: This should be available as a debugging option at
release, since it would be useful for addon authors.
I don't want to make more cvars, those are getting
cluttered and should maybe be coalesced into a single
debugging option.
2023-08-19 05:01:40 -07:00
James R
5cc4b1ebad K_DropEmeraldsFromPlayer: fix after emerald orbiting changes
I don't see what it was using the target for before so I'm
just removing that.
2023-08-19 04:03:32 -07:00
James R
1c2a2155c0 Deduplicate a bunch of emerald related code
- Add K_BattleOvertimeKiller
  - Kills an object if it is outside of the Overtime
    Barrier in Battle

- Add Obj_SpawnEmeraldSparks
  - Use this function for MT_EMERALD, MT_MONITOR and
    MT_SPECIAL_UFO

- Move thinking code for MT_EMERALD and MT_MONITOR to
  objects/monitor.c and objects/emerald.c
2023-08-12 19:34:26 -07:00
Oni
afc474461f Merge branch 'battle-recommendations' into 'master'
Battle Recommendations

Closes #569

See merge request KartKrew/Kart!1318
2023-07-01 20:19:18 +00:00
James R
eb41362195 K_RunPaperItemSpawners: always give monitors 3 item types 2023-06-30 19:58:02 -07:00
James R
313d2f8fd2 During Overtime: point Servant Hand to Battle Kiosk, stop pointing to UFOs 2023-06-30 19:58:02 -07:00
James R
506e0c58c8 Always shrink Overtime Barrier in 30 seconds 2023-06-30 19:58:02 -07:00
James R
8ef03f29e5 K_SpawnOvertimeLaser: only move laser height with player if player goes above the top of the lasers 2023-06-30 19:58:02 -07:00
James R
d4a0cdd3c0 Sphere Box: use extravalue2 for sphere count
extravalue1 is already used by timer
2023-06-30 17:07:25 -07:00
Oni
da2e745bf7 Merge branch 'splitscreen-timer' into 'master'
Splitscreen level timer HUD

See merge request KartKrew/Kart!1309
2023-06-30 06:08:52 +00:00
James R
d8afc7597d Add K_FlingPaperItem, split off random thrust functionality
Battle UFO drops do not fling.
2023-06-29 22:22:00 -07:00
James R
5546f7e7a7 Battle: spawn sphere boxes even less frequently, 2x -> 16x 2023-06-29 21:01:05 -07:00
James R
9f3bee528a Battle: spawn 3 monitors at most 2023-06-29 21:01:03 -07:00
James R
f5d68783fc Battle UFO spawning behavior
- MT_BATTLEUFO_SPAWNER args[0] is the ID
- Spawn a random UFO from the list spawner at the start of
  Battle
- UFO spawns 200 units above the spawner
- After destroyig a UFO, wait 25 seconds before spawning
  the next UFO (next ID in the list)
2023-06-29 19:49:35 -07:00
James R
2ce05f018e Add g_battleufo global, add to netsave 2023-06-29 19:49:18 -07:00
AJ Martinez
20f57d7efa Don't drop emeralds unless it's a new hit 2023-05-25 22:49:14 -07:00
AJ Martinez
cac02bb01a Emerald fixups 2023-05-19 22:51:06 -07:00
toaster
12ecb1f7a4 P_DoPlayerExit changes
- Add flag application in function signature
    - Consistent gating of extra PF_NOCONTEST application behind not already exiting
        - This should fix dying after winning in K_Cooperative gametypes breaking things
- P_DoAllPlayersExit
    - Consistent condition of playeringame, spectator, exiting, etc checks
    - Also could force-give a life (for Battle Prisons)
2023-05-02 18:16:26 +01:00
James R
06f58486a5 Merge branch 'emerald-timer' into 'master'
Add fuse to Emeralds in Battle

Closes #126

See merge request KartKrew/Kart!1091
2023-03-27 12:12:17 +00:00
James R
28c9c3cc7d Tie Battle fuse for item drops and Emeralds to GTR_CLOSERPLAYERS instead of GTR_BUMPERS 2023-03-26 07:01:19 -07:00
James R
04bc0b6b9d Add fuse to Emeralds in Battle, same as dropped items 2023-03-23 19:39:28 -07:00
James R
5cce791c80 Add battletest cvar, force Battle mode instead of Prisons in FREE PLAY 2023-03-23 19:31:23 -07: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
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
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
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
James R
5cebe7ab35 Battle: count emeralds inside of monitors during Overtime too
Don't spawn extra emeralds during Overtime since some
monitors could survive.
2023-03-08 19:01:03 -08:00
James R
8ce90d7737 Battle: fix emerald win condition
- winning player ALSO exits
- winner gets 100 points
2023-03-08 19:01:02 -08:00
James R
85a101cbd7 Replace battlecapsules || bossinfo.valid checks with K_Cooperative 2023-03-08 19:01:02 -08:00
James R
f69d70043c Keep player alive at zero bumpers
Player have one more hit point than number of bumpers.
Break the Capsules gives zero bumpers.
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
aa927a5b00 Merge branch 'overtime-spectator' 2023-03-07 01:45:16 -08:00
James R
540bd6e18d Merge branch 'improve-battle-tracking' into 'master'
HUD TARGET for Battle Kiosk, Monitors and Emeralds; remove WANTED over players' heads

See merge request KartKrew/Kart!1016
2023-03-07 09:44:07 +00:00
Oni
cdc56ab2cc Merge branch 'podium' into 'master'
Podium

See merge request KartKrew/Kart!1014
2023-03-07 05:58:20 +00:00
James R
d56be63249 Battle: eliminate players killed by the Overtime Barrier
- Players killed this way become invisible and unable to
  move.
- Ends the match when one player is remaining.
2023-03-06 18:52:59 -08:00