8,451 Commits over 2,131 Days - 0.17cph!
Remove zombie looper from playable chars
View punch curves didn't work too well. The curve position decay vs. the time between weapon shots caused issues in particular (e.g. In an extreme example, if minimum time between shots was > decay time, the curve would never progress). Changed to a simple recoil force value, and made the eye punch target pos increment instead, so multiple shots in quick succession can still boost total recoil.
Zombie mode back to normal
Another zombie mode mod. Testing to work out a networking issue.
TEMP zombie mode change for instant start
Weapon inaccuracy + recoil + view punch work.
Switched my singleton classes back to my old system of sub-methods - the WiseGuys-style virtual method override system was too risky in terms of requiring the user to know they had to call base.Method.
Building manager now caches at game load rather than level load. Needs testing.
Physics mats for my test map, so I can test stuff with decals
Not sure why inaccuracy delta would use mag size, so reverting al ine to Bill F's original version.
Going back though the repo, the later version of view punch never quite worked, but it looks like this is how it was MEANT to work.
Weapon view punch is back. Not really doing much though, need to tweak it.
Get rid of the loading screen slide animation
Never spectate disconnected players
Might have fixed the spectating bugs. There was an issue where the spectator entity didn't get destroyed on disconnect. The player would spawn a new character in a new round, but still have their spectator entity as well, which would grab the camera.
Needed some IsUnityNull() checks to replace simple null checks in interfaces that could be MonoBehaviours
Fix issues that occurred if a character was synced to a client when already dead, and the NetworkEntity was destroyed before init completed. Happened fairly reproducibly on game modes with lots of characters dying frequently, like zombie mode (with zombies dying).
Fixed bugs on clients for players dying while in a vehicle
Change "didn't expect a Deserialize after Init" from error to warning
Bots are a bit more likely to jump off plane
Did some dumb things, fixing them up to make sense here. Also discovered why King Of The Hill UI scores broke in the first place - it was a bug with empty strings in the networking system. Tried to do a proper fix, but ended with a workaround fix.
UI work separating game mode client UI from server triggers. Moved game mode stuff to its own namespace.
Wrote a possibly stupid event class. Will think about this better on Monday.
Gang warfare test mode edit - Leave gang on death. Plus NetworkGameMode method work.
Fixed gang leader serialization. With any luck, gang sync is now good.
Fixed another gang member bug. And there's one more to come.
FINALLY got gang members synchronising properly. Added gang member NetworkUsers as referenced entities for the gangs. On top of that, we needed to delay the member stuff that was in Deserialize until OnPostDeserialize because:
- User entities need to be deserialized and ready so we can use FindUser to find them by ID.
- Gangs set their members as Referenced entities so that they're sent along with the gang, making sure they're available.
- So everything gets deserialized, but the base thing (gang) gets deserialized first, so the members still aren't ready.
- OnPostDeserialize isn't called until after ALL referenced entities are deserialized, so it now works.
Got rid of the NetworkGameMode singleton option. Better to integrate it with NetworkPeer. But I don't like how there's a short time where NetworkPeer exists and NetworkGameMode isn't assigned yet - need to think about options there.
Been trying some more gang stuff
Gang member structure edit