Commit Graph

1199 Commits

Author SHA1 Message Date
py01
32f04fd7ca Replaces PowerReceiver's C# event with a ComponentMessage (#2888)
Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-03 16:13:01 +01:00
py01
6d9d7f751e Fixes ApcNetTest (#2895)
Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-03 03:48:33 +01:00
Vera Aguilera Puerto
85add420b0 Destructible spawning fix redux (#2892)
* Fix SpawnEntitiesBehavior crash and add test

* Fix comparer, add duplicated behavior

Turns out this isn't Java

* Threshold behaviors are now "linearly" executed

* Fixes YAML threshold behaviors to be linear

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2021-01-02 20:06:00 +01:00
Daniel Castro Razo
cc4669244d Fixes to explosionhelper (#2819)
* Revert "Make handheld explosives affect tiles (#2806)"

This reverts commit 005e142949.

* Fixes tiles being destroyed under walls by an explosion

* Extra imports removed

* Handles explosion in space and different grids

This handle explosions across different grids, and tiles are still protected if there is an entity airtight and currently blocking air on top of them that survived the explosion.

* Some bug fixes

- The way tiles were being protected was silly.
- Big explosions cause a lot of objects to trigger multiple events and at the same time they are destroyed.
- Explosions spawning inside containers like closets work now.

* Range bug fixes

* Explosive

The explosion works even if the entity exploding is inside multiple 'layers' of containers like.
bomb -> survival box -> tool box -> closet

* Explosions are different now

Explosion can't jump over walls now.
Explosions work like rays now, if an explosion breaks a wall it can scatter inside the room.
If entities are behind impassable entities that survive the blast  they are left unscathed.

* Little fix

* Remove the extra lookup of tiles

* Another small change

* Restore the second lookup

I thought this was extra, but this protects the tile under it if there is an Impassable entity on top. None wants anchored girders on top of lattice/space

* Changing order of conditions

IsBlockedTurf is cheaper to run than InRangeUnobstructed.

* Yep
2021-01-02 19:03:10 +01:00
Swept
cd9e5a590b Fixes remaining renamed chems (#2889) 2021-01-02 18:05:32 +11:00
py01
a87dda47e9 Removes some linq from power (#2875)
* PowerProviderComponent Linq removal

* AdjacentNode Linq removal

* PipeNode Linq removal

* Replaces HasFlag usage in PipeNode

Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-02 02:04:10 +01:00
moonheart08
836e2d185a LV Cables -> APC Cables (#2884)
i used the github web editor
sue me it's just a string
2021-01-01 20:32:29 +01:00
py01
135a65f030 ApcNet code improvements (#2876)
* Removes per-frame setting of PowerReceiverComponent.Powered

* PowerReceiver.SetLoad

Co-authored-by: py01 <pyronetics01@gmail.com>
2021-01-01 18:21:18 +01:00
Vera Aguilera Puerto
4316e2f554 Recycler improvements, add RecyclableComponent as a tag. (#2882)
* Recycler improvements, add RecyclableComponent as a tag.

* nullableeeeeeeeeeee
2021-01-01 18:19:12 +01:00
Vera Aguilera Puerto
8007e3d03b nullableeeeeeeeeeee 2021-01-01 18:17:38 +01:00
Vera Aguilera Puerto
cf38e17b7e Shuttle called/recalled announcements and sounds. 2021-01-01 16:34:54 +01:00
Vera Aguilera Puerto
d43ca2877a Ghost on mind shutdown fixes, no more ghost stacking at bar.
Fixes #1701
2021-01-01 16:11:17 +01:00
Vera Aguilera Puerto
b5fd2ffd6d Recycler improvements, add RecyclableComponent as a tag. 2021-01-01 15:28:58 +01:00
Vera Aguilera Puerto
f8d4d4b8d7 Fix bug where ghosts weren't being spawned for players after their attached entity was deleted.
Turns out creating an entity timer for an entity that has been deleted is a bad idea! Who would have thought?
2021-01-01 15:25:09 +01:00
Daniel Castro Razo
633ae5bc90 Fixes Emergency Lights not charging (#2873)
* Fixes Emergency Lights not charging

* Removed extra imports
2021-01-01 14:26:42 +01:00
Vera Aguilera Puerto
483f7f4385 You can now examine Node Containers to see their "connectors" (#2881) 2021-01-02 00:20:23 +11:00
AJCM-git
13704a255c Fixes the audio and icon (#2854) 2020-12-28 04:32:48 +11:00
RemberBL
be48a25c14 Sound effect plays when an item is thrown (#2767)
* Adds toss.ogg to the project's resources

* Thrown items will now play a sound effect
2020-12-27 20:30:47 +11:00
Swept
d595286dcc Tweaks volume of material per sheet in lathes. (#2852)
* Initial

* Tidies up file structure
2020-12-27 19:22:50 +11:00
Swept
94bb7a165d Adds a sound effect when you unwrap an AME part (#2832) 2020-12-27 03:11:52 +01:00
20kdc
6b5cded8c2 Clothing and pronoun fields (#2689)
* Clothing & Gender fields: Add to database [MODIFIED TO NOT DEPEND ON SAPHIRE-DB-REFACTOR]

Sorry about this, Saphire.

* Clothing & Gender fields: Add UI [FALLBACK II]

* Clothing & Gender fields: Actually apply gender

* Clothing & Gender fields: Import innerclothingskirt field from my previous attempt

Couldn't import actual prototypes because of a change to IDs

* Clothing & Gender fields: Add innerclothingskirt field to everything

* Clothing & Gender fields: Jumpskirts now work

* Clothing & Gender fields: Gender field will follow sex field if it's not different (UX improvement) [FALLBACK II]

* Clothing & Gender fields: Gender -> Pronouns to reduce confusion. Also, fix profile summary. Properly. [FALLBACK II]

* Clothing & Pronoun fields: Refactor so that profile equipment adjustments are performed in StartingGearPrototype.
2020-12-24 14:42:40 +01:00
Pieter-Jan Briers
159f7192df Add alert for low oxygen. 2020-12-23 23:46:01 +01:00
DrSmugleaf
764465f60c Separate destructible component threshold into behaviors (#2818)
* WIP changes, add behaviors

* Fix behavior typing, namespace and test

* NO SPACES
2020-12-23 13:34:57 +01:00
Pieter-Jan Briers
8e8594063d Optimize allocations in MetabolismComponent and TileAtmosphere 2020-12-22 18:28:54 +01:00
ike709
7f7f22ef5d APCs now require engineering access (#2795)
* APCs now require engineering access

* Allow if access reader is null
2020-12-22 13:08:35 +01:00
Vera Aguilera Puerto
3b1677ff79 Drinking glasses now break.
- Adds DamageOnLandComponent
- Adds DamageOtherOnHitComponent
- Drinking glasses break on throw.
- Drinking glasses damage others when thrown.
- Glass shards also damage others when thrown.
2020-12-21 13:22:16 +01:00
Vera Aguilera Puerto
cf90c77034 Fix transformable containers.
Fixes #2775
2020-12-21 12:49:38 +01:00
DrSmugleaf
fd258a54d3 Update destructible threshold property casing to follow the rest of the project (#2797)
* Update casing

* Update casing for min/max
2020-12-21 12:11:56 +01:00
Vera Aguilera Puerto
f52984553b Fix airblocked space tiles venting air
Fixes part of #2780
2020-12-20 23:05:23 +01:00
DrSmugleaf
0172613a7d Remove wireless surgery (#2785)
* Remove wireless surgery

* Change surgery window title to Surgery

* Remove todo

* Check only tools with a window open
2020-12-20 04:31:39 +01:00
DrSmugleaf
a3fdcd3a68 Add EffectBlockerExtensions 2020-12-20 04:31:04 +01:00
DrSmugleaf
fcd52fa90c Add ActionBlockerExtensions 2020-12-20 04:26:21 +01:00
DrSmugleaf
026d96fd2d Replace MaybeNullWhen(false) with NotNullWhen(true) 2020-12-20 04:14:41 +01:00
Vera Aguilera Puerto
c9e9d9f4dd Instruments have a property for enabling/disabling MIDI limits.
- Added unlimited super synth that doesn't respect MIDI limits! Adminbuse it to your heart's content and blast your epic MIDIs, fellow badmins.
2020-12-20 01:43:29 +01:00
GraniteSidewalk
89f8d0f34c Cargo Telepad (#2579)
* Cargo telepad

* fixes error

* more efficient tile lookup

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2020-12-19 13:14:26 +11:00
Morshu32
19bd739b0d PreventCollision with strap component while buckled to it (#2694)
* AvoidCollision if collided entity is the one that the character is buckled to

* Attempt to PreventCollision after the player is unbuckled but still colliding with StrapComponent

* Moved PreventCollide to the Shared script.

* Add WakeBody to keep updating the physics collision while being on a collidable strap component.

* Addressed some of metalgearsloth's suggestions:
- Made EntityBuckledTo,IsOnStrapEntityThisFrame and DontCollide not virtual
-Made EntityBuckledTo nullable
-Don't call update on Paused BuckleComponents
-Removed EntityBuckledTo variable declaration in BuckleComponent because it's not needed anymore
-Call TryUnbuckle if (!IsOnStrapEntityThisFrame && DontCollide) to set BuckledTo entity to null.

* Formatting

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Formatting

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Formatting again :P

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Formatting

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Formatting

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>

* Renamed variable EntityBuckledTo to LastEntityBuckledTo

* As per DrSmugLeaf suggestion: Added [ComponentDependency] to the Body variable.

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-12-18 20:12:53 +01:00
Swept
9c381dc174 Shuttle can be called even when comms console is off (#2763) 2020-12-18 12:42:02 +01:00
daniel-cr
a679e691c2 Conveyor Belt appearance when power is off (#2762)
* Conveyor Belt appearance when power is off

If the conveyor belt is running and the power turns off the belt stops pushing things but the animation continues. This changes it so the animation stops if there is no power and resumes when it returns.

* Change from using Initialize, to OnAdd and OnRemove
2020-12-18 18:31:58 +11:00
DrSmugleaf
4e0f52bbaf Add do after to surgery (#2756)
* Cleanup surgery classes

* Add DoAfter to surgery

* Consolidate doafter, break on user and target move

* Ignore biological surgery data component on the client

* Apply suggestions from code review

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

* Use a stringbuilder  for surgery descriptions

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2020-12-18 00:21:43 +11:00
DmitriyRubetskoy
9c26e0c5ba Async Interface IAfterInteract() (#2735)
* Async Interface

* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs

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

* Changed the glassbeaker

* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs

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

* Update Content.Shared/Interfaces/GameObjects/Components/Interaction/IAfterInteract.cs

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

* Interaction system fix

* Removed I from the interface

* Changed all implementations of the interface I could find

* all public void implementation fixed

* All built, no errors should remain

* Update Resources/Prototypes/Entities/Objects/Specific/chemistry.yml

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

* Update Content.Server/GameObjects/Components/Portal/TeleporterComponent.cs

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

* Update Content.Server/GameObjects/Components/ActionBlocking/HandcuffComponent.cs

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

* Commit based off Sloth's commentary

* Removed the Rag file from the PR

* Reverted sloth's commentary changes on the publcity of the function

* Injector component properly implemented interface

* Update Content.Server/GameObjects/Components/Fluids/MopComponent.cs

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

* Update Content.Server/GameObjects/Components/Fluids/SprayComponent.cs

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

Co-authored-by: BlueberryShortcake <rubetskoy234@mail.ru>
Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2020-12-17 18:45:04 +11:00
20kdc
d870a13445 Singularity testing map & "startsingularityengine" admin command (#2752)
* Singularity Testing Map: Add a command to auto-config the singularity engine

* Singularity Testing Map: Add the singularity testing map

A derivative of 20kdcstation.
2020-12-17 18:20:57 +11:00
20kdc
91f2f4f599 Fix Antimatter engine maths and overplacing (#2736)
* Antimatter engine parts can't be placed overlapping

* Antimatter engine stability maths fixed

* Antimatter engine: Clean up some unused stuff
2020-12-17 00:31:47 +11:00
chairbender
27d5019df0 Fix server NRE on clicking alerts with no OnClick (#2748)
* #2744 fix NRE on clicking alerts with no OnClick, and don't send the click
message unless the alert has an onclick

* #2744 fix NRE on clicking alerts with no OnClick, and don't send the click
message unless the alert has an onclick
2020-12-16 12:13:57 +01:00
py01
c770c6b37e ChemicalAmmoComponent (#2739)
* ChemicalAmmoComponent

* Moves BarrelFiredMessage to FireProjectiles

Co-authored-by: py01 <pyronetics01@gmail.com>
2020-12-16 00:38:41 +11:00
DrSmugleaf
d5eb68ac61 Add test for puddle evaporation when paused and unpaused (#2741) 2020-12-14 16:18:37 +11:00
chairbender
7a3c281f60 Actions System + UI (#2710)
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-12-13 23:28:20 +01:00
20kdc
fd0df9a00a Traitor Deathmatch (#2719)
* Traitor Deathmatch: Add the preset [Rebase onto factors line]

* Traitor Deathmatch: Being a human head or other not-quite-fully-animate object counts as dead. [ROFL]

* Traitor Deathmatch: Add redemption machine (but it doesn't work) [ROFL]

* Traitor Deathmatch: Map in redemption machines [ROFL]

* Traitor Deathmatch: Make the rounds end properly [ROFL]

* Traitor Deathmatch: PDA redemption works [ROFL]

* Traitor Deathmatch: New redemption machine sprite ( @Tomeno )

* Traitor Deathmatch: Get rid of redundant using

* Traitor Deathmatch: Change scoring, prevent redeeming your own PDA, fix bug where PDAs are not tagged with their owner names

* Traitor Deathmatch: Better messages, change cvar name, don't count ghosts for spawnpoint selection
2020-12-13 16:00:49 +01:00
20kdc
58af9003e7 Canisters [ Continuation of clement-or #2544 ] (#2628)
* Added atmos sprites from CEV-Eris

* Moved canister sprites to appropriate dir

* Removed unnecessary sprites, edited canisters prototype

* Created Gas Canister UI and release pressure buttons

* Changed GasMixture's pressure calculation (convert liters to cube meters)

* Added relabeling Canisters

* Reverted changes on GasMixture

* Changed my name in the credits

* Added valve opening on canisters

* Change canister visual state when connected to a port

* Added nullable to SharedGasCanisterComponent

* Replaced nullable contexts

* Changed again nullable annotation context

* Moved name in the credits to correct alphabetical order

* Canisters: Fix the most blatant issues with this PR (the added project interdependencies for no reason whatsoever)

* Canisters: Stop crashes when canisters leave atmosphere

* Canisters: Gas released into no atmosphere gets transferred "into space" (deleted)

* Atmos: Nullability annotations on TileAtmosphere, explaination of the states of TileAtmosphere.Air

* Canisters: If in an airblocked tile, do NOT release gas

* Scrubbers: Fix typo leading to them not connecting properly.

* Revert manual changes to credits file (sorry!) (1/2)

This reverts commit 94f3b0e5df8d9c2fa189866a17a231920f99bdaf.

* Revert manual changes to credits file (sorry!) (2/2)

This reverts commit 1986fb094dfaa44060f08d280f36b755258d17a6.

* Canisters: Apply @Zumorica 's reviews

* Canisters: Add missing localization as suggested by PJB

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* Canisters: Pressure lights!

* Canisters: Light is now unshaded.

* Canisters: Now using IActivate

* Gas canisters (& air canister), now with their numbers properly calibrated (hopefully)

* Canisters: Refactor how their layers are added to be more like ApcVisualizer

* Canisters: Clean up of the tile invalidation/air release logic

* Canisters: Some gas canister window improvements

* Canisters: Clean up release pressure change button label code

Co-authored-by: Clement-O <topy72.mine@gmail.com>
Co-authored-by: Clément <clement.orlandini@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2020-12-08 20:45:24 +01:00
Vera Aguilera Puerto
2b6964746c Adds Invalidate method to TileAtmosphere, clean up a bunch of tile invalidations 2020-12-08 17:36:59 +01:00
py01
656eb7dc2e ChemicalInjectionProjectileComponent (#2657)
Co-authored-by: py01 <pyronetics01@gmail.com>
2020-12-08 23:19:01 +11:00