Commit Graph

305 Commits

Author SHA1 Message Date
Joonas Rikkonen 343895d776 Console command arguments can be autocompleted by hitting tab. Closes #162 2017-12-30 18:30:55 +02: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
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
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
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
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
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
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
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
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
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
Joonas Rikkonen ce37411a29 Merge branch 'permission-overhaul'. Closes #49
Conflicts:
	Barotrauma/BarotraumaShared/Source/DebugConsole.cs
	Barotrauma/BarotraumaShared/Source/Networking/ChatMessage.cs
2017-12-20 19:36:17 +02:00
Joonas Rikkonen b3c3970209 Server responses to clients using console commands ("granted permissions to client", error messages, etc) are displayed in the client's debug console instead of the chat box. Client command usage is included in server logs. 2017-12-20 19:18:32 +02:00
Joonas Rikkonen 91699b26a6 Giveperm and revokeperm commands work correctly now when used by clients 2017-12-20 18:58:27 +02:00
Joonas Rikkonen 3e4d2c5a8a Fixed incorrect positioning of debug console question prompts. The ShowQuestionPrompt method used to take the last textblock in the console and consider that as the question prompt text, even though the text had only been queued and the actual GUITexblock hadn't been instantiated yet. 2017-12-20 18:57:42 +02:00
Joonas Rikkonen 0204bc2c49 Added permission presets (or ranks). Current presets are none (no special permissions), moderator (round management & kicking) and admin (almost everything permitted). 2017-12-19 22:27:07 +02:00
Alex Noir e56f5c4946 what started as a fix of https://github.com/Regalis11/Barotrauma/issues/103 ended up being a huge CPR overhaul. oops.
CPR:
There's now a difference between CPR on bleeding, CPR on hurting and CPR on oxygen deprivation.
If you try to CPR bleeding people, it will make bloody sounds and particles while hurting them. So don't.
If you CPR people with less than 0 health, it will do RNG based on your skill level to bring them back to life with 2 HP.
Otherwise if you CPR their oxygen back, chest pumps will simply prevent oxygen deprivation and mouth-to-mouth will bring back their oxygen while taking yours based on the skill level.

Crit:
Changed it so you always lose oxygen when critical. Your heart stopped either way!
2017-12-19 22:11:45 +03:00
Joonas Rikkonen 4ce4b0a934 Fixed submarines bouncing on characters submarines that are laying on the ocean floor. Not a very realistic way to handle the collisions - the sub just stops as if it had collided with the level walls (making it seem as if the characters were made of concrete), maybe make the collisions gib the character?
Closes #152
2017-12-19 17:30:08 +02:00
Alex Noir 3b65802a95 Fix issue #97 by allowing stunned people to sustain bleed + oxygen damage as well as handling crit health effects differently 2017-12-19 15:25:01 +03:00
Joonas Rikkonen eedc3ffe49 Fixed submarines bouncing on other submarines that are laying on the ocean floor (see #152). + Reduced the cap of ice and structure damage particles per impact.
TODO: the same thing for characters (and items?)
2017-12-18 20:23:03 +02:00
Joonas Rikkonen 65fb67df54 Inventory.FindItem takes the aliases of the items into account (-> possible to change item names without breaking crew AIs and the tutorial) 2017-12-17 22:40:30 +02:00
Joonas Rikkonen 33f0b1c967 Character.DisplayName looks at the Card slot directly instead of finding the first ID card in the inventory and seeing if it's in the Card slot. + reduced nesting 2017-12-17 22:38:21 +02:00
Joonas Rikkonen 26503a975c Fixed sub->sub and outside->sub visibility checks when determining name tag visibility. 2017-12-17 22:34:24 +02:00
Alex Noir e5c49d929d Fixed ragdolling and grab-type switching in singleplayer 2017-12-17 23:13:50 +03:00
Alex Noir 9e307d8302 Merge branch 'master' into moRags 2017-12-17 22:58:16 +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
Alex Noir 1e5b25bd1a Merge branch 'master' into moRags 2017-12-17 22:41:45 +03: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 041d1112b8 Added a timer to the raycasts so it's not screwing over performance too hard 2017-12-17 21:35:19 +03:00
Alex Noir 714b52dce8 Fixed several sound-related issues that have been bothering me for ages, e.g.
* Sounds not playing when the structure is fully destroyed
* Glass windows using wrong sound effects
* Only one glassBreak sound was used despite there being 3
2017-12-17 18:05:05 +03: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 d5e409bfff Increase muffling effects with obstruction for spoken speech (barely affects radio chat and wifi components, however it does add extra 100f range to the distance)
Decreased required muffling to 0.3f
Added an "obstructionmult" to intensify speaking obstruction effects
2017-12-17 14:55:35 +03:00
Alex Noir 0ce9acb76a fix things 2017-12-16 21:45:30 +03:00
Alex Noir 8ab97af456 Allow sub makers to alter the ID Card's description property on spawn points 2017-12-16 21:30:18 +03:00