Commit Graph

37 Commits

Author SHA1 Message Date
Joonas Rikkonen e0fe737c3b (60001519f) Fixed clients not being able to see other characters in spectator if they've died far away from the sub. + Increased position update interval for spectators. Closes #1421
+ Merge fix
2019-04-16 17:16:14 +03:00
Joonas Rikkonen 6262b3ea54 (ce8e185aa) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-16 17:12:09 +03:00
Joonas Rikkonen bd07acf26d (052ab6307) Use MonoKickstart on Linux so installing Mono is not required, fixed division by zero if the width of the server console window is 0 2019-04-16 17:11:49 +03:00
Joonas Rikkonen 046a6d5abc (b899f62c0) Server emulates the ragdoll input when clients are stunned, unconscious or dead. Fixes disconnected players appearing in a weird half-crouching pose until they die, and might fix ragdolling in general doing the same (see #1297). The problem apparently appears when not playing locally, haven't tested yet. 2019-04-11 18:28:24 +03:00
Joonas Rikkonen f278ff212c (370a5daac) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-08 13:35:02 +03:00
Joonas Rikkonen 8a227a4f2c (570318151) Cleanup. 2019-04-08 13:34:48 +03:00
Joonas Rikkonen 2fe8139ffd (b651e55f4) Don't quantize physicsbody velocities server-side. Caused subs to occasionally not move horizontally because the velocities got rounded down to zero if the sub wasn't accelerating fast enough. 2019-04-08 12:06:53 +03:00
Joonas Rikkonen cc122f2bbf (b451554e8) Merge remote-tracking branch 'origin/dev' into keymapping-refactor-test 2019-04-04 11:10:29 +03:00
Joonas Rikkonen b08a31a68f (33ab1e038) Add buttons for resetting the settings to the defaults and setting the default keybindings. TODO: pressing the buttons should refresh the settings frame instead of closing it. 2019-04-04 11:10:14 +03:00
Joonas Rikkonen 41da4e24a9 (cd41ee958) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-04 11:09:45 +03:00
Joonas Rikkonen 1966bcb4ab (c445db0f5) Lazy load item & structure sprites (loaded automatically when switching to the sub editor or instantiating an item/structure, so should not cause any mid-game freezes). 2019-04-04 11:09:32 +03:00
Joonas Rikkonen a3425a0432 (bb85ea959) Fixed last item not being visible in grid layout groups if it's the only item on the last row 2019-04-04 11:08:49 +03:00
Joonas Rikkonen 7eb03ea6b3 (874c38a79) Show keybindings for use or shoot in the tooltips. 2019-04-04 11:08:33 +03:00
Joonas Rikkonen d4752bb6a0 (9f5c9fbcb) Make sure lazy-loaded sprites load their texture when creating a GUIImage, because the image needs to know the size of the texture to scale itself correctly. Fixes location portraits not being visible in the campaign menu when a location is selected for the first time. 2019-04-04 11:08:18 +03:00
Joonas Rikkonen 7491b06a5d (bbd192053) Rebind Select and Use keys. Refactor GameSettings to support legacy bindings, when they are set. That is, if the new "deselect" and "shoot" keys are not defined, but the player config file is found, use the "select" and the "use" keys instead of the defaults. 2019-04-04 11:08:02 +03:00
Joonas Rikkonen 79ea41e6c9 (4f4395b00) Reduced the size of the disallowed item interface area around the chatbox 2019-04-04 11:07:45 +03:00
Joonas Rikkonen c8a7815ef8 (6ae5f1e59) Sync the new input with the server. 2019-04-04 11:06:59 +03:00
Joonas Rikkonen 5f05322fdb (fdc038d5d) Keymapping and UX test: - Map use to "E" and Select to "Left Mouse". - Introduce a dedicated key for deselecting ("Right Mouse"). - Introduce a dedicated key for shooting ("Left Mouse"). - Define certain objects as shootables, which simply means that they use the "Shoot" key instead of using the "Use" key. This required the least amount of refactoring the existing code. - TODO: don't register the "Select" input when aiming or when an interface is open -> should prevent interacting through UI elements. - TODO: sync the new input types with the server. 2019-04-04 11:06:12 +03:00
Joonas Rikkonen 6b38ba8434 (7749cbf6a) Server sends the current facing direction of a character to clients instead of the TargetDirection. Fixes monsters flipping around constantly client-side. + Don't allow clients to make characters flip in EnemyAIController (controlled by the server) 2019-04-03 16:28:10 +03:00
Joonas Rikkonen 0ecfc426ff (45f083a5a) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-03 16:22:12 +03:00
Joonas Rikkonen 0dd1823eb1 (44a496915) Added: Template for using a video with the Welcome text in the tutorial if needed. Removed: Old spritesheets. Fixed: Bug in fetching crew with certain jobs 2019-04-03 16:21:57 +03:00
Joonas Rikkonen a46c195532 (2a183f60c) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-01 22:51:07 +03:00
Joonas Rikkonen 5d6cbb5898 (b522c4551) Don't assign the attackinglimb if we shouldn't be attacking. Fixes Hammerhead not falling back after hitting the sub. 2019-04-01 22:50:39 +03:00
Joonas Rikkonen d511ecd4e3 (5218c43a0) Server sends the IDs of both selected characters and selected items to the clients. Previously this wasn't needed, because it wasn't possible to have both a character and an item selected at the same time. Fixes characters floating mid-air client-side when dragging others up stairs, and probably some other undiscovered bugs as well. 2019-04-01 22:50:11 +03:00
Joonas Rikkonen ae6b797d73 (c2e1b24e2) Fixed remote characters sliding slowly to the left in multiplayer. Happened because linear velocity was written with an accuracy of 12 bits, causing the lowest possible value to be about 1.5 cm/s. Now extremely low velocity values are rounded down to zero. The server also now quantizes the LinearVelocity/AngularVelocity values, which should make position syncing a little more reliable because the server runs the physics using the same rounded values as the clients. 2019-04-01 22:49:58 +03:00
Joonas Rikkonen 2eaf22683d (ae643deeb) Added alive checks to a couple of diving gear status effects (don't consume tanks when dead) 2019-04-01 22:47:22 +03:00
Joonas Rikkonen ec7e23061b (38b5d9aad) Experimental changes to syncing ragdolled (unconscious/dead) characters: - Higher error tolerance when syncing the positions. It's often hard to get the main limb exactly to the same position as the collider, because the positions of the limbs aren't synced and the pose of the ragdoll may differ between the server and clients. Increasing the tolerance makes it less likely for dead/unconscious characters to "twitch" when the game attempts to force the main limb to the position of the collider. - If the position of the ragdoll differs from the position of the collider so much that CheckDistFromCollider disables limb collisions, apply an additional force to all limbs to force the ragdoll to the correct position. Otherwise the ragdoll can occasionally start "hanging" midair, clipping through solid objects, because the main limb's pull joint doesn't necessarily have enough force to pull the entire ragdoll up to the collider. 2019-04-01 22:47:03 +03:00
Joonas Rikkonen 11f2bf4b38 (f152bbbe1) Servers includes skill identifiers in CharacterInfo data sent to clients. Sending only the levels and assuming the client has the same skills in the same order made it difficult for servers to modify the skills without client-side modifications. Closes #1335 2019-04-01 14:27:11 +03:00
Joonas Rikkonen 84121674b1 (050a72bf3) Server resets remote character inputs if no inputs have been received in the past 0.5 seconds. Previously the server would assume the inputs hadn't changed from the last known ones, which works well when there are brief networking hiccups that cause the server to run out of inputs for a few frames, but if it takes longer, we don't want to keep the character firing a welding tool or whatever else they were doing until the kill disconnect timer kicks in. 2019-03-30 21:44:37 +02:00
Joonas Rikkonen 080ac78ded (5c35a640e) Update tutorial-rework with dev 2019-03-27 20:52:47 +02:00
Joonas Rikkonen 3f82c9a2cb (f417b026f) Fetched: Changes for playing video tutorial from local branch 2019-03-27 20:45:14 +02:00
Joonas Rikkonen 81fafaf3f5 633e54b...7cc231b
commit 7cc231bc51890e7fde50bbac3413328dd7bc5189
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Wed Mar 20 14:23:06 2019 +0200

    Fixed server creating network events in Item.Load due to CreateServerEvent calls in some of the ItemComponent properties (e.g. LightComponent.IsOn). Caused syncing problems because the entity spawn events aren't created until the item has been loaded, leading to situations where clients fail to read events because the entity doesn't exist at their end yet (see #1293). TODO: get rid of console errors when attempting to create events during component initialization in the Item constructor.

commit ac1bf32edf125d95d56775e1e8ce54ac7671328c
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Wed Mar 20 13:49:55 2019 +0200

    Fix Hammerhead attack causing warping. Adjust the targeting priorities.

commit e3e032d7c3a753397269bb4236c1494ab0809004
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Wed Mar 20 13:48:47 2019 +0200

    Enemy AI fixes:
    - Fix enemies "fleeing" after they have been shot. There was a steering issue when they targeted characters that were inside the sub when they were outside of it
    - Fix the previous target resetting too often
    - Fix the wall target resetting too often
    - Use world positions instead of sim positions where possible, because the sub positions are then taken into account

commit 847cf5ffd9212a542000dbf12332b2c08756579a
Author: Daniel Asteljoki <daniel.asteljoki@gmail.com>
Date:   Wed Mar 20 12:00:15 2019 +0200

    Remora: added power connection between sub and drone, removed non-scaling hull parts

commit a9c2e8cc124713e90dd44a9adf2fcbb3204b2c4d
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Wed Mar 20 11:24:37 2019 +0200

    Server sets clients' last received campaign save/update IDs to one before the current up-to-date IDs (instead of zero) when a campaign changes. Zero would get interpreted as a more up-to-date ID if the IDs of the current campaign are close to ushort.MaxValue where the IDs wrap around.

commit 07d82b64e6990eacaf8905aed1a5d7c61224e47d
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Tue Mar 19 18:24:01 2019 +0200

    Log level inequality error messages & client error reports handled by the server to GameAnalytics
2019-03-20 14:25:03 +02:00
Joonas Rikkonen 23687fbf2f aeafa16...4d3cf73 2019-03-18 22:57:05 +02:00
Joonas Rikkonen 044fd3344b 2f107db...5202af9 2019-03-18 21:42:26 +02:00
Joonas Rikkonen 8e556f1c76 - Renamed a bunch of ObjectProperty-related stuff (ObjectProperty -> SerializableProperty, IPropertyObject -> ISerializableEntity, the "SerializableProperty" attribute -> Serialize).
- Rectangle serialization.
- Option to restrict numeric properties to a range of values.
- WIP generic ISerializableEntity editor.
2017-11-08 21:15:03 +02:00
Joonas Rikkonen 64ad5e5003 Removed unnecessary using directives 2017-07-05 18:35:09 +03:00
juanjp600 4d225c65f2 Updated to MonoGame 3.6 + Directory refactor
- Barotrauma's projects are in the Barotrauma directory
- All libraries are in the Libraries directory
- MonoGame is now managed by NuGet, rather than referenced from the installed files (TODO: consider using PCL for easier cross-platform development?)
- NuGet libraries are not included in the repo, as getting the latest versions automatically should be preferred
- Removed Content/effects.mgfx as it didn't seem to be used anywhere
- Removed some references to Subsurface directory
- Renamed Launcher2 to Launcher
2017-06-27 09:52:57 -03:00