d1c633385b
Unique event IDs start from 1 (otherwise the server/clients will think event #0 has been already received)
Regalis
2017-05-02 22:21:58 +03:00
d0b52d92fe
Event ID wraparound fixes
Regalis
2017-05-02 22:18:36 +03:00
06db2fed86
Fixed clients incrementing their lastReceivedID every time they receive an empty entity event (even if the event has already been received)
Regalis
2017-05-02 22:15:18 +03:00
6c770afd6a
Clients aren't allowed to use the same name as the server, changed radio msg color back to yellow
Regalis
2017-05-02 18:35:17 +03:00
511f24cc47
Merge branch 'master' into new-netcode
Regalis
2017-05-01 19:25:07 +03:00
f92c2df9f7
TextBoxes align text to the right and hide any overflowing text at the left if the width of the box is exceeded
Regalis
2017-04-30 18:14:25 +03:00
eddc33dc89
Smoothly scrolling listboxes, items in the boxes can be partially visible
Regalis
2017-04-30 17:57:01 +03:00
d1d8284b94
Fixed some text overflows in the labels in the vanilla subs
Regalis
2017-04-28 19:50:10 +03:00
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.
Regalis
2017-04-28 18:10:47 +03:00
64c109f13b
Merge branch 'master' into new-netcode
Regalis
2017-04-27 21:33:44 +03:00
6397bc432e
UI tweaks
Regalis
2017-04-27 19:38:04 +03:00
90f354f6d7
Clients notify the server when they "give in" (i.e. kill their character when unconscious)
Regalis
2017-04-26 23:39:41 +03:00
58de86a98f
Heal and revive debug commands can also be used on other characters than the controlled one
Regalis
2017-04-24 21:34:36 +03:00
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.
Regalis
2017-04-24 21:13:54 +03:00
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)
Regalis
2017-04-24 19:08:51 +03:00
3e5f8a43a0
Merge branch 'master' into new-netcode
Regalis
2017-04-24 19:10:51 +03:00
df7daa5925
Fixed incorrectly positioned character info boxes in the info menu
Regalis
2017-04-24 19:08:25 +03:00
31f7eca717
Merge branch 'master' into new-netcode
Regalis
2017-04-23 21:40:11 +03:00
645df3fde6
Crew command menu and the info menu can't be open at the same time, UI layout tweaking again
Regalis
2017-04-23 21:06:30 +03:00
1d41b4958c
Item UI fix
Regalis
2017-04-20 22:33:08 +03:00
0709418ba3
Merge branch 'UI-overhaul'
Regalis
2017-04-20 21:27:40 +03:00
2cac176c87
More UI tweaking
Regalis
2017-04-20 20:56:28 +03:00
a5d605e29b
Sub editor doesn't allow creating structures with zero width/height, fixed null exceptions when trying to remove a structure without wall sections
Regalis
2017-04-20 18:02:20 +03:00
499284dc91
UI layout tweaks
Regalis
2017-04-20 17:39:32 +03:00
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.
Regalis
2017-04-18 21:37:23 +03:00
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
Regalis
2017-04-18 20:08:56 +03:00
f407a38c9e
Fixed clients being able to vote for kicking multiple times by disconnecting and reconnecting
Regalis
2017-04-18 19:46:57 +03:00
9a5777183f
Separate sprites for horizontal and vertical scrollbars, style tweaking
Regalis
2017-04-18 19:24:13 +03:00
67a3020430
Logging when clients use an item on themselves or hit someone with a melee weapon
Regalis
2017-04-17 19:52:25 +03:00
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
Regalis
2017-04-17 19:48:29 +03:00
7df4bff249
Fixed exceptions if a character is removed when an AI character is attacking it
Regalis
2017-04-17 17:59:22 +03:00
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.
Regalis
2017-04-17 17:56:17 +03:00
8964c0df5c
Syncing character skill levels
Regalis
2017-04-13 00:35:36 +03:00
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)
Regalis
2017-04-12 23:47:26 +03:00
f4c01f68ed
Fixed incorrectly length in character position updates (1 bit off), clients read pad bits in position updates
Regalis
2017-04-12 23:44:58 +03:00
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.
Regalis
2017-04-11 20:36:52 +03:00
347f549ac1
Reactors, sonars, nav terminals, pumps and batteries use similar delayed correction logic as doors and inventories.
Regalis
2017-04-11 00:41:12 +03:00
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
Regalis
2017-04-10 20:13:33 +03:00
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
Regalis
2017-04-10 18:11:23 +03:00
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)
Regalis
2017-04-08 22:22:53 +03:00
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
Regalis
2017-04-09 20:51:57 +03:00
0301457a8f
A fix to occasional "unknown object header" errors.
Regalis
2017-04-09 19:00:33 +03:00
4ee96e4fbe
Fixed "collection was modified" exceptions if a huskified human dies in a fire
Regalis
2017-04-09 18:32:13 +03:00
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).
Regalis
2017-04-08 20:09:05 +03:00
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.
Regalis
2017-04-07 22:29:07 +03:00
1fe6427c05
9-Sliced UI sprites & some new UI graphics
Regalis
2017-04-07 21:45:32 +03:00
f863eb331d
Moved stun from AnimController to the character class, server notifies clients when the stun ends, husk infection included in character status messages
Regalis
2017-04-07 19:56:25 +03:00
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)
Regalis
2017-04-07 18:12:14 +03:00
84f8c6db22
Fixed positioning of new lines for rotated text
juanjp600
2017-04-06 17:49:08 -03:00
77614dfa4e
Merge branch 'master' into new-netcode
Regalis
2017-04-06 21:59:52 +03:00
a2e21a78f9
Nicer looking explosions
Regalis
2017-04-06 21:58:35 +03:00
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
Regalis
2017-04-06 21:58:19 +03:00
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.
Regalis
2017-04-06 21:52:24 +03:00
dc73880cd9
Fixed clients being unable to receive files if the download folder doesn't exist ツ
Regalis
2017-04-06 20:13:44 +03:00
4ad373294c
Update client.UnreceivedEntityEventCount on every event write
juanjp600
2017-04-06 12:37:38 -03:00
bfe043c154
Fixed door sounds playing twice client-side (first when the client activates the door and again when the correct state is received from the server)
Regalis
2017-04-05 23:51:45 +03:00
b1ef7ffd05
Replaced excessively paranoid filename validation regex in FileReceiver with Path.GetInvalidFileNameChars, server is notified if a client cancels a file transfer for whatever reason
Regalis
2017-04-05 23:09:00 +03:00
e1a2f6af62
Fixed the name of the server being overridden with "Server" every time a client selects the lobby screen
Regalis
2017-04-05 21:57:00 +03:00
7cb88e39e9
Attempt to fix ThrowOrIgnoreBadComparer exception in LightSource.FindRaycastHits.
Regalis
2017-04-05 21:36:31 +03:00
7700854935
Disabled AI crew commands in multiplayer, attempting to give commands to a character with no AIController doesn't crash the game
Regalis
2017-04-05 21:09:24 +03:00
3246e2c521
Limb physics aren't disabled when a character is frozen (only collider physics) -> frozen characters can still take damage from weapons
Regalis
2017-04-05 17:53:31 +03:00
8215c4d91b
MemStates without a timestamp are removed from a character when using timestamp-based interpolation (there may still be ID-based states with a timestamp of 0.0 in the buffer when switching to timestamp-based interpolation, for example when the controlled character dies)
Regalis
2017-04-04 21:32:53 +03:00
0f8e6440ef
Clients can access the inventories of incapacitated characters (e.g. put handcuffs on a stunned player, grab stuff from a dead character's inventory)
Regalis
2017-04-04 21:18:03 +03:00
b3bbdbf589
Explosion damage is reduced if there are walls or other solid obstacles between an explosion and a character
Regalis
2017-04-04 19:54:28 +03:00
b063cf3feb
Fire sound fix: the sounds were freed after each round without ever loading them again. The sound objects still existed and had some buffer ID assigned though, causing an incorrect clip to be played or OpenAL errors to be thrown on successive rounds. (Now freed sounds always have a buffer ID of -1)
Regalis
2017-04-03 20:59:02 +03:00
83a6fcffaf
Heavily nerfed oxygen and welding fuel tank explosions
Regalis
2017-04-03 20:49:12 +03:00
6895cdbd7d
Clients don't apply OnFire statuseffects to items. OnFire can cause items to explode, and because the client can't set the condition of the item to 0.0, it'll keep exploding until the server breaks the item. TODO: come up with a proper fix because now clients can't see oxy or fuel tanks exploding at their end.
Regalis
2017-04-03 20:48:09 +03:00
e75d596d34
Firesource syncing fixes
Regalis
2017-04-03 20:22:59 +03:00
43d29de45c
Merge branch 'master' into new-netcode
Regalis
2017-04-03 18:36:22 +03:00
2ca609855a
Particle collision and project file fixes
Regalis
2017-04-03 18:32:49 +03:00
2f638a4c01
The initial loading screen is closed if an exception is thrown during loading. Causes the game to crash due to the unloaded content, but that's better than letting the game hang on the loading screen.
Regalis
2017-03-30 21:54:58 +03:00
c368d6ddf1
- fire particle tweaking - water puts out fires more slowly and the speed depends on the height of the water surface relative to the position of the firesource (instead of the volume of the water in the room) - the extents of the firesources are visualized when debugdraw is on - any >0.0 damage to structures has a chance of spawning some "shrapnel" particles
Regalis
2017-03-30 21:50:18 +03:00
c58d7dfd73
Animated fire & smoke particles
Regalis
2017-03-30 21:32:08 +03:00
e661724cbb
Debug console is added to GUIUpdateList after all other UI elements (because it's drawn on top of everything else)
Regalis
2017-03-30 17:35:14 +03:00
2b65392a3c
BackgroundSpriteManager takes the rotation and pivot point of the sprites into account when determining which cells of the "sprite grid" the sprite occupies (-> partially visible sprites shouldn't be culled away anymore)
Regalis
2017-03-29 23:28:09 +03:00
2582680445
Fixed physics bodies staying active when a character is disabled in the constructor
Regalis
2017-03-29 23:12:03 +03:00
5bdd801da4
Having multiple sub files with the same name doesn't prevent clients from selecting or requesting the correct one
Regalis
2017-03-28 21:01:44 +03:00
2a5a2bc6f6
Fixed server not sending a status update for an item if the condition of the item changes directly from 100 to 0
Regalis
2017-03-27 23:44:09 +03:00
0e5de469d3
Fixed infinite loop in WrapText if the line length is smaller than an individual character, text scale is taken into account in GUITextBlock wrapping
Regalis
2017-03-27 21:08:14 +03:00
1a3c18c727
EntitySpawner sends spawn/removal messages to clients using EntityEvents.
Regalis
2017-03-27 20:44:20 +03:00
9ef069bf61
New head sprite
Regalis
2017-03-27 01:54:48 +03:00
6a6486e270
Server doesn't create an entityevent if the health of a character changes very little, husk infection isn't updated after the infected character dies, clients can't create a "huskified" human NPC until the server says so
Regalis
2017-03-26 22:47:08 +03:00
3306a1ab96
EntitySpawner only writes a limited number of entities per packet
Regalis
2017-03-26 17:19:21 +03:00
52dde81396
Removed duplicate "MapEntity.MapLoaded" call from level generation, fixed level walls occasionally overlapping with ruins
Regalis
2017-03-25 20:13:15 +02:00
aca85c2708
All characters start disabled in the multiplayer mode, and are enabled when the client starts receiving position updates for the character, OR when the server starts receiving inputs from the client controlling the character, OR if the character is controlled locally. (-> no more floating, frozen characters at the start of a round)
Regalis
2017-03-25 18:24:09 +02:00
827644b72c
Revert ccc0956, there was nothing wrong with the ID comparison
Regalis
2017-03-24 22:10:48 +02:00
dfd24045f8
EntityEventManagers send an empty event if the entity doesn't exist anymore when writing the message (may happen, for example, when a client is still waiting for some message about the item when it's destroyed in a deconstructor).
Regalis
2017-03-24 19:12:09 +02:00
067db912f4
- EntitySpawner recursively deletes contained items when an item is deleted - items in the inventories of the characters inside the shuttle are deleted when resetting the respawn shuttle - fixed host's character not being taken into account when assigning jobs for respawning characters if the host is not respawning
Regalis
2017-03-24 18:49:03 +02:00
ccc09560a1
Fixed another off-by-one error in EntitySpawner ID comparisons, clients reset their ChatMessage ID when (re)connecting to the server
Regalis
2017-03-24 17:56:56 +02:00
7e431c7dfd
Merge branch 'master' into new-netcode
Regalis
2017-03-23 18:58:18 +02:00
4d19d0afc1
Deconstructors & fabricators drop created items on the floor if there's no more room in the inventory, deconstructor doesn't reset the activation button after deconstructing an item if there are still more items to go
Regalis
2017-03-23 18:55:39 +02:00
e9e4e5f9d3
Level cells that overlap with ruins are removed during level generation (instead of just disabling collisions with them), background sprites can spawn on ruin walls
Regalis
2017-03-23 18:13:28 +02:00
885a8c610c
Text scale in GUITextBlocks and ItemLabels can be changed, text wrapping fix (words that are too wide for one line shouldn't cause overflows anymore)
Regalis
2017-03-22 23:22:54 +02:00
d4db37f8dd
CPR syncing + some refactoring
Regalis
2017-03-22 18:32:10 +02:00
823ad12058
Some refactoring: made PosInfo a class and moved character-specific fields to a "CharacterStateInfo" subclass
Regalis
2017-03-21 19:36:28 +02:00
d42d017aab
Added IsActive field to scripted events (allows disabling event-specific music when needed)
Regalis
2017-03-21 18:20:19 +02:00
2722d3cf8d
Merge branch 'master' into new-netcode
Regalis
2017-03-21 18:16:25 +02:00
c016bee124
Sound volume setting affects the volume of the splash screen video
Regalis
2017-03-21 17:32:29 +02:00