148 Commits over 61 Days - 0.10cph!
Add TeamAssigner.TargetRatio
Make TeamSpawnAssigner.SpawnTags a TagSet
Add RespawnPlayers.ForceNew
Retakes: bombsite A spawns
Add dev commands to copy player pos / angle as a spawn point
https://files.facepunch.com/ziks/2024-07-03/sbox-dev_7p70uUaijR.mp4
Add some logging to help investigate #142
Allow late joiners in casual defuse
Don't auto-respawn spectators
Make sure active gamemode is networked
NetworkSpawn cash bag after adding CashBag component
Call NetworkSpawn in DroppedEquipment.Create
Fix cash bag not spawning
Network CashGrab game objects
[HostSync] CashPoint.State
Fix some Spottable properties
Fix buy zone rules for non-host players
Make sure game mode parent object is networked
Maybe this doesn't matter?
WaitForPlayers logic change
Resets timer while < MinPlayerCount are connected
Skips if >= SkipPlayerCount are connected
Re-implement kill / objective rewards
Fix player joined chat entry being doubled
WIP game loop state machine refactor
WIP everything's compiling again
Fix GameMode.Get<T>() returning cached disabled components
Hacky fix for game mode display info using prefab vars
Reset player balance at start of half
Fix game overview not showing
Fix winning round display in game overview
Re-implement team income
Round end status text
Clear equipment on start of half
Another GameOverview fix
Converted weapon deploy / holster events (#104)
Convert player events (#104)
Convert defuse mode events (#104)
IBombPlantedListener -> BombPlantedEvent (#104)
Convert game loop events (#104)
Use libevents for damage / kill events
Merge pull request #96 from Facepunch/libevents2
Refactor damage events
* Use facepunch.libevents for damage-related events
* Broadcast damage before broadcasting kill
* Allow modification of damage in event handlers
Show winning team at end of TDM
Desaturate while spawn protected
TDM spawn point selection rewrite
Put deathmatch spawns under a parent object
Tweak deathmatch spawns, add a bunch more
Fix status text / timer networking for late joiners
Fixes #59
Fix NRE in PlayerInventory.Balance
Make TDM end after 1 round
RandomSpawnAssigner: only care about non-friendly player aim dir
UnlimitedMoney setting in GameMode
Only remove helmet if not god mode, and on host
More spawn protection tweaks
Only reduce armor if not god mode
Spawn protection outline tweaks
Spawn protection for deathmatch modes
Gamemode selection when hosting
Maps can include multiple GameMode obejcts, lobby creation page lists them
Started on deathmatch game mode
WIP TDM
Deathmatch spawn points
Duration option in ShowToast
TDM game rules
Update bomb_defusal components
Basic weapon state persisting system for dropped weapons
Persist AmmoComponent for dropped weapons
Fixes #39
Get rid of plant cancel reset delay
It was just confusing
Weapons can be limited to one team
Don't let CTs pick up C4
IUse.OnUse can return void
Make sure held C4 gets destroyed between rounds
Can buy anywhere while waiting for players
Use WeaponSlot for UI / change weapon inputs
Primary is always 1, secondary always 2, etc
Expose some more stuff for UI
Some helpers to get planting / defusing state for UI
C4 can be planted with Use too
PlayerController IUse refactor
Defusal scenario objective bonus income
Fix loss streak income
Kill rewards, friendly fire penalty
Half time team swap
Remove defuse kit on inventory clear
PlayerController.Teleport(Transform), redo spawn point logic
NetDictionary.GetValueOrDefault() extension
Loss streak income
Some default status text for game phases
Disable BuyAnywhere in bomb_defusal
JsonIgnore some stuff in TeamScoring
Keep track of round win history