Commit Graph

152 Commits

Author SHA1 Message Date
Joonas Rikkonen 64bec6d3b9 (684bcee1a) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-03 16:24:20 +03:00
Joonas Rikkonen 516159fe43 (d404aba3e) Added background color to keybind inputs in the Controls settings layout, to help readability 2019-04-03 16:24:06 +03:00
Joonas Rikkonen c9ad39da08 (b35e82550) Added a longer delay to getting killed by pressure (5 seconds in max pressure), made the pressure-zoom-in effect appear as soon as the pressure in a room starts to rise (not after it's half-way to lethal pressure), added blood particle effects when under high pressure 2019-04-03 16:23:51 +03:00
Joonas Rikkonen 98cf26178f (3b3130a00) Added an option to disable mouselook, let camera zoom further when controlling a large monster 2019-04-03 16:23:23 +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 5cf66d7343 (ecda2cb2a) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-04-02 12:41:32 +03:00
Joonas Rikkonen e86d86c41f (9bd8db487) Allow to aim in ladders when not moving. 2019-04-02 12:41:18 +03:00
Joonas Rikkonen 7d8b489319 (683847e26) Test: disable camera movement completely when an item interface is open (not just when the cursor is on the interface) 2019-04-02 12:41:04 +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 3062e4c705 (1a1137b26) Charybdis now also targets the walls. Tweak Charybdis' attacks and priorities. Fix targeting walls for non-aggressiveboarders. Don't double the wall priority. 2019-04-01 22:49:15 +03:00
Joonas Rikkonen fc9a3893f6 (b9babfcf6) Merge branch 'ragdoll-syncing-improvements' into dev 2019-04-01 22:49:01 +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 854c90c89a (e38a3fef5) Fixed characters not letting go of the character they're grabbing when the health interface is closed with Esc or by clicking outside the window. 2019-03-29 21:51:24 +02:00
Joonas Rikkonen 0b098efbf6 (92a838f87) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-03-29 21:50:58 +02:00
Joonas Rikkonen 6f919a4de0 (f8907b59f) Added: Proper scaling based on resolution for VideoPlayer. Modified: IsFlooding check of contextual tutorial to require water volume 2019-03-29 21:50:44 +02:00
Joonas Rikkonen 902e5e4493 (797046bbf) Fixed deselecting an item with Esc/E causing the character to interact with whatever the cursor is focused on. TODO: Fix autointeracting causing entities to be selected in MP (e.g. picking up an ammunition box by interacting with the loader causes the loader to be selected) 2019-03-29 17:26:40 +02:00
Joonas Rikkonen ddfd7274e9 (d5ea3c7d5) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-03-29 17:24:17 +02:00
Joonas Rikkonen ca08b803dc (891ef87c3) Fixed: CrewManager throwing errors if changing resolutions when a crewmember is dead. Added: Scaling of the objective list when changing resolutions 2019-03-29 17:24:02 +02:00
Joonas Rikkonen af1f8be4fa (ad3954bd2) Moved item HUD closing logic to Character.ControlLocal and removed it from ItemInventory. The deselection in ItemInventory was not synced with the server, causing the item to be immediately reselected after the HUD has been closed (and the logic was redundant anyway because it's also handled in Character). 2019-03-29 17:23:33 +02:00
Joonas Rikkonen d974a5d72f (3a98135bd) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-03-29 17:21:37 +02:00
Joonas Rikkonen c0cf060526 (7d7e17231) Implement reversing and make it as an option for attacks. Detach latching with "F" (debug feature). 2019-03-29 17:20:54 +02:00
Joonas Rikkonen f3dc34dfa3 (d211acd47) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-03-28 18:12:09 +02:00
Joonas Rikkonen 2490951b2b (6912a70c7) Removed: Unused, old code. Fixed: Formatting 2019-03-28 18:11:54 +02:00
Joonas Rikkonen f51c9c14df (54ae135f5) Items can be dragged and dropped directly from the inventory into containers without having to select the container first. 2019-03-28 18:11:40 +02:00
Joonas Rikkonen 7c8f19ee14 (875de4a5a) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-03-27 20:56:29 +02:00
Joonas Rikkonen 86d1102f56 (88961a6ea) Fix wrong spelling: Blatter -> Bladder. 2019-03-27 20:56:01 +02:00
Joonas Rikkonen 81833e7920 (65cb56d24) Merge branch 'dev' of https://github.com/Regalis11/Barotrauma-development into dev 2019-03-27 20:54:53 +02:00
Joonas Rikkonen 6ca760ceda (93f4e5d57) Allow repair tools to hit structures even if the barrel is inside the structure. Possibly closes #1306 2019-03-27 20:54:40 +02:00
Joonas Rikkonen ac60c9477e (d8c40ca6c) Merge branch 'dev' into tutorial-rework 2019-03-27 20:54:27 +02:00
Joonas Rikkonen 4cb3469c4f (8f9250974) Fix spritesheet orientation offestting the joint widgets in the wrong direction, which made it a bit difficult to use. 2019-03-27 20:54:00 +02:00
Joonas Rikkonen 080ac78ded (5c35a640e) Update tutorial-rework with dev 2019-03-27 20:52:47 +02:00
Joonas Rikkonen 8b5e18c348 (edf82e6ca) Modified: VideoPlayer video position, medical objective completion, saving segment when objective is completed 2019-03-27 20:50:50 +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 14832e2040 (aea5053bf) Fix wall target position not updated when the submarine moves. Fix latchontoai attach positions and distance checks. Detaching should also work both when the characters can get in and when the submarine velocity is enough to detach the characters. Still not synced, but re-enabled for testing. 2019-03-26 14:06:55 +02:00
Joonas Rikkonen fd5d2b86af (a97ef2847) AI improvements: - Fix steering issues when attacking (yet again): We still have to offset the sim positions. - Fix the steering vector when escaping from the enemy that is inside the sub. - Enemies can now navigate out from the sub, when escaping. - Fix door tag not being used when targeting items. Change the priority boosts considering doors. Should now entirely ignore the outer doors when inside and inner doors when outside. - Change the way enemies react to characters that are not in the same sub. Halve the priority when the character is not in the same hull. Add some boost to the priority when escaping. 2019-03-25 19:50:02 +02:00
Joonas Rikkonen 19d5ed5d66 (14f26adfa) Take the position of a sub's docking port into account when determining where to place outposts. Humpback's docking port for example is 600 units to the right from the sub's centerpoint, which prevented it from docking in some levels because the left side of the sub hit the wall at the left side of the outpost. Closes #1028 2019-03-25 19:49:48 +02:00
Joonas Rikkonen 7d74b5bd52 (2c717d761) Enable wall targets also inside the sub, so that enemies can get through multiple layers of walls. Don't target walls (intentionally), when the character is already inside the sub. Fix attack world position being calculated wrong when the character is targeting walls inside the sub. Take the sub position into account when assigning the wall target position. Makes things a bit simpler. 2019-03-25 19:49:20 +02:00
Joonas Rikkonen 77a07a95af 1473f77...ece6ead
commit ece6ead54c021d084f406f4f99daa5a0a7ef4b19
Author: Regalis11 <poe.regalis@gmail.com>
Date:   Fri Mar 22 21:52:56 2019 +0200

    v0.8.9.7

commit c10dd821ca1a89b4ae62046cf8e558589ff8e6af
Author: Regalis11 <poe.regalis@gmail.com>
Date:   Fri Mar 22 21:00:02 2019 +0200

    Fixed release builds crashing due to simulatedlatency etc commands not existing in release builds

commit dee0dded80cbbf30d484232b6706dd705a577eb7
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Fri Mar 22 15:24:44 2019 +0200

    Fixed nullref exception if a client disconnects while netstats is enabled

commit c45d5bf0c5a4a68200c9eca461cd04090a5de23a
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Fri Mar 22 15:24:26 2019 +0200

    Togglehud, toggleupperhud and togglecharacternames don't require a permission to use, made simulatedlatency, simulatedloss and simulatedduplicateschange usable to clients

commit cec1ac6bccac058bc12ddf18c8e060a7a47c9301
Merge: 411cd9726 1473f77ba
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Fri Mar 22 14:01:58 2019 +0200

    Merge branch 'dev' into enemy-ai

commit 411cd9726979668764eea782b515c7510ec4f5a8
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Fri Mar 22 14:01:09 2019 +0200

    If the target has changed, re-evaluate the attacking limb. Fixes Hammerhead getting stuck next to the sub, because it treats the claw as the attacking limb when targeting characters inside the sub. It should use the head, because it has a wall target.

commit 2522bec262f9cb1dea9df75e1d2c22307be5254c
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Fri Mar 22 13:58:18 2019 +0200

    Enemy ai/steering fixes:
    - Store both sim and world positions. Offset the simposition with the subposition and use it for steering. Fixes enemy indoorsteering, which was broken.
    - Use head or torso for steering instead of always using the main limb. Fixes characters like Mudraptor overshooting their targets badly.

commit c667ff9e4edf8af8f95278fbad42e0c8dd37d84c
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Fri Mar 22 13:54:21 2019 +0200

    Improve the ai debug graphics.

commit 4c6c13e07e43a4e3ce2a11dfc4064961c442044a
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Thu Mar 21 17:11:17 2019 +0200

    Refactor, fix and adjust the enemy targeting logic:
    - Change the logic for fading the memories
    - When attacking a wall target, set it as the currently selected ai target so that we adjust the right memory
    - Significantly reduce the value of character targets that are not in the same submarine
    - In aggressive boarding, double the priority of walls when outside. Set the priority to 0 when inside. Reduce the attractiveness of  doors, but still keep the values high.
    - Redefine priorities for Mudraptor and Crawler (wip)

commit b085a95cff6bcf5e3f13e90dd1b71ac15e5ec1ab
Author: itchyOwl <lauri.harkanen@gmail.com>
Date:   Thu Mar 21 13:16:22 2019 +0200

    Allow enemies to target walls by decision (not only when they happen to be on their way). TODO: target only outer walls and only when outside of the sub.
2019-03-23 19:22:13 +02:00
Joonas Rikkonen 05cc34afd8 4d2bcb1...1473f77
commit 1473f77ba0c85b80d48dce3e0fca809a9d5da98c
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Fri Mar 22 12:39:03 2019 +0200

    Server automatically ends rounds if there have been no players alive in 60 seconds and respawning is not allowed during the round. Otherwise campaign rounds can get "bricked" if all the clients die/disconnect and there's no-one who's allowed to manually end the round. Closes #1319

commit 7096983fb10e48c2866393d30420bfaa79a0719b
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Fri Mar 22 12:03:10 2019 +0200

    Some extra error logging in an attempt to diagnose #1327 (seems that the server is trying to start a campaign round after the campaign has been disposed and another game mode selected).

commit 2d7a3be83cd8865869837879b965fa9aeb046042
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Fri Mar 22 10:53:08 2019 +0200

    Use null as the rotation and angular velocity of a character's collider in network state buffers if the collider is set to a fixed rotation (i.e. when standing). Previously the _current_ rotation and angular velocity was used if the server didn't send the values, which caused the collider to "wobble" when getting up from the ground, because the clients used the current rotation and angular velocity to determine if their predicted state is correct, even though they should've been using past states (or rather, not attempting to correct at all because both the rotation and ang velocity should be 0 when the rotation is fixed).

commit 2e2fd7078798703bc5d6ae398f75fa580ecca566
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Thu Mar 21 22:44:11 2019 +0200

    Disabled kicking clients out of the server if their Steam auth becomes invalid after they've already been authenticated. Got some reports from players about this occasionally happening for no apparent reason, and I don't see the need to kick the clients if they've already been successfully authenticated during that session.
2019-03-22 14:01:25 +02:00
Joonas Rikkonen a8309b5766 69487a2...d38c50c
commit d38c50cc354476d5309645bc1487a4c03fe97d57
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Wed Mar 20 16:27:45 2019 +0200

    Fixed inability to throw anything in the multiplayer. The clients would create a network event about dropping the item during the throw, which prevented throwing it server-side (because the item isn't in the character's inventory anymore by the time it should be launched). Closes #1318

commit 25cc1ceefcf62e346281c24c41964053d102701c
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Wed Mar 20 16:21:33 2019 +0200

    Merge same afflictions into one icon in the preview above the health bar (instead of showing the same icon for each limb that has the affliction)
2019-03-20 16:28:15 +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 cb6dcd469e af8a4af...8a2a718
commit 8a2a718a0544d5c1707f10b75498e528a7912726
Author: Joonas Rikkonen <poe.regalis@gmail.com>
Date:   Tue Mar 19 16:47:49 2019 +0200

    Only update affliction icons every 0.5 seconds (or when switching limb selection in the health interface). Otherwise afflictions can flicker rapidly when the player for example has status effects that cause an affliction's strength to fluctuate around the ShowIconThreshold. Also set the default ShowIconThreshold value to 0.05. Closes #1304
2019-03-19 16:50:15 +02:00
Joonas Rikkonen 63eb4d64e5 f8b0295...0671290 2019-03-18 23:30:58 +02:00