Looks like a lot more than just netcode is getting rewritten. Removing coroutines because there are better ways of handling asynchronous tasks, removing filestream because that's to be reimplemented later
These functions needed to be replaced because they rely heavily on reliability.
Instead, new functions called (Write/Read)Data(Server/Client) will be added.
Separating client and server code into completely separate functions will help ensure that proper security checks are performed.
- anti-husk drug
- resized medicine/chemical physics bodies to match the sprites
- damage done to items is determined by the structureDamage value of an attack
I'll be replacing reliability with redundancy; basically, instead of requiring acks for reliable packets, both the client and server will stack and send several previous states redundantly. This has several benefits, such as allowing the frequency at which packets are sent to be greatly reduced (at the cost of larger packets, but that's a non-issue really, the overhead of many tiny packets is probably worse), and it makes implementing the authoritative server a lot easier.
The reliable sender will probably be needed later to make clients able to download subs again, but for now it's not important.
- medics always have a high enough medical skill to fabricate any drug
- respawned characters get the same ID card tags they would've gotten if they had spawned inside the main sub
- highlighted characters glow in the dark
- clients don't send server passwords as plaintext: the server sends a nonce which the client encrypt using the password as the key
- IPs are visible in netstats
- amount of client jobpreferences limited to 3 at the servers side
- sanitizing client names
- AICharacter, hull, structure and submarine updates from clients are ignored
- character updates from anyone else than the client controlling the character are ignored
- players can't pick/drop items from anyone else's inventory (unless the target is unconscious/stunned/cuffed)
- server has authority over reactor temperature
- batteries are restored to full capacity and all items repaired when resetting the respawn shuttle
- some respawnmanager refactoring (characters/items arent created in WriteNetworkEvent anymore)
- syncing respawnmanager state with clients who join mid-round
- LOS is turned back on when respawning
- items inside the respawn shuttle
- using the teleport method when moving a character into or out from a sub
- removing dropped items from the respawn shuttle when respawning
- after receiving a StartGame message, clients will wait until the game is loaded before reading new messages from the server
- the Item(prefab, position, submarine) constructor uses the position as the center of the item, not as top-left corner
- syncing items spawned/removed mid-round
- syncing characters spawned mid-round (through the console or by respawning)
- making sure that item IDs of the spawned characters match
- syncing wall damage
- fixed lights not being removed if the same explosion is triggered again before the previous one is finished
- fixed electrical shocks from junction boxes stunning nearby players (and not just the player using the jb)
- showing restart timer as mins + secs
- more server settings