Commit Graph

816 Commits

Author SHA1 Message Date
DrSmugleaf 3e702723fd
Content PR for YAML hot reloading (#3319)
* Content PR for YAML hot reloading

* Add CanAdminReloadPrototypes (host permission)

* IndexedPrototype fixes
2021-02-20 00:05:24 +01:00
DrSmugleaf 0ae4a6792f
Add health overlay and a command to toggle it (#3278)
* Add health overlay bar and a command to toggle it

* Remove empty line
2021-02-19 19:31:25 +01:00
DrSmugleaf 5667cffe95
Separate ghost warp message into two (#3310)
* Separate ghost warp message into two

* Remove redundant arguments

* Address reviews

* Move properties up
2021-02-19 19:29:34 +01:00
Clyybber c996021b5d
Spill hand contents when dropping them in a fall (#3304)
* Spill hand contents when dropping them due to falling down

* Better approach

* cleanup

* grammar

* stupid
2021-02-18 21:43:46 +01:00
DrSmugleaf 1477cd4d0a
Make component states dependant on the player getting them (#3280)
* Make component states dependant on the player getting them

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>

* Updated submodule to v0.3.7.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
Co-authored-by: Acruid <shatter66@gmail.com>
2021-02-18 00:09:07 -08:00
komunre 77c8fc5b42
Spikes fix reopened (#3203)
* DoAfter, dead and stun check, DragDropOn

* Not ignored anymore

* Copied comment deleted

* Herbert's an ass

* Woops

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-18 18:49:50 +11:00
Ygg01 55d65889ae
Stacked sprite visualizer (#3096)
* Add Stack Visualizer

* Add cigarette pack resources

Adds transparent layers for visualizing cigarettes

* Add Bag Open/Close Visualizer

So storage opened in inventory can have different icons when opened
or closed.

* Create a component that only enumerates single item

Used for creating stuff like matchbox, or cigarettes. As a bonus.
It will only update stack visualizer for that particullar item.

* Refactoring stuff

* Fix other usage of stack in Resources

* Add docs

* Apply suggestions from code review

Apply metalgearsloth suggestions

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

* Applied suggestions from metalgearsloth

* Changed SingleItemStorageComponent to StorageCounterComponent

Difference. New component doesn't spawn items, merely counts them.

* Refactored StackVisualizer

* Fix breakage with master

* Update Resources/Prototypes/Entities/Objects/Consumable/fancy.yml

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

* Update with MGS suggestions

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-02-18 00:02:36 +11:00
DrSmugleaf c435b5150d
Change character names to use datasets prototypes (#3259)
* Remove old name lists in .txts

* Fix tests

* LATEST MASTER TECHNOLOGY
2021-02-17 20:46:44 +11:00
tmtmtl30 2e99ee4fc4
oops (#3268) 2021-02-17 17:39:23 +11:00
DrSmugleaf ecb9993d80
Add cvar to disable ooc chat (#3258) 2021-02-16 20:14:32 +01:00
DrSmugleaf b30bccc03b
Add IRobustRandom extension to get a random value from a data set (#3260)
* Add extension to pick a random element from a dataset

* Add tests
2021-02-16 20:14:12 +01:00
Pieter-Jan Briers cea87d6985
Voting (#3185)
* Basic voting

* Rewrite lobby in XAML.
Working lobby voting.

* Escape menu is now XAML.

* Vote menu works, custom votes, gamemode votes.

* Vote timeouts & administration.

Basically done now.

* I will now pretend I was never planning to code voting hotkeys.

* Make vote call UI a bit... funny.

* Fix exception on round restart.

* Fix some vote command definitions.
2021-02-17 01:07:17 +11:00
DrSmugleaf 78afc2db0f
Add make ghost role verb (#3204) 2021-02-16 09:51:27 +01:00
DrSmugleaf 04aa195c91
Add cooldown to shuttle calling (#3225) 2021-02-16 09:31:57 +01:00
DrSmugleaf cf7ac025b4
Fix the admin panel only listing your character name (#3229) 2021-02-16 09:11:15 +01:00
DrSmugleaf 237e40e60f
Fix the puller not being sent to the client in pullable component (#3228) 2021-02-16 12:52:25 +11:00
DrSmugleaf 9f408945de
Make pulled and cuffed players unable to move (#3227) 2021-02-16 12:51:52 +11:00
Leo a3d0e3f6a7
OOC sent by an admin will have a different color (#3117)
* Admin OOC is sent with a different color than regular OOC

- Also adds the OOC color to the database

* Command to set the color

* Ooc -> OOC

* Change default color to Red (`#ff0000`)

* Outdated namespace
2021-02-14 15:59:56 +01:00
DrSmugleaf a296a5b9b9
Add SpawnIfUnobstructed IEntityManager extension method (#3165)
* Add SpawnIfUnobstructed IEntityManager extension method

* Clarify test comments

* Use GetCollidingEntities

* Enable nullable in test
2021-02-13 17:52:06 +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
DrSmugleaf 6eb0dd4f50
Remove redundant TryGetComponent call in buckle initialize (#3164) 2021-02-12 13:04:19 +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
DrSmugleaf 7a069a4a0f
Change AddAccent command to be case insensitive (#3112) 2021-02-09 20:21:29 +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
Pieter-Jan Briers c8ca4f3fbc Blame Rider for it that always works. 2021-02-08 22:52:52 +01:00
Pieter-Jan Briers c4fe0c904c Merge branch 'master' into expl_int_analyzer 2021-02-08 22:46:28 +01:00
metalgearsloth 7fbf2c9873
Increase lobbyduration default (#3099)
I think 60's okay for SSS but when we get actual rounds I'd make it 90.

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-07 13:55:10 +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
metalgearsloth abde29ed5a
Remove ExplosivePassable collision layer (#3084)
* Remove ExplosivePassable collision layer

Now we have tags which can do this cleaner.

* Update typo

* Vera's review

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-02-06 06:43:50 +11: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
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
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
Pieter-Jan Briers 29918b2810 Fix suspicion round end timer, actually show it. 2021-02-04 04:16:36 +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
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
Vera Aguilera Puerto 59d508c5df Fixes exception when solution reaction completely removes reagent.
Fixed #3053
2021-01-30 15:55:10 +01: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 c947bb75e6
You feel a tiny prick (Hypospray) (#3034) 2021-01-24 14:18:12 +01: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
metalgearsloth 329d599107
Fix drag-drop stripping (#3001)
* Fix drag-drop stripping

* More robust

Co-authored-by: Metal Gear Sloth <metalgearsloth@gmail.com>
2021-01-24 19:00:58 +11:00