Commit Graph

101 Commits

Author SHA1 Message Date
Joonas Rikkonen 965eef365b Fixed relay components not carrying power & deactivated (CanTransfer = false or IsActive = false) PowerTransfer components still carrying power 2018-01-17 21:25:52 +02:00
Joonas Rikkonen b4064adc9a Fixed connections not being refreshed when a junction box breaks, made junction box deterioration rate proportional to the ratio between the available power and the load (i.e. more power makes the boxes break faster) & added some more variation between the deterioration rates of boxes to prevent all of them breaking at the same time. 2018-01-11 20:53:34 +02:00
Joonas Rikkonen aa0fdfb790 All highlighted items are rendered to the lightmap, not just the ones the player is focusing on. -> Highlighted wires and the items they are connected to now glow in the dark.
Fixed LightComponent light source position not being updated if the item has no body, causing the light source to appear in a wrong position when attaching lights to walls.
2018-01-11 13:22:04 +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 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 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 6a3a4efba6 Option to display lighting in sub editor 2018-01-09 12:27:42 +02:00
Joonas Rikkonen 7187c277e7 Merge branch 'master' into moStuff 2018-01-09 10:38:06 +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
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
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 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 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
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
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 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 bdeb3a19fd Updated server logs so admins can see disguised persons
clientist should also display stuff
TODO: Log inventory interactions like putting item in slots (e.g. oxy mask equipped in Head slot or equipped in Any slot, etc.) so you can tell the exact moment someone decided to disguise themselves.
2017-12-16 20:24:24 +03:00
Alex Noir eb92242a8c Port over changes from https://github.com/Regalis11/Barotrauma/pull/163/commits/9ad9a65f1e051f2e60f88b3de5b12d2f2dc84674 2017-12-16 17:26:54 +03:00
juanjp600 9ad9a65f1e If a saved ItemComponent doesn't define required items, the ones defined by the item prefab are used instead 2017-12-15 16:15:31 -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
Alex Noir 31153ebb20 disguise bool for Wearable class 2017-12-14 23:24:25 +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 847e10d4a2 Fixed wires not being dropped server-side when a player drops a connected wire without dragging it to their inventory first (or client-side when a host does so).
Closes #96
2017-12-13 18:34:23 +02:00
Joonas Rikkonen 4a1ba21067 Fixed OnActive statuseffects not being applied on powered items that don't require power (prevented flare particles from working because they are configured in the LightComponent that inherits from Powered) 2017-12-12 22:21:29 +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 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 231a38f71d roll back name change from "Aim" to "SecondaryUse"
Expand SecondaryUse to have similar properties to normal Use so it can apply SecondaryUse-related status effects
Make Throwable great again
2017-12-10 15:00:52 +03:00
Alex Noir 1d6d1a066f realised half way through that I don't even need a new action type, oops 2017-12-10 13:45:12 +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 db7d5539e0 Fixed modified clients being able to disconnect locked wires 2017-12-07 20:20:05 +02:00
Joonas Rikkonen 7026da2748 Health Scanner HUD shows the status of all nearby characters without having to highlight them. Fixes being unable to scan characters that aren't dead or unconscious. Non-human characters can also be scanned now.
Closes #73
2017-12-07 19:34:32 +02:00
juanjp600 d34c783c30 Removed collision from wall gaps 2017-12-06 13:33:54 -03:00
Joonas Rikkonen 63493d2b9d Added a Character.AddDamage override method that does damage to a specific limb instead of the limb closest to the source of the damage. Projectiles and melee weapons now always do damage to the limb they hit, even if the center point of some other limb happens to be closer.
Also refactored the IDamageable interface to make more sense; now the attacker has to be a character instead of an IDamageable and damageable classes don't need to have an AiTarget.

Closes #69
2017-12-05 18:03:00 +02:00
Joonas Rikkonen 243b3843b8 Fixed worn items being assigned multiple times to the same limb when equipping an item that takes up multiple slots, causing damagemodifiers to be applied multiple times. + DamageModifiers with the damage type "None" don't affect damage.
Closes #68
2017-12-05 01:01:55 +02:00
juanjp600 a0782e5d8d Blowing up the reactor sets karma to 0, all jobs except assistant require a certain karma level 2017-12-04 17:05:22 -03:00