Commit Graph

27 Commits

Author SHA1 Message Date
Joonas Rikkonen 7c9c3195bf Need to copypaste more carefully (e15fa11) 2018-04-25 20:58:11 +03:00
Joonas Rikkonen e15fa11d6e Fixed meds not being usable with a medical syringe. Closes #388 2018-04-25 16:39:12 +03:00
Joonas Rikkonen 91d6c7b91f Fixed explosives being directly usable by characters, causing them to explode when left clicking while holding them due to 9dd9425c. See #385 2018-04-24 18:00:36 +03:00
Joonas Rikkonen 9dd9425caa Explosives, chemicals and medical items disappear when their condition falls to 0 (i.e. when they're fully used).
Railgun shells, detonators and depth charges also now "use" their contents instead of destroying them. (See #322)
2018-04-03 22:43:41 +03:00
Joonas Rikkonen 55a5e9e968 Syringes are recolored according to the color of the contained medical item. Closes #256 2018-03-01 11:26:04 +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 7bbab35a0b Configured cargo containers for items, metal crates can be deconstructed, spears can be contained inside metal crates 2018-01-10 15:57:22 +02:00
Joonas Rikkonen 3956785032 Moved PropertyConditional match checking & status effect cancelling from the StatusEffect class to PropertyConditional. 2018-01-09 16:42:11 +02:00
Alex Noir 31bef06fd8 Just noticed a new, strange bug happening: https://puu.sh/yPuai/eca2a059e2.webm
Problem is, this should've been happening before even regardless of my changes. So why did it only start happening now? That'll have to be looked into.
The reason why it should be happening in theory is that in character's UpdateOxygen method, it takes hull oxygen and OxygenAvailable. If OxygenAvailable was 0, it'd take the hull, which would likely be 100. If OxygenAvailable was -100, it would take the hull, which would make OxygenAvaialbe 0.
However, it seems like something happened and instead of setting the property it now decreases it, and I don't know why? In theory it should SET OxygenAvailable to -100 but it seems like its performing a substraction now.

Adds tags to all duration/delay status effects
Chloromydride buffed slightly to counteract crit damage as well so it truly stabilizes you
Sufforin now affects your available oxygen too by setting it to -10000 to prevent diving suits/oxygen masks/etc. counteracting it.
2017-12-28 19:11:46 +03:00
Alex Noir 00704e141b i cant syntax 2017-12-28 17:55:28 +03:00
Alex Noir 0c133ba305 Forgot to list all changes in the latest commit, so here goes:
Allow multiple calls of <Use/> for multiple-use syringes or something
Adds hasstatustag and hastag conditionals, where hastag checks for item tags and hasstatustag checks for active delay/duration status effects w/ matching tags. It's also possible to check for NOT tag e.g. hastag="! morbusine,uranium", which will only be true if there's no morbusine or uranium in the "bloodstream".
Renamed "Amanitin" to "Sufforin" and slightly buffed it
Added "name" and "speciesname" conditionals
Makes bandages heal you slightly if your health is > 50
Adds "Morbusanide", which is a Morbusine antidote.
Calyxanide can hurt NPC husks now
Adds <Cancel all="false"/> which only takes effect if there's a conditional for specified status tags.
2017-12-28 17:49:52 +03:00
Alex Noir 1815062dda Allow multiple calls of <Use/> for repeat-use chemicals or autoinjectors or something 2017-12-28 17:41:44 +03:00
Alex Noir 741e26251d Gets rid of coroutine spam by turning Duration into its own DurationListElement similar to how Delays were handled.
Added tags to Status Effects, which also allows for fancy stuff like checking for tags over duration elements for more interesting interactions.
Adds "stackable" variable which dictates whether or not the same duration/delay effect can be applied to the same target(s) at the same time. This is a bit imperfect at the moment.
Adds Chloromydride which is a non-stackable chem stabilizing critical health which stops its effects once the health is stabilized.

TODO: Remove target from Targets if he already has it, and if targets becomes empty, return;
TODO: Conditional tag-checking and status effect tag-checking, plus more "special" checks like SpeciesName and other non-serialized options.
TODO: StatusEffect Cancel component to stop delayed/duration effects
2017-12-28 13:21:32 +03:00
Alex Noir e405c93581 Fix up conditionals
Make Calyxanide only cure non-turned humans and hurt turned player husks
Make husk eggs not stack infection with more injections
TODO: Allow conditionals to check for non-serialized properties like SpeciesName for absolute POWER
2017-12-27 23:18:59 +03:00
Alex Noir 60329fb0d1 Fixed missing clientpermissions.xml preventing hosting
Fixed double-clicking items in corpses putting them in their hands instead of your inventory
Fixed game over/round end music not playing in multiplayer
Added Item Combinations for things like chemicals, etc. - this transfers condition from one item to another
Added game over text to multiplayer round summary
2017-12-23 16:59:08 +03:00
Alex Noir 9251dbf83a Overhaul DelayedEffect to support application to multiple targets
Fix DelayedEffect being unusable by monsters due to monsters calling Single Target Apply in their Attack, which DelayedEffect doesn't override, by making Apply (single target) call Apply (multiple targets) which THEN calls the protected Apply function.
Nerf Amanitin to require two injections to be lethal. First injection only stops oxygen from regenerating and slightly saps HP.
Add Cause of Death to Health HUD
2017-12-21 21:40:54 +03:00
Alex Noir b9e0c97c9d nerf Auxiliorizine slightly 2017-12-21 16:45:46 +03:00
Alex Noir e5f60b29e1 tweaks and stuff 2017-12-20 20:44:21 +03:00
Alex Noir 1fe71b5fe6 Fixed IsInWater acting strangely 2017-12-20 18:54:00 +03:00
Alex Noir 20e583d816 boy oh boy this is proving to point out some major issues with the status effect system 2017-12-20 16:53:14 +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
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
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 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 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
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