Commit Graph

921 Commits

Author SHA1 Message Date
Regalis
4589c2bcfb Syncing changes to ingame editable item properties (light colors etc) 2017-01-27 18:28:07 +02:00
Regalis
626e238994 Merge branch 'master' into new-netcode 2017-01-26 19:57:53 +02:00
Regalis
5afca48a82 Relinking dockingport hulls to gaps after flipping the sub 2017-01-26 19:57:21 +02:00
Regalis
fb1f90e226 Fixed docked subs being moved twice when syncing sub position 2017-01-26 19:04:26 +02:00
Regalis
15b3dd31a8 Merge branch 'master' into new-netcode 2017-01-25 20:30:26 +02:00
Regalis
282c2b75d4 Fixed docking ports disconnecting when a submarine is flipped 2017-01-25 20:30:08 +02:00
Regalis
e27fa1c7ee Readded team assignment logic 2017-01-15 20:39:06 +02:00
Regalis
b0231105a2 Reimplemented private chat messages 2017-01-15 17:49:31 +02:00
Regalis
8f50cca026 Syncing StatusEffects applied by meleeweapons or using an item on self 2017-01-15 14:49:15 +02:00
Regalis
f7ac98ab5f Broken items can be repaired, fixed clients never removing firesources (causing the lights to stay after the flames have been extinguished) 2017-01-14 20:30:46 +02:00
Regalis
bd7766d3e7 Server clears EntityEventManager before starting a new round, not just when ending it (fixes events breaking during the next round if an item created an event when unloading the previous sub) + some additional error checks 2017-01-14 20:26:41 +02:00
Regalis
6252db7928 - fixed server validating its own name instead of the name of a client who's logging in
- clients automatically reconnect to the server when the connection is lost and return back to server list if they fail to reconnect
- showing the error msg as a GUIMessageBox and returning to main menu if starting a server fails
2017-01-14 16:57:47 +02:00
Regalis
fdbdf9638f Fixed railgun aiming, fixed EntityEvent not being sent if a character is killed by something else than health dropping to zero 2017-01-14 14:45:19 +02:00
Regalis
9b03b2bcc1 Server ignores UPDATE_INGAME messages if the game isn't running, server doesn't set any of the clients' lastRecvIDs above the ID of the latest chatMsg/event/etc (clients can't have received something the server hasn't sent yet) 2017-01-13 18:07:00 +02:00
Regalis
fecb7bee9a Syncing attack input 2017-01-13 17:53:40 +02:00
Regalis
08053bec85 Clients can join the game mid-round 2017-01-12 20:42:15 +02:00
Regalis
81f3d24070 DockingPort syncing 2017-01-12 18:03:52 +02:00
Regalis
ed675dc75e Lobby update ID isn't included in ingame update messages, resetting lastRecvGeneralUpdate in InitClientSync 2017-01-11 23:37:30 +02:00
Regalis
037bd09c2c - clients ignore lobby updates if they already received a more up-to-date one
- server tells clients their ID in the first lobby update
- clients take control of a spawned character if their ID matches the ownerID of the character (-> respawning works now)
2017-01-11 21:31:19 +02:00
Regalis
dc3885a2da Server doesn't un-freezes characters that are stunned, unconscious or dead, or controlled by the host 2017-01-11 21:24:03 +02:00
Regalis
8a9b322b78 Clients can create firesources if server tells them to, extinguishing fixes 2017-01-11 18:03:01 +02:00
Regalis
b9006983e4 Item condition syncing 2017-01-11 18:01:07 +02:00
Regalis
3041138f03 Inventory.TryPutItem doesn't put an item in the inventory (or create a NetEntityEvent) if the item is already in it 2017-01-10 20:50:31 +02:00
Regalis
df59f0d089 Fixed speech bubbles, server sends the ID of a speaking character instead of the name 2017-01-10 18:40:12 +02:00
Regalis
81c3641d97 Optimized mouse position syncing from server to clients, removed a redundant WritePadBits from Character.ServerWrite 2017-01-10 00:10:11 +02:00
Regalis
72eb2aa769 Tiny optimization 2017-01-09 21:39:39 +02:00
juanjp600
b35b683cd8 Removed Select debug code 2017-01-09 15:09:26 -03:00
juanjp600
34c2ccf932 Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode 2017-01-09 15:06:32 -03:00
juanjp600
cfeb720836 Fixed IsKeyHit (ladder climbing being inconsistent) + optimized interaction syncing
Instead of sending over mouse position as two floats (8 bytes total), the game will send the aim angle represented as a short (0 to 65535, so it's fairly precise) and the selected item ID (up to 4 bytes total, 2 bytes if it's only one of the inputs).

The problem with IsKeyHit is that it checked when the player started a key press, when it should've been checking for the key being released.
2017-01-09 15:06:19 -03:00
Regalis
fb0026b4be Removed duplicate selection logic from GUIListBox 2017-01-09 18:25:26 +02:00
Regalis
ff96f152ce Resetting EntityEvent & EntitySpawner IDs when starting a new round, LOS effect is enabled when a client takes control of a character 2017-01-09 18:22:37 +02:00
juanjp600
a75ef8ee51 Optimized MaxVal
0x200 represents a bit that isn't used for any flags, 0x1FF represents all usable bits
2017-01-08 12:45:44 -03:00
juanjp600
073def094f Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode
# Conflicts:
#	Subsurface/Source/Characters/Character.cs
2017-01-08 12:30:56 -03:00
juanjp600
4b868fc09d Constant error correction + fixed standing catchup
With constant correction, there's little chance for a large difference to build up, so it becomes practically unnoticeable.
Also added a flag which stops the character from updating client-side until the server sends the spawning position.
2017-01-08 12:20:36 -03:00
Regalis
05cb5989dc Chat range also affects the server host if they're controlling a character, fixed missing sender names in the server lobby 2017-01-07 20:24:01 +02:00
Regalis
6747faae3d Clients can't make their character immortal by not sending inputs, clients don't implode their characters unless the server says so 2017-01-07 19:25:22 +02:00
Regalis
402c745fc3 Reimplemented chat range & radio messages. Each client now has their own chatMsgQueue, so all chat messages don't have to be sent to all clients. 2017-01-07 19:22:48 +02:00
Regalis
44cbd0d9bf Fixed AI characters constantly flipping over the X-axis when inside, fixed clients not receiving a msg about characters spawned by RespawnManager 2017-01-07 16:51:51 +02:00
Regalis
6364915353 Fixed incorrect msg lengths in CHARACTER_POSITION messages (+ calculating the length automatically) 2017-01-07 16:11:50 +02:00
Regalis
629df6aab3 HuskInfection unsubscribes from the OnDeath event when the infection is cured (-> cured characters don't turn into husks when they die) 2017-01-07 14:48:09 +02:00
Regalis
a5f0d1d7da Fixed editable item properties not being saved if the property is also marked with a non-saveable HasDefaultValue attribute 2017-01-07 14:37:03 +02:00
juanjp600
7dc474dab4 Actually round movement.X down to zero
whoops
2017-01-06 16:05:23 -03:00
juanjp600
f453980ace Replaced isStillCountdown with a speed check for server catch-up 2017-01-06 14:09:06 -03:00
Regalis
5d83a33876 Notifying clients when the round ends 2017-01-06 19:06:11 +02:00
Regalis
65d64af041 Server reads CHARACTER_INPUT messages even if the client isn't allowed to move (but ignores the inputs), otherwise it would fail to read the rest of the packet 2017-01-06 18:19:51 +02:00
Regalis
2a7ef5dd84 Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode 2017-01-06 17:43:40 +02:00
Regalis
80e743916a Character death syncing, characters don't reselect items when they receive a network msg about an item they have already selected 2017-01-06 17:43:30 +02:00
juanjp600
5b4d6120ff Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode 2017-01-05 22:37:45 -03:00
juanjp600
0569a665f4 Fixed a server-side off-by-one error in the player input IDs
I'm guessing this one comes from the player's position not being updated immediately after the input is processed, so that's where most of the remaining error came from.
Also added some rounding to the horizontal velocity when approaching 0, and changed something that depended on the head limb to use the collider instead, which should hopefully further reduce the chance of syncing errors.
2017-01-05 22:37:14 -03:00
Regalis
beac45458e Transforming received in-sub mouse coordinates to outside coordinates if the character is outside and vice versa, HiddenSubPosition fix (can't use Level.Loaded to find the top of the level because the level isn't loaded yet) 2017-01-05 19:08:54 +02:00