Commit Graph

196 Commits

Author SHA1 Message Date
Joonas Rikkonen c2d0fa4e03 Fixed non-continuous RegEx components only sending out a signal once 2018-11-15 21:32:11 +02:00
Joonas Rikkonen c4c2967065 Option to make RegEx component only send a signal when it receives a signal (not continuously according to the last received signal), added FalseOutput property to RegEx component. Closes #846, Closes #911 2018-11-15 20:52:15 +02:00
Joonas Rikkonen df202d5a18 Melee weapons can only hit one character per swing (makes stun batons & medical syringes less OP). Closes #814, closes #865 2018-11-15 20:45:04 +02:00
Joonas Rikkonen cea5d5b074 Fixed client-side docking ports creating duplicate bodies on doors, causing characters to collide with an invisible door when trying to move between docked subs (until the server forces them through it). + TODO note about bugged hull finding logic in UpdateNetPlayerPosition! 2018-11-10 20:21:43 +02:00
Joonas Rikkonen 481f51f3d8 Docking ports automatically stretch the hulls between them to cover the area between the docked subs. Otherwise there may be areas uncovered by hulls if the docking port is positioned slightly outside the extents of the submarine's hulls, causing characters to implode or get thrown back when they try to pass from sub to another. 2018-11-10 18:34:18 +02:00
Joonas Rikkonen fec7740378 Fixed a bunch of bugs when dragging characters up ladders (see e0504042). The dragging logic didn't take into account that the characters are not necessarily in the same sub, which caused the dragged character to launch away at a high speed when climbing from a sub to another (for example when climbing down to the shuttle in Aegir). The pull joint on the target's torso was never disabled, so the character stayed floating mid-air after getting off the ladders.
+ Made Limb.pullJoint private. Now it can only be accessed by properties of the Limb, and there's some error checks in place to prevent WorldAnchorB from being set to an invalid value.
2018-09-24 21:19:18 +03:00
Joonas Rikkonen 34c721bf89 Hitscan weapons can hit targets outside the sub when firing from the inside and vice versa. Closes #639 2018-09-10 13:56:53 +03:00
Joonas Rikkonen 2b18a1265a Fixed railguns and depth charge tubes being directly usable by characters (= they could be launched simply by selecting them and left clicking, without the need to use a railgun controller). Closes #754 2018-08-30 10:42:25 +03:00
Joonas Rikkonen 105461beb3 Fixed LightComponents staying active on broken items. Closes #759 2018-08-29 16:45:35 +03:00
Joonas Rikkonen 8d83580b75 Docking port fixes again. Closes #551
- Non-saveable entities aren't removed from the linkedTo-list during saving, because that causes gaps to become unlinked with the hulls between docking ports when starting a campaign round.
- Hull rechecks are disabled on docking port gaps, because moving linked subs into place may cause the gaps to become unlinked if they're positioned in a certain way (for example in some subs the hulls between the docking ports end up inside the gap).
- Dockingports only connect the waypoints linked to their gap to each other, instead of every waypoint that happens to be inside the gap.
2018-08-29 13:38:56 +03:00
Joonas Rikkonen 48e14347a3 Fixed projectiles colliding with railguns due to 1e02d74 2018-08-24 14:18:51 +03:00
Joonas Rikkonen afc2e63b55 Client-side door state prediction fix: the clients wouldn't set the door to the correct state if the predicted state was the same as the door's previous known correct state, even if the latest state sent by the server was different (= a convoluted way of saying that door syncing works correctly now with complex door setups like the ones in SS Odyssey, see #579). 2018-08-23 14:57:13 +03:00
Joonas Rikkonen 012245fbaa Items outside the sub cannot be deattached. Closes #562 2018-08-20 20:42:57 +03:00
Joonas Rikkonen 898e8dfdb1 Added a property for locking connection panels (better than the old hacky way of changing the required item to something else). Locked panels can still be rewired in the sub editor. Closes #679 2018-08-20 20:12:33 +03:00
Joonas Rikkonen 8d5e5a8a15 Fixed characters being able to aim with items that have no aimPos configured (causing them to hold two-handed items like shells an crates in one hand when holding the aim button). Closes #613 2018-08-13 17:14:49 +03:00
Joonas Rikkonen d98de2c305 Fire probability and the voltage required for a PowerTransfer item to take damage can be configured in the xml. Docking ports & hatches don't get broken by excess voltage. Closes #589 2018-08-11 17:09:36 +03:00
Joonas Rikkonen f99bec4ed2 If the distance is excessively large when forcing the collider of a dead character to follow the body, the collider is teleported instead of moving it by setting the velocity. + More physics error logging 2018-08-09 14:13:08 +03:00
Joonas Rikkonen f697ec7582 Melee weapons don't stop the swing when they hit the first target (but only damage each target once per swing). Fixes weapons not hitting the target in tight spaces due to touching the ceiling/walls first, and allows hitting multiple characters with one swing. Closes #622 2018-08-09 12:55:52 +03:00
Joonas Rikkonen 45939a9144 Fixed oxygen tank & welding fuel tank crafting causing everyone to desync. The item condition NetEntityEvent was created before the spawn event of the item, preventing clients from reading the condition event because the item doesn't exist yet. Closes #617 2018-08-09 12:08:47 +03:00
Joonas Rikkonen 2f0236d99b Fixed PowerContainer RechargeSpeed being capped to the MaxRechargeSpeed set in the prefab due to RechargeSpeed being loaded before MaxRechargeSpeed. Closes #612 2018-08-08 15:56:19 +03:00
Joonas Rikkonen 5e093faaa2 Fixed max recharge speeds of PowerContainers resetting to the default value after saving and reloading a sub. Closes #605 2018-08-08 11:27:03 +03:00
Joonas Rikkonen 4aeaf93af8 Fixed engines trying to apply infinite force to the submarine if MinVoltage is set to zero. 2018-08-07 14:36:08 +03:00
Joonas Rikkonen 4b0c54d664 Dockingport gap linking fixes. Closes #551
- Dockingports force the hatch/door gaps to be connected to the hulls between the ports, because connecting them automatically may fail if the ports are positioned in a non-standard way.
- Gaps don't recheck hulls in OnMapLoaded if rechecks have been disabled.
- Item.UpdateHulls and Gap.UpdateHulls are not called when OnMapLoaded is called during ruin generation.
2018-08-07 12:45:45 +03:00
Joonas Rikkonen cfc03f8443 Controllers can't focus the camera on broken items (none of the current focusable items can break but may be useful for modders). Closes #590 2018-08-06 22:43:54 +03:00
Joonas Rikkonen e60ebc1930 Handling and logging exceptions thrown by ItemComponent constructors, added stack traces to a couple of error messages 2018-08-06 14:53:28 +03:00
Joonas Rikkonen 6a415afaa1 Merge branch 'master' of https://github.com/Regalis11/Barotrauma 2018-08-06 10:53:25 +03:00
Joonas Rikkonen 141b77f838 Fixed connectionpanel syncing. Closes #575 2018-08-06 10:50:32 +03:00
Joonas Rikkonen a69c52b3c1 Fixed servers failing to write network events for wires with too many nodes, causing clients syncing to fail and everyone getting kicked out due to desync. Now the wire events are split into multiple events, and there's a hard cap (255) on the number of nodes per wire. Closes #563
+ Writing too much data into an event no longer breaks event syncing completely, if it happens the server just logs an error and writes an empty event.
2018-08-03 21:32:28 +03:00
Joonas Rikkonen 9ab5d76ed1 Fixed attachable items dropping on the ground when deattaching them (but still staying in the inventory of the character detaching them). Closes #559 2018-08-02 12:18:03 +03:00
Joonas Rikkonen 1379460ad9 Fixed holdable components reverting their RequiredItems back to the prefab values during loading. Closes #557 2018-08-02 11:22:49 +03:00
Joonas Rikkonen 274a29bada Fixed fabricated items always appearing to be in full condition client-side (e.g. oxygen tanks which should be empty after being fabricated). Cherry-picked from 64896b0f. Closes #561 2018-08-02 10:50:38 +03:00
Joonas Rikkonen 7f58e4619b Merge pull request #560 from ursinewalrus/placeItemsWhereHandIs
Place items where hand is
2018-08-02 10:44:45 +03:00
Josh Kerxhalli-Kleinfield 8c8d3e300f Comment update 2018-08-01 19:07:35 -05:00
Joonas Rikkonen 5a6a8e2501 Wifi components can't communicate with the enemy sub in combat missions. Fixes #554 2018-08-01 13:52:47 +03:00
ursinewalrus bec2cd5323 more accurate placement 2018-07-31 19:46:55 -05:00
ursinewalrus d8559ad63c attaches item to wall where hand is, not at center of body 2018-07-31 18:50:38 -05:00
Joonas Rikkonen 82103cf394 Controllers don't have to be wired directly to an item for camera focus to work (= railguns and cameras can be used over wifi). Closes #535 2018-07-31 15:03:20 +03:00
Joonas Rikkonen d81ee1a27e Added a bunch of checks to make sure a normalized zero vector (= NaN, NaN) is not used in any position/velocity/movement calculations. There were at least three places where it was causing problems according to error reports: when a character that can't enter a sub spawns at the center of a hull and when using an underwater scooter or throwing something while the cursor is at the position of the character, but there were tons of other places as well where it may have potentially caused physics errors. 2018-07-31 12:28:04 +03:00
Joonas Rikkonen 60a563fe75 EntityEvent fixes:
- Clients wait for midround syncing to finish before applying the remote state to connection panels and inventories (because the wires connected to the connection panel or items in the inventory may not exist before the EntitySpawner events have been received).
- Server writes 0 as the projectile ID if the projectile doesn't exist anymore when a Turret event is sent.
- More info in networkevent error messages.
2018-07-30 13:35:26 +03:00
Joonas Rikkonen 50603b72f4 Fixed another bug in DockingPort that caused entity ID mismatches. Even though the server sent the IDs of the CURRENT hulls and gap of the docking port, they are not necessarily created in the correct order during midround syncing and may end up replacing the ID of another entity or another entity spawned after them may cause their IDs to be replaced. Closes #530 2018-07-26 12:42:29 +03:00
Joonas Rikkonen 4a8845c604 Fixed docking ports creating duplicate hulls and gaps during loading 2018-07-24 13:21:36 +03:00
Joonas Rikkonen 65b8d2d36e Fixed door gaps being removed twice when unloading a sub (in door.Remove and Entity.RemoveAll). Probably didn't cause any issues other than unnecessary console warnings. 2018-07-24 13:19:07 +03:00
Joonas Rikkonen 3b6bedb180 Fixed clients not recreating docking port hulls/gaps when receiving a network event if the docking port is already locked 2018-07-23 23:27:27 +03:00
Joonas Rikkonen 002e63f1eb Fixed entity IDs occasionally getting messed up due to the gaps and hulls created by docking ports. Clients would simply use the existing hulls and gaps when a network event for an already docked port is received, even though they may have been removed and replaced with ones with different IDs. 2018-07-23 21:36:49 +03:00
Joonas Rikkonen faf0a87cfa Added a bunch of error checks to physicsbody-manipulating code 2018-07-20 16:33:12 +03:00
Joonas Rikkonen f1c4bd3c67 - Some of the non-game-crashing error messages are sent to GameAnalytics.
- Changed crash severity from Error to Critical.
- Exception handling when loading submarine preview images.
- Checking if position is valid in Ragdoll.SetPosition.
2018-07-19 22:12:50 +03:00
Joonas Rikkonen 30a453191f Added "VulnerableToEMP" property to Powered. Can be edited in sub editor. Reactors and relays are not affected by EMP by default. Closes #495 2018-07-18 15:07:21 +03:00
Joonas Rikkonen f25fe6b504 Added some error checking & debug logging to Door.PushCharactersAway to diagnose why Math.Sign is throwing ArithmeticExceptions (see #497). 2018-07-18 14:36:00 +03:00
Joonas Rikkonen d00b52882f Added UpdateUseItem method from d253863 2018-07-18 12:14:09 +03:00
Joonas Rikkonen 41800aff77 Cherry-picked d0b61b3 from dev. 2018-07-18 11:50:09 +03:00