Regalis
511f24cc47
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GameMain.cs
Subsurface/Source/Networking/ChatMessage.cs
Subsurface/Source/Networking/NetworkMember.cs
Subsurface/Source/Screens/NetLobbyScreen.cs
2017-05-01 19:25:07 +03:00
Regalis
f92c2df9f7
TextBoxes align text to the right and hide any overflowing text at the left if the width of the box is exceeded
2017-04-30 18:14:25 +03:00
Regalis
eddc33dc89
Smoothly scrolling listboxes, items in the boxes can be partially visible
2017-04-30 17:57:01 +03:00
Regalis
89941229f8
A reference to the character who triggered a signal is passed to all the recipients of the signal. Allows more accurate server logging: using doors, docking ports or turrets is now properly logged.
2017-04-28 18:10:47 +03:00
Regalis
64c109f13b
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/Characters/AI/EnemyAIController.cs
Subsurface/Source/DebugConsole.cs
Subsurface/Source/Items/Components/Machines/Radar.cs
Subsurface/Source/Items/Item.cs
2017-04-27 21:33:44 +03:00
Regalis
6397bc432e
UI tweaks
2017-04-27 21:08:20 +03:00
Regalis
90f354f6d7
Clients notify the server when they "give in" (i.e. kill their character when unconscious)
2017-04-26 23:39:41 +03:00
Regalis
58de86a98f
Heal and revive debug commands can also be used on other characters than the controlled one
2017-04-24 21:34:36 +03:00
Regalis
1dad5d9bf4
Passive sonar: when not active, the sonar shows nearby sources of sound and a faint outline of the structures around them. Now it's much easier to monitor how much noise the sub is making and to hide from enemies.
...
+ Changed the visuals of the sonar a bit. The current rendering method is very inefficient though, todo: write a shader
2017-04-24 21:13:54 +03:00
Regalis
5eb01d4c50
EnemyAIController tweaking:
...
- removed the "distance accumulator" which was used to make characters reset their attack target if they haven't moved enough within a specific interval. The intention was to make characters less likely to get stuck but it seems to cause more problems than it solves.
- more frequent target updates
- characters can target entities they're previously targeted from further away (even if the target isn't within range anymore)
2017-04-24 19:49:27 +03:00
Regalis
3e5f8a43a0
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GUI/GUIButton.cs
Subsurface/Source/GameSession/CrewManager.cs
Subsurface/Source/GameSession/GameSession.cs
Subsurface/Source/Items/Item.cs
Subsurface/Source/Networking/GameServer.cs
Subsurface/Source/Screens/MainMenuScreen.cs
Subsurface/Source/Screens/ServerListScreen.cs
2017-04-24 19:10:51 +03:00
Regalis
df7daa5925
Fixed incorrectly positioned character info boxes in the info menu
2017-04-24 19:08:25 +03:00
Regalis
31f7eca717
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/GUI/GUIButton.cs
Subsurface/Source/GameSession/CrewManager.cs
Subsurface/Source/GameSession/GameSession.cs
Subsurface/Source/Items/Item.cs
Subsurface/Source/Networking/GameServer.cs
Subsurface/Source/Screens/MainMenuScreen.cs
Subsurface/Source/Screens/ServerListScreen.cs
2017-04-23 21:40:11 +03:00
Regalis
645df3fde6
Crew command menu and the info menu can't be open at the same time, UI layout tweaking again
2017-04-23 21:06:30 +03:00
Regalis
0709418ba3
Merge branch 'UI-overhaul'
...
Conflicts:
Subsurface/Source/Screens/EditMapScreen.cs
2017-04-20 21:27:40 +03:00
Regalis
2cac176c87
More UI tweaking
2017-04-20 21:24:52 +03:00
Regalis
a5d605e29b
Sub editor doesn't allow creating structures with zero width/height, fixed null exceptions when trying to remove a structure without wall sections
2017-04-20 18:02:20 +03:00
Regalis
499284dc91
UI layout tweaks
2017-04-20 17:39:32 +03:00
Regalis
92a74808fe
Fix to oxygen distribution logic: gaps used to move a fixed amount of oxygen between hulls every frame, causing the oxygen levels to fluctuate constantly. While it wasn't noticeable in regular sized hulls, smaller hulls created excessive amounts of NetworkEvents due to large fluctuations in the oxygen percentage.
...
Now the gaps make the oxygen percentages settle to the average value, and hulls have a minimum delay of 0.5s between the creation of NetworkEvents.
2017-04-18 21:37:23 +03:00
Regalis
acaa8697c8
Small menu fixes: open menus are closed when opening another one in the sub editor (e.g. if the save dialog box is opened when one of the entity menus are open), switching to the correct tab from the settings menu when going through the "apply changes" dialog
2017-04-18 20:08:56 +03:00
Regalis
f407a38c9e
Fixed clients being able to vote for kicking multiple times by disconnecting and reconnecting
2017-04-18 19:46:57 +03:00
Regalis
9a5777183f
Separate sprites for horizontal and vertical scrollbars, style tweaking
2017-04-18 19:24:13 +03:00
Regalis
67a3020430
Logging when clients use an item on themselves or hit someone with a melee weapon
2017-04-17 19:52:25 +03:00
Regalis
e4a7d31f78
If a recipient can't be found for a private message sent by a client, the server sends the "player not found" error message to the client
2017-04-17 19:48:29 +03:00
Regalis
7df4bff249
Fixed exceptions if a character is removed when an AI character is attacking it
2017-04-17 17:59:22 +03:00
Regalis
b24f0877a1
Fixed characters occasionally teleporting around at the clients' end after respawning. The position syncing logic assumed that all coordinates above the level are in sub-relative space, even though the world position of the respawn shuttle can also be above the level.
2017-04-17 17:56:17 +03:00
Regalis
8964c0df5c
Syncing character skill levels
2017-04-13 00:35:36 +03:00
Regalis
1bd856b7a5
ItemComponent update events aren't created if the component isn't found in the item's component list (may happen if an event is created when setting a property of a component during initialization)
2017-04-12 23:47:26 +03:00
Regalis
f4c01f68ed
Fixed incorrectly length in character position updates (1 bit off), clients read pad bits in position updates
2017-04-12 23:44:58 +03:00
Regalis
9a36df0f52
ItemComponent syncing fixes:
...
- Relay and lightcomponent states are synced (otherwise clients won't be notified if the state is, for example, toggled by a signal from a button).
- Clients don't play door sounds if a signal attempts to set the state to the same value as the predicted state, but DO play if a correction from the server changes the state from the predicted one.
- Clients are notified if a reactor receives a shutdown signal.
- Powercontainer updates are sent if the charge changes by 1%, not by 1 unit.
2017-04-11 20:38:07 +03:00
Regalis
347f549ac1
Reactors, sonars, nav terminals, pumps and batteries use similar delayed correction logic as doors and inventories.
...
I.e. the clients delay correcting the state of the item until the local player stops manipulating the state (atm the delay is 1 sec). Prevents pumping speeds, steering directions and whatnot from switching to an old state and back - now the corrections should not be visible to the players unless the client predicts the state wrong.
2017-04-11 00:48:53 +03:00
Regalis
fac31b4892
- Fixed railgun sounds not playing at the clients' end
...
- Server sends updates for batteries when their charge changes (not strictly necessary assuming the rest of the electrical grid stays in sync, but just in case)
- Reactor state is synced with clients if modified through the debug console
- Increased maximum item velocity to 64 units/s, all item are clamped to the max vel
2017-04-10 20:13:33 +03:00
Regalis
dc6ed7daf1
Separate component style for item UIs + option to select the style in the item config files, removed a bunch of hard-coded UI element color changes
2017-04-10 18:11:33 +03:00
Regalis
34f0ae39b6
- Sliced sprites are scaled instead of tiling (so they work properly even if the UI element is smaller than the sprite)
...
- Option to use separate sprites for different states of a GUIComponent (e.g. hovered/pressed button)
- Option to configure "child styles" for the individual elements of a GUIComponent (e.g. the background frame and the handle of a scroll bar)
2017-04-09 21:26:35 +03:00
Regalis
887735ff32
- DockingPort syncing fix: server waits until the port is locked before sending hull/gap IDs, clients can't lock the port until the server tells them to
...
- fixed crew commands being disabled in single player instead of multiplayer
- server-side ID error logging fix
2017-04-09 20:51:57 +03:00
Regalis
0301457a8f
A fix to occasional "unknown object header" errors.
...
If an entity had been removed and it's ID taken by some other entity, clients who hadn't received a message about the removal and the new entity would end up reading ENTITY_POSITION messages for the new entity incorrectly. Reading an incorrect number of bits from the message would also prevent the clients from reading the rest of the data in the packet properly.
Now the server doesn't send position updates to clients during midround syncing (because there's no guarantee they know about the entity yet). Clients also force the read position to the correct place after reading a position update in case something goes wrong when reading the msg.
2017-04-09 19:04:49 +03:00
Regalis
4ee96e4fbe
Fixed "collection was modified" exceptions if a huskified human dies in a fire
2017-04-09 18:32:13 +03:00
Regalis
e94a50a29a
The server keeps track of which ID a client is going to switch to when midround syncing is done, and switches the ID immediately when the client is in sync (instead of waiting for the client to report the new ID).
...
Fixes clients occasionally getting kicked out the moment they're in sync, because their latest received ID is still set to the ID of the last unique event and the server thinks they're requesting some old event that doesn't necessarily exist anymore.
+ added a debug command that creates a ton of entity events
2017-04-08 20:10:15 +03:00
Regalis
3844dd9dac
GUIStyle logic changes: instead of having a predetermined GUIComponentStyle for each type of GUIComponent, any GUIComponent can use any style. The GUIComponent constructors take the name of the style as a parameter, and if no style is specified, the default style for the GUIComponent in question will be used.
2017-04-08 16:46:53 +03:00
Regalis
1fe6427c05
9-Sliced UI sprites & some new UI graphics
2017-04-07 22:22:07 +03:00
Regalis
f863eb331d
Moved stun from AnimController to the character class, server notifies clients when the stun ends, husk infection included in character status messages
2017-04-07 19:56:25 +03:00
Regalis
af80a44970
Server doesn't apply distance effects to chat messages sent by someone without a character (e.g. a client in the lobby, the server itself)
2017-04-07 18:12:14 +03:00
juanjp600
84f8c6db22
Fixed positioning of new lines for rotated text
...
A fairly unimportant change, so I'll just commit it to new-netcode since I forgot to switch to master before making this change and I'm too lazy to just port things over :P
2017-04-06 17:49:08 -03:00
juanjp600
2873a79fe0
Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode
2017-04-06 16:50:20 -03:00
juanjp600
e1d5d63dbd
Sync monster spawn settings
2017-04-06 16:50:11 -03:00
Regalis
77614dfa4e
Merge branch 'master' into new-netcode
...
Conflicts:
Subsurface/Source/Characters/Animation/Ragdoll.cs
2017-04-06 21:59:52 +03:00
Regalis
a2e21a78f9
Nicer looking explosions
2017-04-06 21:58:35 +03:00
Regalis
00b7193b6b
Minor optimizations: GUITextBlocks don't reposition and wrap the text when only the position of the text block changes (almost killed my laptop by spamming a bit too many messages to the debug console), less unnecessary floor raycasts
2017-04-06 21:58:19 +03:00
Regalis
9330bd08de
Clients don't switch from init events to normal until they receive the first normal event update (instead of switching when they receive the last init event they know about). Otherwise the client may switch to normal events too early, if the server has created new unique events the client doesn't know about yet.
2017-04-06 21:52:24 +03:00
Regalis
dc73880cd9
Fixed clients being unable to receive files if the download folder doesn't exist ツ
2017-04-06 20:13:44 +03:00