13,173 Commits over 2,830 Days - 0.19cph!
Main change here is actually bumping the project .NET version so that I could use ObservableCollection.
My static character lists didn't work on listen servers. :( Changed to a CharacterManager that can have separate Client and Server versions.
Allow showing server console in editor again, making it an option in WiseGuysTools. Removed the no-longer-used skipInitialSpawnScreen toggle.
Game mode game round handling
Round start countdown with UI
A bunch of work getting the right ordering and counts on triggers etc
Minor fixes for load order
More general game mode stuff
Bah, lots of refactoring, simplifying, making things make sense
Checking character changes instead of user changes
Game end triggers (see GameModeTriggerSettings.cs)
Game mode system refactor. Working a lot better
Going to do game modes a bit differently I think, as the sort of building block system I have now is getting a bit unwieldy. Committing some more work I have so far. Also merge from Main.
Working on porting ZGameMode to the new GameMode system, and adding features to the system as it progresses.
- Moved network physics checks (Bill F's ones for listen servers) out of NetworkEntity and into GamePhysics, since all they need as a reference is any GameObject, and this allows things without a NetworkEntity to use them.
- Fixed explosion damage not working correctly on listen servers.
Semi-porting the ZGameMode to the new system
GameMode custom prefabs no longer HAVE to be networked. Use them just to store data on the server if you like
GameModes can now create a custom NetworkEntity and destroy it on game end, allowing for fully custom per-game-mode code, or sharing data from server to clients
Better(?) way to access current active game mode on server or client
Merge in Bill Ford's changes from Main
Game modes now have custom handler for spawn/respawn
Mostly just cleaned up the asset creation menu
Improved WiseGuysTools mode selection interface
Game mode definitions can now hold NPC spawn data. Could do with a nicer Inspector interface though.
Character type/role refactor with a view to supporting game modes. Character types can now be defined as individual ScriptableObjects (see the new Resources/character/character.types folder), with no limit on the number of configurations. These will then be assigned to Game Mode objects as NPC types to spawn, or player spawn types. Starting inventory can be customised as well.
Merge in all Bill Ford's fixes
Really basic framework for game modes stored in ScriptableObjects. Game mode is selected, loaded, and passed to connecting clients (via name). Bootstrap stores the data on all potential game modes.
Fallbacks for physics overrides when not on a listen server
Fixed proxy character vis check rate
NetworkLevel simplification
NetworkLevel work. And NPC walk zones work again.
Making sure we always ReadBytes on Deserialize and messages, since not doing so can cause issues with getting the shared reader out of sync. Not sure if messages really need it.
Spawn plane working! Spent way too long getting this right.
Working on PUBG spawning vehicle but currently has issue where I can't use [Facepunch.BNet.OnNetworkClientStarted(0)] on the vehicle base class because it has a generic parameter ("InvalidOperationException: Late bound operations cannot be performed on types or methods for which ContainsGenericParameters is true."). Committing work so far before I work on a fix.
ZGameMode now mostly working. The plane doesn't move.