Joonas Rikkonen
a415f1fe23
Fixed AI characters being able to attack through walls. Closes #901
2018-11-11 19:11:20 +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
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
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
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
571ed150fe
Ragdolls can't be dragged through walls or other colliders. Closes #772
2018-09-10 16:14:44 +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
Joonas Rikkonen
3747852c13
Removed the Entity.MoveWithLevel property, fixed artifacts and other items from ruins not being saved. Closes #694
2018-08-20 16:23:40 +03:00
Joonas Rikkonen
b1f8de887c
Clients use the Revive method instead of just setting health above zero when the host revives a character. Fixes dismembered characters staying dismembered client-side.
2018-08-15 11:52:48 +03:00
Joonas Rikkonen
fe8a22a4f8
Characters can't hold things in severed hands, limb bodies are re-enabled when reviving a character. Closes #529
2018-08-15 11:46:43 +03:00
Joonas Rikkonen
4866a89253
Servers can disable the disguise feature. Closes #568
2018-08-14 16:06:23 +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
1a5a76746b
Fixed handcuffed players being able to perform CPR and grab/drag bodies. Closes #608
2018-08-08 12:01:20 +03:00
Joonas Rikkonen
67527df8ab
Removed duplicate bleed code in Character.Update. Closes #609
2018-08-08 11:33:06 +03:00
Joonas Rikkonen
865b35c6cd
Fixed "attempted to access a removed AITarget" errors in AIObjectiveIdle
2018-08-07 16:49:17 +03:00
Joonas Rikkonen
4ebe3d715e
Characters stay alive for 30 seconds after a client disconnects, and if the client rejoins during that time they regain control of the character. Closes #42
2018-08-06 13:38:39 +03:00
Joonas Rikkonen
2f5ca65542
Fixed nullref exceptions when a character dies while holding an item.
2018-08-03 19:54:58 +03:00
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
5a6a8e2501
Wifi components can't communicate with the enemy sub in combat missions. Fixes #554
2018-08-01 13:52:47 +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
9880a74218
Added check for removed AITarget to EnemyAIController.UpdateEscape
2018-07-20 16:37:41 +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
49c6b177e3
Added wrapper methods that check if user statistics are enabled to GameAnalyticsManager
2018-07-20 12:05:13 +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
89b26008a6
Projectile damage range is set to the radius of the item's collider if the range is not given in the xml. Structure.AddDamage uses the edges of the sections to calculate the distance to a damage source, i.e. the damage area only has to "touch" the section to do damage. Closes #479
2018-07-16 15:44:26 +03:00
Joonas Rikkonen
015eacbcb0
Fixed GameAnalytics thread becoming active despite user statistics being disabled, causing the game to stay active in the background when quitting.
2018-07-13 11:29:11 +03:00
Joonas Rikkonen
4f874a276b
Fixed crashes caused by characters with no AI config due to missing SteeringManagers. Closes #469
2018-07-13 11:01:42 +03:00
Joonas Rikkonen
c7e220d222
Collecting some more usage statistics: selected game mode, mission, submarine, content package, traitors on/off, kills
2018-07-10 15:49:08 +03:00
Joonas Rikkonen
bb31fd1e73
Moved some client-specific limb code to the client project, dripping water particles when characters get out from water
2018-05-21 19:17:34 +03:00
Joonas Rikkonen
ceaba2f5ca
Fixed some entities occasionally not being removed at the end of a round. CargoMission removed the cargo items at the end of a round without checking if the items have already been removed, which could cause another entity to be removed from the entity dictionary if it's taken the ID of the cargo item. This prevented the new entity from being removed in Entity.RemoveAll, causing errors during the next round. Closes #278
2018-04-23 13:55:08 +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
eed7b72b4e
Fixed player-controlled creatures being able to do damage to themselves and RepairTools causing damage to the user regardless of the user's skills.
2018-04-18 15:04:18 +03:00
Joonas Rikkonen
276798d88b
Fixed null exception in IndoordsSteeringManager. Closes #326
2018-03-10 18:47:59 +02:00
Joonas Rikkonen
df746db421
Ladders can be climbed by holding up/down while standing next to them without having to select them first.
2018-03-08 11:01:17 +02: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
07d3d69040
Equipped items can be swapped by double-clicking, fixed inventories getting messed up when swapping multi-slot items fails (e.g. drag a jumpsuit on an equipped diving suit).
2018-03-02 15:24:54 +02:00
Joonas Rikkonen
10189254b5
GrabLimb type is written in character network messages as byte instead of UInt16
2018-03-01 23:43:10 +02:00