7,937 Commits over 3,745 Days - 0.09cph!
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
Gradually connecting everything together again
Redo resource cleanup on world removal
Facepunch/sbox-issues#5834
Allow dragging component properties from the inspector again
Keep Time.Now in sync while in editor play mode
Facepunch/sbox-issues#5826
Fix depth test in ObjectHighlight.shader
Was broken by reverse-z, fixes Facepunch/sbox-issues#5787
Give each team different knives in retakes
Possible fix for C4 not always planting in retakes (#165)
Fix NREs when using CameraComponent before it OnAwake()s
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
No need for ThreadStatic here
Whitelist AggregateException
Handle exceptions when dispatching events
Allow instant state transitions
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
We can network component references directly now
WIP generate delegates that don't use dictionaries
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
WIP
Log active sound handle count every 5 seconds (#156)
SoundEmitter: stop sound on destroy (#156)
Molotov sounds in particular were persisting
Only call ServiceWorldRequests if map was loaded
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?
Translate item titles / descriptions
Some more case insensitivity
Add test asserting no ActionGraphs have errors in a given scene
Serialize prefab vars with expected type
Add Json.ToNode overload with expected type
* We're deserializing with an expected type already
* We can start phasing out JsonConverterFactorys, just use JsonConverter<T>s
* Can actually use [JsonDerivedType] etc
Let anyone serialize / deserialize System.Type
* We already had this in Facepunch.ActionGraphs, add it to Sandox.Json
* Looks up types through TypeLibrary
* Works with array types / generic types / nested types
* Fixes Facepunch/sbox-issues#5762
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
Add ListControlWidget handle context menu with duplicate option
Possible fix for the "workshop bug"
Prefer OrdinalIgnoreCase over InvariantCultureIgnoreCase
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