Commit Graph

92 Commits

Author SHA1 Message Date
Joonas Rikkonen 8e8b8464af All items and structures have to define a sourcerect for the sprite because otherwise the dedicated server won't know the size of the entity. Closes #321 2018-03-06 13:55:30 +02:00
Joonas Rikkonen f1f190a997 Added a light to diving suits (requires a battery to work). Closes #233 2018-03-02 13:11:28 +02:00
Joonas Rikkonen 12d1692bb5 Wearables can attach lightsources to limbs 2018-03-02 11:13:11 +02: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 2585cc9873 Fixed attachable objects being deattachable with the select key due to e6b7a0d3, fixed typo in ConvertInputType 2018-02-28 13:26:18 +02:00
Joonas Rikkonen d867dd6c17 Diving suits are rendered in front of all items (diving masks, goggles, etc aren't drawn on top of the suit). Items that are being held take the depth of the wearable sprite on the hand into account. Closes #290 2018-02-27 23:04:54 +02:00
Joonas Rikkonen 0fa1ae6825 Fixed plasma cutters and welders not affecting hatches, alien doors/hatches or duct blocks. Closes #293 2018-02-27 15:17:58 +02:00
Joonas Rikkonen 064750d99f Fixed missing RepairTool HitStructure particles & missing ancient weapon beam (+ added hit particles to ancient weapon). Closes #285 2018-02-25 22:43:06 +02:00
Joonas Rikkonen 19579f02ca Doors can be opened with crowbars again. Closes #276 2018-02-23 10:23:58 +02:00
Joonas Rikkonen 1ebadf1f80 Fixed depth charge tubes launching the depth charges up by default. Closes #259 2018-02-22 16:23:30 +02:00
Joonas Rikkonen 671f59e984 Unequipped headsets can't be used and don't consume batteries. Closes #272 2018-02-22 15:08:38 +02:00
Joonas Rikkonen b7bb78bc41 Fixed railgun shells not detonating their contents on impact 2018-02-22 12:35:57 +02:00
Joonas Rikkonen a74ba4191b Items with the "medical" tag can be contained in doctors' clothes (e.g. syringes, bandages) 2018-02-21 20:08:45 +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 43d6ee5e06 Spark & smoke particle effects when welding or cutting something. Closes #155. 2018-02-12 11:20:25 +02:00
Joonas Rikkonen 544cbe74cf Removed heat absorbers (no real use even if the extra cooling effect was reimplemented). Closes #229 2018-01-22 14:54:43 +02:00
Joonas Rikkonen 1eaccef8c7 Added damaged variants of junction box sprite, damaged item sprites can be set to fade in. 2018-01-11 20:48:26 +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 47f9900fdc Lighting fixes:
- Re-enabled lightsprites (glowing lamp sprites on lamps).
- Limb sprites use lightsprites instead of overriding the texture (positioned correctly now).
- Fixed lights that don't cast shadows not being rendered.
2018-01-11 11:23:55 +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 5f2227489b Reactor temperature has to stay above the meltdown temperature for 30 seconds before it explodes. The reactors now also have an output connection that sends out a signal when the temperature is critical. + Added reactor meltdown warning sirens & lights to vanilla subs. Closes #157 2018-01-10 00:33:21 +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
Joonas Rikkonen 18ae9d7820 Base ItemComponents can apply OnUse statuseffects, grenades can be placed in detonators. Closes #113 2018-01-09 14:55:16 +02:00
Joonas Rikkonen 7187c277e7 Merge branch 'master' into moStuff 2018-01-09 10:38:06 +02:00
juanjp600 32deb06e51 Fixed crowbar.ogg case-sensitivity errors 2018-01-05 11:07:44 -03:00
Alex Noir 31350698bf denerfied the clown 2017-12-30 16:01:02 +03:00
Alex Noir 9f727ddbaf Add Morbusanide recipe
Make usecondition default to true so items aren't wasted
2017-12-30 14:53:26 +03: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 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
Alex Noir ed98a6bc0b well jeez who'da thunk it's my sorry ass forgetting to remove the second updateoxygen
Reverted OxygenAvailable values for diving gear + oxygen mask back to -100
Keeping sufforin OxygenAvailable at -10000 tho, that seems like the way to completely cut off any and all oxygen suppliers from acting
2017-12-28 19:28:45 +03: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
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
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 f5e785df60 Expose some stuff to sub editor, fix alien doors openable with use key, fixed some decon recipes
Beginnings of a Conditional system
2017-12-27 18:00:18 +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 402bcb5d66 quickfix 2017-12-22 22:01:06 +03:00
Alex Noir 6d30557860 Overhaul fabricators and deconstructors to have minCondition, maxCondition (deconstructor) and outCondition
Implement several suggestions listed in https://github.com/Regalis11/Barotrauma/issues/196
Add more fabricatables and deconstructables
2017-12-22 21:33:14 +03:00
Alex Noir 9610444e67 Merge branch 'master' into moStuff
# Conflicts:
#	Barotrauma/BarotraumaShared/Source/Characters/Character.cs
2017-12-21 23:17:56 +03:00
Alex Noir c26cef89c6 Fixed DelayedEffect applying when dropped from hands
Amanitin is now craftable from Erythrozine, Flash Powder and Sulphuric Acid with 60 medical skill
Diving Mask and Diving Suit are now craftable
Diving Suit is now deconstructable
Fixed buttons yielding different materials on deconstruction
2017-12-21 23:03:25 +03: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
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 e6b7a0d313 Adds ducts, switches and motion detectors, as well as door breaking sounds, all based on Barotrauma Extended mod.
Several sounds and sprites were altered to their mod counterpart.
Fixes doors being unfixable without having a crowbar.
Fixed case sensitivity mismatch for crowbar.ogg - this is a problem for linux builds.
2017-12-21 16:37:46 +03:00
Alex Noir e5f60b29e1 tweaks and stuff 2017-12-20 20:44:21 +03:00