148 Commits over 61 Days - 0.10cph!
Replace player_clip with playerclip in Collision.config
Bullets should ignore "playerclip" instead of "player_clip"
Allow changing tracer particles in ShootWeaponComponent
Also means they'll get loaded earlier to avoid stutter
Interrupt sprint when trying to ADS
Only switch to picked up equipment that's in a lower slot
Like don't switch to a picked up pistol if you've got a rifle out
Show players without pawns as dead in UI
Include player teams in Scoreboard.BuildHash()
Include player teams in RoundStateDisplay.BuildHash()
Retakes: plant without a player
Fixes #180
Add TeamVoiceChatFilter to bomb defusal
Fix RandomLoadoutAllocator
Make half-buy rounds more common in retakes
Log PlayerState component ID instead of GameObject ID
So we can compare with PlayerPawn's PlayerState
Log players, pawns and connections at the end of each round
Don't reset armor / helmet if we were alive on respawn
Fix LogPlayers logging wrong pawn
Halve HE and flashbang fuse times
Don't include DamageTracker.Registry in snapshots
It can't be serialized
Fix GlobalComponents not being re-created if old inst is destroyed
Fixes #177
Add PlayerStateCleanupTime to bomb defusal
Allow people to reclaim their PlayerStates
Fix bomb defusal early victory
Reduce max rounds in bomb defusal to 24
Give each team different knives in retakes
Possible fix for C4 not always planting in retakes (#165)
Make buy zone rules host driven again
Hopefully this fixes not being able to buy in deathmatch sometimes
Fix not removing weapons when buying in deathmatch
Check for IsHost in host-only KillEvent handlers
Fix dropping equipment on death
Fix HealthComponent.OnKill hiding IRespawnable.OnKill
Add bool EquipmentDropper.LimitedDropOnDeath
Instead of checking for DefaultEquipment to not drop pistol
Use EquipmentDropper rules for manually dropping items
Tweak retakes round start grace period (#165)
No need to respawn in SwapTeams
Update facepunch.libevents
Fix players being assigned spawn points twice each respawn (#165)
Plant bomb at spawn point (#165)
Ground players on spawn (#165)
Live-update ShootWeaponDebugWidget
https://files.facepunch.com/ziks/2024-07-11/sbox-dev_5F50Yk2j93.mp4
Basic damage value readout in EquipmentResourceEditor
https://files.facepunch.com/ziks/2024-07-11/sbox-dev_ZNPL4KrPHP.png
Add some more [EquipmentResourceProperty]
Update facepunch.libevents
Add dev command to swap teams
Log active sound handle count every 5 seconds (#156)
SoundEmitter: stop sound on destroy (#156)
Molotov sounds in particular were persisting
Fix possible NRE in OnHostRespawn()
Damage modify event rework (#164)
* Every player's ArmorComponent was modifying every bit of damage taken
* ArmorComponent wasn't always before PlayerGlobals was modifying damage
* Split into ModifyDamageTakenEvent / ModifyDamageGivenEvent / ModifyDamageGlobalEvent
Fix damage reduction from armor / helmet
Simplify respawning RPCs
Looked like OnClientRespawn could get called on the wrong clients?
Fix default score format
Include all score properties in ScoreboardRow.BuildHash()
GivePlayerStateComponent
RetakesScoring
Allow dropping weapons in retakes
Instant defuse for retakes if safe
Don't occlude C4 beep
Fix retakes loadouts, and add a few more
Got rid of redundant / erroring sound action in c4_explosion
Fix NRE on C4 explosion death
Don't show team scores if there's no TeamScoring
Fix retakes round counter
Show round number / limit in scoreboard
Fix error when allocating weapons in retakes
ValidOrNullAttribute code golf
ValidOrNullAttribute
Random.FromListWeighted
RandomLoadoutAllocator
Player score history for round-based games
Team assigner auto balance modes
Retakes team balancing on round start
Use TagSet for RandomSpawnAssigner
Fix getting game mode description
AutoBombPlant component
Spawn point tags, stored by each Pawn
ActiveBombSiteSelector for retakes
First pass at Retakes
Fix defuse events in PlayerScore
Retakes fixes
Get rid of old team-specific loadout code
Retakes default loadouts
Retakes: bombsite B spawns