Commit Graph

331 Commits

Author SHA1 Message Date
Joonas Rikkonen 4b1b6b6927 Merge pull request #188 from Crystalwarrior/moStuff
Motion detectors, ducts, more chem effects and chems, fabricator/deconstructor overhaul, more footsteps, clown hitsounds...
2018-01-09 12:11:15 +02:00
Joonas Rikkonen 662ead0bb4 ToggleHUD console command hides the mp chat box. Closes #208 2018-01-09 11:19:21 +02:00
Joonas Rikkonen 7187c277e7 Merge branch 'master' into moStuff 2018-01-09 10:38:06 +02:00
juanjp600 539845665a Made further accuracy improvements to the timing of the dedicated server
TODO: make the dedicated server load all of the settings from
serversettings.xml
2018-01-08 18:11:07 -03:00
Joonas Rikkonen 1aa654a5a3 Severed joints can't be severed again (fixes severed limbs constantly emitting gore particles at the clients' side due to the constant status update messages) 2018-01-08 16:35:53 +02:00
Joonas Rikkonen 78c13ddb42 Wire selection fixes:
- Fixed MathUtils.LineToPointDistance returning NaN if both points of the line are at the same position, preventing from selecting some wire nodes in the wiring mode.
- Added an indicator that shows when a node is highlighted.
- Wire nodes a higher preference for being highlighted than wire sections. Makes it easier to select nodes that are on top of another wire.

Closes #215
2018-01-01 15:04:53 +02:00
Joonas Rikkonen 79f3f04c3b Fixed Steering components never setting their currPowerConsumption field above zero, making them cause zero load on the electrical grid. 2018-01-01 15:00:12 +02:00
Joonas Rikkonen bb987676ca Improved PowerTransfer logic. The PowerTransfer components cache all the connections that are connected to the item (directly or via another item) and only recalculate them when changes are done to the wiring. Signals received by the PowerTransfer component are relayed directly to the recipients instead of stepping through all the wires and junction boxes in between.
Fixes stack overflow exceptions caused by signals looping between junction boxes and improves performance because the layout of the power grid doesn't have to be calculated every frame and the wire connections don't have to be rechecked when sending a signal. Closes #222
2018-01-01 14:59:40 +02:00
Joonas Rikkonen 343895d776 Console command arguments can be autocompleted by hitting tab. Closes #162 2017-12-30 18:30:55 +02: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 6777a039d5 Characters receive damage when crushed between a sub and the level and are gibbed if the impact is hard enough. Closes #186 2017-12-30 02:17:08 +02: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 a8749f3d87 Fixed characters dragging husks by their tongue when GrabLimb is set to None, removed hardcoded texts from the grab button. Closes #210 2017-12-29 15:51:37 +02:00
Joonas Rikkonen fe54b75117 Fixed modified structure colors not being cloned. Closes #212 2017-12-29 15:32:08 +02:00
Joonas Rikkonen 4d55e2dd55 Move hard-coded gender pronouns from TextManager to Texts.xml 2017-12-28 21:47:29 +02:00
Joonas Rikkonen 9dd4d21cac Fixed opened and broken doors being ignored during waypoint generation, causing waypoint connections to go through the doors and preventing AI characters from opening them. + Updated waypoints in Aegir Mark III 2017-12-28 20:53:27 +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
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 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 7b336fc3f4 Fixes and stuff based on Regalis' review 2017-12-27 20:02:57 +03:00
Joonas Rikkonen bd4388042f Fixed map generation going crazy if the main path node interval is very large relative to the size of the level. Closes #201 2017-12-27 18:18:31 +02: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
Joonas Rikkonen 3d73f28362 - TextManager automatically replaces "\n" strings with a newline.
- Removed instantiating traitor start popup from client-side TraitorManager (instead the client receives the start message from the server).
- GUIMessageBoxes don't leave unnecessary empty space for the header if the header text is empty.
- More hard-coded text removal.
2017-12-27 16:07:00 +02:00
Joonas Rikkonen 4f0b190371 Some more hard-coded text removal 2017-12-27 14:40:33 +02:00
Joonas Rikkonen 2894b74edc Started moving hard-coded texts to a separate xml file (Content/Texts.xml) to make modding and translating the game easier (see #80). Also Renamed InfoTextManager as TextManager. 2017-12-26 23:51:18 +02:00
Joonas Rikkonen a5d2dd37f4 Merge branch 'master' of https://github.com/Regalis11/Barotrauma 2017-12-26 20:04:47 +02: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
juanjp600 e2f4431357 Added a command for automatic hull generation
It's not perfect by any means, but it should be usable enough as a
baseline for most subs.
2017-12-23 17:57:19 -03:00
Alex Noir b3eaa6bd17 Merge remote-tracking branch 'origin/master' into moStuff
# Conflicts:
#	Barotrauma/BarotraumaShared/BarotraumaShared.projitems
#	Barotrauma/BarotraumaShared/Data/clientpermissions.xml
2017-12-23 17:33:24 +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 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
juanjp600 47b5ccd7c6 Merge branch 'master' of https://github.com/Regalis11/Barotrauma 2017-12-21 20:31:24 -03:00
Joonas Rikkonen 7c37ba0955 Characters can only have one picking timer active at a time. Closes #179 2017-12-21 22:31:48 +02: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
Joonas Rikkonen 4db708335a Readded homoglyph comparisons to client name checking during login (i.e. similar name checks can't be bypassed by using similar-looking characters). Looks like this got removed due to a messed up merge 5bdb57b
Closes #182
2017-12-21 21:57:06 +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
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
Joonas Rikkonen 604fc65154 Human AI improvements & fixes:
- Replaced item name comparisons with Prefab.NameMatches (-> item names can be changed without breaking the AIs).
- Having an AIObjective set as the current order of the character doesn't automatically cause it to have a high priority. For example, the order to fix leaks has a low priority if there are no leaks to fix.
- AIObjectiveFixLeaks makes sure the character is wearing a diving suit before going to fix a leak. The characters used to run in and out of flooded rooms because the AIObjectiveFindSafety objective would become active as soon as the character entered the room, causing the character to run out, and then immediately run back because they are no longer in immediate danger of drowning, making the FixLeaks objective the most high-priority one.
- Characters attempt to find a room with no water in AIObjectiveIdle even if the character is wearing a diving suit.
- AIObjectiveFindSafety considers flooded rooms dangerous even if the character is wearing a diving suit (-> the character attempts to go into a more dry room instead of happily idling in the flooded one).
- Distance to a hull doesn't decrease its desirability nearly as much in AIObjectiveFindSafety (-> fixes characters not bothering to move into a non-flooded room if it's far away).
- AIObjectiveOperateItem makes sure the item is equipped before using it (-> characters can't weld leaks with the welder in their inventory).
2017-12-21 19:49:26 +02: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
juanjp600 07626a1989 Merge branch 'master' of https://github.com/Regalis11/Barotrauma
Barotrauma/BarotraumaShared/Source/Items/Components/ItemComponent.cs
2017-12-20 19:46:53 -03:00
juanjp600 7a413aee93 Optimized GameScreen.DrawMap
- Downscaled lightmap, since blurring will make this unnoticeable anyway
(TODO: make this optional)
- Render LOS in fewer passes by using a shader
- Use light volume to calculate LOS
- This also means we can use the override texture to render the diving
suit obstruct effect
- Don't render bunks and labels onto LOS background (TODO: add the
option to render back into the LOS background, i.e. just use
multiplicative blending as if it was the lightmap)
- Prefer SpriteSortMode.Deferred over all others, prefer
SamplerState.LinearClamp/PointClamp over all others
- Remove shader blur in favor of geometry blur (TODO: improve on this
further, right now it has a few artifacts)
- Trim light volumes
- Do some weird shit with the background particles (use DrawTiled
instead of relying on SamplerState.LinearWrap, because that's faster
somehow :/ )
- Pressing up/down in the console only returns a typed command now
2017-12-20 19:41:23 -03:00
Joonas Rikkonen 9ed2871ede Renamed a couple of properties for consistency & removed unnecessary CPR blood particle scaling 2017-12-20 20:26:22 +02:00
Alex Noir e5f60b29e1 tweaks and stuff 2017-12-20 20:44:21 +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