Commit Graph

44 Commits

Author SHA1 Message Date
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 b84c965be3 More AI fixes/improvements:
- AI characters can refuel the reactor when needed.
- AIObjectiveContainItem.CanBeCompleted returns true if the target item cannot be obtained or if the container cannot be reached.
- AI characters only weld leaks that are part of some submarine (i.e. not ruins).
2017-12-28 19:44:48 +02:00
Joonas Rikkonen d074d3d443 Crew AI fixes:
- Characters can use oxygenite shards (or any other item with an "oxygensource" tag) in diving suits/masks.
- AIObjectiveFindDivingGear doesn't count as being completed if the character has diving gear in their inventory unless the character has equipped the gear.
- AIObjectiveGetItem doesn't count as being completed if equipping the target item is required and the character hasn't equipped it yet.
2017-12-28 12:53:23 +02:00
juanjp600 c593fdb7c6 Minor networking fixes
- Don't spam the shit out of status updates (TODO: send update
immediately on drastic changes)
- Fixed some potential message misreading
- Readded homoglyph name comparison
2017-12-21 16:00:04 -03:00
Joonas Rikkonen dde320b387 Merge pull request #101 from Crystalwarrior/moRags
Body shoulder-grab, better CPR anims, CPR and Crit overhaul!
2017-12-20 19:37:38 +02:00
Juan Pablo Arce c87a582f21 Added smallitem tag to Revolver
It makes sense to be able to place it in containers IMO.
2017-12-18 19:41:34 -03:00
Alex Noir 3343185e9f Make radios drain battery when idle so they're no longer infinite when not equipped in face slot
Reduce drainage rate due to original drain rate being too quick though
However: radios will still drain battery even when dropped or put in a locker. This could be solved by either implementing a conditional into .xml which would check if a character exists,
orrrr by adding a toggle in-inventory button,
orrrr by allowing a third "toggle" param for booleans e.g. "OnUse" IsActive="toggle"
2017-12-17 23:25:17 +03:00
Joonas Rikkonen 6127bb473d - Moved character nametag visibility culling to the update method (doesn't make sense for the update rate to be tied to rendering framerate).
- Name tags on characters that are outside the camera view are automatically hidden to avoid the costly visibility checks.
- If the controlled character or the target has no head, the visibility check is done based on the position of the torso.
- Fixed sub->outside visibility checks.
- Fixed invalid attributes in the flashlight config.
2017-12-17 21:47:03 +02:00
Joonas Rikkonen 62bb5119ab Merge branch 'master' into coolthings 2017-12-17 21:11:42 +02: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
Alex Noir 0eacbce313 Tweaked crowbar to be a powerful two-handed weapon instead 2017-12-17 16:32:25 +03:00
Alex Noir a620b06831 Play a loud sound when the door is crowbarred open so everyone is alerted! (Security should know when someonoe is breaking into places without ID card)
TODO: use bump.ogg when wrenching/crowbarring is initiated
2017-12-17 15:49:16 +03:00
Alex Noir 828bde6f04 Make flashlight's idle holding position similar to that of oxygen/welding tanks so you can still use them unaimed 2017-12-17 14:18:30 +03:00
Alex Noir af53449d2d Update the size of tools.png to 64x128 as according to juanjp600, powers of two for sizes are more efficient due to memory alignment or something. 2017-12-16 20:38:27 +03:00
Alex Noir bd646fb23e Implements identity system! If your mask hides your face (e.g. oxygen mask, clown mask and diving suit), the game will either use the name of the ID card owner in your ID card slot or will give you a "?" name.
This only affects "DisplayName". The reason why I can't completely override the .Name for the client from server is due to how crew manifest and CharacterInfo classes are handled - it would require a major rework of many Character-related systems and interactions to truly make this "hack-proof".
Server hosts will have to stay on their toes I guess.
2017-12-16 19:52:25 +03:00
Alex Noir 18d75c620f Adds crowbar function to force-open doors...
***except the Door component ignores the damn requireditem and allows bare fukken hands to open it goddamnit***
2017-12-15 16:47:10 +03:00
Joonas Rikkonen 8a7af2affd Players can't use other items when a railgun controller is selected. Prevents accidentally firing weapons or hitting people with something while using the railguns.
Closes #94
2017-12-15 00:25:46 +02:00
Alex Noir 760452170e Implement ID card slot and ID card description that states the owner and his job in preparation for identity system 2017-12-14 22:57:42 +03:00
Joonas Rikkonen 58e98977df Fixes to projectiles going through walls:
- Continuous collision detection (body.IsBullet) is disabled when the body is moving slow enough, not immediately when it hits something.
- The prismatic joint that sticks projectiles to walls/characters stays active for a minimum of 1 s to prevent the projectile from immediately overshooting the joint limits and falling off (usually at the wrong side of a wall/door it hit).
- Separate properties for determining which types of bodies the projectile can stick to (character/structure/item).
- Spears and syringes only stick to characters.
- Increased syringe launch impulse.

Closes #122
2017-12-14 19:25:31 +02:00
Joonas Rikkonen 7ce93d2e1f Merge pull request #123 from Crystalwarrior/syringeGun
Syringe gun + projectile tweaks + several status effects/item components tweaks
2017-12-12 20:12:28 +02:00
Alex Noir f34968be30 Tweaked visuals a bit
Added tiny bleeding and structure damage to the syringes
2017-12-11 12:33:59 +03:00
Alex Noir a2a4225598 Added a fully functional syringe gun! Accepts syringes as ammo. Has custom sprite and sound.
Made syringes have a "projectile" component for syringe guns
Adds several missing signal components to the fabricator, as well as medical syringe to medical fabricator
Adds support for status effects applied to characters from onImpact
Removed "contained.Condition = 0.0f;" in Projectile.cs due to it limiting the possibilities of the .xml content creation
Added a couple null checks in StatusEffect.cs due to crashes caused by the new projectile changes - might need to debug further, perhaps there's a root cause?
Added itemlist console command
2017-12-10 22:17:14 +03:00
Alex Noir 55dd58579f I DID IT HOLY SHIT I GONE AND DONE IT
OnSecondaryUse is what throwing uses for doing things SPECIFICALLY on throw. This way, you can theoretically have grenades on which you'll have to pull the pin before throwing.
This also lets flares be used without the need to throw them.
did i mention my brain hurts
2017-12-10 15:56:34 +03:00
Alex Noir 00653c5aa4 Renames "OnSecondaryUse" to "OnAim" for more sense
adds new "OnHudUse" to separate normal and self use
2017-12-10 13:39:00 +03:00
Joonas Rikkonen b68cceae55 Added smallitem tag to revolver rounds
Closes #65
2017-12-03 22:56:53 +02:00
Joonas Rikkonen f0225e4312 Chemicals and explosives can be thrown. Nitroglycerin & flash powder explode on impact, no effect on other items yet (implement applying status effects when the item hits someone?) 2017-12-03 01:10:26 +02:00
Joonas Rikkonen 9e5f503659 Added minor damage protection to diving suit 2017-12-03 01:07:04 +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 1d4327b690 Diving suits cover feet (fixes characters receiving damage almost exclusively to their feet when wearing a diving suit) 2017-12-02 15:35:29 +02:00
Joonas Rikkonen 51fe7df481 Railgun HUD (shows supercapacitor charge & how many shells there are left) 2017-11-27 19:34:57 +02:00
Joonas Rikkonen 87e9936c60 Captains spawn with a revolver and 2 rounds, heavier harpoon gun recoil & impulse when the spear hits someone. 2017-10-18 23:59:36 +03:00
Joonas Rikkonen 142920d704 - Added sprites for damaged doors.
- Fixed destroyed doors being impossible to repair because the repair tool raycasts wouldn't hit the disabled body of the door.
- Destroyed doors don't cast shadows and the body isn't re-enabled until the door is restored to 50% health.
2017-10-12 19:45:49 +03:00
Joonas Rikkonen a740bf9a56 Added oscillators (a signal component that sends out a periodic pulse, sine wave or a square wave) 2017-10-04 20:18:01 +03:00
Joonas Rikkonen 6c7c97a875 Replaced the placeholder C4, detonator & grenade sprites 2017-09-28 19:00:59 +03:00
Joonas Rikkonen 1311a286f5 Added battery recharge docks, moved applying OnActive statuseffects to the Powered itemcomponent, removed smoke particles from stun baton hit effect 2017-09-03 16:57:32 +03:00
Joonas Rikkonen c7ae91da42 Added "state_out" connections to relay components 2017-08-31 16:45:04 +03:00
Joonas Rikkonen 4bdbf05875 - The range and volume of sounds emitted by StatusEffects can be changed and they can be set to loop.
- StatusEffect sounds are configured as child elements of the StatusEffect (instead of attributes).
- Background sprites can emit sounds.
2017-08-24 19:56:31 +03:00
Joonas Rikkonen 4a460ff150 - The emission rate of ParticleEmitters can be set as particles per second (instead of particles per frame).
- Particles that are outside the sub aren't visible inside hulls even if they overlap with the sub.
- ParticleManager takes the movement of the particles into account when determining which particles to cull. For example, a particle that will move upwards can be emitted even if it's below the camera view.
2017-08-20 19:05:25 +03:00
Joonas Rikkonen d4b58e16b9 Fire & explosion decals 2017-07-08 18:30:07 +03:00
Joonas Rikkonen c7fd6818a4 Some tweaking to the item interaction logic:
- FindItemAtPosition uses the distance calculated in CanInteractWith to determine how close an item is to the character. Otherwise very large items (such as ladders) wouldn't be possible to select with aim assist unless the player happens to be holding the cursor close to the center of the item.
- The hull-parameter is taken into account in FindItemAtPosition.
- Characters are considered to be inside a trigger if either their lower or upper body is inside it.
- Added triggers to engines because they are often placed partially inside a wall, making it impossible to rewire them if the center is not inside the sub.
2017-07-05 20:15:02 +03:00
Joonas Rikkonen bf5a0746ad Merge branch 'master' of https://github.com/Faerdan/Barotrauma into Faerdan-master
Conflicts:
	Barotrauma/BarotraumaClient/Source/Map/MapEntity.cs
	Barotrauma/BarotraumaClient/Source/Screens/GameScreen.cs
	Barotrauma/BarotraumaShared/Source/Characters/Character.cs
	Barotrauma/BarotraumaShared/Source/Items/Item.cs
2017-07-05 19:32:34 +03:00
Joonas Rikkonen 9b054ebd50 Added an artifact that attracts creatures, item max health can be changed & items can be made indestructible 2017-07-04 22:10:30 +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