Commit Graph

866 Commits

Author SHA1 Message Date
Kara
d35e2f39a7 Roundstart variation game rules (#24397)
* Raise `StationPostInitEvent` broadcast

* Basic variation pass handling

* standardize names + rule entities

* why does it work like that?

* add to defaults

* light break variation pass

* ent spawn entry

* move some stationevent utility functions to gamerule + add one for finding random tile on specified station

* forgot how statistics works

* powered light variation pass is good now

* station tile count function

* public method to ensure all solutions (for procedural use before mapinit)

* move gamerulesystem utility funcs to partial

* ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit

* trash & puddle variation passes!

* oh yeah

* ehh lets live a little

* std

* utility for game rule check based on comp

* entprotoid the trash spawner oops

* generalize trash variation

* use added instead of started for secret rule

* random cleanup

* generic replacement variation system

* Wall rusting variation rule

* account for modifying while enumerating

* use localaabb

* fix test

* minor tweaks

* reinforced wall replacer + puddletweaker

(cherry picked from commit cc24ba6a317c4bee84ffa1eda8397c255ca92be9)
2024-02-08 12:03:43 +01:00
UnicornOnLSD
469bf66aa4 Submarine Station (#704)
* wawa

* A LOT of changes, will write a proper commit

* Final tweaks for Submarine station.

* Finaler tweaks, fixed power on a few places etc etc.

* edits 4 map

* fix sln file

* woopsies, fix !

* removed mediborg from available jobs

* Fixed musician spawn point lacking

* tweaked submarine: fixed evac screens, added material reclaimer in disposals

* submarine update:
-resorted chemistry
-drippy closets up
-THE CRYO IS REAAAAAAL
-beacons, they're here
-stuff

* fixed shuttel, now it's hammurabi's because it's sick and I can't be bothered to build a whole ass evac shuttle meself

* oopsy woopsie wrong file directory uwu

* emergency fixes, weewoo now it's good

* last changes, on god:
-adjusted maints
-new 3R#0!/ beacon somewhere
-AME has enough cores to power station properly roundstart

* fix cryopod, FULLY READY NOW.

* Final commit, changes the shuttle, added perma cryopod, all clean and good to go.

---------

Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
2024-02-01 13:30:23 -06:00
metalgearsloth
148bc96000 Fix guideentryprototypetests (#24427)
It hits the style update limit so try running a tick and see if we can avoid having too many queued.

(cherry picked from commit 54a6151a64578d80078b3213c394d889f41f3752)
2024-01-27 23:44:05 +01:00
LordCarve
3dfd479199 DamageSpecifier Total => GetTotal (#24160)
* DamageSpecifier [Obsolete] Total => GetTotal()

* Remove obsolete Total member from DamageSpecifier.

(cherry picked from commit c77eb8691dc08d384a88ddaf3b734f7777d741b5)
2024-01-27 23:42:35 +01:00
metalgearsloth
3254acd8e7 Fix some test warnings (#24324)
Extracted from smug's pr.

(cherry picked from commit 4a13dbea76e8e6061274537c7063c6915429d38a)
2024-01-26 23:16:18 +01:00
Nemanja
47d24fc3e5 Fix cargo product groups (#24212)
(cherry picked from commit 21e77dffb00d631ea0e6a5c0ad55bed5dcbaa809)
2024-01-26 23:13:54 +01:00
metalgearsloth
419a28aa23 Add netserializable to test doafter (#24313)
Might fix the test failure

(cherry picked from commit ed2fa96ca024df553b2559632ba923e8e51d443e)
2024-01-26 23:13:42 +01:00
Kara
6ca85e719b Destruction & impact sound rework pass 1 (#24282)
* Various sounds ported

* Replace wall_bonk.ogg

* Metal/metalglass break sound pass

* Replace metalbreak.ogg

* Replace woodhit

* Replcae tap.ogg n some smack uses

* Fix lint

* Replace bang.ogg and some instances of hit_kick.ogg

* couple more

* fix wood sound

* i may be stupid

* le attributing

* bro what

* standardize more destruction sounds

* fix melee hit sound cutting off

* window threshold sounds and remove `destroySound` it literally doesnt exist

(cherry picked from commit 818b07ecf82bdd72dc5524f6bc093067b2ef6472)
2024-01-26 23:10:41 +01:00
0x6273
ebcdca5dfa Use old reagent dispenser beaker slot ID (#24209)
Change the slot ID back to what it was to keep old map saves with an item in the slot loading correctly.

This also fixes the "You can't put this in the dispenser!" message not appearing when inserting an item without FitsInDispenserComponent because the whitelisted slot name wasn't changed.

(cherry picked from commit 7a7d0017b504dec4b1d390b941af9791d9677287)
2024-01-26 23:04:27 +01:00
Kevin Zheng
9cc361921b Add limited-reagent dispensers (#23907)
* Add limited-reagent dispensers

* Add empty versions for all dispensers

* Fix lint

* Set initial window size so all buttons are visible

* Simplify logic, add parenthesis

* Use localized name for initial labels

* Adjust button style

* Avoid touching items before MapInit

* Remove pre-labeling

* Reduce diff

* Clean up YAML

* Fix test

* Really fix test

* Document

* Adjust based on review

* Add labels for obnoxiously long bottles

---------

Co-authored-by: AWF <you@example.com>
(cherry picked from commit 9394a262458df76d9c4156f147bed902e3feac75)
2024-01-26 23:03:30 +01:00
Pieter-Jan Briers
300db3826c Fix missing [NetSerializable] in SimplePredictReconcileTest (#24161)
This didn't cause any issues because NetSerializer wasn't used in integration tests... until https://github.com/space-wizards/RobustToolbox/pull/4838.

(cherry picked from commit 45136ef8251e0446ffb584ffb2b3132acb77c863)
2024-01-26 22:56:49 +01:00
AJCM-git
9a6fa17e72 Virtual items cleanup (#23912)
* Virtual items cleanup

* Detail

* Review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
(cherry picked from commit 108f001731b9394f98d9ef712b9b777e5b3f8abc)
2024-01-26 22:49:14 +01:00
deltanedas
149ad77eb5 Add TryGetPrimaryDepartment to jobs system (#23317)
* add primary departments

* make command and station specific secondary

* add a unit test

* fixy

* compile

* webedit ops

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

(cherry picked from commit d1d11d09c7a2698fa723c11a910258f69c3d7b9e)
2024-01-26 22:48:20 +01:00
Pieter-Jan Briers
1c54b75da5 Dependency update / fixes / skrungle bungle (#23745)
* Give .props files 2-space indents.

* Move to Central Package Management.

Allows us to store NuGet package versions all in one place. Yay!

* Update NuGet packages and fix code for changes.

Notable:

Changes to ILVerify.
Npgsql doesn't need hacks for inet anymore, now we need hacks to make the old code work with this new reality.
NUnit's analyzers are already complaining and I didn't even update it to 4.x yet.
TerraFX changed to GetLastSystemError so error handling had to be changed.
Buncha APIs have more NRT annotations.

* Remove dotnet-eng NuGet package source.

I genuinely don't know what this was for, and Central Package Management starts throwing warnings about it, so YEET.

* Remove Robust.Physics project.

Never used.

* Remove erroneous NVorbis reference.

Should be VorbisPizza and otherwise wasn't used.

* Sandbox fixes

* Remove unused unit test package references.

Castle.Core and NUnit.ConsoleRunner.

* Update NUnit to 4.0.1

This requires replacing all the old assertion methods because they removed them 🥲

* Oh so that's what dotnet-eng was used for. Yeah ok that makes sense.

* Add Robust.Analyzers.Test

* Update submodule

* commit to re-run CI

(cherry picked from commit a6c9c36b688a1ba78ff4c12502e81661cf607b6c)
2024-01-26 22:33:46 +01:00
Emisse
9d047a7e52 kill machine parts + migrate machine part spawners to salvage loot spawner (#23752)
* kill machine parts

* guidebook and artifact effect

* worst test ive ever seen in my life

* nuke test

(cherry picked from commit df1d8c36e5e8b0773123c744a4acca473fb135ea)
2024-01-26 22:14:43 +01:00
iacore
f2adcd8783 more balanced constructing and unscrewing for metal objects (#21051)
* more balanced constructing and unscrewing for metal objects

- computer frame, machine frame, rack and meatspike can be deconstructed while anchored by screwing
- Computer frames now need time to be constructed.
- it now takes a reasonable time to make a meatspike. If you can construct a machine frame in 2.5, surely you can make a meatspike in 2.

* Fixes test

(cherry picked from commit d73c7e9a0a3f57788432fde3e5c3ec4b3c23bb35)
2024-01-26 21:50:18 +01:00
metalgearsloth
f128143d13 Salvage magnet revamp (#23119)
* Generic offering window

* More work

* weh

* Parity

* Progression meter

* magnet

* rona

* PG asteroid work

* code red

* Asteroid spawnings

* clams

* a

* Marker fixes

* More fixes

* Workings of biome asteroids

* A

* Fix this loading code

* a

* Fix masking

* weh

* Fixes

* Magnet claiming

* toe

* petogue

* magnet

* Bunch of fixes

* Fix default

* Fixes

* asteroids

* Fix offerings

* Localisation and a bunch of fixes

* a

* Fixes

* Preliminary draft

* Announcement fixes

* Fixes and bump spawn rate

* Fix asteroid spawns and UI

* More fixes

* Expeditions fix

* fix

* Gravity

* Fix announcement rounding

* a

* Offset tweak

* sus

* jankass

* Fix merge

(cherry picked from commit bf79acd127483d64f96dc23f2e64c74ceb84303d)
2024-01-26 21:35:22 +01:00
Leon Friedrich
6cc69b0954 Changes required for frozen event bus PR (#23493)
* Changes required for frozen event bus PR

* Fix RoundEndTest

(cherry picked from commit 377be6fccac23d2a918c9d6902923c1adceeb576)
2024-01-26 21:33:07 +01:00
Leon Friedrich
661f3eb54a Changes required for engine PR (#23488)
(cherry picked from commit 42ec9b29677f06b4205678ec38104991f65d8c61)
2024-01-26 21:31:29 +01:00
Nemanja
30fccbbc8d Chill bounties + fixes (#23411)
* Chill bounties + fixes

* localize

* fix arbitage

(cherry picked from commit 4662d463b8f5cbef5d93ca00b67bae6d8bf5db47)
2024-01-26 21:30:40 +01:00
metalgearsloth
b1738dcf9c AutoCompState + ItemToggle fixes (#23422)
* AutoCompState + ItemToggle fixes

Fix a lot of the comp states that are never actually networked and also cleaned up ItemToggle events a bunch. ItemToggle will still need some future work for lights and sounds.

* Also catch these

(cherry picked from commit 2166958bd0c23b7b9fd5c699eaeee910d1db62bf)
2024-01-26 21:27:29 +01:00
DrSmugleaf
ec6a4c8f06 Fix ConfigPresetTests.TestLoadAll not handling automatic panic bunker (#23414)
(cherry picked from commit ac022090b61a71b7b9040756393fb39ef1c95f7c)
2024-01-26 21:27:08 +01:00
Debug
56cd917c73 Fix Nyano systems for solution refactor 2024-01-26 21:22:43 +01:00
TemporalOroboros
ce27944275 Revert 'Revert 'Solution Entities'' (#23168)
(cherry picked from commit d23c8d5c19e56a582b6b12f832bd318efbdac7c7)
2024-01-23 23:00:42 +01:00
Leon Friedrich
f4149a1404 Fix GravityGridTest (#23348)
(cherry picked from commit 383271c8fa1a1e9b81bebf7cc34c85e38737fc47)
2024-01-23 22:53:53 +01:00
Leon Friedrich
0f4debb057 Try fix random explosion test failures (#23158)
(cherry picked from commit c2c76c2035b2da8cf6aa4948a44aeac123a2588b)
2024-01-22 20:59:04 +01:00
TemporalOroboros
aebae6fab7 Content ecs containers (#22484)
(cherry picked from commit 7a77d6d5dd73a34be238fdebc284da5bc2917c67)
2024-01-22 18:47:55 +01:00
Leon Friedrich
f3e61795f4 Add some tests and fix some miscellaneous bugs (#22836)
* Add some tests and fix some bugs

* Add more helper methods

* remove submodule

* fix merge

* also fix DirtyAll()

* poke

(cherry picked from commit 35ba42af9ccbbe41e8a3e59b30f2799ef8ca4b8d)
2024-01-22 18:44:30 +01:00
Leon Friedrich
e27a59b938 Try fix organ networking (#23034)
(cherry picked from commit 0734a876f90530f6214f17b1e771aea972e7a482)
2024-01-22 18:44:25 +01:00
Leon Friedrich
dfce24f487 Update ToolshedTest for engine PR (#22989)
(cherry picked from commit eb04a982948bd4378d297f7796725450e6cc8146)
2024-01-22 18:38:41 +01:00
Leon Friedrich
fb9adfb137 Make cargo arbitrage test ignore gambling crate (#22943)
(cherry picked from commit 9eaa4c3a5d3f0f6e55f88f79c6d36db09367c6df)
2024-01-22 18:36:55 +01:00
Darkie
03abecd365 ItemToggle system expansion (#22369)
* Fixed EnergySword and variants having incorrect sound on attacking when in their Off state.

* Removed the unused ItemToggle from the serverside and created a new shared ItemToggleComponent and System, now used for the e-blade family of items. Also added e-blade hum and swing sounds. Thanks Sloth for the initial code!

* Changing Stunbaton system to include the itemToggle system.

* Adapted changes that have come up in the meantime.

* Changed damagespecifier to be serializable and autoNetworked in melee weapon components. Fixes a bug that makes it so client-side, damage values are not updated on toggle.

* Made the ItemToggleSystem have both a shared and a server component. Ported the Stun Baton and Stun Prod to the new toggleable system. Added a failure to activate noise component.

* Ported the welders to the new item toggle system. Set it so deactivated damage and item size default to the item's regular options.

* Removed unnecessary usings.

* Small modification to the stun prod.

* Made the integration test use the new method to turn the welders on.

* Fixed a few testing issues, applied a few changes requested by Delta.

* Updated Stunbaton code for consistentcy when it comes to calling the itemToggle component.

* Removed a redundant return; as per Delta.
Made examining the stun baton for charge rely on the battery component instead.

* Removed the welder visualizer system, now using the generic one. Removed some unused usings. Removed the welder visuals and layers.
Ported lighters to the new system.
Added zippi (sic) lighters.

* Renamed variables used to make them less generic.

* Simplified the light update code.

* Fixed the unit test to use the itemToggle system for welders now.

* Made the name shorter. I can't tell if the welding damage when interacted with actually does anything though. I can't figure out how to trigger it.

* Fixed some YML issues.

* Added a client side item toggle system just to make the shared code run on local UID's too.

* Fixed some more Yaml.

* Made the Zippi lighter have its own parent item, so it doesnt' conflict with the random pattern on the regular lighter.

* Made the zippi lighter its own in-hand sprites.

* Added a summary for the activated property in itemtoggle component.

* Fixed a typo in the itemToggle Component.

* Fixed a typo.

* Added to the remarks for the ItemToggleComponent.

* Fixed up the lighter yaml to make it use a generic term instead of a toggle layer enum for the random skin.

* Fixed a bug I introduced accidentally with the humming sound.

* Removed 2 unnecessary events from the ItemToggleSystem and component.

* Fixed a bug by only making the server run the item activation code, since the client cannot predict whether or not the activation will be cancelled.

* Cleaned up some names and functions getting called.

* Renamed a couple of variables and removed the explicit datafields from the component. Removed "activated: false" from yml since they're already deactivated by default.

* Added an IsActivated function, used it in the welder and stun baton systems code.
Refactored welder code to remove the WelderToggle event, now using the ItemToggleActivatedEvent instead for eye protection check.

* Fixed a typo. Added some comments.

* Split the ItemToggle into smaller components.
Changed the items that used the toggle system to work with the smaller components.
Made the mirror shield reflect energy shots with a 95% chance.

* Fixed the namespaces for the server components and whatnot.

* Fixed a doubled deactivation sound from using activated wieldable items (like the double Esword).
Fixed wrong yml with the e-dagger.
Fixed the disarm malus code.

* Added the zippo lighter to the detective's trench coat.

* Removed the default hit sound for the double e-sword since it was unnecessary.

* Changed e-sword damage numbers to be in line with the changes made by Emisse.

* Made no damage sounds be autoNetworked, so it changes can be changed on activation/deactivation of items.
Made Welders and Eswords sound like themselves but quieter if they hit for 0 damage, instead of taps.
You can choose what sound to play when a weapon does 0 damage when activated now.
Fixed a bug with swing sounds.

* Typo.

* Fixed a bug where the welder would blind you if you used it while it was off.

* Created a single abstract method called when an item has completed its toggle.

* Update Content.Server/Eye/Blinding/EyeProtection/EyeProtectionSystem.cs

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

* Fixed a comment.

* Made most component variables readOnly for ItemToggle. There is no need to be able to change them from within the variable viewer.

* Removed trailing white spaces.

* Made the Use a field instead of a property in the itemToggleActivation/Deactivation attempt events.

* Small fixes.

* Removed ForceToggle, just use the toggle method instead.

* Fixed a bug with item sharpness staying even after getting deactivated, if the item gained sharpness that way (esword).

* Used ProtoId in the welder component.

* Made damage NetSerializable as well.

* Added networking and data fields to a couple of components.

* Made component variables autonetworked. Added some comments.

* Moved the events that modify item components on toggle to events, handled (where possible) in the systems linked to said components.

* Made all the component variables readWrite again.

* Added the component get to the WelderStatus.

* Added a predictable bool to the item toggle component.

* Replaced the Activated/Deactivated events with ToggleDone, with an Activated argument. Used that to simplify some systems.

* Added a reflect update raise event.

* Removed the Zippo changes. To add in a later PR.

* Removed the zippo from meta.json too.

* Small fix.

* Another small fix.

* Fixed the wieldable system thing in ItemToggle.

---------

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

(cherry picked from commit a3fbab84e645a16a30845aa1e683e7ffc0e3b8cd)
2024-01-22 18:29:05 +01:00
Debug
18f0af1f68 Implement gridinv, proper (#703)
* Implement gridinv, 1500 squashed commits :elp:

* Me when

* Linter errors

* Fix katana belts
2024-01-21 19:58:28 +01:00
Velcroboy
81a4890686 Hammurabi Rebase (#686)
Co-authored-by: IamVelcroboy<>
2024-01-16 21:53:35 -06:00
Debug
e09112b35c Fix Crime Assist incorrect entires and add a test (#624)
* Create CrimeassistTest.cs

* Fix invalid crimeasssist entries

* Clean up test code
2023-12-31 17:22:56 +01:00
LordCarve
4b9e628418 Consistent Absorbent System behavior (#22723) 2023-12-22 23:25:35 +01:00
Nemanja
d4ef5bec6c mild reagent prototype cleanup + other misc garbage (#22630) 2023-12-22 22:45:36 +01:00
Pieter-Jan Briers
33e3e8b321 High-latency DB testing stuff (#22282) 2023-12-16 19:39:24 +01:00
metalgearsloth
867f873c9c Fix MapPainter (#22290) 2023-12-16 19:37:31 +01:00
Nemanja
5556cba3ca Narsie test bandaid (#22206) 2023-12-16 19:28:58 +01:00
TemporalOroboros
0df9e39c62 Make test EntitySpecifiers ignore entities with null prototypes (#22174) 2023-12-16 19:27:09 +01:00
metalgearsloth
d63396a203 Fix SpawnAndDeleteEntityCountTest heisentest (#21975) 2023-12-02 20:30:39 +01:00
metalgearsloth
59037cdbbb Use PoolManager testmap for EntityTest (#21968) 2023-12-02 20:27:37 +01:00
metalgearsloth
fa25e1fc02 Fix GridFill comp skip (#21944)
Oop.
2023-12-02 20:27:37 +01:00
metalgearsloth
b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
metalgearsloth
52104a45c1 Revert Arch testmerge 2 (#21901) 2023-12-02 19:05:12 +01:00
metalgearsloth
39ad6db5c3 Update submodule to 182.1.0 (#21900) 2023-12-02 19:05:11 +01:00
metalgearsloth
9741d9916c Revert the other arch changes (#21871) 2023-12-02 19:05:11 +01:00
metalgearsloth
34efd6194d Revert submodule to 180.2.1 (#21870) 2023-12-02 19:05:11 +01:00
metalgearsloth
333096b19e Content arch (#20107)
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
2023-12-02 19:04:08 +01:00