- Carry back item capsule, painted with the skincolor of
the player who was stolen from
- Give player item by orbiting and shrinking into the
player like an emerald
- Lock player item box while animation plays, draw an
empty item box on the HUD
- At end of animation, burst item capsule to place item
in player's hotbar
- Hyudoros can no longer stack items in the hotbar --
consistent with item capsules
- (If you have a Super Ring in your hotbar and Hyudoro
is holding a Super Ring too, it will wait for you to
use yours)
---
MT_ITEMCAPSULE changes:
- extravalue2 != 0: use this color on caps
- MF2_STRONGBOX: award items like the roulette
- Super Ring is placed in the hotbar instead of awarding
rings directly
- SPB is placed in the hotbar instead of throwing it
immediately
- DMG_INSTAKILL: don't respawn
- Up to 255
- Each Spray Can placed does, in order, the postion in the list from the current head
- So if there were 3 cans, and your can list was Red Yellow Blue Green, then Red, Yellow, and Blue would be in the level.
- Grabbing the nth colour in the list will swap that colour to the current head of the list
- However, the game will print to the console if you do this outside of GS_TUTORIAL.
Replaced all mentions of starpostnum and Starpost w/ cheatchecknum and CheatCheck (so Ivo can stop asking why we still need it when its going to save our asses on release patches)
- G_AddPlayer now contains CL_ClearPlayer, G_DestroyParty, and playeringame set
- Instead of a nasty, complicated block in P_SpawnPlayer, externalise it into G_SpectatePlayerOnJoin
- All mid-game human player-to-spectator transitions are handled by P_SetPlayerSpectator, instead of lots of `spectator = true` and associated boilerplate
- Simplifies Got_Teamchange MASSIVELY
- Of course this is helped by also stripping back team change
- This is called by P_KillPlayer, too
- P_KillPlayer no longer eats DMG_SPECTATOR when lightsnaking or exiting
- G_GametypeHasSpectators condition tidied
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.
I would not be so heavy handed against preventing players from grabbing Spray Cans on custom levels, but designing a system that permits unloaded headers to retain their cans is frankly overkill. There are plenty of other ways the same kind of level-scouring play can be experienced on custom levels.
Instead of being specific to each level, Spray Cans are stored in a list on gamedata that will be stepped along each Spray Can you collect.
They are only assigned to a level on collection - which prevents you from farming the same easy location for every colour in the game.
In addition, this new system is one step short of dehardcoding them entirely. Now only Spray Cans specifically asked for by the existence of UC_SPRAYCAN will be put in the list, and if a secondary parameter is either "Yes" or "True", it will be put at the head of the list. This could technically support custom skincolours one day, but the author of this commit doesn't care to do the last bit of work necessary to make it happen.
There's a slight extra overhead in that skincolor_t now also holds a `cache_spraycan` (renamed from `cachedcan`, which maps had previously)
Currently, there's no safeguard against grabbing it on a custom course - you'll lose the Spray Can as soon as you load a fresh game again - but I consider that easy to fix (tomorrow) and necessary before merger, because the author of this commit does NOT want complaints on release because we forgot to protect users who keep on losing their skincolors.
- 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
- Replaces a few D00DKart objects because the doomednum specifically replaced one of these
- Reports on load if the map has too many, or if one's assigned but the object doesn't exist
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.
- Battle emeralds orbit into the player's body upon
collection
- Emerald shrinks down to a speck
- Orbiting speed increases over time
- Player's emerald flags altered at the end of the
animation
There are two differences between Whumble and Stumble.
- Stumble cannot be combo'd on upwards momentum, while whumble can. (Resolves#522)
- Whumble takes bumpers, while stumble does not.
- Removes the MT_INSTAWHIP hack.