Commit Graph

1272 Commits

Author SHA1 Message Date
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
py01
c80efdaf44 Node and NodeGroup nullability (#3047)
Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-29 13:21:08 +11:00
py01
4bf61770e1 Piping nullability (#3048)
Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-29 13:20:13 +11:00
Pieter-Jan Briers
67e1da4cc2 Syringes now automatically switch between draw/inject when emptied/filled up fully. 2021-01-25 02:10:23 +01:00
Pieter-Jan Briers
961f80254d You now stop breathing while in crit. 2021-01-24 16:38:01 +01:00
Pieter-Jan Briers
526c3d1ebf You can now rig power cells to explode.
VERY funny.
2021-01-24 16:21:18 +01:00
Pieter-Jan Briers
c947bb75e6 You feel a tiny prick (Hypospray) (#3034) 2021-01-24 14:18:12 +01:00
py01
72b5ae9468 GasGeneratorComponent (#3029)
* GasGeneratorComponent

* gas generator sprite

* component comment

* replace the other typeof with nameof

* Update Resources/Textures/Constructible/Atmos/gasgenerator.rsi/meta.json

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

* Update Resources/Prototypes/Entities/Constructible/Ground/gasgenerator.yml

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

* Update Content.Server/GameObjects/Components/Atmos/Piping/GasGeneratorComponent.cs

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

* Update Content.Server/GameObjects/Components/Atmos/Piping/GasGeneratorComponent.cs

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

* specifies physics component

* comments

Co-authored-by: py01 <pyronetics01@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
2021-01-24 19:42:33 +11:00
20kdc
e53ae365a3 Get rid of the OverlayEffectsComponent stuff (#3010)
* Get rid of the OverlayEffectsComponent stuff because it just ended up creating workarounds for it's bugs, without removing any functionality

* Flashes and Flashbangs use the same code now (the Flashable path because it's better)
2021-01-24 19:17:45 +11:00
Pieter-Jan Briers
148c8daeb6 Adds 15/20/30 buttons to chem dispenser. 2021-01-23 20:27:45 +01:00
Pieter-Jan Briers
1eb5af6449 Adds ClumsyComponent.TryRollClumsy helper method. 2021-01-23 17:54:58 +01:00
Pieter-Jan Briers
85fcf7290c Clean up terrible solution entity reaction copy pasta. 2021-01-23 16:49:22 +01:00
Pieter-Jan Briers
ae91059c0b Adds "Add Reagent" admin verb. 2021-01-23 16:45:20 +01:00
Pieter-Jan Briers
fd7fcbadda Transfter 2021-01-22 23:04:20 +01:00
Alex Evgrashin
02ea6ce57c Toilet (#3012)
* Ported sprites from eris

* Added yml

* lid open/close logic

* interactivity

* Working on new secret stash component

* Object will drop on destruction

* Can get item and examine message

* Reagent container and some cleaning

* Moved potted plant to stash

* New base prefab

* Now you can deconstruct toilet

* Small fixes

* Fixed unknown components errors

* Fixed grammar errors

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

* Now use prob

* More grammar

* Update Content.Server/Construction/Conditions/ToiletLidClosed.cs

Aaaaaaaa

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

* No delays

* Amazing sound design

* Moved sound to mono

* Toilet viz

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-01-20 18:02:34 +11:00
20kdc
6f360b48bf Stop singularity from pulling ghosts, stop singularity from leaving the pull controller attached (#3021) 2021-01-19 17:35:44 +11:00
komunre
2172d00409 Clusterbang (#2712)
* Code is ready but item now spawning

* Prototype of SeveralExplosive component

* Remaked to FlashExplosiveComponent using

* Done. But i feel myself retarted

* Remaked. Looks good

* Full loaded prototype added

* Throwing in progress. Fatal error is here

* I forgot about shared

* Sloth refactor

* Delayed spawning and fix crashes

* Full clusterbang code.

* Removed useless variable and tuned delay

* Delete wrong  in CreamPiedComponent

* Now yaml is code quality followed

* Reworked to GetLevel with bugs

* Never forget resources, guys

* RoundToLevels added. Now it works.

* New textures and sloth refactor is returned

* Now it's TryGetComponent

* Visualizer maximum fix and look fix

* Logging and no max and min check

* Removed max grenades sending

* vizualizer is better now

* GrenadesMax removed

* grammar, checks, NextFloat and no more try catch

* Unused using removed

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-01-18 21:16:34 +11:00
Paul
719d5b7e2b removes unused usingstatements 2021-01-17 21:43:17 +01:00
Paul
883131e315 i feel great pain inside 2021-01-17 18:58:22 +01:00
py01
e759a8aec9 Filter sprites & visualizer (#3008)
Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-17 16:10:22 +01:00
20kdc
f85fc6b370 Buckle/Unbuckle icons (#3014) 2021-01-17 15:41:52 +01:00
Swept
5a248bdd86 Hotfixes thrown item damage (#3013)
* Initial

* A

* Bye bye!
2021-01-17 19:32:31 +11:00
20kdc
bca0f7b1b0 Singularity Engine: Containment field emitters emit soft light (#3004)
* Singularity Engine: Containment field emitters emit light, making use of soft shadows

* Singularity Engine Containment Emitter Lights: Clean up component dependencies & remove now-useless point light enable check
2021-01-16 20:13:11 +01:00
Pieter-Jan Briers
e51f74a1f1 Fixed some map saving bugs with ID cards/PDAs. 2021-01-15 17:20:02 +01:00
Manel Navola
f7ac546f39 Added suicide for Crematorium and Recycler, soft fixed Recycled gibbing (#2610)
* Added suicide for Crematorium and Recycler, soft fixed Recycled gibbing

* Renamed _cancelToken to _cremateCancelToken, made _cremateCancelToken nullable

* Update Content.Server/GameObjects/Components/Morgue/CrematoriumEntityStorageComponent.cs

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

* Added Ownder.Deleted check inside timer

* Added TODO gibbing comments

* Removed innecessary code and removed deleting entities when getting 'gibbed'

* Fix ghosting with gibbing.

Co-authored-by: Manel Navola <ManelNavola@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-01-14 18:57:24 +11:00
py01
1f18dd568a GasFilterComponent (#2935)
* GasFilterComponent

* Client ignore component

* Diff fixes

* diff fix 2

Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-13 23:15:53 +01:00
Pieter-Jan Briers
af1838c641 Fix hunger not updating thresholds correctly from rejuvenate. 2021-01-12 21:24:18 +01:00
Pieter-Jan Briers
052ea49884 Implement magboots. (#2988)
Got an alert and action and everything.
2021-01-11 19:24:09 +01:00
metalgearsloth
acb3c72d99 Drag changes (#2487)
* Drag changes

* Higlights only show near cursor
* Don't highlight un-droppable entities
* Fixes invalid highlights issue

* Also the scanner

* 2 months fix

* Address reviews

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-01-11 22:14:01 +11:00
Pieter-Jan Briers
067397c713 Cache Enum.GetValues(typeof(Priority)) in PowerNetNodeGroup 2021-01-11 11:30:17 +01:00
Paul
d3dda274e3 fixes blockgamearcadecomponent runtime 2021-01-11 10:59:19 +01:00
Pieter-Jan Briers
d950e5a5a0 Fix exception on looking up verbs for a laser gun with cell removed. 2021-01-11 10:39:40 +01:00
Pieter-Jan Briers
f7a7303792 Fix server exception on emptying a StackComponent.cs. 2021-01-11 09:57:59 +01:00
Pieter-Jan Briers
96b21ffd1d Fix nullable errors with AfterInteract in UtensilComponent. 2021-01-11 09:36:21 +01:00
Pieter-Jan Briers
1becff68b9 Fix warnings about lacking StorableComponent on map reset. 2021-01-11 09:26:25 +01:00
Ygg01
c01b1d5c05 Add cigarettes and matches to SS14 (#2522)
* Add resources for cigs/matches

* Add files for cigarettes

* Remove Shared Components

* Applied some of the suggestions

* Change priority to allow matches to be set alight by matchbox

* Added item for pack of cigars

* Add swepts resources. Fix naming

* Fix naming, implement suggestions.

* Addressed Paul's suggestions

* Remove unused resources

* Fix Paul's suggestions
2021-01-11 00:17:28 +01:00
Vera Aguilera Puerto
12c733654c Basic gibbing (#2973)
* Adds gibbing

* Adds adminbused absurd-damage foamblade

* Sane parts

* BaseOrgan -> BaseMechanism

* Do not do random offset on shared, fix killing oneself with click attacks

* BaseMechanism -> BaseHumanOrgan -> *stuff*

* Account for prediction, again

* Add gibbing sound
2021-01-10 20:12:34 +01:00
Vera Aguilera Puerto
5ec8e81ddb Fixes syringe/injector item status volume not being updated correctly.
Fixes #2843
2021-01-10 16:21:09 +01:00
Vera Aguilera Puerto
3157da2db7 Bottles break when thrown and spill their contents on the ground.
Fixes #2918
2021-01-10 16:10:28 +01:00