Commit Graph

374 Commits

Author SHA1 Message Date
metalgearsloth
7bf28ff3d5 Make doors event-based rather than EntityQuery based (#2195)
* Event-based door updates

Slight perf increase

* Optimise CheckCrush too

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-10-10 13:33:56 +02:00
DrSmugleaf
fe39b5fb71 Make portals use ICollideBehavior and set collidable.Hard to false (#2186) 2020-10-10 13:32:42 +02:00
AJCM-git
ea30709cde Bolts down event and minor tweaks (#2053)
* initial commit

* I have to switch to master

* oops

* i need to merge master

* finishing touches

* updating submodule

* bye

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-10-08 17:59:20 +02:00
Víctor Aguilera Puerto
745401a41e Data-oriented Construction System (#2152)
- Powerful
- Data-oriented
- Approved by PJB
- Powered by node graphs and AI pathfinding
- Coded by the same nerd who brought you atmos

Co-authored-by: Exp <theexp111@gmail.com>
2020-10-08 17:41:23 +02:00
DrSmugleaf
a984076574 Headsets (#2023)
* add headset component

* add basic headset logic

* fix formatting in listening component, add dependency to headset

* test function for headset

* implement headset as listener

* ANNIHILATES ListeningComponent, refactor of radio/listener sys

* basic headset functionality

* rename RadioComponent to HandheldRadioComponent

* change channel to list of channels

* basic headset implementation complete

* message now always excludes ';'

* add radio color; state channel freq. and source name

* undocumented game breaking bug commit (DO NOT RESEARCH)
actually just changes frequency from 1457 (what signalers are set to by default) to 1459, the actual frequency for common

* Add more sprites

* Reorganizes

* Added job headsets

* Adds headset as an ignored component

* Jobs now spawn with headsets

* remove system.tracing

* Catchup commits

* Add headset property serialization

* Turn GetChannels into a property

* ListenRange property and serializatioon

* Adjust interfaces

* Address reviews

* Cleanup

* Address reviews

* Update rsi

* Fix licenses and copyright

* Fix missing textures

* Merge fixes

* Move headset textures from objects/devices to clothing/ears

* Fix rsi state names and add equipped states

* Fix headsets not working

* Add missing brackets to channel number in chat

* heck

* Fix broken rsi

* Fix radio id and names

* Put quotes around headset messages

* Fix method names

* Fix handheld radios

* Fix capitalization when using radio channels and trim

* Remove unnecessary dependency

* Indent that

* Separate this part

* Goodbye icons

* Implement IActivate in HandheldRadioComponent

* Add examine tooltip to radios and headsets

* Rename IListen methods

Co-authored-by: Bright <nsmoak10@yahoo.com>
Co-authored-by: Swept <jamesurquhartwebb@gmail.com>
Co-authored-by: Bright0 <55061890+Bright0@users.noreply.github.com>
2020-10-07 05:02:12 -07:00
Pieter-Jan Briers
66c8a68891 Holy crap auth works (#2099)
* Holy crap auth works

* Fix some usages of UserID instead of UserName

* Refactor preferences.

They be non-async now. Also faster.

* Rename DbContext.

* Guest username assignment.

* Fix saving of profiles.

* Don't store data for guests.

* Fix generating invalid random colors.

* Don't allow dumb garbage for char preferences.

* Bans.

* Lol forgot to fill out the command description.

* Connection log.

* Rename all the tables and columns to be snake_case.

* Re-do migrations.

* Fixing tests and warnings.

* Update submodule
2020-09-29 14:26:00 +02:00
RomanNovo
06d6bfe5e0 Fix issue (#2129)
Co-authored-by: RomanNovo <roman.novo.95@gmail.com>
2020-09-28 18:36:13 +02:00
Paul Ritter
84ce845ea3 Nanotrasen Block Game is here (#2131)
* tetris!

* softdropping & left,right key holding

* started work on the ui

* playable state

* there you go exp

* multiuser rework

* ui update refactor

* blockgame™️

* highscores, keybindings, ui refactor

* speed adjusts
leveling

* highscorebackground tweak
speed tweak

* NULLABLE

* yes
2020-09-26 15:25:22 +02:00
metalgearsloth
2299399226 Rate-limit AI updates (#2120)
* Rate-limit AI updates

Stop the public servers from getting hammered too hard.

* Add logger for the AI limit as well.

* Also support AI maxupdates <= 0

Juuusssttt in case

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-09-24 16:04:01 +02:00
Víctor Aguilera Puerto
0657698485 You can't construct without hands or when you can't interact anymore. 2020-09-24 13:13:10 +02:00
Víctor Aguilera Puerto
35d817e252 Comms console now restarts the round correctly. 2020-09-23 11:53:31 +02:00
Víctor Aguilera Puerto
31e0dfc10c Adds FlammableComponent, humans can now catch on fire. (#2115) 2020-09-22 15:40:04 +02:00
Víctor Aguilera Puerto
4c34a12c67 Adds IThrowCollide, Creaming people with cream pies and tactical stun baton throws (#2122) 2020-09-22 15:34:30 +02:00
Víctor Aguilera Puerto
16b364561e Fix footstep sounds not playing 2020-09-22 13:40:00 +02:00
Víctor Aguilera Puerto
69059eac80 Adds new different reaction types. (#2114)
* Adds new different reaction types.
- Adds touch, injection and ingestion reactions for entities.
- Adds tile reactions.
- Removes GasSprayerComponent in favor of SprayComponent.
- Gives fire extinguishers a safety.
- Gives spray puffs a sprite.
- Improved spray and fire extinguisher in general.
- Fire extinguisher now ACTUALLY puts out fires. Amazing, eh?
- Fire extinguisher sprays three 'clouds' at once.
- Spraying flammable chemicals at fire makes them worse. Whoops!
- Gives spray and fire extinguisher their classic sounds.
- Most chemicals now don't make puddles. Too bad!
- Space lube now makes a very slippery puddle. Honk.
- Spraying water (or using a fire extinguisher) on existing puddles makes them bigger.

* Fix solution tests

* food base now has solution container with noexamine caps
2020-09-21 17:51:07 +02:00
Víctor Aguilera Puerto
6ec2939f15 Refactors radiation (#2009)
* Work on refactoring radiation.

* mmmm grayons

* fixes

* Now you can specify whether the pulse will decay or not

* whoops

* Move IRadiationAct to shared, make DamageableComponent implement it instead and add metallic resistances to walls

* General improvements, send draw and decay with state. Rename DPS to RadsPerSecond

* E N T I T Y  C O O R D I N A T E S

* Entity coordinates goood

* Remove unused using statements

* resistances: metallicResistances

* - type: Breakable moment

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-09-21 01:49:40 +02:00
20kdc
da463097f0 Atmos debug helpers (#2108)
* Atmos debug overlay

* Pressure direction information

* Atmos debug overlay: show excited tiles
2020-09-21 01:13:17 +02:00
Swept
0ea8792501 Cleanup (#2111) 2020-09-20 17:29:11 +02:00
Víctor Aguilera Puerto
cb43970188 Space now has an immutable, cold atmosphere. 2020-09-19 15:02:30 +02:00
derek
158f765895 Keybind to stop pulling. (#2094)
* keybind to stop pulling.

* smug
2020-09-16 23:58:50 +02:00
Metal Gear Sloth
069f31ca07 Fix AI melee combat
It's just that easy.

AI using the interaction system is messy and needs a refactor (there's already an existing issue for this).
2020-09-15 20:43:03 +10:00
DrSmugleaf
74943a2770 Typo, redundant string interpolation, namespaces and imports cleanup (#2068)
* Readonly, typos and redundant string interpolations

* Namespaces

* Optimize imports

* Address reviews

* but actually

* Localize missing strings

* Remove redundant vars
2020-09-13 14:23:52 +02:00
creadth
7baa0a4391 Fire damage (#2024)
* Moved the uplink creation code to the PresetSuspicion.Start method to ensure uplink created when we give the traitor role
Moved the starting TC balance to cvars

* Added component to handle interaction with Atmospheric system
Added damage from high and cold temperature

* renamed AtmoExposable to AtmosExposed
moved AtmosExposed updates to its own system
refactored TemperatureComponent
renamed fire to heat
added null check for Air
added self-heating and self-cooling to body system

* small refactoring for checking on airless tile in MetabolismComponent

* Added component to handle interaction with Atmospheric system
Added damage from high and cold temperature

* renamed AtmoExposable to AtmosExposed
moved AtmosExposed updates to its own system
refactored TemperatureComponent
renamed fire to heat
added null check for Air
added self-heating and self-cooling to body system

* small refactoring for checking on airless tile in MetabolismComponent

* Removed Pressure property from BarotraumaComponent
Changed CanShiver method to match style of other CanX method in ActionBlockerSystem

* Merged EntityCoordinates and changed components to reflect the change

* Fix typo

* Wrapped string to Loc.GetString
Added CanSweat
Refactored dead state check
2020-09-09 17:03:27 +02:00
DrSmugleaf
48b61f6bcc Replace every usage of GridCoordinates with EntityCoordinates (#2021)
* Update RobustToolbox

* Transition direct type usages

* More updates

* Fix invalid use of to map

* Update RobustToolbox

* Fix dropping items

* Rename name usages of "GridCoordinates" to "EntityCoordinates"

* Revert "Update RobustToolbox"

This reverts commit 9f334a17c5908ded0043a63158bb671e4aa3f346.

* Revert "Update RobustToolbox"

This reverts commit 3a9c8cfa3606fa501aa84407796d2ad920853a09.

# Conflicts:
#	RobustToolbox

* Fix cursed IMapGrid method usage.

* GridTileLookupTest now uses EntityCoordinates

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: Víctor Aguilera Puerto <zddm@outlook.es>
2020-09-06 16:11:53 +02:00
nuke
c3630b7301 Glowsticks, flares and lighting behaviours (#1886)
* Assets

* LightingBehaviours, flares, and such.

* More changes

* More changes, more flare work.

* More work on flares + light behaviours

* another refactor

* missed

* Light behaviours refactor, added sfx, improved graphics, improved lighting effects for glowstick and flare.

* remove unneeded value

* nullables

* remove old code

* nullable

* one last push

* net id

* more work

* more colors for glowsticks

* Adjust flare so it fades in

* fix name

* sprite fix
2020-09-03 22:02:40 +02:00
Víctor Aguilera Puerto
9944dc70d0 Fix random events not playing 2020-09-02 18:34:40 +02:00
Víctor Aguilera Puerto
2294c32235 Merge branch 'master' into 2020-08-31-click-attack 2020-09-02 15:12:17 +02:00
SoulSloth
e40e3fa267 Cloning (#1932)
* Add art assets for cloning

* Added a 'Scan DNA' button to the medical scanner

* Made the UI update unconditional for the medical scanner until checks for power changes are in place

* Update Medical scanner to reflect powered status and fix #1774

* added a 'scan dna' button the the medical scanner that will add the contained bodies Uid to a list in CloningSystem, fixed an issue with the menu not populating if the scanner starts in an unpowered state

* Add disabling logic to 'Scan DNA' button on medical scanner

* Removed un-used libraries

* changed scan dna button to Scan and Save DNA

* Added cloning machine code infrastructure copied from Medical Scanner

* Added a list to cloning menu containing some numbers

* Cloning Machine UI sends a message to the cloning component with the entityUID

* New scans now show up in cloning pod menu

* fixed cloning machine collision shape

* cloning machine can now spawn the right player profile assuming the attatched entity is still correct.

* refactored cloning system to use a map of integer ids to player Minds

* Added a return to body cloning loop for the ghost

* Fixed warning for _playerManager being possibly null, added TODO note for ghost return to body button acting as a toggle

* removed #nullable from cloningMachineWindow"

* Trying to get rid of nullable error

* fix CloningMachine to not initilize with it's owner components

* updated CloningMachine server component to play nice with the new nullable rules

* replace flag with eventBus message for sending a ghosts mind to a clone body

* Refactor cloning so that a popup option is used to get user consent for cloning

* Refactoring

* Reverting unused changes for cloning component

* Added proper cloning pod sprites and a visualizer so 'idle' and 'cloning' states are properly reflected

* added missing robust toolbox contents

* Added cloning NoMind State and made cloning take time

* Added cloning progress bar and mind status indicator to cloning pod

* Added missing localization calls, removeed 'returned to cloned body' from ghostUI

* Added unsubscribe for cloningStartedMessage in Mindcomponent.cs OnRemove

* Added eject button to cloningMachine and clamped the cloning progress bar to 100%

* Added condition to eject body on cloningmachine so bodies can't be ejected until cloning is done

* Add click-dragOn functionality to the medical scanner for things with a bodyManager

* Messed with scan query so it doesn't fail on dead bodies as long as Mind still owns the mob

* refactored clonning scan check on medical scanner so it doesn't do a linq query

* merge with rogue toolbox

* Change the name of Cloning Machine to the less generic Cloning Pod

* Changed Cloning Pod so it pauses cloning while the power is out

* Removed the evil LocalizationManager from the cloning menus and used the static Loc instead

* removed localization dependency from bound accpetCloning user interface

* Removed Ilocalization dependency I accidentally added to ghost ui

* Update Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerComponent.cs

Co-authored-by: Exp <theexp111@gmail.com>

* Changed null check to tryget in case for cloning UiButton.Clone

* Parameterized Cloning time on serverside component

* tried to reset Robust toolbox module to current master

* Added null check to ghost client component message handling, unsubscribe to the mind component listening to the cloning question ui, fixed _clonningProgress typo, moved CloningPod component dependencies to actually be dependencies, removed un-needed disposals of cloning windows, added disposals missing in boundUserInterfaces.

* Reset submodule

* corrected exception for cloning pod visualizer to refer to cloning pod state and not medical scanner state

* Fix typo

* Unsubscribe from onUiReceiveMessage in mindcomponent in the onRemove function, not the acceptcloningui function

* unsubscribe from OnUiReceiveMessage in CloningPodComponent

* unssubscribe from ghostreturn message in cloningpodComponent onRemove

Co-authored-by: Exp <theexp111@gmail.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-09-02 12:07:54 +02:00
DrSmugleaf
8f9ed2f562 Replace usages of ISharedNotifyManager and IServerNotifyManager with extension methods (#1965)
* Replace usages of ISharedNotifyManager and IServerNotifyManager with extension methods

* Remove redundant code
2020-09-01 12:34:53 +02:00
Víctor Aguilera Puerto
db12634bd5 Merge branch 'master' into 2020-08-31-click-attack 2020-09-01 03:25:14 +02:00
Víctor Aguilera Puerto
c8b55714cc Increase barotrauma timer to 3 seconds. 2020-09-01 02:25:19 +02:00
Víctor Aguilera Puerto
391444c879 Add an effect that shows the item you're using to attack with when attacking 2020-08-31 20:54:33 +02:00
Víctor Aguilera Puerto
b927fddf4c Better click attack effect 2020-08-31 19:32:06 +02:00
Víctor Aguilera Puerto
69bd44c94c Adds click attacks 2020-08-31 18:58:22 +02:00
DrSmugleaf
9d6c394f6b Refactor InRangeUnobstructed and add extension methods (#1925)
* Sort out InRangeUnobstructed and add extension methods

* Rename client RangeChecks to RangeExtensions

* Add container extension methods and test

* Add missing component methods

Component to container
Grid coordinates to container
Map coordinates to container
Local player to container

* Actually use the field

* Merge fixes

* Add popup argument to local player extension methods

* Reduce code repetition for client range extensions
2020-08-30 11:37:06 +02:00
metalgearsloth
65a9a09049 Add post-checks for do_after (#1940)
* Add post-checks for do_after

So you can do InRangeUnobstructed or whatever at the end.

Individual components should do their own check upfront to avoid the state ever being sent. I added a pre-made function for people to do InRangeUnobstructed.

* Woops imports

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-29 13:35:03 +02:00
DrSmugleaf
1ecf8aad1a Add prediction for standing states and mob states (#1937) 2020-08-29 13:20:37 +02:00
ancientpower
566ed6b770 Adds the antimatter engine (#1905)
* adds antimatter engine

* fixes some nullables

* fixes ALL OF THE NULLABLES

* adds explosions

* adds fancy lighting

* requested changes + license info

Co-authored-by: ancientpower <ancientpowerer@gmail.com>
2020-08-29 13:05:44 +02:00
metalgearsloth
cc1125cd91 No context menu through occluder (#1934)
* No context menu through occluder

* Fix disabled occluders

* Comment

* Server-side verb ray check

Decided to add a buffer because the entity is at the very edge of the context box (0.5, 0.5) then need to make sure that entities at the other end of the box are ignored.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-29 12:46:42 +02:00
ShadowCommander
aa66aa2286 Implement machine linking (#1784)
* Implement machine linking

* Cleanup and rename Signals

* Implement signal button

* Add machine linking signal mapping

* Fix signallink command help

* Add localization to signal linking and allow infinite range

* Add feedback for when a transmitter is not connected to any receivers

Refactor PopupMessage to use the entity extension
Refactor dependencies to not have to disable warnings
2020-08-29 12:33:42 +02:00
Víctor Aguilera Puerto
fb0ac3d70e Atmos optimizations (#1944)
* Adds IFireAct, ITemperatureExpose

* Use AtmosDirection instead of Direction for Atmos

* Refactor atmos to heavily rely on arrays and bitflags.
Adds F A S T M O S and reduces atmos tech debt heavily.

* Optimize and fix more stuff

* Kinda improve superconduction

* Pipenet is a word

* T U R B O M O S

* Address reviews

* Small optimization

* Superconduct is also a word

* Remove check

* Cleanup tile atmosphere

* Correct a comment
2020-08-28 14:32:56 +02:00
DrSmugleaf
548ef3dedb Add HUD button that displays your SSS role and allies (#1895)
* Add button that displays your SSS role and allies

* Capitalize button name

* Add cases for 0, 1 and invalid number of allies

* Make the ally syncing system saner
2020-08-27 16:39:29 +02:00
nuke
388e717a53 Get rid of CuffSystem, make CuffableComponent update its hand count properly (#1927)
* Merge branch 'master' of https://github.com/space-wizards/space-station-14 into cuff-fix

* yml

* event bus
2020-08-27 16:33:10 +02:00
metalgearsloth
b0a18ebc5b Fix AiReachable crash (#1913)
This system haunts my nightmares and I'm gonna refactor it before release.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-25 16:44:23 +02:00
metalgearsloth
6240f43ea5 Fix AI mapping crash (#1915)
Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2020-08-25 16:16:54 +02:00
DrSmugleaf
4f8fbe2749 Fix parallel tests unreliably failing due to statics in Atmospherics (#1914)
* Fix atmospherics statics unreliably failing parallel tests

* Cache getting atmosphere system
2020-08-25 16:14:26 +02:00
nuke
a62935dab2 Handcuff system (#1831)
* Implemented most serverside logic

* All serverside cuff logic complete

* SFX, Clientside HUD stuff, Other logic.

* fffff

* Cuffs 1.0

* missing loc string

* Cuffs are stored in the balls now.

* Basic integrationtest

* Support stripping menu.

* rrr

* Fixes

* properties

* gun emoji

* fixes

* get rid of unused

* reeee

* Update Content.Shared/GameObjects/ContentNetIDs.cs

Co-authored-by: Víctor Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
2020-08-25 14:54:23 +02:00
Visne
318f051fb9 Allow all door access in Suspicion mode (#1817)
* Add AccessTypes, let RuleSuspicion change it

* Fix enum description

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

* Move check to CanOpen()

Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2020-08-25 13:37:21 +02:00
Julian Giebel
d9f02a6a0a The disposals pushing and pulling update (#1875)
* Add collision to disposal unit and pipes
Make disposal unit and pipes pullable
Implement proper handling of collisions in disposals

* Implement IsExiting
Move DisposalSystem to shared

* Change SharedDisosalUnitComponent to call manager.ContainsEntity directly

* Update saltern.yml

Co-authored-by: Julian Giebel <j.giebel@netrocks.info>
2020-08-24 20:41:15 +02:00
DrSmugleaf
8a27a5322a Replace pragma warning 649 disable/restore with default! 2020-08-24 14:10:28 +02:00