Commit Graph

34 Commits

Author SHA1 Message Date
Joonas Rikkonen 0844f1eae4 (8e2e6e4da) Physics error prevention: - Use the ApplyForce/ApplyImpulse method overrides that clamp the resulting velocity to a value (in this case NetConfig.MaxPhysicsBodyVelocity, 64 m/s). Without this, explosions and attacks for example could apply arbitrarily large forces to bodies, causing physics errors in Ragdoll.CheckValidity. - Make sure angular velocity still has a sane value after applying an impulse to a specific point of a collider. 2019-04-03 16:21:22 +03:00
Joonas Rikkonen b2c71e92c0 (f37be42bb) Fixed severed limbs occasionally noclipping into the submarine 2019-04-02 12:40:36 +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 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 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 5ec6a7fba9 (325184804) Fix distance based attacks not registering if they hit a submarine. 2019-03-25 19:49:05 +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 3301bed442 409d4d9...aeafa16 (merge human-ai) 2019-03-18 22:52:17 +02:00
Joonas Rikkonen 044fd3344b 2f107db...5202af9 2019-03-18 21:42:26 +02:00
Joonas Rikkonen 6c0679c297 38f1ddb...178a853: v0.8.9.1, removed content folder 2019-03-18 20:39:27 +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 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 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 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 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 7187c277e7 Merge branch 'master' into moStuff 2018-01-09 10:38:06 +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
Alex Noir 2cb0ee73be Adds footstep sound variety, makes diving and clown suits have unique footstep sounds!
https://puu.sh/yQ8fs/61e12f15c6.webm
TODO: Get rid of the "damagesoundtype" system and replace it with simple "tag" checking to allow customizability from content pack side
Fix damagemodifier sounds never being played (I've never once heard LimbArmor play on anything but mantis)
2017-12-29 17:41:18 +03:00
Joonas Rikkonen bc6c828a14 Option to make limb attacks do damage based on contact with physics bodies instead of distance. Attacks also do damage to all sections of a structure that are within damage range. Closes #108 2017-12-26 20:02:33 +02:00
Joonas Rikkonen 243b3843b8 Fixed worn items being assigned multiple times to the same limb when equipping an item that takes up multiple slots, causing damagemodifiers to be applied multiple times. + DamageModifiers with the damage type "None" don't affect damage.
Closes #68
2017-12-05 01:01:55 +02:00
Joonas Rikkonen 04bcc6b9b1 Modifications to the damage/armor system:
- Armor values aren't reduced from the damage taken, but instead multiply the damage (e.g. an item reduces damage by 10% instead of 10 hp). Now armor doesn't make characters invulnerable to small amounts of damage.
- Armoring isn't defined as a single "armor value", but instead there are "damage modifiers" which can be added to items and limbs. The modifiers can only affect specific types of damage and have separate multipliers for the damage amount and bleeding amount.
- Having a fire proof item on a limb doesn't make that limb invulnerable to burn damage. Item's that protect against fire now have a damage modifier for the Burn damage type.
2017-12-02 15:42:13 +02:00
Joonas Rikkonen 69d0fac69d Made the damage range of limb attacks configurable (instead of having it always be half of the distance at which the attack activates) and tweaked the damage ranges of all the creature attacks 2017-11-01 20:42:25 +02: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 379c65e07d Fixed dedicated servers ignoring armor 2017-07-24 19:12:18 +03:00
Joonas Rikkonen 4d2e7c33b1 Decal system (TODO: add decals for explosions and fire), moved some of the client-specific Hull update logic to the client project 2017-07-06 21:38:32 +03:00
Joonas Rikkonen 64ad5e5003 Removed unnecessary using directives 2017-07-05 18:35:09 +03:00
Joonas Rikkonen e15f5a881b Merge branch 'dedicated-server' (TODO: make sure I didn't break anything)
Conflicts:
	Barotrauma/Barotrauma.csproj
	Barotrauma/BarotraumaShared/Source/Characters/AI/AIController.cs
	Barotrauma/BarotraumaShared/Source/Characters/AI/EnemyAIController.cs
	Barotrauma/BarotraumaShared/Source/Characters/AICharacter.cs
	Barotrauma/BarotraumaShared/Source/Characters/Animation/Ragdoll.cs
	Barotrauma/BarotraumaShared/Source/Characters/Attack.cs
	Barotrauma/BarotraumaShared/Source/Characters/Character.cs
	Barotrauma/BarotraumaShared/Source/Characters/CharacterNetworking.cs
	Barotrauma/BarotraumaShared/Source/Characters/Limb.cs
	Barotrauma/BarotraumaShared/Source/Events/MonsterEvent.cs
	Barotrauma/BarotraumaShared/Source/Map/Explosion.cs
2017-06-30 21:02:52 +03:00
juanjp600 4d225c65f2 Updated to MonoGame 3.6 + Directory refactor
- Barotrauma's projects are in the Barotrauma directory
- All libraries are in the Libraries directory
- MonoGame is now managed by NuGet, rather than referenced from the installed files (TODO: consider using PCL for easier cross-platform development?)
- NuGet libraries are not included in the repo, as getting the latest versions automatically should be preferred
- Removed Content/effects.mgfx as it didn't seem to be used anywhere
- Removed some references to Subsurface directory
- Renamed Launcher2 to Launcher
2017-06-27 09:52:57 -03:00