Commit Graph

2484 Commits

Author SHA1 Message Date
Joonas Rikkonen 98e05e8483 Prevent ruins from overlapping with each other or ending up above the upper boundary of the level. Closes #894 2018-11-12 13:48:23 +02:00
Joonas Rikkonen a415f1fe23 Fixed AI characters being able to attack through walls. Closes #901 2018-11-11 19:11:20 +02:00
Joonas Rikkonen 912da3f4f6 Made FindHull methods inclusive by default (= a position exactly at the edge of a hull is considered to be within the hull). Fixes characters being considered outside when they're exactly at the edge of 2 adjacent hulls, which sometimes caused the camera to twitch inwards and the character to get wet when moving between docked subs. 2018-11-11 17:23:22 +02:00
Joonas Rikkonen 329928fc8f Fixed characters occasionally getting teleported outside the sub for a few frames when moving between docked subs. Closes #546 2018-11-11 17:19:00 +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 a85b496f23 WIP fixes to ragdoll simple physics mode (see #895). When simple physics is enabled, only the collider of the character moves and all the limbs and joints are disabled. This caused "attempted to move pulljoint anchor extremely far" errors, because the game still attempted to move the limbs to the collider via pull joints. TODO: do more testing to make sure simple physics doesn't cause other physics errors, fix dragging in simple physics mode. 2018-11-09 14:29:25 +02:00
Joonas Rikkonen 083d88a64f Fixed lightcomponent sprites & broken sprites not being mirrored. Closes #893 2018-11-08 15:32:57 +02:00
Joonas Rikkonen 20da81e5dc Fixed player's character staying in the unsynced state when rejoining while the character is dead/unconscious. Closes #857 2018-11-05 12:41:11 +02:00
Joonas Rikkonen 1b4b5bb2e7 Fixed conditions being ignored on delayed status effects. Closes #866 2018-10-30 20:13:54 +02:00
Joonas Rikkonen 33d971f5d0 Fixed OnBroken & OnImpact statuseffects not being applied client-side 2018-10-29 20:38:43 +02:00
Joonas Rikkonen 224e9238db EntityEvents are written and sent even if the entity has been removed at the time of writing. Otherwise the clients may not receive some important events, e.g. when an item applies a statuseffect to something or triggers an explosion and is removed immediately afterwards. I'm not 100% confident that this won't cause any additional issues, so it still needs more testing. See #839 2018-10-29 20:38:10 +02:00
Joonas Rikkonen 9d92b696f0 Fixed clients getting kicked if they receive an entity event that's more recent than the one they're expecting. This happens often even when there's no actual error, for example if the client happens to receive messages in an incorrect order (the messages are sent using the Unreliable delivery method). Instead of getting themselves kicked, the clients should just ignore the event and wait until they receive the correct one. 2018-10-28 21:12:30 +02:00
Joonas Rikkonen ef9afedf42 Added a level equality check to client error handling to make it easier to diagnose bugs like #848 in the future. 2018-10-18 00:18:57 +03:00
Joonas Rikkonen 9f7fbb0cbe Fixed client error reporting 2018-10-17 23:48:00 +03:00
juanjp600 13dc008cb5 Client communicates event syncing errors to the server
This should help
2018-10-16 17:11:20 -03:00
Joonas Rikkonen 6bad59dfba v0.8.2.1 2018-10-14 22:46:22 +03:00
Joonas Rikkonen 2b1dacbf2f The ActionType of an Attack's statuseffect is considered "OnEating" instead of "OnUse" if the target is dead. Prevents husks from gaining health by attacking corpses (which allowed players to huskify themselves on purpose and stay alive indefinitely). 2018-10-08 11:23:52 +03: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 bff2852cb6 Fixed submarine waypoints getting mirrored in mirrored levels (cherry-picked from c785732) 2018-09-21 14:05:22 +03:00
Joonas Rikkonen c4c18fbfd7 Fixed main path waypoints not getting mirrored in mirrored levels (cherry-picked from 295fc31). 2018-09-21 12:45:33 +03:00
juanjp600 e578cbc077 Explosions now use Character.Controlled.WorldPosition to determine camera shake 2018-09-19 14:57:22 -03:00
Joonas Rikkonen a7515cc400 Merge pull request #798 from BlueTheKing/patch
Changes to Oxygenite Tank's tag and sprite
2018-09-16 15:27:15 +03:00
Blue ad6e48784e Delete Thumbs.db 2018-09-14 17:18:29 +02:00
Blue 50bed0f1ca Changed oxygenite tank's sprite to make it more noticeable 2018-09-14 17:10:47 +02:00
Blue 6e6a6c8d56 Oxygenite Tank tag changed
"meditem" --> "smallitem"
2018-09-14 16:30:15 +02:00
Blue 33ed7eb390 Merge pull request #4 from Regalis11/master
Synced
2018-09-14 16:08:54 +02:00
Joonas Rikkonen bf87006bc3 Attempt to fix items dropping client-side when moving them from inventory another (#558).
The clients delay applying the received remote state of an inventory they just put an item inside, because otherwise the inventory may revert to an old state if items are moved in rapid succession. I think the problem was that the delay was not applied to the inventory the item is _taken from_, so it was possible that the clients applied an old delayed state even though an item had just been moved out of the inventory. Another problem was that the server didn't create an event for the inventory the item was removed from, so if there were any wrong items in a client-side inventory, they would just be dropped instead of being moved back to the correct inventory.
2018-09-12 15:22:52 +03:00
Joonas Rikkonen a403ca44c5 Fixed inventory sync delay being decremented in two places, causing the delay to be 0.5 seconds instead of the intended 1 s. Closes #788 2018-09-12 14:16:06 +03:00
juanjp600 ae70b973dd Changed TextureLoader.PreMultiplyAlpha return type to void 2018-09-10 18:09:26 -03:00
Joonas Rikkonen 89c8de8b27 Dropped flashlights don't consume battery (and turn off automatically). Closes #775 2018-09-10 18:33:33 +03:00
Joonas Rikkonen 571ed150fe Ragdolls can't be dragged through walls or other colliders. Closes #772 2018-09-10 16:14:44 +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 57c9e5a731 Fixed IndexOutOfRange exceptions when cloning items with requiredItems that aren't present in the xml, + some more exception handling & error logging 2018-09-10 12:06:39 +03:00
Joonas Rikkonen 2b3c0d103b Fixed NotImplementedException when attempting to clone linked submarines 2018-09-10 11:40:06 +03:00
Juan Pablo Arce 8e7cd8e5f3 Added space and exclamation point to default AllowedClientNameChars 2018-09-09 01:02:54 -03:00
Joonas Rikkonen 6e606fdc51 Fixed incorrect rotation of welding tools and other 2-handed items that are held in one hand when not aiming. The items were rotated according to the left hand, but positioned on the right hand. 2018-09-03 15:15:27 +03:00
itchyOwl 5d2a193471 Line endings. 2018-09-03 10:23:36 +03:00
Joonas Rikkonen 4e1f6c56ca v0.8.2.0 2018-09-02 20:41:22 +03:00
Joonas Rikkonen 87002f8e00 Added a gitattributes file that defines CRLF as the line ending for code files (cherry-picked from 1ebfc9e) 2018-09-02 19:26:36 +03:00
Joonas Rikkonen 565f14801b Normalized line endings to CRLF 2018-09-02 19:25:48 +03:00
Joonas Rikkonen bc7eb21365 Fixed railguns being impossible to rewire because of the collider 2018-08-30 11:32:02 +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 7eed555522 Another docking port fix: EntityGrids are made slightly larger than the borders of the submarine, because docking ports may create gaps and hulls outside the borders, causing FindHull to fail and characters to get teleported outside the sub when from sub to another. Closes #551, hopefully for good now! 2018-08-29 14:50:44 +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 6cb2a7260c Clients dispose fileTransfers when shutting down (otherwise the files will stay open and cause "used by another process" exceptions when attempting to receive them again) 2018-08-21 16:43:05 +03:00
Joonas Rikkonen f09fcfc3be Fabricators show the list of required items even if the character doesn't have the skills to craft the item. Closes #717 2018-08-20 21:19:18 +03:00