298 Commits over 396 Days - 0.03cph!
Group cooldowns for shoot/secondary shoot mechanic
Added separate jump sound for double jump
Changed slide to be continuous
Add quick cooldown to Slide
Changed slide action to Duck
Removed ISingletonComponent from Shoot
Add SecondaryShoot component, Shotgun uses this. Not a fan of how it's written though
Adjusted player movement, fixed slide sound
Decreased MaxScore for now
Fixed colors not being set via TeamComponent
Basic scoring for TDM
Fixed LastDamage never being set
TDM: Show scores on HUD
Doh, fixed players not being moved to spawnpoints
Chatbox: Use Team color where applicable
Update player list to match style
Chat: Fixed messages without avatars getting squished
Fixed NRE due to chat team check
Moved Camera updates to FrameSimulate, removed unnecessary DevCamera code
Create Gamemode.HudPanel if we have one, start on TDM Hud
New chatbox style https://files.facepunch.com/devultj/1b1611b1/sbox-dev_5C841eKQ0v.mp4
Changed Health / Armor Tick to 1 second instead of half a second
SegmentBar: Individually paint segments based on how far past maximum our current value is https://files.facepunch.com/devultj/1b1611b1/sbox-dev_rQS3FJ3top.png
Slowly Tick Health & Armor down if it's above the maximum
SegmentBars have a "supercharged" state if CurrentValue exceeds MaxValue
Reduced main hud footprint, added dividers - work on matching concept https://files.facepunch.com/devultj/1b1611b1/sbox-dev_56mjVVik7e.jpg
Updated colors to match concept
Set weapon icons, show weapon icon in HUD
Fixed case where you could not damage yourself with Friendly Fire off
Define Base SegmentBar color, use that in Razor to calculate gradients instead of hardcoding colors https://files.facepunch.com/devultj/1b1611b1/sbox-dev_kVh739fF5x.png
There's probably a better way to do this..
Implement SegmentBar component
Example: `<SegmentBar CurrentValue=@Dash.DashCount MaxValue=@Dash.MaxDashes Segments=@Dash.MaxDashes />`
Set up SegmentBars for health, armor, dash count
Temporary display for teams on player list
Return no teams if we've not chosen a gamemdoe
Add support to control friendly fire per-gamemode
Gamemode can provide us with a list of teams. Use it in TeamSystem
Add standard TeamSystem methods, ability to get count of clients + lowest occupied team
Started work on Team Deathmatch
Reduce repetitive code, store current clothing entities and clear them out on setup
PlayerColor affects current clothing, and networks updates properly
When TeamComponent's team changes, set the player color if we've got a player to match the team.
AllowMovement ignores camera input, so players can still look around if movement is disabled.
Don't simulate controller mechanics if movement is disabled
Centered the chatbox for now
Add temporary gamemode info to the HUD https://files.facepunch.com/devultj/1b1411b1/sbox-dev_k5uR9xA9bd.jpg
Prepare TimeLeft / GameState labels for UI
Add wait when the game ends, we'll replace this with a map vote task when it exists.
Create TeamComponent, Player accessor
Hook Gamemode OnPlayerKilled & PostPlayerKilled up - set default life state to Respawning on death
Give gamemode spawnpoint decisions
Run gamemode buildinput so we can disallow movement at the gamemode level
Fixed MoveToSpawnpoint running twice, hook up PlayerLoadout so gamemodes can define custom loadouts
Hook up Gamemode.AllowDamage
Hook up OnClientJoined, OnClientDisconnected
Created Gamemode Entity, initialize gamemode if found / convar is set
Remove InteractionMechanic
Add shortcuts to go to specific weapons, (E = Lightning, R = Railgun, F = Rocket Launcher)
InputButton.Menu (Q) swaps between current weapon and previous weapon
Add support for scrolling to swap weapons, as well as InvPrev/InvNext (gamepad)
Set up tags for the outfit so it's grabbed by ragdoll code
Give the player the old Boomer outfit
Add FOV CameraModifier, used w/ DashMechanic