Commit Graph

54 Commits

Author SHA1 Message Date
Joonas Rikkonen 9099b191d0 Fix (or a workaround) to characters teleporting inside/through colliders when leaving a sub (see #552). Gaps do a raycast out from the sub to see if there are obstacles outside, and if so, ragdolls place a collider at the corresponding position inside the sub. The collider is simply a straight axis-aligned line atm, so it doesn't work accurately with sloped ice/submarine walls, but does prevent the ragdoll from ending up inside the obstacles. TODO: use a few edges to approximate the shape of the obstacles more closely? 2018-08-02 16:48:51 +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 7977e47359 Fixes 2018-07-23 19:24:44 +03:00
Joonas Rikkonen 25a62b3a51 More physics error checks, ragdoll clamps the velocity returned by PhysicsBody.CorrectPosition to prevent applying excessively high velocities to the collider if the position has changed significantly between frames 2018-07-23 17:58:02 +03:00
Joonas Rikkonen a373c589d1 Fixed ragdoll dropping away from the collider if it's freezed while swimming (e.g. if a client disconnects when in water) 2018-07-23 17:44:32 +03:00
Joonas Rikkonen 5ebfde72de Fixed ragdoll collision categories not being updated when CheckDistFromCollider re-enables limb collisions. Fixes #508 2018-07-22 16:00:32 +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 20ed61a879 Version string sent to GameAnalytics includes the name and hash of the exe (makes it easier to identify events/errors from modded games), added stack trace to a ragdoll error message 2018-07-20 12:24:05 +03:00
Joonas Rikkonen e7e7d32123 Cherry-picked 0ff9a3d (more ragdoll optimization) 2018-07-20 12:21:53 +03:00
Joonas Rikkonen 15331c58bb Cherry-picked fa84c5b (ragdoll optimization) 2018-07-20 12:08:18 +03:00
Joonas Rikkonen f822e77241 Checking if the position is valid in Ragdoll.FindHull 2018-07-19 22:21:08 +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 d00b52882f Added UpdateUseItem method from d253863 2018-07-18 12:14:09 +03:00
Joonas Rikkonen 177f31d538 Some more logging to help diagnose #278, a potential workaround to remove items/characters that Entity.RemoveAll failed to remove for some reason. 2018-04-20 16:50:10 +03:00
Joonas Rikkonen 4421c8a5de Fixed camera shake continuing indefinitely if a character falls unconscious due to impact damage 2018-03-08 10:43:54 +02:00
Joonas Rikkonen 6ddcd65f18 RepairTools can do damage to characters by hitting the collider. Closes #299 2018-03-05 12:34:21 +02:00
Joonas Rikkonen b49f47d3d9 Ladder waypoint generation fix: waypoints are not just placed at the top and bottom of the ladders (and at hatches on the ladders), but above every platform along the ladders (-> waypoints work correctly on ladders spanning through multiple floors). + Some ladder climbing fixes in IndoorsSteeringManager. 2018-03-02 17:45:13 +02:00
Joonas Rikkonen 2b4c01d18b Fixed debug assertion fail in World.Raycast if a limb is (almost) exactly at the position of a character's collider when calling TrySetLimbPosition. 2018-03-01 22:07:18 +02:00
Joonas Rikkonen 9f6868eaaa Fixed crashing when attempting to perform CPR _as_ a headless character. 2018-03-01 10:17:32 +02:00
Joonas Rikkonen 38e80be05d Some more debug logging 2018-02-28 18:04:40 +02:00
Joonas Rikkonen 795b2e4cad Fixed crashing when attempting to perform CPR on a character with no head. Closes #294 2018-02-27 15:01:53 +02:00
Joonas Rikkonen 7f740c2f67 Attempt to diagnose issues #278, #284 and #291. It appears that the game attempts to access the Limbs-field of a ragdoll after it's been set to null (which should only happen when the ragdoll is removed). 2018-02-26 15:06:00 +02:00
Joonas Rikkonen 24cb7a3659 Husk infection state can be decreased after the infection reaches the active state (causing the husk appendage to be removed). Calyxanide still has a conditional preventing the decrease, but now it's possible for modders to revert huskification without code modifications. Closes #258 2018-02-21 11:12:49 +02:00
Joonas Rikkonen 60ad5ed3fb Reverted b26b6a74. Making stunned characters receive damage from limb impacts caused them to suffer excessive amounts of damage when falling or getting thrown around when the sub hits something (e.g. a moloch attacking a sub could easily kill crew members by bumping the sub and falling down the stairs was often a death sentence). In general I don't think it's a good idea to apply impact damage from limb impacts, because the limbs may occasionally move or rotate at very high velocities due to the animations. 2018-02-05 11:16:03 +02:00
Joonas Rikkonen e2c7b684de Fixed character limb rendering order not being consistent (limbs with the same depth value being randomly drawn behind or in front of each other) 2018-01-11 13:32:21 +02:00
Joonas Rikkonen 7187c277e7 Merge branch 'master' into moStuff 2018-01-09 10:38:06 +02:00
Joonas Rikkonen 1aa654a5a3 Severed joints can't be severed again (fixes severed limbs constantly emitting gore particles at the clients' side due to the constant status update messages) 2018-01-08 16:35:53 +02:00
Alex Noir 32a2b38112 Removed DamageSoundType and replaced it with a string "tag" instead to allow mod creators to create custom damage sounds
Fixed damagemodifier sounds being completely ignored due to a variable misname
Added structure damage possibility for melee weapons so you can break down windows with a crowbar in spectacular fashion (it's clearly a very inferior method to plasma cutters though)
Clown hitsounds are in now which is awesome. Beat up some clowns!
2017-12-30 13:46:59 +03:00
Joonas Rikkonen bcd2582cf9 - More gore particles when severing limbs!
- Explosions can sever limbs even if the target character is dead. Now explosive projectiles can explode creatures into pieces even if the creature dies of the initial projectile impact and not the explosion.
- Disabled blood particles on carriers and fractal guardians.
2017-12-29 21:06:11 +02:00
Joonas Rikkonen a8749f3d87 Fixed characters dragging husks by their tongue when GrabLimb is set to None, removed hardcoded texts from the grab button. Closes #210 2017-12-29 15:51:37 +02:00
juanjp600 07626a1989 Merge branch 'master' of https://github.com/Regalis11/Barotrauma
Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs
2017-12-20 19:46:53 -03:00
Joonas Rikkonen 9ed2871ede Renamed a couple of properties for consistency & removed unnecessary CPR blood particle scaling 2017-12-20 20:26:22 +02:00
Alex Noir e56f5c4946 what started as a fix of https://github.com/Regalis11/Barotrauma/issues/103 ended up being a huge CPR overhaul. oops.
CPR:
There's now a difference between CPR on bleeding, CPR on hurting and CPR on oxygen deprivation.
If you try to CPR bleeding people, it will make bloody sounds and particles while hurting them. So don't.
If you CPR people with less than 0 health, it will do RNG based on your skill level to bring them back to life with 2 HP.
Otherwise if you CPR their oxygen back, chest pumps will simply prevent oxygen deprivation and mouth-to-mouth will bring back their oxygen while taking yours based on the skill level.

Crit:
Changed it so you always lose oxygen when critical. Your heart stopped either way!
2017-12-19 22:11:45 +03:00
Alex Noir 1e5b25bd1a Merge branch 'master' into moRags 2017-12-17 22:41:45 +03:00
Joonas Rikkonen a5d6da31a4 Holdable items can be held in any limb slot, not just hands. + Characters can hold a flashlight in their mouth. 2017-12-17 20:42:31 +02:00
juanjp600 1cb39f7fd5 Fixed some inconsistencies and oddities in physics-handling code
I'm not sure if this fixes or breaks anything, but it's worth a shot.
2017-12-15 18:11:00 -03:00
juanjp600 c4e894cb2e Fixed camera going insane when dropping through hatches
TODO: make the game less rubberbandy
2017-12-12 21:08:37 -03:00
juanjp600 23b220b6af Sync character collider rotation, try to make collider face the main limb by instantly flipping it if the angle's too wide, client-side ragdoll correction is more aggressive 2017-12-12 17:58:49 -03:00
Alex Noir e050404278 Carrying stunned/unconscious/dead people up ladders woot!!!
Properly orient grabbed player on climbing and shoulder grab
Allow interaction with buttons, ladders, etc. when grabbing someone
2017-12-08 22:30:47 +03:00
Alex Noir 8788efa007 Merge remote-tracking branch 'origin/master' into moRags 2017-12-08 14:43:56 +03:00
Alex Noir 48fb3d58b9 Let players choose to grab onto the body's torso!
Better CPR animations
todo: network the limb targeting
2017-12-08 13:47:27 +03:00
juanjp600 a272d22de8 Players can now pick up corpses to eat them 2017-12-06 17:57:58 -03:00
Alex Noir 4a8e411a70 Fixed carrying stunned people being a severe case of a major ass pain by carrying over the "stairs" from the carrier.
Added "CarriedBy" property, publicized CarriedCharacter and CarriedBy, synced CarriedCharacter and CarriedBy for cool points
Publicized Stairs property
2017-12-06 18:58:18 +03:00
Alex Noir b26b6a7418 Fixed ragdolled players suffering less impact damage than non-ragdolled one.
Also fixed limb impact sounds on the clientside for ragdolls
2017-12-05 23:03:40 +03:00
Alex Noir f37323e9a8 Fixed dragging thru stairs being annoying as hell (this line of code made it impossible to carry a body thru stairs on ground level without holding Down all the time) 2017-12-05 21:38:07 +03:00
Joonas Rikkonen f46dc5da28 Water flow logic tweaking:
- Less fluctuation, water doesn't constantly flow back and forth through gaps.
- Flowing water pushes characters around much more heavily, and the force is applied to the collider in addition to the limbs.
- Vertical gaps don't push characters up/down unless the character is roughly above/below the gap.

+ Renamed some fields in the hull and gap classes (Volume -> WaterVolume, FullVolume -> Volume, public fields start with a capital letter)
2017-10-10 21:07:45 +03:00
Joonas Rikkonen 1ff2054ca8 Converted the GetAttribute methods in the ToolBox class to extension methods 2017-10-04 18:38:40 +03:00
Joonas Rikkonen 8c3c689596 - Fixed creatures being able to sever non-severable limb joints (which caused syncing issues when the waist->torso joint of a humanoid was severed).
- The server creates an entity event when a joint is severed.
- Made joints severable by default.
2017-09-21 17:50:24 +03:00
Joonas Rikkonen dd86b5745a - The server doesn't disable client-controlled AI characters that are far from all other players.
- Clients aren't allowed to flip swimming FishAnimControllers unless the server says so (occasionally caused creatures to flip around constantly because the clients ignore the 1-second "flipping cooldown").
- Moved Character.ReadStatus to the client project.
2017-09-21 17:44:52 +03:00
Joonas Rikkonen 49003c465c Aiming syncing fix: aiming angle is calculated from the position of the shoulder towards the cursor (or a position within the collider that's roughly at the shoulder). 2017-07-18 18:33:30 +03:00