Commit Graph

  • 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
  • 2873a79fe0 Merge branch 'new-netcode' of https://gitlab.com/poe.regalis/barotrauma into new-netcode juanjp600 2017-04-06 16:50:20 -03:00
  • e1d5d63dbd Sync monster spawn settings juanjp600 2017-04-06 16:50:11 -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