Commit Graph

1310 Commits

Author SHA1 Message Date
DrSmugleaf
54f48aa6a9 Add being able to breathe healing asphyxiation damage (#3194)
* Add healing suffocation damage when breathing

* Fix suffocation doing airloss instead of asphyxiation
2021-02-14 15:42:51 +01:00
tmtmtl30
137b99a543 wire panel now opens when a wire tool is used (#3200) 2021-02-14 15:38:41 +01:00
Vera Aguilera Puerto
10bfc087e7 GhostRoleMobSpawner can make entities sentient when spawning them. 2021-02-14 15:31:04 +01:00
DrSmugleaf
fd2fa123dd Fix buckle cooldown not being serialized properly (#3193) 2021-02-13 17:57:02 +01:00
Alex Evgrashin
18584d77fd Fixes glass priority (#3183) 2021-02-13 17:52:00 +01:00
tmtmtl30
258fdc10ea Airlock / firelock code refactor, pseudo-prediction implementation (#3037)
* splits off airlocks, firelocks

* adds airlock prediction. anims broken though

* fixes animation weirdness

* removes opacity prediction because it looked odd

* Now firelocks don't visually start open. Argh.

* Fixes firelock weirdness, saneifies _state var.

* Documentation changes, code shuffle.

* Lets firelocks crush people.

* Stops open-hand opening/closing firelocks.

* updates serializable, netserializable attributes

* Addresses reviews... hopefully.

* updates submodule?

* nullability

* fuck fuck fuck fuck

* fucking finally
2021-02-12 16:02:14 +01:00
Vera Aguilera Puerto
6f20d00264 Add missing Dirty call in StunnableComponent 2021-02-12 13:04:52 +01:00
DrSmugleaf
6eb0dd4f50 Remove redundant TryGetComponent call in buckle initialize (#3164) 2021-02-12 13:04:19 +01:00
Vera Aguilera Puerto
2b10ee6b8f Add cooldown to melee weapons on pickup/selected
Fixes #3149
Fixes kitchen knives not having ItemCooldown component.
2021-02-12 11:27:45 +01:00
Vera Aguilera Puerto
d65f79310d Fix RCD creating walls with wrong rotation
Fixes #3154
2021-02-12 10:59:06 +01:00
Vera Aguilera Puerto
4678e44edc Fix warnings 2021-02-12 10:53:02 +01:00
Vera Aguilera Puerto
9ee0ec4106 Holiday System (#3122) 2021-02-12 10:45:22 +01:00
Vera Aguilera Puerto
4c419f85ce Ghost Roles (#3106)
* Add files for Ghost Roles.

* Work on Ghost Roles

* Improvements

* GHOST ROLES IS DONE

* mmm yes

* auto-update when setting rolename/roledescription

* well

* command graceful error

* Makes UI have a scrollbar when it has too many entries

* fix command fuckup

* Apply suggestions from code review

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-12 14:35:56 +11:00
Acruid
ca4fd649fe Massive Namespace Cleanup (#3120)
* Engine namespace changes.

* Automated remove redundant using statements.

* Simplified Graphics namespace.

* Apparently the container system stores full type names in the map file.😞 This updates those names.

* API Changes to LocalizationManager.LoadCulture.

* Update submodule to v0.3.2
2021-02-11 01:13:03 -08:00
DrSmugleaf
96e5e34084 Make DoAfters use DamageChangedMessage instead of an event (#3115) 2021-02-10 12:36:05 +11:00
Vera Aguilera Puerto
9b9fbfdcfe Replace BreakableConstructionComponent with a destructible threshold behavior (#3111)
* Replace BreakableConstructionComponent with ChangeConstructionNodeBehavior

* Fix ordering of behaviors in MachineFrame
2021-02-09 20:08:06 +01:00
DrSmugleaf
1ca254c418 Fix ChangeConstructionNodeBehavior.Execute not being async 2021-02-09 20:07:09 +01:00
DrSmugleaf
33b5099efc Replace BreakableConstructionComponent with ChangeConstructionNodeBehavior 2021-02-09 19:59:52 +01:00
Vera Aguilera Puerto
9b1142973e Renames phoron to plasma everywhere in the codebase and replaces sprites. (#3110) 2021-02-09 19:05:19 +01:00
DrSmugleaf
2d06990ee3 Remove breakable component (#3109) 2021-02-09 14:55:54 +01:00
DrSmugleaf
15f05b565a Add composite destructible thresholds (#3102)
* Add composite destructible thresholds

* Reorder yaml properties

* Update YAML

* Fix YAML

* Re-fix YAML

* Add missing nullable enable

* Go back window component is explosive

* rider
2021-02-09 22:57:21 +11:00
Pieter-Jan Briers
c4fe0c904c Merge branch 'master' into expl_int_analyzer 2021-02-08 22:46:28 +01:00
Vera Aguilera Puerto
834bcda840 Make VisitingMind's Mind readable by VV 2021-02-07 13:52:34 +01:00
Alex Evgrashin
59e72697cb Buildable wall light (#2644)
* Added empty light

* Can build light fixture

* Can construct and deconstruct small light

* You can build bulbs only on walls

* Playing with placement conditions

* Refactored code a bit

* Added check for north direction and snapping

* Fixed all small light sprites (wrong directions order)

* Fixed weird problem with bulb lights

* Fixed rotation on all stations

* Fixed map again

* Much better placement mode

* Deleted shared wall component and moved all logic to raycasts

* Missing bracket

* Better texture

* Moved wallmount condition to tags

* Removed station station

* Added suffix and fixed on map init bug
2021-02-07 00:05:53 +01:00
DrSmugleaf
9db47249cd Fix being able to spill closed drink cans (#3100) 2021-02-07 00:31:44 +11:00
Vera Aguilera Puerto
b3810922f3 Fix spawned computers not adding the needed container to the ConstructionComponent
Fixes #3091
2021-02-05 22:45:18 +01:00
metalgearsloth
b3869985e0 Increase disposal dragging delay for other people (#3086)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-05 17:12:10 +01:00
metalgearsloth
7ed07c0cac Cuff enhancements (#3087)
* Cuff enhancements

* Cuffs now have an OnClick for the alert to remove them
* nullables
* Use default interaction range so highlights are accurate
* Cuffing fails more gracely
* Make shared abstract and add component references to client / server
* Don't cache AudioSystem and HandsComponent given cuffs are rarely used

* Fix test

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-05 17:11:21 +01:00
Vera Aguilera Puerto
9884b14e8d Adds a component for ghosting on move. (#3090)
* Adds a component for ghosting on move.
Adds a dummy input mover for IRelayMoveInput to work.

* Add IGhostOnMove

* Fix tests.
2021-02-05 17:02:20 +01:00
Vera Aguilera Puerto
63e1252539 Speech and Emoting components (#3075)
* Add Speech and Emoting components.

* makesentient gives you speech and emoting abilities.

* Ghosts do *not* need a SpeechComponent.

* I hate you all, and I hate shared code as well.
2021-02-05 17:01:54 +01:00
DrSmugleaf
b62cc84e8c Add destructible component threshold triggers (#3080)
* WIP changes

* Fix tests, merge conflict and trigger once behavior

* Update yml

* Change test strings to be consts

* Fix total damage types and classes triggers

* Simplify damage trigger logic, move state to Threshold

* Update outdated code and docs

* Change the name of IBehavior back to IThresholdBehavior

* Change human gibbing to trigger at 400 brute damage

* Change gibbing from brute to blunt damage

* Fix one (1) typo

* Add damage class trigger test

* Add missing nullable enable to thresholds
2021-02-05 13:41:05 +01:00
Metal Gear Sloth
9640c33210 Fix strippable crash 2021-02-05 18:46:09 +11:00
Paul
856b293d87 Merge branch 'master-upstream' into expl_int_analyzer
# Conflicts:
#	Content.Server/GameObjects/Components/Body/Part/BodyPartComponent.cs
#	Content.Server/GameObjects/Components/Botany/PlantHolderComponent.cs
#	Content.Server/GameObjects/Components/Chemistry/PillComponent.cs
#	Content.Server/GameObjects/Components/Interactable/TilePryingComponent.cs
#	Content.Server/GameObjects/Components/Items/FloorTileItemComponent.cs
#	Content.Server/GameObjects/Components/Items/RCD/RCDAmmoComponent.cs
#	Content.Server/GameObjects/Components/Items/RCD/RCDComponent.cs
#	Content.Server/GameObjects/Components/Medical/HealingComponent.cs
#	Content.Server/GameObjects/Components/Power/WirePlacerComponent.cs
#	Content.Shared/Chemistry/Solution.cs
2021-02-04 17:50:28 +01:00
Paul
d5cd82de60 explicit interface go brrrr 2021-02-04 17:44:49 +01:00
Vera Aguilera Puerto
655316a67c Add playback slider to instruments. (#3071) 2021-02-04 13:37:26 +01:00
tmtmtl30
735c6159d8 Removes SmallImpassable from melee swing collision mask (#3036)
* Alters melee swing collision mask.

* Part one...

* Part two.
2021-02-04 22:13:13 +11:00
DrSmugleaf
82a97857ac Move TagComponent from server to shared (#3076)
* Move TagComponent to shared

* Fix test

* Not a web edited commit

No sir

* Update Content.Shared/GameObjects/Components/Tag/TagComponentState.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-04 21:04:19 +11:00
20kdc
b9aa789bc4 Pressure & volume pumps can be toggled on/off now. (#3046)
This tidbit might or might not be suitable for a separate component.
Tell me in PR comments I guess.
2021-02-04 20:47:04 +11:00
Pieter-Jan Briers
29918b2810 Fix suspicion round end timer, actually show it. 2021-02-04 04:16:36 +01:00
Pieter-Jan Briers
a4563d2e75 Fix uplink item spawning.
Actually spawns for the person who USES the uplink, not who owns it. Can't believe that was an actual bug.

Also puts it in your active hand if possible.
2021-02-04 01:24:46 +01:00
Remie Richards
d45835e863 Janitor trashbag upgrade + FANCY ANIMATIONS (#3058)
* Janitor trashbag upgrade + FANCY ANIMATIONS

* Review, Bug fixes and Sounds
- Fixed hand-pickup animation playing if the entity originated from inside a container (e.g. bag on the ground) or from inside ourselves (e.g. something in our own inventory)

* Fix/Change. Just log if AnimateEntityPickup is called with an entity that has no SpriteComponent.

* More explicit log message. Error log.

* Merge. Fix.
2021-02-03 23:07:13 +01:00
Radrark
937e261867 Add Smoke and Foam chemical reaction effects. (#2913)
* Adds smoke reaction effect

* smoke tweaks

* address reviews

* Smoke fix

* Refactor smoke and add foam

* Fix stuff

* Remove thing

* Little things

* Address some comments

* Address more things

* More addressing

* License stuff

* Address refactor request

* Small things

* Add nullability

* Update Content.Server/GameObjects/EntitySystems/SolutionAreaEffectSystem.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
2021-02-03 15:26:46 +01:00
metalgearsloth
684ec60be6 Pausing content (#3061)
* Change EntityQuery to not retrieve paused by default

* GetAllComponents

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-04 00:20:48 +11:00
Pieter-Jan Briers
c40ac26ced A big hecking chemistry-related refactor. (#3055)
* A big hecking chemistry-related refactor.

Changed SolutionContainerCaps. It now describes "stock" behavior for interacting with solutions that is pre-implemented by SolutionContainerComponent. As such things like syringes do not check it anymore (on themselves) to see "can we remove reagent from ourselves". That's assumed by it... being a syringe.

SolutionContainerCaps now has different flags more accurately describing possible reagent interaction behaviors.

ISolutionInteractionsComponent is the interface that describes the common behaviors like "what happens when injected with a syringe". This is implemented by SolutionContainerComponent but could be implemented by other classes. One notable example that drove me to making this interface was the /vg/station circuit imprinter which splits reagent poured in into its two reservoir beakers. Having this interface allows us to do this "proxying" behavior hack-free. (the hacks in /vg/ code were somewhat dirty...).

PourableComponent has been replaced SolutionTransferComponent. It now describes both give-and-take behavior for the common reagent containers. This is in line with /vg/'s /obj/item/weapon/reagent_containers architecture. "Taking" in this context is ONLY from reagent tanks like fuel tanks.

Oh, should I mention that fuel tanks and such have a proper component now? They do.

Because of this behavioral change, reagent tanks DO NOT have Pourable anymore. Removing from reagent tanks is now in the hands of the item used on them. Welders and fire extinguishers now have code for removing from them. This sounds bad at first but remember that all have quite unique behavior related to this: Welders cause explosions if lit and can ONLY be fueled at fuel tanks. Extinguishers can be filled at any tank, etc... The code for this is also simpler due to ISolutionInteractionsComponent now so...

IAfterInteract now works like IInteractUsing with the Priority levels and "return true to block further handlers" behavior. This was necessary to make extinguishers prioritize taking from tanks over spraying.

Explicitly coded interactions like welders refueling also means they refuse instantly to full now, which they didn't before. And it plays the sound. Etc...

Probably more stuff I'm forgetting.

* Review improvements.
2021-02-04 00:05:31 +11:00
collinlunn
a5492bc943 More power nullability (#3070) 2021-02-02 12:20:24 +01:00
DrSmugleaf
b0482dcb63 Add tag component and test (#2761)
* Add tag component and test

* Remove 0 capacity

* Add tag component extensions

* Change tags to be prototypes

Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2021-02-02 12:11:04 +11:00
Acruid
8b5d66050a Console Unify API Changes (#3059)
* Remove unused IChatCommand.

* Lots of refactoring into a shared context.

* Removed ICommonSession from server concmd Execute.

* Added argStr parameter to concmd execute.

* The execute function of client concmds now returns void, use the new shell.RemoteExecuteCommand function to forward commands.

* Finally move shells and commands into shared.

* Console commands can now be registered directly without a class in a shared context.

* Engine API Changes.

* Repair rebase damage.

* Update Submodule.
2021-02-01 16:49:43 -08:00
20kdc
80ad2ef5b7 Botany composting & shovel/spade (or, make botany sustainable) (#3064)
* Botany: Introduce shovel and spade into hydro\_tools

* Botany: Add shovel/spade (just removes plants)

* Botany: Add shovel/spade lathe recipes and make all botany lathe recipes accessible

* Botany: Add spade into Saltern

* Botany: Give Saltern a bucket for the botanist

* Botany: Plant produce can be composted for nutriment/etc.

* Botany: Bye-bye duplicated force update code, hello ForceUpdateByExternalCause

* Botany: Shovel identity crisis resolved (thanks Paul)
2021-02-01 23:46:20 +01:00
bhespiritu
6b6ddd0a73 update UpdateVisuals to use Destructible thresholds (#3051)
* update UpdateVisuals to use Destructible thresholds

* refactor windows to use Destructible threshold instead of maxDamage
2021-02-01 17:22:50 +01:00
collinlunn
b51b8cb182 Some Power nullable & ComponentDependency (#3050)
* Power nullability

* AME nullability

* re-adds EnsureComponents

* conflict fix

* Update Content.Server/GameObjects/Components/Power/PowerNetComponents/RadiationCollectorComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Server/GameObjects/Components/Power/PowerNetComponents/BatteryStorageComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Server/GameObjects/Components/Power/PowerNetComponents/BatteryStorageComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Server/GameObjects/Components/Power/PowerNetComponents/BatteryDischargerComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* Update Content.Server/GameObjects/Components/Power/PowerNetComponents/BatteryDischargerComponent.cs

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>

* removes duplicate component assignment

Co-authored-by: py01 <pyronetics01@gmail.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
2021-02-01 17:19:43 +01:00