76 Commits over 153 Days - 0.02cph!
Update sbproj with DedicatedServerStartupScene
Fix Molotov not spawning fire nodes. When a node is extinguished, give some time for its particle emitters to die nicely. Add new fire effects stolen and tweaked from Walker.
Set DisconnectCleanupTime to 120
Fixed kill command not working for non-host players - route through host
It's possible that PlayerState.Local isn't actually set yet here - so check IsValid
Just use identity rot instead of trying to face hit dir
Much better spread + smoke extinguishes fire
Fire nodes... kind of better placeholder node effect
Some temp sounds - make not buyable again
Initial Molotov Grenade prefab stubs
Molotov references in prefabs + MolotovGrenade component stub with explode on collision
Setup equipment
Explode on impact properly. Fix a NRE in Crosshair
AoE (shit rn) only explode if we land on a relatively flat surface, otherwise bounce
Add AreaDamage component. Add Burn type damage. Take damage while in molotov AoE radius
Disable buy for Molotov Cocktail for now, I wanna add fire spread plus the particle effect is shit right now
Check if sound handle is valid
Scene might be null - store pawn in var
Body might be null, component list might be null
Placeholder sounds for smokes - added ability for SoundEmitter to specify volume over time and also Destroy On Finish (def: true)
Added initial particle effect for simple smokes (CSGO style). Add option for fuse delay to enable a fuse effect prefab after some delay, we can add sounds here. Can also add a sound emitter for smoke release to smoke effect prefab
Move PlayerColor to PlayerState (Closes Facepunch/sbox-hc1#148)
Use Network.Active check to determine if we should network spawn or assign ownership
Add hc1_hide_flashbang_overlay
If value is already IPingReceiver we don't need to search the hierarchy
It's possible for Components to be null if a Component is no longer valid (GameObject = null)
Only the host should handle trigger enter logic in Extractionpoint
Pass in IPingReceiver id if exists into Ping RPC - check if passed target value is valid in setter
No need to have multiple screen panels here
Initial flashbang prefabs
Flashbang Effect component stub
Basic overlay + bloom effect
Extra effects
Dsp (use weird.4 for now?)
Only apply flashbang effects if we see the flashbang
Sound effect
Explode sound
Fix resume of flashbang effect
Add freeze frame overlay to flashbang
Capsule flashbang collider
Merge pull request #128 from Facepunch/flashbang
Flashbang
Added screen shake effect when near an explosion from a HE grenade with same falloff applied to damage for intensity
Fix merge conflict in player prefab
Unsubscribe from OnTeamChanged in PlayerId.OnDestroy
Add a priority of 10 to ChangeAttribute. Change logic will be done before Sync Var logic, ensures we can get the old value properly. This should fix recursion in change callback.
Wrap SendSpawnConfirmation call in !IsProxy check so we every player doesn't confirm it
In OnIsDeployedPropertyChanged don't update deploy state if OnStart hasn't been called yet (be nice to have a property on Component to know if this is the case, maybe we can expose _startCalled)
Don't need to clear interpolation when cloning these prefabs in fixed update now
Fix NRE when melee attacking someone due to hitbox being null
Some UI NRE fixes (in cases when a player just joined and UI tries to use GameUtils.LocalPlayer before it exists)
Better weapon Deploy/Holster logic + use IDeploymentListener to set current weapon avoid Components.GetAll being used A LOT
Some fixes + swap all instances of using Query=true with a change callback attribute
If grenade is holstered and state is not thrown, set state to idle
Throw grenades owned by thrower - do damage on host
Thrown grenades don't collide with players for now - they can be pushed through the ground if you stand on them
If guid is empty for connection don't print left the game log (make a note to investigate why)
Add drop on disconnect for C4. Add WeaponData.DropOnDisconnect set it to true for C4
Don't pickup weapons if we're not alive yet
Add TimeSinceLastRespawn for player and use that as well to determine if weapon can be auto picked up
Switch weapons with mouse wheel
Fix NRE in RadioSounds if there's no sounds
Fix team radio sound chat message being sent to people on other team
Add deployment listener for weapon - recoil func can use that to cancel reloading when holstered. Cache Weapon for funcs in awake.
Use id again here makes no difference - remote player just cant seem to find door sounds either way
It could be that the resource or SoundHandle isn't valid here (version mismatch?)
Don't play deploy effects if we're creating the view model because we're spectating
Changes to how initial state is handled on player spawn (better this way for now to avoid x2 RPCs after initial player network spawn). Fix bots floating in the air.
If weapon becomes undeployed while reloading, cancel reloading
We are spectating when we die
Fix missing scss error - some cleanup... make IsSpecating a property on PlayerController instead of checking for life state dead, set it to false when respawning. I think this'll fix stuck in spectating mode (hunch). Right now Sync var state is usually sent after RPCs, I have a PR to queue RPCs to be sent at end of network tick so state should always be up to date when RPCs are received but its WIP
Start hooking up smoke grenade (just need effect). Implement IsPurchasable on WeaponData. Smoke grenade is not purchasable right now
Network TimeSinceDefuseStart - fixes progress bar on defusing