Compare commits

...

1957 Commits

Author SHA1 Message Date
Ed
3a7e43f6b2 Create laws.ftl 2025-05-29 18:23:12 +03:00
Ed
8006578845 fix #1311 2025-05-29 00:57:12 +03:00
Ed
9b6ceb8d18 caves fix 2025-05-29 00:45:41 +03:00
Fr0goo
3d964cbf04 Goblin Speech noise (#1304)
* Goblin Speech noise

added some goblin speech noises using various already existing goblin sounds. just cropped and stuff

* Fixed capitalization

* Apply suggestions from code review

Co-authored-by: Nim <128169402+Nimfar11@users.noreply.github.com>

---------

Co-authored-by: Nim <128169402+Nimfar11@users.noreply.github.com>
2025-05-29 00:24:21 +03:00
Red
cde388f5dd Another Merchant gameplay attempt (#1308)
* setup UI

* setup debug data

* graph control setup

* reputation trade component

* unlocking logic

* smoe real reputation costing

* remove sponsors part, add trading specific UI nodes

* port to default pricing system

* buy cooldown

* fuck off trading cabinets

* real good cooldown UI

* Cool unlock sound

* reputation earning

* cool purchare sound

* coin & sprite work

* delete old guidebooks

* cool purcharing VFX

* better ui

* victoria gardens

* Update migration.yml

* Update migration.yml

* cooldown removed

* contracts

* Update migration.yml

* remove CP14Material

* materials appraise

* food appraise

* auto economy pricing system

* alchemy reagents appraise

* coins resprite

* alchemy appraise 2

* modular weapon appraise

* selling platform

* Update PricingSystem.cs

* Update CP14TradingPlatformSystem.cs

* merchants returns + map update

* Update CP14StationEconomySystem.Price.cs
2025-05-29 00:22:47 +03:00
Lucson1337
0551caf98f Eye patch/глазная повязка (#1329) 2025-05-29 00:22:20 +03:00
Aisu9
995429d041 Small healing magic rebalance. (#1323)
* Healing small rebalance

* Healing spell small rebalance 2

* Healing Spell Rebalance 3

* Update cure_wounds.yml

* Update cure_poison.yml

* Update cure_wounds.yml

* Update cure_poison.yml

* Update cure_heat.yml

* Update cure_wounds.yml
2025-05-29 00:21:31 +03:00
Ignaz "Ian" Kraft
33bb537f81 make heat and freeze work on reagents (#1314)
* make heat and freeze work on reagents

* has to run before AdjustTemperature

* implement suggested changes

* almost missed this edge case

* 0k is the limit

* cleanup
2025-05-28 00:24:01 +03:00
Nim
2607eaeddd Polymorph return (#1327)
* polymorph return

* AliveTarget
2025-05-28 00:08:58 +03:00
Ed
2af8553f03 Update ConstructionMenuPresenter.cs 2025-05-27 23:15:14 +03:00
Red
8dfca40435 Update Dev.toml 2025-05-27 21:52:07 +03:00
Red
cc2a76f967 Update Dev.toml 2025-05-27 21:37:06 +03:00
abdpocoyo
67f8135a96 Update loadout.ftl (#1325) 2025-05-27 11:38:30 +03:00
Kit
89dd70d7cd Iceshard nerf (#1324) 2025-05-27 11:38:03 +03:00
Sefaia
f77a2c55c3 Added Guidebook entry for Locks, Keys and Lockpicking (#1307)
* Added Guidebook entry for Locks, Keys and Lockpicking

* Created a Mechanics Catagory for the Guidebook and allocated the two entries to it.

* Reorganized Lock and Lockpicking along adding TODO on mechanics

* Oops! Correcting a mistake at Lockpicking 101. Thank you @Woolpix18!

* Added a small fun fact about Lockpicks.

* Added Guidebook entries for Russian (IN NEED OF TRANSLATION) and simplified the guidebook entries for ease of reading.

* Update mechanics.yml

* Update mechanics.yml

---------

Co-authored-by: Red <96445749+TheShuEd@users.noreply.github.com>
2025-05-27 11:32:13 +03:00
github-actions[bot]
b665b371f6 @abdpocoyo has signed the CLA in crystallpunk-14/crystall-punk-14#1325 2025-05-27 00:49:45 +00:00
github-actions[bot]
bfc23f2ff6 @KittyCat432 has signed the CLA in crystallpunk-14/crystall-punk-14#1324 2025-05-27 00:43:17 +00:00
github-actions[bot]
f7bb8aec75 @Aisu9 has signed the CLA in crystallpunk-14/crystall-punk-14#1321 2025-05-26 23:57:30 +00:00
github-actions[bot]
53f52c090e @Peck3 has signed the CLA in crystallpunk-14/crystall-punk-14#1318 2025-05-26 14:19:40 +00:00
paige404
100603ece6 Sentient items no longer count as party members (#1317) 2025-05-26 13:29:33 +03:00
Nim
a1323c7b29 Tavernkeeper's Sandwich (#1280)
* burger

* Sandwich

* Separator

* CP14Sandwich
2025-05-26 12:53:07 +03:00
Nim
91cebc07c4 Merge pull request #1278 from Nimfar11/books
Books sprite
2025-05-26 12:52:58 +03:00
Red
a2161bf473 Stable upstream sync (#1266)
* Add some salvage ruins (#36814)

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Amber Station - Added Genpop (#36997)

* Automatic changelog update

* MapManager warning cleanup on tests (#36940)

lets see if this works.

* Clear MIDI masters properly to avoid replay freezes (#36809)

While trying to play a replay I noticed that the replay would freeze
when seeking in some cases. After some debugging, I discovered that two
MIDI renderers had each other as master, which caused an infinite loop
processing MIDI events.

I'm not entirely sure of the sequence of events that leads to this
during replay playback, but I did notice that MIDI render masters are
never set to null. This is in the best case just a memory leak, in the
worst case probably the source of the bug, so... I fixed that.

* make scrubber widenet in panic mode (#37013)

* Automatic changelog update

* Shoulder-length hairstyles resprite (#37000)

* sprite

* final

* final (final fr)

* Automatic changelog update

* Fix mail cutting thinking your arms are infinite length (#37019)

* init

* hand

* Automatic changelog update

* Xenoborgs part 2 (#36844)

* add lawsets for the xenoborgs and mothership core

* add xenoborg names

* add xenoborg radio

* add xenoborg device frequency

* add xenoborg access

* add xenoborg contraband

* Update Resources/Locale/en-US/station-laws/laws.ftl

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* add xenoborg access to the universal Id card and universal access config

* remove 6th law of xenoborg and mothership lawset (got jointed into the 5th law)

* added xenoborg and mothership law boards

* add more names

* add Xenoborg faction

* moved all lawboards into a separate yml file

* removed custom xenoborg contraband severity

* add Xenoborg and Mothership components

* add xenoborg laser guns

* add self recharging fire extinguisher

* add mothership pinpointer

* add material bag

* add infinite jetpack

* add a only blue energy dagger

* add xenoborg jammer

* add refueling welding tool

* add nocturine hypo

* add nuclear small power cell

* add cloaking device

* add xenoborg door remote

* add custom sprites for xenoborg modules

* add custom sprites for xenoborg module actions

* removed Xenoborg Comp until is actually needed

* add xenoborg module tags

* spelling

* add xenoborg module bases

* organazied xenoborg modules sprites better

* add generic xenoborg modules

* add heavy xenoborg modules

* add engi xenoborg modules

* small fix to meta file in actions_borg.rsi

* renamed mothership comp to XenoborgMothership

* fixed the base for the xenoborg engi modules

* add scout xenoborg modules

* add stealth xenoborg modules

* localization for names and descriptions of the xenoborg modules

* fixed issues related to the XenoborgMothership component

* revert localization (it wasn't working for some reason)

* fixes

* fixed issue with container slot in the cloaking device

* Update description of small capacity nuclear power cell

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Fix indentation in material bag

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Spelling

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* fix parameter order in some prototypes

* rename proto id InfiniteJetpack to JetpackXenoborg

* localize pinpointer targets

* Revert "localize pinpointer targets"

doesn't work

* added lines in the end of files (and in the middle of one)

* reorder paramenter in some entities

* fixed some descriptions

* minor fixes

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Disown atmos and botany (#37017)

* Disown atmos and botany

* Update .github/CODEOWNERS

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Fix t-ray scanner exception spam (#37018)

* Automatic changelog update

* Remove Contact Slowdown when Weightless or in the Air (#33299)

* removed contact slowdowns from entities that are weightless or in the air

* fixed kudzu not applying contact slowdown to airbone entities

* revert kudzu fix

* reimplemented kudzu fix with bool datafield

* update variable serialization format

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* empty commit

* cleaned up and added documentation

* cached airborne check

* rerun tests

* minor review

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>

* Automatic changelog update

* Theatre access to Service Request Computer (#37003)

* Automatic changelog update

* BatteryWeaponPowerCell tweaks (#33500)

* BatteryWeaponPowerCell tweaks

* add update ammo ev & shuttle guns tweaks

* MilonPL requested changes

* revert changes in OnPowerCellChanged

* Add events to get charge info & change current charge

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Buffing slugs and replacing beanbags from the Bulldog bundle (#33517)

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Automatic changelog update

* Rebalance magnet debris, update worldgen (#37025)

* Automatic changelog update

* Display obvious plant mutations in examine text (#32650)

* Effect mutations now display on examine

* ChangeSpecies shouldn't stay on the list after running. Name cleanup

* EmoGarbage Review - convert description to LocId and add minor logic fix

* fix the dastardly yaml

---------

Co-authored-by: PraxisMapper <praxismapper@gmail.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>

* Automatic changelog update

* SSD sleep take 2 (#34039)

* ssd sleep part 2

* forgot this

* apply review

* yeah

* add onmapinit

* cache cvar values

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>

* Automatic changelog update

* More Mail Sprites (#37023)

* Commit

* Sprite update

* Last push for real for real

* Final Commit for real for real for real

* oasis genpop (#37031)

* Automatic changelog update

* re-buffs proto kinetic accelerator (#37012)

* new ruins

* genpop

* nvm

* abc

* fuckin

* turnstyle

* ruins

* stamp

* abc

* bruh

* efg

* pka fixed

* range tweak

* Automatic changelog update

* Chem master more unit transfer buttons (#36995)

* Changes chem master unit transfers to be the same as the chem dispenser

* adds chem master transfer buttons for 15u, 20u, and 30u

* Automatic changelog update

* Add borders to the asteroid sand (#35397)

* tiles

* Fix

* borderless

* Astrosand

* Add tile

* Fix

* Push horn  (#36009)

* Empty commit

* epic super duper cool fr push horn draft

* whoops turns out theres a system that does that thingi already x.x

* bunch of like fixis and generalization

* general progress

* most stuffies done

* last thingi hopefully

* small fixies, mostly preventing bypassing the delay by spamming

* rename to fit better

* rename for real i forgor to add

* weird fixie but last commit didn workie

* oki shold be fine now

* lastish cleanup

* fixies

* missed a space

* removed unnecessary component check

* getting the typos out of the way first

* moved the component to shared

* rest of fixies

* Automatic changelog update

* Fix solution visualization after drawing with a whitelist (#36657)

* Fix clientsided alerts being overwritten by server (#37033)

Initial commit

* Automatic changelog update

* Added Space Carp Tooth Arrows and Sharkminnow Spears, buffs sharkminnow teeth. (#31257)

* carp arrow, sharkminnow tooth spear

* review

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>

* Automatic changelog update

* Add inhand sprites for mini jetpack (#37041)

* Inhand sprites for mini jetpack

* Attribution

* Show other speso colours, add larger denominations (Frontier#1496) (#37030)

* Automatic changelog update

* Added warning when attempting to run RUN_THIS on a zip repo download (Attempt 2) (#36922)

* Added warning when attempting to run RUN_THIS on a zip repo download

* Fix it actually

* Update git_helper.py

* Add toolbox sound effects (#37048)

* Automatic changelog update

* Mail visual update (#37049)

* Automatic changelog update

* Un-copypaste wallmount substation prototype to give them a UI (#37047)

*sigh*

* Automatic changelog update

* Centcomm carapace, moved armour from vests.yml to armor.yml (#35301)

* centcomm carapace, loadout for CC official, move armoured vests from vests.yml to armor.yml

* revert rename from previous commit; command carapace returned to captain's carapace

* meta.json 4 space

* restored deleted comments for some armours and original description for slim armour

* Add recently added elite web vest

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Automatic changelog update

* Fix NPCs stalling when too many exist (#37056)

Fix NPC stalling when too many exist

* Automatic changelog update

* feex oasis portal (#37058)

* fix so that the meat patty uses the meat patty sprite on custom burgers (#37064)

* Fix examine prediction (#36999)

If our current ID is different to the received one we should just discard it even if it's for the same entity.

Note that this doesn't quite fix my prediction issue as client and server are using slightly different timings for the event.

* add StationTrackerComponent (#36803)

* maybe I am cooking

* logmissing

* copy paste oops

* add some stuff

* review

* fix

* rerun tests

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Minor ReflectionSystem refactor (#37039)

* ReflectComponentLogicFix

Added bool InRightPlace and updated relevant system

* Using SlotFlags

* edits

* refactor

* add missing relay

---------

Co-authored-by: BIGZi0348 <svalker0348@gmail.com>

* Automatic changelog update

* Update submodule to 255.1.0 (#37071)

* new salv ruins (#36947)

* add new salv ruin: telesci (#36653)

* Automatic changelog update

* Fix turnstile collision with firelocks (#37074)

* Automatic changelog update

* Skeletons leave glove fiber evidence (#37077)

Fix skeleton forensics

* Automatic changelog update

* Fix action ent prediction (#37076)

Buttons don't get created in the predicted methods only on state handler.

* Automatic changelog update

* Make universal access config better (#37079)

* add a universal ID card to the universal access config

* make the admin access config have infinite range

* now checks for the BypassInteractionRange Tag instead

* Add suggested fix to the AccessOverrider system

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* remove other stuff I added

* another suggested change to avoid weird behaviour where you can use it from a distance

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Automatic changelog update

* Fix listcontainer constantly disposing children (#37089)

* Fixes battery weapons changing firemode on wield (#37085)

Credit to Happyrobot33 for the implementation

Co-authored-by: Matthew Herber <32679887+happyrobot33@users.noreply.github.com>

* Automatic changelog update

* cleanup snipers.yml (#37094)

* cleanup revolvers.yml (#37095)

* Localizable craftmenu (#32339)

* Now the name of the target craft items is taken directly from the prototypes

* Deleting unnecessary fields

* Deleting unnecessary fields

* Added suffix field

* Added override via localization keys

* My favorite ItemList and TextureRect have been replaced with ListContainer and EntityPrototypeView

* Fix suffix

* Fix construction ghosts... maybe

* Remove suffix from UI

* Suffixes have been removed from prototypes

* Added a description for the secret door

* Fix search..?

* The Icon field of ConstructionPrototype has been removed

* StackPrototypes used in the construction menu have been localized

* TagConstructionGraphStep used in the construction menu have been localized

* The search bar has been localized

* Fix localization and prototypes

* Recipes are now only loaded when the crafting window is opened.

* Fix crooked merge grid of the crafting menu.

* Localization update

* Fix cyborg graph

* Revert "Recipes are now only loaded when the crafting window is opened."

This reverts commit 97749483542c2d6272bda16edf49612c69a0761a.

* Fix loc

* fix merge

* Fix upstream

* Some of the logic has been moved to Shared

* fix

* Small adjustments

* Very small change

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>

* Vox now can eat trash other other inedible things (#35681)

* EAT TRASH EXHALE AMMONIA

Update to files

* Forgot to port this file

* 1D4 Guidance

* Summary (required)

Suggested changes and fixes

* Cries in conflicts

* Why do we exist? To suffer?

* 1 citation for being stupid

* THE ANTIDOTE, THE ANTIDOTE FOR THE POISON

* I was inverted sir

* vox organs cleanup

* vox reagents

* guidebook

* weh

---------

Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>

* Automatic changelog update

* Fix food slicing showing utensil popup (#37105)

Fix knife slicing showing utensil popup

* Select current target in mailing unit UI, prevent UI jumping (#37098)

* Atmos air (6500 kPa) marker (#37061)

* air GM atmosphere

* atmos fix air miner

* Automatic changelog update

* Updates the Pirate Captain Hardsuit Helmet light sprites. (#37027)

* Add noir glasses (#36923)

hardboiled

* Automatic changelog update

* Overhauled stamina slowdown behavior (#36336)

* Automatic changelog update

* Fix vending machine manager wire error (#37100)

Skip updating amounts for removed entries

* fix asteroid tiles (#37103)

aw

* Pointing arrow smite no longer lasts forever (#37102)

fix: pointing arrow smite no longer lasts forever

* Automatic changelog update

* Wizard Helmet in the Magic Vend (#37084)

Whats the limit for stuff you can put in a commit message lol

* Automatic changelog update

* fix logic gate draw depth (#37053)

fix logic gate layering

* Species are now picked at random in the developer environment! (#37057)

* Various changes to random species in dev

* This should be split

* Mob Movement Major Refactor (#36847)

* Conveyor optimisations

- Optimise movement for moving stuff. Better flags + less resolves + slapped parallelrobustjob on it.
- Sleeping for entities getting conveyed into walls.

* Blocker version

* Finish

* Final

* Fix conveyor power mispredict

* Bagel save

* Revert "Bagel save"

This reverts commit 1b93fda81fb852d89b89b0beae0b80f8a61165f2.

* Conveyor resave

* Init Commit

* windows yelling at me to update commit

* working commit, need prediciton and more dehardcoding

* Project 0 warnings

* Working Commit (Near Final)

* ryder got confused commit

* I love Merge Conflicts :)

* Working commit, no prediction

* Forgot the yaml changes

* Comments and typos

* Apparently while the reduced launch mult of lube was initialized it was never used so I revered back to default

* Fixed an incorrect divisor

* bit of cleanup

* Prediciton fixed, and puddles now affect all entities

* FORGOT TO RENAME A VERY IMPORTANT VARIABLE OOPS

* Really big I forgor moment

* Even bigger I forgor moment

* four more merge conflicts to fix four more oopsies

* fixed actual divide by zero moment and also im very dumb

* Even bigger I forgor moment

* four more merge conflicts to fix four more oopsies

* fixed actual divide by zero moment and also im very dumb

* Fix all test fails

* code cleanup

* Webedit whitespace

* Code cleaup

* whitespace webedit

* whitespace webedit

* whitespace webedit

* whitespace removal

* Comments and cleanup

* Re-Added 20 warnings as per Ork's request

* Cleanups

* Spacing fix

* bugfixes and cleanup

* Small bugfix

* Fix prediction

* Mob movement rewrite

* Bandaid

* Working version

* Tentatively working

* Friction to fix cornering

* More fixes

* Refactor mob movement

Trying to cleanup relay ordering / tryupdaterelative being cooked, purge ToParent, and fix all the eye rotation shenanigans.

* Building

* Re-implement jetpacks

* Reorganise weightless movement

* More work

* Fix camera

* reh

* Revert bagel

* Revert this

* Revert held move buttons

* Puddles work but are unpredicted and unoptimized

* Fixes

* Puddle code...

* Actually dirty the slipComp for real

* Sliding component done plus an extra suggestion from ArtisticRoomba

* Atomized Commit

* Added Friction field to Reagent Prototype per design discussion

* Cleaned up Working Commit

* a

* Delete stinkers

* Fix this code smell

* Reviewed

* Funky re-save

* Our conveyance

* Better conveyor sleeping

* Remove this

* Revert "Better conveyor sleeping"

This reverts commit f5281f64bbae95b7b9feb56295c5cf931f9fb2e1.

* Revert that

Way too janky

* Also this

* a

* Working Commit - Still a lot to do

* Acceleration refactor

* Minor jetpack cleanup

* frictionnomovement no longer nullable

* Shared Mover Feels 99% done

* OffGrid/Weightless/Throwing Friction saved

* Fix merge conflicts

* Fix a debug assert

* Final Commit for today

* Some fixes

* Actually use those CCVars Properly

* Need to fix throwing

* Second to last Commit for real

* Jetpack bug fixed

* Jetpack bug fixed

* Test fail patch

* Small patch

* Skates Component cleanup + Bring Accel back to 5 (oops)

* Fix test fail oops

* yaml cleanup make dragons not fat

---------

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

* Automatic changelog update

* Predicted internals (#33800)

* Predicted gas pumps

I wanted to try out atmos and first thing I found.

* a

* Atmos device prediction

- Canisters
- Tanks
- Internals

AirMixes aren't predicted so nothing on that front but all the UIs should be a lot closer.

* Remove details range

* Gas tank prediction

* Even more sweeping changes

* Alerts

* rehg

* Popup fix

* Fix merge conflicts

* Fix

* Review

* Automatic changelog update

* Add condition support to entity tables (#36819)

* Fix AI movement (#37114)

Don't relay blocking anymore.

* Automatic changelog update

* New Salvage Ruin - Atmos Interchange (#37115)

* Automatic changelog update

* Fix station beacon not updating (#37121)

* Automatic changelog update

* Fix for vox dropping all bodyparts when gibbed (#37111)

vox parts cleanup

* Automatic changelog update

* Movement Rewrite Hotfix (#37122)

* One line bugfix

* also divide friction by 5

* Undo that

* Clarify that PA crate order includes boards (#37109)

init

* Automatic changelog update

* noRot on 2-way lever (#37125)

* Traumoxadone (#37126)

* init

* salicylic acid

* Automatic changelog update

* fix clone appearance (#37130)

* New Weapon: Knuckle Dusters (#33470)

* New Weapon: Knuckle Dusters

* Tag YAML Error Fix

* Crafting Graph Node Error

(Thank you slarticodefast)

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Crafting Node Error Part 2 Electric Boogaloo

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Contraban & QM Dusters Nerf

* Stun Knuckledusters (Unfinished)

* Typo

* Fix test fails

* The dastardly maintainer balance webedit

* Fix contraband parenting

* Fix construction failure

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>

* Automatic changelog update

* Renders reagent grinders over lights (#31218)

* Adds a new layer to DrawDepth.cs for use with objects similar to the reagent grinder and properly summarises its uses

* applies new layer in DrawDepth.cs to reagent_grinder.yml

* Fix merge conflict

* oops

* fix atmos grid markers (#37142)

* fix atmos grid markers

* 1984 CL

* randomize names for mindshielded eventhumanoids (#37143)

* Automatic changelog update

* make node scanner don't show interface if scanned entity not a artefact (#37146)

* a

* a

* Revert "a"

This reverts commit 2b9ba4ea67a9395d30b7ab37c8065f627f1a961a.

* Fix some maintenance doors not using wires configuration + cleanup + minor changes (#36735)

* Kill useless maints doors + general fixes

* Migrate the common maints airlock

* Fix parenting

* Service Theatre

* migrate out the other removed airlock

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>

* Automatic changelog update

* Fix throwing prediction (#37086)

* Fix throwing prediction

- Disposals is still janky but I think that's disposals in general not being predicted and the disposals throw not being predicted and short-lived.
- Would need to check RMC.
- Couldn't repro the underlying issues however thrown items don't slip anymore so (and we also don't predict their land / stopping anymore so).

* primary constructor

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Explosions warnings cleanup (#36167)

* Explosions warnings cleanup

* Revert unnecessary change

* Cleaner Entity instantiation

* Remove conflicting changes with #36098

* ClothingOuterEVASuitSyndicate (#36738)

* ClothingOuterEVASuitSyndicate

* Update migration.yml

* Resolve merge conflict in migration.yml

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Sentry turrets - Part 5: Reuseable UI components (#35149)

* Initial commit

* Updated how monotone buttons are styled

* Removed unnecessary textures

* Updated attributions

* Addressing reviewer comments

* Adjusted monotone checkbox styling

* Revert "Resprited the Chief Engineer's mantle/manica" (#37060)

Revert "Resprited the Chief Engineer's mantle/manica (#36697)"

This reverts commit d0c2a64436.

* Fix skeletons spawning in folded body bags (#37151)

* Fix skeleton spawning

* Add comments

* Fix the comments

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Automatic changelog update

* Replace uplink thieving gloves with chameleon thieving gloves (#36369)

* replace thieving gloves with chameleon thieving gloves

* increase TC cost by one

* add a TODO comment

* Automatic changelog update

* Omega Update (Genpop) (#37157)

* Automatic changelog update

* Add more ruins (#37161)

* Update Credits (#37163)

Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>

* Salvage Threat: Gibtonite (#37160)

* Automatic changelog update

* Revert "add material composition to some salv treasure" (#37149)

* Revert "add material composition to some salv treasure (#31970)"

This reverts commit 125258ea48.

* Remove ring materials as well

* Automatic changelog update

* Don't despawn off-grid salv mob corpses (#37169)

* Automatic changelog update

* Bagel Station - Removed Gamer Loot (#37171)

* Automatic changelog update

* Update GDPR erase script to latest DB schema (#37162)

* Remove update from DeviceLinkSystem (#37152)

The tick updates were purely used to decrease the invoke counter once per tick. Now instead we just calculate the effective counter value with some trivial math on the tick number. This completely removes the need for an update function.

The relative tick is not stored to map files. If we really need this, we can add a TickOffsetSerializer (similar to TimeOffsetSerializer), but I doubt it matters.

* Refactor magic speak system to be a component added to actions (#36328)

* Allow shelves to be placed rotated when built by hand (#37186)

fix: shelves can be placed rotated when built by hand

* Automatic changelog update

* Fix for Whoopie Cushions (Fixes #32028) (#36984)

* Fixes whoopie cushions so they no longer launch you into oblivion when stacked in a large pile.

* Update Resources/Prototypes/Entities/Objects/Fun/toys.yml

* streamlined the components for the prototype

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Automatic changelog update

* Salv Ruins Again (#37193)

* Fix `ComponentTogglerSystem` deletion error (#37198)

Don't try to toggle if target is terminating or deleted

* Fland Update (Genpop) (#37207)

* Automatic changelog update

* Convex genpop update (#37216)

* Automatic changelog update

* Ghost friction fix (#37124)

* commit

* fix for real

* More filters for station records (#37213)

* Automatic changelog update

* Removing redundant trash tags on medipens (#37215)

removes redundant tag components

* StaminaSystem to SharedStaminaSystem (#37199)

* Init Commit

* Partial class

* Hands system slipped through

* AI Law Board File Clean Up (#37195)

* Allow Pacifists to Use Bola (#37188)

* Automatic changelog update

* Fix dough rolling (#37183)

* Automatic changelog update

* Fix effects of hosted anomaly when transform is parented (#37179)

* hosted anomaly effects now are at the correct location when the host is in a container or buckled

* oops, not keeping the uid and transform together

* use world positions to get the position of the anomaly -- my previous method was reinventing the wheel.

* Automatic changelog update

* Split out the CloneComponents into its own method (#37155)

* Split out the CloneComponents into its own method

* CR - Move some extra info in

- add TryComp for status effects

- Move some remcomps around

- Make Special event raising components to handle special
components that reference entities that have ownership

* CR - Extra recommendation on the prototype

thanks slarti

* Solve the yaml linter problem

* CR - Typos, grammar and some extra Status effect

* cleanup

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Fix brains, borgs etc not counting as marooned (#37148)

* init

* comments

* comment

* no more debug

* Add collapse button to lobby right panel (#37140)

* Add collapse button to lobby right panel

* Half sized buttons

* Automatic changelog update

* Port fancy speech bubbles (#29349)

* Automatic changelog update

* Water bottle dispenser fix & Bottle Yaml Organizing (#37108)

* A New Parent/Category For The Soda & Tonic Water Bottle

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* New Parent For water bottle & Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* More Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Details

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Organizing For Additions

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Streamlining waterbottle to be compatible with DrinkBottleVisualsAll Parent

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Replacing/Renaming Parents

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* New Tonic/Soda Water Bottle Sprites

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Misc Fixes

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* New Parent for Small Glass Bottles & Organizing

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Organizing & uSize Parity.

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* File Parity

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Merged Categories & Misc Fixes

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Removed Silly

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Parent Name Parity & Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Large Glass Bottles Category & Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

---------

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Automatic changelog update

* Ichor double-metabolize fix + Very minor cleanup (#37107)

Not a yaml vacation apparently

* Darken reptilian eye sockets to reduce the effect of mixels (#37082)

Initial commit

* Fixed holy water metabolism rate (#37106)

* Fixed holy water metabolizing at 1u instead of .5u a second

* Update Resources/Prototypes/Reagents/medicine.yml

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Automatic changelog update

* Make departmental orders consoles print slips (#36944)

* Make departmental orders consoles print slips

* feed back cycle

* Automatic changelog update

* Fix borg soap (#36961)

* Create SoapBorg and replace SoapNT with SoapBorg in BorgModuleCustodial

* Reparent SoapBorg

No longer a container so the soap reagent cannot be extracted from the soap, no longer a food, no longer slippery since it can't be removed from the borg to be placed on the ground

* Move SoapBorg to end of soap.yml

* correct comp order

* fix failing tests

* Automatic changelog update

* Cryotube draw-depth (#37240)

* removes changing draw depth when occupied

* changes collision to square

* small texture changes
fixes slight perspective size when comparing side columns to the direct column facing the camera
removes the baked in pipe exit (the yml's sprite adds it anyway)

* Fire damage system fixes (#37241)

Fire fixes

* Automatic changelog update

* Make animals drop giblets into container or floor when they inserted into container (#37228)

* a

* Revert "a"

This reverts commit 2b9ba4ea67a9395d30b7ab37c8065f627f1a961a.

* auausasuasuausuuAUSTRALIA!!!!!!aausuasusdasda

* 77+33!=100

* Moth displacement maps (#37231)

moth displacement maps

* Automatic changelog update

* Four-way pipe junction, swapping junction construction fix (#37092)

* pipe x-junction assets, yml, construction

* remove duplicate asset

* attribution

* x junction instead of junctioncross for utilities.yml

* Automatic changelog update

* Raises max chest markings for all species (except Reptilian) to 2 (#37065)

* Update arachnid.yml

* Update diona.yml

* Update human.yml

* Update moth.yml

* Update slime.yml

* Update vox.yml

* Automatic changelog update

* make throw insert container code more clear (#36873)

make throw insert container more clear

* fix pka admin log (#37255)

* Genpop closet cargo orders (#37237)

* Genpop closet cargo orders

* change icon to locker base

* Automatic changelog update

* Make container draw disableble for mob-affecting Hyposprays (#30683)

* Seperate container draw from affects mobs

* Spaces

* More spaces

* Fix toggle

* Use better ands

* Reorder checks for Performance™️

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Fix chairs deleting players (#37261)

Unbuckle entities when a strap is about to be deleted

* Add 3 new Exomorph posters (#37260)

Initial commit

* Automatic changelog update

* AI context menu fix (#37224)

* AI context menu fix

* Revert "AI context menu fix"

This reverts commit 86a0476fcb0aa952c0dcadb1bc4246532abd62b7.

* Better implementation

* Retry

* Automatic changelog update

* Cleanup warnings: CS0414 (#36950)

* Clean up

* Use #pragma

* Cleanup warnings: CS8321, CS0105, CS0168 (#36949)

* Clean up

* CS0168

* Cargo request and bounty console deny sound cooldown (#37234)

* Cargo bounty console deny sound cooldown

* ordering computer cooldown

* Update Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Server/Cargo/Systems/CargoSystem.Bounty.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* AutoGenerateComponentPause

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Move random species selection earlier in player spawning logic (#37258)

* Select random species earlier in spawning logic

* ternary operator

* Move it even earlier to fix more bugs

* For DamagedSiliconAccent use Destructible threshold for default "DamageAtMaxThreshold" (#37252)

* set DamageAtMaxCorruption as nullable with null default and use destructible trigger threshold for this if null.

* fix documentation

* these really don't need to be passed by reference

* Small InventorySystem.Equip Unequip Reason bugfix (#37265)

Fix small bug

* Amber Station - Security and AI Sat Overhaul (#37262)

* Automatic changelog update

* Fix debug asserts in WoolySystem and UdderSystem (#35314)

* Implement Rules amendment (#37200)

* Implement Rules amendment

* Update Resources/ServerInfo/Guidebook/ServerRules/RoleplayRules/RuleR9MassSabotage.xml

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update RuleR9MassSabotage.xml

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* Fix borg chassis gibbing not dropping items (#37276)

BeingGibbedEvent and TryEjectPowerCell

* Automatic changelog update

* Revert "Traumoxadone (#37126)"

This reverts commit efc8d8600d.

* Add ratelimit retry to discord changelog bot and continue publish changelog error. (#37051)

* Add ratelimit retry to discord changelog bot and continue publish changelog error.

oops we missed some changelogs cause of this... this should prevent anything funny

* Update actions_changelogs_since_last_run.py

* fuck the cl

* Tweaks to the push horn so its less of a shitter tool (#37281)

* Empty commit

* tweaks to the push horn

* forgor to change the delay

* keeping the speed the same for now

* Automatic changelog update

* [HOTFIX] Ensure that mobs wake up when zombified (#37346)

zombie sleep fix

* Update CP14SharedMagicSystem.cs

* Update LockSystem.cs

* remove desc name icon from recipes

* Update ContentLocalizationManager.cs

* Update walls.yml

* part of fixes

* gf

* f

* Update asteroid.yml

* s

---------

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: Kyle Tyo <36606155+VerinSenpai@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: KingFroozy <140668342+KingFroozy@users.noreply.github.com>
Co-authored-by: Samuka-C <47865393+Samuka-C@users.noreply.github.com>
Co-authored-by: Partmedia <kevinz5000@gmail.com>
Co-authored-by: themias <89101928+themias@users.noreply.github.com>
Co-authored-by: Victor Shen <71985089+Vexerot@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: Kirus59 <145689588+Kirus59@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Stomf <5dorkydorks@gmail.com>
Co-authored-by: drakewill-CRL <46307022+drakewill-CRL@users.noreply.github.com>
Co-authored-by: PraxisMapper <praxismapper@gmail.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: TytosB <54259736+TytosB@users.noreply.github.com>
Co-authored-by: abadaba695 <spacestation13thingy@gmail.com>
Co-authored-by: kosticia <kosticia46@gmail.com>
Co-authored-by: Thinbug <101073555+Thinbug0@users.noreply.github.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: Gentleman-Bird <dcgreen406@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: BIGZi0348 <svalker0348@gmail.com>
Co-authored-by: LaCumbiaDelCoronavirus <90893484+LaCumbiaDelCoronavirus@users.noreply.github.com>
Co-authored-by: imatsoup <93290208+imatsoup@users.noreply.github.com>
Co-authored-by: Matthew Herber <32679887+happyrobot33@users.noreply.github.com>
Co-authored-by: Ertanic <36124833+Ertanic@users.noreply.github.com>
Co-authored-by: MissKay1994 <15877268+MissKay1994@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: eoineoineoin <helloworld@eoinrul.es>
Co-authored-by: Tiniest Shark <head.rebel@yahoo.com>
Co-authored-by: nikitosych <boriszyn@gmail.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
Co-authored-by: YoungThug <ramialanbagy@gmail.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: Vladislav Suchkov <20380250+murolem@users.noreply.github.com>
Co-authored-by: Prole <172158352+Prole0@users.noreply.github.com>
Co-authored-by: Unkn0wn_Gh0st <shadowstalkermll@gmail.com>
Co-authored-by: 3nderall <101940324+3nderall@users.noreply.github.com>
Co-authored-by: Radezolid <snappednexus@gmail.com>
Co-authored-by: J <billsmith116@gmail.com>
Co-authored-by: Ghagliiarghii <68826635+Ghagliiarghii@users.noreply.github.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: youtissoum <51883137+youtissoum@users.noreply.github.com>
Co-authored-by: Minemoder5000 <minemoder50000@gmail.com>
Co-authored-by: Spanky <scott@wearejacob.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: B_Kirill <153602297+B-Kirill@users.noreply.github.com>
Co-authored-by: archee1 <archee3@hotmail.co.uk>
Co-authored-by: Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
Co-authored-by: Quantum-cross <7065792+Quantum-cross@users.noreply.github.com>
Co-authored-by: poklj <compgeek223@gmail.com>
Co-authored-by: Krunklehorn <42424291+Krunklehorn@users.noreply.github.com>
Co-authored-by: OnyxTheBrave <131422822+OnyxTheBrave@users.noreply.github.com>
Co-authored-by: UpAndLeaves <92269094+Alpha-Two@users.noreply.github.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Zalycon <84675130+Zalycon@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-05-26 12:45:00 +03:00
Ed
d44579df78 s 2025-05-26 12:30:16 +03:00
Ed
d34ece9eed Update asteroid.yml 2025-05-26 12:10:01 +03:00
Deserty0
8e796053d4 fix (#1309) 2025-05-25 12:40:56 +03:00
Ignaz "Ian" Kraft
9ca6963d46 fix crash on core destruction (#1310) 2025-05-24 20:21:05 +03:00
github-actions[bot]
60e84789ce @Ian321 has signed the CLA in crystallpunk-14/crystall-punk-14#1310 2025-05-24 16:27:33 +00:00
github-actions[bot]
cb78372d3b @Sefaia has signed the CLA in crystallpunk-14/crystall-punk-14#1307 2025-05-24 06:11:51 +00:00
github-actions[bot]
151d485f5e @Fr0goo has signed the CLA in crystallpunk-14/crystall-punk-14#1304 2025-05-23 19:34:51 +00:00
Ed
924897e27d f 2025-05-23 15:08:17 +03:00
Ed
262a8a30c9 gf 2025-05-23 14:58:41 +03:00
Ed
8e7f68c062 part of fixes 2025-05-23 14:57:20 +03:00
Ed
3a9e6dc409 Update walls.yml 2025-05-23 13:52:18 +03:00
Ed
3abb4d6051 Update ContentLocalizationManager.cs 2025-05-23 13:44:02 +03:00
Red
40246e9b13 Merge branch 'master' into ed-12-05-2025-upstream 2025-05-23 12:58:11 +03:00
Cuir
14074a2ff3 Window improvements (#1292)
* Added stone brick and marble brick windows to the crafting menu proper.
Sanitized capitalization of construction graph ids and nodes (but not entities).
Sanitized stone and marble structure descriptions.

* Windows that are built with frames now leave those frames behind when you smash them instead of disintegrating entirely.

* Syntax error because entity id

* wooden windows

* Added a base window frame as well as a wooden window frame and its broken variant.
Frames can be vaulted through, and the broken glass variant will deal slash damage and a short stun upon entering.
Wooden windows now deconstruct and shatter into both types of frames, which can also be deconstructed.
Fixed an issue with window collisions when connected across tiles.
Gave wooden windows their own prototype file and construction graph.

* stonevrick windows

* Added functionality to stone window frame types.
Fixed an issue where shattered windows weren't triggering unless they were flammable.

* some parenting work

* fix fixtures

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Ed <edwardxperia2000@gmail.com>
2025-05-23 12:03:36 +03:00
Nim
51277446ef Правка перевода RU (#1302)
* traslet fix

* fix
2025-05-23 11:03:59 +03:00
Sukilove
aadcaabf0e Rotated Keyfile (#1299)
* Rotated the inventory sprite Keyfile by 45 degrees

* Update CP14RoundEndSystem.CBT.cs

* Rotated another 45 degrees
2025-05-22 23:26:34 +03:00
Red
0ce4771f3d Update CP14RoundEndSystem.CBT.cs 2025-05-22 14:53:46 +03:00
github-actions[bot]
7b7e2d0d22 @Soupkilove has signed the CLA in crystallpunk-14/crystall-punk-14#1299 2025-05-22 00:41:21 +00:00
Ed
0f4decfa9b Update CP14RoundEndSystem.CBT.cs 2025-05-21 21:28:11 +03:00
Ed
ff68b9606f Update Dev.toml 2025-05-21 21:16:19 +03:00
Red
2d0d79ca41 Daily English CBT (#1286)
* Update CP14RoundEndSystem.CBT.cs

* Update CP14RoundEndSystem.CBT.cs

* Update CP14RoundEndSystem.CBT.cs
2025-05-21 21:06:44 +03:00
Red
352707f1d7 Remove Guildmaster & Merchant roles (#1296)
* b

* Update round_end.yml

* Update round_end.yml
2025-05-21 19:33:00 +03:00
Red
068b2c5576 Update README.md 2025-05-21 12:56:43 +03:00
Alexsey Bezyuk
a73f8e3113 Seed sack and craft (#1287)
* seed_sack

* full seed sack

* seed sack sprite

* name and description
2025-05-21 12:41:22 +03:00
Deserty0
beeea40dc7 Lochelper update (#1262)
* comments

* Update localization_helper.py

* okay

* oops

* dsd

* adad

* as

* finally

* Revert "finally"

This reverts commit 50c6059676.

* Reapply "finally"

* fix

* fix
2025-05-21 11:51:03 +03:00
Nim
afa522cc7c Перевод на RU (#1285)
* translate

* fix

* rev

* slime

* fix local
2025-05-21 11:50:42 +03:00
github-actions[bot]
b0d6bb3c0f @Cu1r has signed the CLA in crystallpunk-14/crystall-punk-14#1292 2025-05-21 07:18:04 +00:00
Ed
9e26d985a5 Update roles.yml 2025-05-21 00:33:20 +03:00
Ed
58edb8783b test with joinqueue 2025-05-21 00:31:04 +03:00
Red
1d093c3919 Critical bugfixes (#1291)
* fix modifier duplication

* fix scrap melting
2025-05-21 00:30:16 +03:00
TheKittehJesus
726a078b95 added hideCaution to BaseSmokingPipe (#1290) 2025-05-21 00:02:44 +03:00
Red
7b7a837cf8 City Gate fix + Comoss update (#1289)
* city gate fix

* Update comoss.yml

* fix

* Update migration.yml
2025-05-20 22:36:43 +03:00
TheKittehJesus
2fc1384780 Proofreading changes [EN] (#1288)
* First batch of text fixes

* Tweaks

* that the tavern

---------

Co-authored-by: TheKittehJesus <29379890+SamGithubAccount@users.noreply.github.com>
2025-05-20 22:22:43 +03:00
github-actions[bot]
a92e07fc20 @TheKittehJesus has signed the CLA in crystallpunk-14/crystall-punk-14#1288 2025-05-20 18:35:33 +00:00
Ed
ab619ad840 Merge branch 'master' of https://github.com/crystallpunk-14/crystall-punk-14 2025-05-19 21:45:33 +03:00
Red
f4caea3c6c Garbage delete (#1284)
* fuck this

* and this

* aaand this

* content fix

* Update base.yml

* Update physical.yml

* kill bob
2025-05-19 14:53:00 +03:00
Alexsey Bezyuk
bd2f2e14d9 Wheat gather increase (#1283)
* wheat increase

* requirment bread count decrease

* Revert "wheat increase"

This reverts commit 9a7ecedcdc.

* Time decrease
2025-05-19 12:32:00 +03:00
Alexsey Bezyuk
f250f2b986 Gathering Seeds (#1282) 2025-05-19 12:13:29 +03:00
Alexsey Bezyuk
3472feefea Increase WorkbenchRadius (#1281) 2025-05-19 10:38:19 +03:00
github-actions[bot]
3a89698faa @PhantornRU has signed the CLA in crystallpunk-14/crystall-punk-14#1281 2025-05-19 07:31:20 +00:00
Ed
72976a9f3a ро 2025-05-19 00:59:40 +03:00
github-actions[bot]
c0ccb2d392 @DeLTaAlarm0 has signed the CLA in crystallpunk-14/crystall-punk-14#1275 2025-05-18 18:16:01 +00:00
Ed
e70e64011f Update CP14BloodMoonCurseRule.cs 2025-05-18 16:59:39 +03:00
Ed
fd6965efe0 skimimimi 2025-05-18 15:36:28 +03:00
Ed
db222c01c2 Update Dev.toml 2025-05-18 15:35:03 +03:00
Ed
1cd20edecf Workshop resprite pack (#1279)
* Jaraten resprite pack

* stamina TTomattT

* shrooms jaraten

* cloak fix

* passport resprite
2025-05-18 01:24:07 +03:00
Ed
0274826e32 Species free innate skill (#1277)
* innate free job skills

* returns species magic buff + unlock all skill

* Update tiefling.yml

* fix
2025-05-18 00:37:04 +03:00
Ed
5cd70ae1e9 fix achemist 2025-05-17 16:57:15 +03:00
Ed
5629a916a0 Update Dev.toml 2025-05-17 16:52:53 +03:00
Ed
23c9e11019 Blood moon part 2 (#1272)
* som tweaks

* fixing all

* bloodlust spell

* atatat
2025-05-17 14:12:49 +03:00
Viator-MV
74707a98c3 emiplane ghostrole fix (#1271)
* fine

* fix

* Update Content.Server/_CP14/DemiplaneTraveling/CP14StationDemiplaneMapSystem.cs

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/GhostRoleDanger/misc.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/GhostRoleDanger/misc.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Prototypes/_CP14/Procedural/Demiplane/Modifiers/GhostRoleDanger/misc.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-05-16 15:26:02 +03:00
Ed
132d1db37b search of life spell (#1273) 2025-05-16 00:58:48 +03:00
Ed
e0a4f5592f Blood moon (#1270)
* some setup

* fix dayccle events, add basic gamerules

* carcat guidebook update

* pfpf

* wawa

* fnish
2025-05-15 17:32:26 +03:00
Ed
26e4088cdd Silva Photosynthes returns + Carcat guidebook page (#1269)
* f

* restore silva feature

* carcat guidebook

* day cycle
2025-05-15 00:37:42 +03:00
Ed
e361125549 Update blacksmith.yml 2025-05-14 22:34:49 +03:00
Ed
14d0c1f6ea Update skimitar.yml 2025-05-14 19:12:43 +03:00
Ed
8c47af421f balance pass 2025-05-14 18:22:05 +03:00
Viator-MV
80d668361c Mana trance (#1216)
* That's it, Ed.

* skill

* CleanDisposed.

* now heal

* remake

* bruh rechek

* slowing

* Update metamagic.yml

* some ingame test and balance

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-05-14 14:56:27 +03:00
Ed
c2c66e77c1 Shrimp progression (#1268)
* Ore modifier category

* roundstart adventurer weapon equip

* forgot about guard

* Update adventure.yml
2025-05-14 14:22:33 +03:00
creamybag
edecdc3701 PackOmsoyk (#1267) 2025-05-14 13:53:56 +03:00
Ed
5293f1a0d2 remove desc name icon from recipes 2025-05-14 13:09:42 +03:00
Ed
be495f274c Skill progression system (#1263)
* delete skill trees

* Revert "delete skill trees"

This reverts commit 9d7fae73c4.

* learning refactor

* UI tweaks

* sword mastery skill

* telegraphy

* rapier mastery

* research table ui

* finish studing

* polish UI researching

* pyrokinetic

* more skill tree working

* heat adapt

* alchemist and metamagic update

* skill multiple effects support + metamagic bugg manapool

* impossible 😢

* skimitar gaming

* skimidi

* blacksmithing branch

* remove research restrictions

* remove species magic buff

* fix loc

* Update thaumaturgy.yml

* pip

* Delete skill_tree.yml
2025-05-14 12:43:43 +03:00
Ed
34131cd70e Update LockSystem.cs 2025-05-14 12:35:08 +03:00
Ed
1551f2fb6d Update CP14SharedMagicSystem.cs 2025-05-14 12:29:18 +03:00
Ed
59e6435fe2 Merge remote-tracking branch 'upstream/stable' into ed-12-05-2025-upstream
# Conflicts:
#	.github/CODEOWNERS
#	Content.Client/Construction/UI/ConstructionMenuPresenter.cs
#	Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
#	Content.Shared/Damage/Systems/SharedStaminaSystem.cs
#	Content.Shared/Lock/LockSystem.cs
#	Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
#	Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
#	Resources/Prototypes/Procedural/vgroid.yml
2025-05-12 14:25:42 +03:00
Errant
c261cc21a0 [HOTFIX] Ensure that mobs wake up when zombified (#37346)
zombie sleep fix
2025-05-11 18:49:22 +02:00
Ed
9e409a1eaf Update Dev.toml 2025-05-11 17:05:32 +03:00
Nim
abd69892c5 Myconide (#1265) 2025-05-11 17:04:52 +03:00
Nim
3164cb5b94 Fixing issues (#1258)
* fix

* gib frog

* zombie

* not damage
2025-05-10 21:45:11 +03:00
Ed
a243d2f8cd Update Dev.toml 2025-05-10 14:11:32 +03:00
paige404
ebaa57133f Slime Crown (#1257)
* Add slime crown, an admin-spawn artifact hat that makes all slimes friendly with the wearer.

* Add slime crown sprites
2025-05-10 14:11:09 +03:00
Viator-MV
44f1c03e34 Spells extension (#1202)
* fire

* trance_compression_distoration

* scroll loot

* fix

* myeh

* again mb?

* compression fix

* crystal fix

* disorion debuff

* delete all it

* final?

* nah

* not mine

* fix

* fix

* mmmm

* mana trance rebalance

* relocate trance

* fix

* blyat

* no compression

* delete all

* fix

* Update modifier_sets.yml

* Update heat.yml

* Update heat.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-05-10 13:28:33 +03:00
Nim
6e86a54a88 meat cooked (#1261) 2025-05-10 12:21:55 +03:00
Militore
aa2e080e31 Guard bell (#1242)
* add Guard Bell

* revert vanila changes, add same functionality

* revert more vanila changes, replace .ogg, fix locale and locale usage

* Update GuardBell.yml

* Update base.yml

* add attributions.yml for alerts

* try changing to proper license

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-05-09 15:07:05 +03:00
Vasilis The Pikachu
d19a421671 Merge remote-tracking branch 'upstream/master' into staging 2025-05-08 19:37:20 +02:00
Vasilis The Pikachu
c91bd05239 Merge remote-tracking branch 'upstream/staging' into staging 2025-05-08 19:37:14 +02:00
Myra
8d4b3c0fdc Revert "Traumoxadone" (#37284) 2025-05-08 19:08:27 +02:00
PJBot
047ef64661 Automatic changelog update 2025-05-08 16:51:06 +00:00
Thinbug
0c6be8bb0d Tweaks to the push horn so its less of a shitter tool (#37281)
* Empty commit

* tweaks to the push horn

* forgor to change the delay

* keeping the speed the same for now
2025-05-08 18:49:58 +02:00
ScarKy0
746134edd3 fuck the cl 2025-05-08 18:32:58 +02:00
slarticodefast
307d0b1c8b merge stable into master (#37286) 2025-05-08 18:32:53 +02:00
Myra
d515a1dbf6 Add ratelimit retry to discord changelog bot and continue publish changelog error. (#37051)
* Add ratelimit retry to discord changelog bot and continue publish changelog error.

oops we missed some changelogs cause of this... this should prevent anything funny

* Update actions_changelogs_since_last_run.py
2025-05-08 18:30:50 +02:00
ScarKy0
9e582157ac Revert "Traumoxadone (#37126)"
This reverts commit efc8d8600d.
2025-05-08 18:13:33 +02:00
PJBot
e94a50b4cc Automatic changelog update 2025-05-08 14:29:22 +00:00
Krunklehorn
1ee9b25927 Fix borg chassis gibbing not dropping items (#37276)
BeingGibbedEvent and TryEjectPowerCell
2025-05-08 10:28:11 -04:00
slarticodefast
0973218054 merge stable into master (#37277) 2025-05-08 11:00:20 +02:00
nikthechampiongr
ef3deedecb Implement Rules amendment (#37200)
* Implement Rules amendment

* Update Resources/ServerInfo/Guidebook/ServerRules/RoleplayRules/RuleR9MassSabotage.xml

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update RuleR9MassSabotage.xml

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2025-05-08 10:59:21 +02:00
github-actions[bot]
d9c2bd8e09 @paige404 has signed the CLA in crystallpunk-14/crystall-punk-14#1257 2025-05-08 08:40:48 +00:00
Tayrtahn
4aa635620c Fix debug asserts in WoolySystem and UdderSystem (#35314) 2025-05-08 09:55:41 +02:00
PJBot
4a521c56cf Automatic changelog update 2025-05-08 01:40:18 +00:00
Southbridge
129204b54e Amber Station - Security and AI Sat Overhaul (#37262) 2025-05-07 18:39:09 -07:00
Cojoke
fdf860d64f Small InventorySystem.Equip Unequip Reason bugfix (#37265)
Fix small bug
2025-05-07 20:47:03 -04:00
Quantum-cross
6bb3b83bf1 For DamagedSiliconAccent use Destructible threshold for default "DamageAtMaxThreshold" (#37252)
* set DamageAtMaxCorruption as nullable with null default and use destructible trigger threshold for this if null.

* fix documentation

* these really don't need to be passed by reference
2025-05-07 20:44:36 -04:00
Tayrtahn
d80934b156 Move random species selection earlier in player spawning logic (#37258)
* Select random species earlier in spawning logic

* ternary operator

* Move it even earlier to fix more bugs
2025-05-07 20:38:56 -04:00
themias
14adb1ff01 Cargo request and bounty console deny sound cooldown (#37234)
* Cargo bounty console deny sound cooldown

* ordering computer cooldown

* Update Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/Cargo/Components/CargoBountyConsoleComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Server/Cargo/Systems/CargoSystem.Bounty.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* AutoGenerateComponentPause

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-05-07 20:34:44 -04:00
B_Kirill
b3c4c7c32b Cleanup warnings: CS8321, CS0105, CS0168 (#36949)
* Clean up

* CS0168
2025-05-07 20:01:02 -04:00
B_Kirill
c196538aaf Cleanup warnings: CS0414 (#36950)
* Clean up

* Use #pragma
2025-05-07 20:00:12 -04:00
PJBot
057cc2304a Automatic changelog update 2025-05-07 23:49:46 +00:00
B_Kirill
9ff5850667 AI context menu fix (#37224)
* AI context menu fix

* Revert "AI context menu fix"

This reverts commit 86a0476fcb0aa952c0dcadb1bc4246532abd62b7.

* Better implementation

* Retry
2025-05-07 19:48:39 -04:00
PJBot
d28289c3c4 Automatic changelog update 2025-05-07 23:27:55 +00:00
SlamBamActionman
90c3ba8f36 Add 3 new Exomorph posters (#37260)
Initial commit
2025-05-07 19:26:48 -04:00
Tayrtahn
ef79373904 Fix chairs deleting players (#37261)
Unbuckle entities when a strap is about to be deleted
2025-05-07 19:25:17 -04:00
Verm
47258651a3 Make container draw disableble for mob-affecting Hyposprays (#30683)
* Seperate container draw from affects mobs

* Spaces

* More spaces

* Fix toggle

* Use better ands

* Reorder checks for Performance™️

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-05-07 16:43:47 -04:00
PJBot
df10d75cf7 Automatic changelog update 2025-05-07 20:29:35 +00:00
themias
8edc8c7596 Genpop closet cargo orders (#37237)
* Genpop closet cargo orders

* change icon to locker base
2025-05-07 22:28:28 +02:00
deltanedas
50bad5ad60 fix pka admin log (#37255) 2025-05-07 10:56:20 -07:00
lzk
4420d67f92 make throw insert container code more clear (#36873)
make throw insert container more clear
2025-05-07 15:08:28 +02:00
PJBot
132dadeca8 Automatic changelog update 2025-05-07 12:46:00 +00:00
Zalycon
31ce616c25 Raises max chest markings for all species (except Reptilian) to 2 (#37065)
* Update arachnid.yml

* Update diona.yml

* Update human.yml

* Update moth.yml

* Update slime.yml

* Update vox.yml
2025-05-07 14:44:53 +02:00
PJBot
86c851ba5d Automatic changelog update 2025-05-07 11:39:06 +00:00
K-Dynamic
ae6f96fa87 Four-way pipe junction, swapping junction construction fix (#37092)
* pipe x-junction assets, yml, construction

* remove duplicate asset

* attribution

* x junction instead of junctioncross for utilities.yml
2025-05-07 13:37:59 +02:00
PJBot
e5ab034aa7 Automatic changelog update 2025-05-07 10:07:49 +00:00
Flareguy
cdcc57e467 Moth displacement maps (#37231)
moth displacement maps
2025-05-07 13:06:42 +03:00
kosticia
665fecf677 Make animals drop giblets into container or floor when they inserted into container (#37228)
* a

* Revert "a"

This reverts commit 2b9ba4ea67a9395d30b7ab37c8065f627f1a961a.

* auausasuasuausuuAUSTRALIA!!!!!!aausuasusdasda

* 77+33!=100
2025-05-06 22:14:08 -04:00
PJBot
45c2617e30 Automatic changelog update 2025-05-07 02:04:14 +00:00
UpAndLeaves
8cf6ca78cf Fire damage system fixes (#37241)
Fire fixes
2025-05-06 22:03:05 -04:00
Archee
012eeb3158 Cryotube draw-depth (#37240)
* removes changing draw depth when occupied

* changes collision to square

* small texture changes
fixes slight perspective size when comparing side columns to the direct column facing the camera
removes the baked in pipe exit (the yml's sprite adds it anyway)
2025-05-06 22:01:09 -04:00
PJBot
a1dacfc62b Automatic changelog update 2025-05-06 19:11:17 +00:00
Ghagliiarghii
bcdb17597a Fix borg soap (#36961)
* Create SoapBorg and replace SoapNT with SoapBorg in BorgModuleCustodial

* Reparent SoapBorg

No longer a container so the soap reagent cannot be extracted from the soap, no longer a food, no longer slippery since it can't be removed from the borg to be placed on the ground

* Move SoapBorg to end of soap.yml

* correct comp order

* fix failing tests
2025-05-06 15:10:10 -04:00
PJBot
dce9c649e8 Automatic changelog update 2025-05-06 19:05:26 +00:00
pathetic meowmeow
cfba56c2b4 Make departmental orders consoles print slips (#36944)
* Make departmental orders consoles print slips

* feed back cycle
2025-05-06 15:04:18 -04:00
PJBot
f73f6d4467 Automatic changelog update 2025-05-06 18:32:30 +00:00
OnyxTheBrave
e527adea92 Fixed holy water metabolism rate (#37106)
* Fixed holy water metabolizing at 1u instead of .5u a second

* Update Resources/Prototypes/Reagents/medicine.yml

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-05-06 14:31:23 -04:00
Krunklehorn
522c6975f1 Darken reptilian eye sockets to reduce the effect of mixels (#37082)
Initial commit
2025-05-06 14:30:25 -04:00
Princess Cheeseballs
64f7fe10cc Ichor double-metabolize fix + Very minor cleanup (#37107)
Not a yaml vacation apparently
2025-05-06 14:16:13 -04:00
PJBot
1ee4c1fe72 Automatic changelog update 2025-05-06 18:14:41 +00:00
Prole
6cdc436f5f Water bottle dispenser fix & Bottle Yaml Organizing (#37108)
* A New Parent/Category For The Soda & Tonic Water Bottle

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* New Parent For water bottle & Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* More Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Details

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Organizing For Additions

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Streamlining waterbottle to be compatible with DrinkBottleVisualsAll Parent

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Replacing/Renaming Parents

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* New Tonic/Soda Water Bottle Sprites

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Misc Fixes

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* New Parent for Small Glass Bottles & Organizing

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Organizing & uSize Parity.

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* File Parity

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Merged Categories & Misc Fixes

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Removed Silly

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Parent Name Parity & Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Large Glass Bottles Category & Cleanup

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

---------

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>
2025-05-06 14:13:33 -04:00
PJBot
62984fc309 Automatic changelog update 2025-05-06 17:50:49 +00:00
lzk
740ce0e8ad Port fancy speech bubbles (#29349) 2025-05-06 20:49:42 +03:00
Ed
448cd605c4 bye frigid 2025-05-06 20:36:08 +03:00
PJBot
a6f2172d05 Automatic changelog update 2025-05-06 17:26:05 +00:00
B_Kirill
c156c5c465 Add collapse button to lobby right panel (#37140)
* Add collapse button to lobby right panel

* Half sized buttons
2025-05-06 13:24:58 -04:00
ScarKy0
9b5ddb87f5 Fix brains, borgs etc not counting as marooned (#37148)
* init

* comments

* comment

* no more debug
2025-05-06 13:24:26 -04:00
poklj
ac24be2fb7 Split out the CloneComponents into its own method (#37155)
* Split out the CloneComponents into its own method

* CR - Move some extra info in

- add TryComp for status effects

- Move some remcomps around

- Make Special event raising components to handle special
components that reference entities that have ownership

* CR - Extra recommendation on the prototype

thanks slarti

* Solve the yaml linter problem

* CR - Typos, grammar and some extra Status effect

* cleanup

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-05-06 13:22:32 -04:00
PJBot
cbc49975c6 Automatic changelog update 2025-05-06 17:02:44 +00:00
Quantum-cross
3f3be47ae4 Fix effects of hosted anomaly when transform is parented (#37179)
* hosted anomaly effects now are at the correct location when the host is in a container or buckled

* oops, not keeping the uid and transform together

* use world positions to get the position of the anomaly -- my previous method was reinventing the wheel.
2025-05-06 13:01:37 -04:00
PJBot
4ce09bd2da Automatic changelog update 2025-05-06 16:58:12 +00:00
themias
ff03e7f066 Fix dough rolling (#37183) 2025-05-06 12:57:05 -04:00
PJBot
c5e8020bf0 Automatic changelog update 2025-05-06 16:56:07 +00:00
Cojoke
02c2de3ec5 Allow Pacifists to Use Bola (#37188) 2025-05-06 12:55:00 -04:00
YoungThug
c0935e5b59 AI Law Board File Clean Up (#37195) 2025-05-06 12:51:32 -04:00
Princess Cheeseballs
9c165cb5a0 StaminaSystem to SharedStaminaSystem (#37199)
* Init Commit

* Partial class

* Hands system slipped through
2025-05-06 12:39:05 -04:00
archee1
ef881fe655 Removing redundant trash tags on medipens (#37215)
removes redundant tag components
2025-05-06 12:24:52 -04:00
PJBot
ca1a8fa457 Automatic changelog update 2025-05-06 16:22:23 +00:00
B_Kirill
2fbc951230 More filters for station records (#37213) 2025-05-06 12:21:16 -04:00
Princess Cheeseballs
cf86e0de1d Ghost friction fix (#37124)
* commit

* fix for real
2025-05-06 23:49:43 +10:00
PJBot
5bfdfc9fca Automatic changelog update 2025-05-06 06:57:43 +00:00
Spessmann
a4b50db5e1 Convex genpop update (#37216) 2025-05-05 23:56:34 -07:00
Nim
d8e360367e Well and new bed, aristocratic cloak (#1228)
* well and bed

* aristocratic cloak

* fix

* GuardCommander

* fix2

* nop merchant

* bed resp

* fix well visual

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Ed <edwardxperia2000@gmail.com>
2025-05-06 09:47:46 +03:00
Nim
89c737f37d Перевод на RU (#1231)
* translated

* end

* review desert

* review 2

* fix
2025-05-06 09:46:46 +03:00
Nim
6dca95de7b Ребаланс выпадения руды (#1244)
* ore

* revert
2025-05-06 09:46:04 +03:00
Viator-MV
95471fcb51 yeah.... (#1255) 2025-05-06 09:45:27 +03:00
Ed
0fc9e28637 Demiplane maps aftertest tweaks (#1256)
* admin info panel in demiplane map

* fix core chasm destruction

* dimensit resource, more resources in demiplanes

* more fixes
2025-05-06 08:29:09 +03:00
PJBot
5b9a91c115 Automatic changelog update 2025-05-06 01:30:30 +00:00
Spanky
962c5c0822 Fland Update (Genpop) (#37207) 2025-05-05 18:29:17 -07:00
Tayrtahn
532ef05140 Fix ComponentTogglerSystem deletion error (#37198)
Don't try to toggle if target is terminating or deleted
2025-05-05 18:35:15 -04:00
Ed
aeedff5caa Demiplane exploration map (#1251)
* dehardcode nodeTreeControl part 1

* finish

* demiplane map system setup

* link map entity with station data!

* random demiplane map generation

* redesign demiplane map node tree

* center

* map generate v2

* location generation

* modifier generation

* missing location icons

* ui polish

* data refactor

* fix line color

* ejectabling

* split demiplane component into two

* blocker attempt

* revoking

* fix frontier calculation

* dimensit

* demiplane core room spawning

* demiplane cool destruction

* Update round_end.yml

* progression works now!

* Update CP14NodeTree.cs

* Update CP14NodeTree.cs

* documentation pass

* fix abusing, some balance pass

* demiplane naming fix

* см

* location names

* delete old keys

* Update buy.yml

* Update migration.yml

* fix guidebook

* Update misc.yml

* Update misc.yml
2025-05-05 15:19:44 +03:00
Deerstop
90fd66c3d4 Salv Ruins Again (#37193) 2025-05-04 23:33:18 -07:00
PJBot
b90d7c9012 Automatic changelog update 2025-05-04 23:02:33 +00:00
brainfood1183
d7f5dac0b8 Fix for Whoopie Cushions (Fixes #32028) (#36984)
* Fixes whoopie cushions so they no longer launch you into oblivion when stacked in a large pile.

* Update Resources/Prototypes/Entities/Objects/Fun/toys.yml

* streamlined the components for the prototype

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-05-05 01:01:27 +02:00
PJBot
325b0619b6 Automatic changelog update 2025-05-04 22:43:28 +00:00
Perry Fraser
61d524a983 Allow shelves to be placed rotated when built by hand (#37186)
fix: shelves can be placed rotated when built by hand
2025-05-05 00:42:21 +02:00
4g10w
63a2248201 Medieval Screwdriver (#1253)
* Medieval Screwdriver
Prototye & Texture

Added: screwdriver.rsi
- in hand textures
- main texture (with major help from omsoyk, tysm!)
- meta file
As opposed to vanilla SS14 screwdriver, this one only has one main texture.

Changed: screwdriver.yml prototype
- added all components from vanilla SS14 screwdriver (can be found in tools.yml prototype),
except for RandomSprite component that gives random color
- changed parent attribute from Screwdriver to BaseItem since we're making brand new screwdriver
- all components from initial prototype remained

* removed unused components

* Screwdriver recipe

Removed:
- Screwdriver recipe from anvil (iron bar)
Added:
- Screwdriver recipe to workbench (wooden grip + iron bolt)

To fit more with updated screwdriver visuals, recipe is updated too.
2025-05-04 22:29:34 +03:00
J
7b352643d5 Refactor magic speak system to be a component added to actions (#36328) 2025-05-04 13:34:19 -04:00
Pieter-Jan Briers
81cbb31425 Remove update from DeviceLinkSystem (#37152)
The tick updates were purely used to decrease the invoke counter once per tick. Now instead we just calculate the effective counter value with some trivial math on the tick number. This completely removes the need for an update function.

The relative tick is not stored to map files. If we really need this, we can add a TickOffsetSerializer (similar to TimeOffsetSerializer), but I doubt it matters.
2025-05-04 12:14:23 -04:00
Pieter-Jan Briers
e6040d1b25 Update GDPR erase script to latest DB schema (#37162) 2025-05-05 00:11:28 +10:00
Ed
5dc41e4189 Update Dev.toml 2025-05-04 17:01:51 +03:00
PJBot
20da7fcd25 Automatic changelog update 2025-05-04 07:21:41 +00:00
Southbridge
6926fa1ad3 Bagel Station - Removed Gamer Loot (#37171) 2025-05-04 00:20:33 -07:00
PJBot
ccfcb0cf7a Automatic changelog update 2025-05-04 05:48:20 +00:00
Nemanja
c4dd912106 Don't despawn off-grid salv mob corpses (#37169) 2025-05-03 22:47:11 -07:00
PJBot
eac0585bf4 Automatic changelog update 2025-05-04 02:40:25 +00:00
Nemanja
f1a17f360d Revert "add material composition to some salv treasure" (#37149)
* Revert "add material composition to some salv treasure (#31970)"

This reverts commit 125258ea48.

* Remove ring materials as well
2025-05-04 04:39:19 +02:00
PJBot
0de4ec912f Automatic changelog update 2025-05-04 00:39:54 +00:00
Nemanja
9afa15ab41 Salvage Threat: Gibtonite (#37160) 2025-05-03 17:38:47 -07:00
github-actions[bot]
fbd409a54b Update Credits (#37163)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-05-03 20:37:39 -04:00
Spessmann
f9825e1f96 Add more ruins (#37161) 2025-05-03 16:44:53 -07:00
PJBot
e5abf61474 Automatic changelog update 2025-05-03 21:20:15 +00:00
Spanky
6d6ae95914 Omega Update (Genpop) (#37157) 2025-05-03 14:19:07 -07:00
PJBot
ea67654733 Automatic changelog update 2025-05-03 19:29:54 +00:00
Minemoder5000
42a5b03743 Replace uplink thieving gloves with chameleon thieving gloves (#36369)
* replace thieving gloves with chameleon thieving gloves

* increase TC cost by one

* add a TODO comment
2025-05-03 15:28:47 -04:00
PJBot
ef86e6681e Automatic changelog update 2025-05-03 19:20:39 +00:00
youtissoum
07460f9eda Fix skeletons spawning in folded body bags (#37151)
* Fix skeleton spawning

* Add comments

* Fix the comments

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-05-03 21:19:32 +02:00
Nemanja
0c8c757a42 Revert "Resprited the Chief Engineer's mantle/manica" (#37060)
Revert "Resprited the Chief Engineer's mantle/manica (#36697)"

This reverts commit d0c2a64436.
2025-05-03 14:28:59 -04:00
chromiumboy
f213753e2b Sentry turrets - Part 5: Reuseable UI components (#35149)
* Initial commit

* Updated how monotone buttons are styled

* Removed unnecessary textures

* Updated attributions

* Addressing reviewer comments

* Adjusted monotone checkbox styling
2025-05-03 12:19:08 -05:00
Ghagliiarghii
885eb7bc35 ClothingOuterEVASuitSyndicate (#36738)
* ClothingOuterEVASuitSyndicate

* Update migration.yml

* Resolve merge conflict in migration.yml

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-05-03 12:06:35 -04:00
J
82ce890fc9 Explosions warnings cleanup (#36167)
* Explosions warnings cleanup

* Revert unnecessary change

* Cleaner Entity instantiation

* Remove conflicting changes with #36098
2025-05-03 18:05:29 +02:00
metalgearsloth
60e3d8e507 Fix throwing prediction (#37086)
* Fix throwing prediction

- Disposals is still janky but I think that's disposals in general not being predicted and the disposals throw not being predicted and short-lived.
- Would need to check RMC.
- Couldn't repro the underlying issues however thrown items don't slip anymore so (and we also don't predict their land / stopping anymore so).

* primary constructor

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-05-03 17:17:30 +02:00
PJBot
3ee5ed3cc6 Automatic changelog update 2025-05-03 15:09:03 +00:00
Radezolid
aaa4c75341 Fix some maintenance doors not using wires configuration + cleanup + minor changes (#36735)
* Kill useless maints doors + general fixes

* Migrate the common maints airlock

* Fix parenting

* Service Theatre

* migrate out the other removed airlock

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-05-03 11:07:57 -04:00
kosticia
f3bc40eaa7 make node scanner don't show interface if scanned entity not a artefact (#37146)
* a

* a

* Revert "a"

This reverts commit 2b9ba4ea67a9395d30b7ab37c8065f627f1a961a.
2025-05-03 10:29:52 -04:00
Viator-MV
3bbf692da5 Ultraskeletom Revmech Update (#1145)
* help me

* reinforced swords

* skill tree

* fix

* T2 fix

* components

* fix 2

* fix

* halberd fix

* other variant

* recheck it please

* fix

* deskill

* deslikk++

* skel physical buffs

* bad fix

* fix

* extended life time

* fix

* fix

* fix

* heal from death

* sword fix

* fix

* try to fix

* valid crashout?

idk

* It's not my fault.

* fix

* fix

* fix

* review fix

* forgot

* fix

* ашч

* meh

* reequipment

* wrong agony

* fix

* gripfix

* fix

* looking for result

* coment remove

* some fixes

* ok

* aaaaaaaaaaaaaaaaa

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-05-03 16:51:25 +03:00
Ed
0b994d2e1f en 2025-05-03 16:37:09 +03:00
PJBot
dc2a7483c7 Automatic changelog update 2025-05-03 12:11:51 +00:00
Errant
79187cecb9 randomize names for mindshielded eventhumanoids (#37143) 2025-05-03 08:10:43 -04:00
ArtisticRoomba
ee201c6eb7 fix atmos grid markers (#37142)
* fix atmos grid markers

* 1984 CL
2025-05-03 09:11:31 +02:00
3nderall
213a9ef36d Renders reagent grinders over lights (#31218)
* Adds a new layer to DrawDepth.cs for use with objects similar to the reagent grinder and properly summarises its uses

* applies new layer in DrawDepth.cs to reagent_grinder.yml

* Fix merge conflict

* oops
2025-05-03 14:27:20 +10:00
PJBot
0d0eeb2afa Automatic changelog update 2025-05-03 04:19:17 +00:00
Unkn0wn_Gh0st
11096ad9bf New Weapon: Knuckle Dusters (#33470)
* New Weapon: Knuckle Dusters

* Tag YAML Error Fix

* Crafting Graph Node Error

(Thank you slarticodefast)

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Crafting Node Error Part 2 Electric Boogaloo

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Contraban & QM Dusters Nerf

* Stun Knuckledusters (Unfinished)

* Typo

* Fix test fails

* The dastardly maintainer balance webedit

* Fix contraband parenting

* Fix construction failure

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-05-03 00:18:08 -04:00
slarticodefast
5d26a38a1d fix clone appearance (#37130) 2025-05-02 21:26:12 -04:00
PJBot
4ba8945c5b Automatic changelog update 2025-05-02 22:57:54 +00:00
ScarKy0
efc8d8600d Traumoxadone (#37126)
* init

* salicylic acid
2025-05-03 00:56:47 +02:00
github-actions[bot]
ec1a938097 @4g10w has signed the CLA in crystallpunk-14/crystall-punk-14#1253 2025-05-02 22:22:30 +00:00
Prole
c153f84e42 noRot on 2-way lever (#37125) 2025-05-02 13:07:20 -07:00
PJBot
85d6b728ee Automatic changelog update 2025-05-02 18:32:56 +00:00
Vladislav Suchkov
b4ad372ca7 Clarify that PA crate order includes boards (#37109)
init
2025-05-02 14:31:49 -04:00
Princess Cheeseballs
b6c8119646 Movement Rewrite Hotfix (#37122)
* One line bugfix

* also divide friction by 5

* Undo that
2025-05-02 20:31:10 +02:00
PJBot
c27c0e7ff8 Automatic changelog update 2025-05-02 17:13:30 +00:00
Errant
2b2bfbfebd Fix for vox dropping all bodyparts when gibbed (#37111)
vox parts cleanup
2025-05-02 13:12:23 -04:00
PJBot
e7cb80da11 Automatic changelog update 2025-05-02 16:15:23 +00:00
themias
7fd66820b9 Fix station beacon not updating (#37121) 2025-05-02 12:14:16 -04:00
PJBot
2b748694bf Automatic changelog update 2025-05-02 15:46:53 +00:00
Southbridge
d35c755685 New Salvage Ruin - Atmos Interchange (#37115) 2025-05-02 08:45:46 -07:00
PJBot
ecd7ba8bb5 Automatic changelog update 2025-05-02 10:08:19 +00:00
metalgearsloth
51bff89b23 Fix AI movement (#37114)
Don't relay blocking anymore.
2025-05-02 12:07:12 +02:00
Nemanja
26ebf06b81 Add condition support to entity tables (#36819) 2025-05-02 11:37:14 +03:00
PJBot
25108234ea Automatic changelog update 2025-05-02 08:23:36 +00:00
metalgearsloth
bd69fc612a Predicted internals (#33800)
* Predicted gas pumps

I wanted to try out atmos and first thing I found.

* a

* Atmos device prediction

- Canisters
- Tanks
- Internals

AirMixes aren't predicted so nothing on that front but all the UIs should be a lot closer.

* Remove details range

* Gas tank prediction

* Even more sweeping changes

* Alerts

* rehg

* Popup fix

* Fix merge conflicts

* Fix

* Review
2025-05-02 18:22:29 +10:00
PJBot
d404422b5c Automatic changelog update 2025-05-02 08:19:16 +00:00
Princess Cheeseballs
36030ef154 Mob Movement Major Refactor (#36847)
* Conveyor optimisations

- Optimise movement for moving stuff. Better flags + less resolves + slapped parallelrobustjob on it.
- Sleeping for entities getting conveyed into walls.

* Blocker version

* Finish

* Final

* Fix conveyor power mispredict

* Bagel save

* Revert "Bagel save"

This reverts commit 1b93fda81fb852d89b89b0beae0b80f8a61165f2.

* Conveyor resave

* Init Commit

* windows yelling at me to update commit

* working commit, need prediciton and more dehardcoding

* Project 0 warnings

* Working Commit (Near Final)

* ryder got confused commit

* I love Merge Conflicts :)

* Working commit, no prediction

* Forgot the yaml changes

* Comments and typos

* Apparently while the reduced launch mult of lube was initialized it was never used so I revered back to default

* Fixed an incorrect divisor

* bit of cleanup

* Prediciton fixed, and puddles now affect all entities

* FORGOT TO RENAME A VERY IMPORTANT VARIABLE OOPS

* Really big I forgor moment

* Even bigger I forgor moment

* four more merge conflicts to fix four more oopsies

* fixed actual divide by zero moment and also im very dumb

* Even bigger I forgor moment

* four more merge conflicts to fix four more oopsies

* fixed actual divide by zero moment and also im very dumb

* Fix all test fails

* code cleanup

* Webedit whitespace

* Code cleaup

* whitespace webedit

* whitespace webedit

* whitespace webedit

* whitespace removal

* Comments and cleanup

* Re-Added 20 warnings as per Ork's request

* Cleanups

* Spacing fix

* bugfixes and cleanup

* Small bugfix

* Fix prediction

* Mob movement rewrite

* Bandaid

* Working version

* Tentatively working

* Friction to fix cornering

* More fixes

* Refactor mob movement

Trying to cleanup relay ordering / tryupdaterelative being cooked, purge ToParent, and fix all the eye rotation shenanigans.

* Building

* Re-implement jetpacks

* Reorganise weightless movement

* More work

* Fix camera

* reh

* Revert bagel

* Revert this

* Revert held move buttons

* Puddles work but are unpredicted and unoptimized

* Fixes

* Puddle code...

* Actually dirty the slipComp for real

* Sliding component done plus an extra suggestion from ArtisticRoomba

* Atomized Commit

* Added Friction field to Reagent Prototype per design discussion

* Cleaned up Working Commit

* a

* Delete stinkers

* Fix this code smell

* Reviewed

* Funky re-save

* Our conveyance

* Better conveyor sleeping

* Remove this

* Revert "Better conveyor sleeping"

This reverts commit f5281f64bbae95b7b9feb56295c5cf931f9fb2e1.

* Revert that

Way too janky

* Also this

* a

* Working Commit - Still a lot to do

* Acceleration refactor

* Minor jetpack cleanup

* frictionnomovement no longer nullable

* Shared Mover Feels 99% done

* OffGrid/Weightless/Throwing Friction saved

* Fix merge conflicts

* Fix a debug assert

* Final Commit for today

* Some fixes

* Actually use those CCVars Properly

* Need to fix throwing

* Second to last Commit for real

* Jetpack bug fixed

* Jetpack bug fixed

* Test fail patch

* Small patch

* Skates Component cleanup + Bring Accel back to 5 (oops)

* Fix test fail oops

* yaml cleanup make dragons not fat

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2025-05-02 18:18:08 +10:00
beck-thompson
1fbc845126 Species are now picked at random in the developer environment! (#37057)
* Various changes to random species in dev

* This should be split
2025-05-02 14:09:23 +10:00
Nemanja
bb547eb03b fix logic gate draw depth (#37053)
fix logic gate layering
2025-05-02 04:12:02 +02:00
PJBot
c37f06c1a9 Automatic changelog update 2025-05-02 01:58:01 +00:00
YoungThug
cfa80bc710 Wizard Helmet in the Magic Vend (#37084)
Whats the limit for stuff you can put in a commit message lol
2025-05-02 03:56:54 +02:00
PJBot
706ebcd258 Automatic changelog update 2025-05-02 01:08:24 +00:00
Perry Fraser
64141b974b Pointing arrow smite no longer lasts forever (#37102)
fix: pointing arrow smite no longer lasts forever
2025-05-02 03:07:15 +02:00
kosticia
b465ddfee2 fix asteroid tiles (#37103)
aw
2025-05-02 03:04:41 +02:00
Tayrtahn
2ff9c8dfb9 Fix vending machine manager wire error (#37100)
Skip updating amounts for removed entries
2025-05-02 02:21:59 +02:00
PJBot
bc8919c4cf Automatic changelog update 2025-05-01 23:02:24 +00:00
nikitosych
72d2d8ab0f Overhauled stamina slowdown behavior (#36336) 2025-05-01 19:01:17 -04:00
PJBot
52062dcfad Automatic changelog update 2025-05-01 22:08:54 +00:00
slarticodefast
42dce359e5 Add noir glasses (#36923)
hardboiled
2025-05-01 18:07:47 -04:00
Tiniest Shark
35f7abafe5 Updates the Pirate Captain Hardsuit Helmet light sprites. (#37027) 2025-05-01 18:07:11 -04:00
PJBot
65c0e899cd Automatic changelog update 2025-05-01 22:04:54 +00:00
K-Dynamic
ea64d4d106 Atmos air (6500 kPa) marker (#37061)
* air GM atmosphere

* atmos fix air miner
2025-05-01 18:03:47 -04:00
eoineoineoin
9a7b68de55 Select current target in mailing unit UI, prevent UI jumping (#37098) 2025-05-01 17:57:43 -04:00
themias
2699c3f41e Fix food slicing showing utensil popup (#37105)
Fix knife slicing showing utensil popup
2025-05-01 17:56:47 -04:00
PJBot
57138f7bd2 Automatic changelog update 2025-05-01 18:17:59 +00:00
MissKay1994
d21906c025 Vox now can eat trash other other inedible things (#35681)
* EAT TRASH EXHALE AMMONIA

Update to files

* Forgot to port this file

* 1D4 Guidance

* Summary (required)

Suggested changes and fixes

* Cries in conflicts

* Why do we exist? To suffer?

* 1 citation for being stupid

* THE ANTIDOTE, THE ANTIDOTE FOR THE POISON

* I was inverted sir

* vox organs cleanup

* vox reagents

* guidebook

* weh

---------

Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
2025-05-01 20:16:51 +02:00
Ertanic
81507b9d52 Localizable craftmenu (#32339)
* Now the name of the target craft items is taken directly from the prototypes

* Deleting unnecessary fields

* Deleting unnecessary fields

* Added suffix field

* Added override via localization keys

* My favorite ItemList and TextureRect have been replaced with ListContainer and EntityPrototypeView

* Fix suffix

* Fix construction ghosts... maybe

* Remove suffix from UI

* Suffixes have been removed from prototypes

* Added a description for the secret door

* Fix search..?

* The Icon field of ConstructionPrototype has been removed

* StackPrototypes used in the construction menu have been localized

* TagConstructionGraphStep used in the construction menu have been localized

* The search bar has been localized

* Fix localization and prototypes

* Recipes are now only loaded when the crafting window is opened.

* Fix crooked merge grid of the crafting menu.

* Localization update

* Fix cyborg graph

* Revert "Recipes are now only loaded when the crafting window is opened."

This reverts commit 97749483542c2d6272bda16edf49612c69a0761a.

* Fix loc

* fix merge

* Fix upstream

* Some of the logic has been moved to Shared

* fix

* Small adjustments

* Very small change

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-05-01 10:21:16 -04:00
lzk
8d01f90ad2 cleanup revolvers.yml (#37095) 2025-05-01 13:49:24 +02:00
lzk
181bf4073d cleanup snipers.yml (#37094) 2025-05-01 13:26:59 +02:00
PJBot
cf96f58880 Automatic changelog update 2025-05-01 05:36:20 +00:00
imatsoup
d0b1a15309 Fixes battery weapons changing firemode on wield (#37085)
Credit to Happyrobot33 for the implementation

Co-authored-by: Matthew Herber <32679887+happyrobot33@users.noreply.github.com>
2025-04-30 22:35:13 -07:00
Nemanja
55ef51a84b Fix listcontainer constantly disposing children (#37089) 2025-05-01 15:32:37 +10:00
PJBot
c1ebbb0789 Automatic changelog update 2025-05-01 05:22:04 +00:00
Samuka-C
d925b6f7d2 Make universal access config better (#37079)
* add a universal ID card to the universal access config

* make the admin access config have infinite range

* now checks for the BypassInteractionRange Tag instead

* Add suggested fix to the AccessOverrider system

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* remove other stuff I added

* another suggested change to avoid weird behaviour where you can use it from a distance

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-05-01 01:20:56 -04:00
PJBot
b8e65d56b1 Automatic changelog update 2025-05-01 00:12:44 +00:00
metalgearsloth
f9aecda933 Fix action ent prediction (#37076)
Buttons don't get created in the predicted methods only on state handler.
2025-05-01 10:11:35 +10:00
PJBot
309521f60d Automatic changelog update 2025-04-30 19:57:35 +00:00
themias
ef10e4eb1c Skeletons leave glove fiber evidence (#37077)
Fix skeleton forensics
2025-04-30 15:56:28 -04:00
Ed
e792440c19 Gob hairs (#1250)
* renorma

* gobhairs
2025-04-30 22:14:13 +03:00
Ed
df4f49b551 Merge pull request #1249 from crystallpunk-14/ed-30-04-2025-upstream-sync
Upstream sync
2025-04-30 21:17:50 +03:00
Ed
d09386c990 fix 2025-04-30 21:03:50 +03:00
Ed
518b439c0f integrate 2025-04-30 20:50:03 +03:00
Ed
ef6d973301 Merge remote-tracking branch 'upstream/stable' into ed-30-04-2025-upstream-sync
# Conflicts:
#	Content.Client/Parallax/ParallaxControl.cs
#	Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs
#	Content.IntegrationTests/Tests/PostMapInitTest.cs
#	Content.Server/Chat/Managers/ChatManager.cs
#	Content.Server/Fluids/EntitySystems/PuddleSystem.Evaporation.cs
#	Content.Server/Labels/Label/LabelSystem.cs
#	Content.Shared/Actions/SharedActionsSystem.cs
#	Content.Shared/Fluids/Components/EvaporationComponent.cs
#	Content.Shared/Labels/EntitySystems/SharedLabelSystem.cs
#	README.md
#	Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
#	Resources/Prototypes/Maps/Pools/deathmatch.yml
#	Resources/Prototypes/Maps/arenas.yml
2025-04-30 20:31:50 +03:00
Ed
0c8735f6df some hotfixes 2 2025-04-30 19:44:38 +03:00
Ed
818c7f5aa6 some hotgix 2025-04-30 18:57:13 +03:00
PJBot
103225f554 Automatic changelog update 2025-04-30 15:52:30 +00:00
themias
8cd20af6bd Fix turnstile collision with firelocks (#37074) 2025-04-30 11:51:23 -04:00
Ed
7f9e11be39 tornado blyat 2025-04-30 18:06:55 +03:00
Ed
9908710dae Update sewing_table.yml 2025-04-30 18:03:55 +03:00
PJBot
179e16db8b Automatic changelog update 2025-04-30 14:50:43 +00:00
LaCumbiaDelCoronavirus
c96a5ad990 add new salv ruin: telesci (#36653) 2025-04-30 07:49:36 -07:00
TytosB
a0e0072bd1 new salv ruins (#36947) 2025-04-30 07:40:45 -07:00
Ed
2358bc46d6 Torches + Cotton (#1246)
* torches add, wallmount crystals deletion

* cotton

* Update buy.yml

* craftis

* delete elemental quartz

* energy crystal resprite and rewamp

* fix

* Update misc.yml

* а

* delete rituals

* riat

* Update migration.yml

* Delete CP14ClientRitualSystem.cs

* Update statues.yml

* fix

* Update wallmount_lamp.yml

* fix
2025-04-30 17:28:38 +03:00
Tornado Tech
ad2fc18356 Dimensional (#1140)
* add: Temporamancy tree with new shadow swap spell

* feat: Increased tempo loadout to 2

* feat: Remove most popups from swap spell

* fix: Swap with no mob entities

* feat: Add CanCast to spell effect

* fix: Handeling cancaled event & swap state

* feat: Add UseCustomCastConditions

* feat: Add swap to magic shadow staff

* feat: Add tempo essence & magic type

* feat: Add Tempo type to all dimension spells

* fix: Magic shadow staff tempo manacost modify

* fix: Spell type local

* feat: Add touhou lore

* fix: Review

* feat: Add target dead block component

* feat: Remove checking access

* feat: Add RequireCanInteract

* feat: Remove essence

* fix: Review

* fuck

* fuck part 2

* Update Content.Shared/_CP14/MagicSpell/CP14SharedMagicSystem.DelayedActions.cs

* Update dimension.png

* minor nitpick

* fix

---------

Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Ed <edwardxperia2000@gmail.com>
2025-04-30 17:25:10 +03:00
metalgearsloth
4325247311 Update submodule to 255.1.0 (#37071) 2025-05-01 00:20:59 +10:00
PJBot
20465d4ca9 Automatic changelog update 2025-04-30 14:12:01 +00:00
slarticodefast
b068b5bb89 Minor ReflectionSystem refactor (#37039)
* ReflectComponentLogicFix

Added bool InRightPlace and updated relevant system

* Using SlotFlags

* edits

* refactor

* add missing relay

---------

Co-authored-by: BIGZi0348 <svalker0348@gmail.com>
2025-05-01 00:10:54 +10:00
Milon
a8ff999b08 add StationTrackerComponent (#36803)
* maybe I am cooking

* logmissing

* copy paste oops

* add some stuff

* review

* fix

* rerun tests

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-05-01 00:07:25 +10:00
metalgearsloth
feffbea9f9 Fix examine prediction (#36999)
If our current ID is different to the received one we should just discard it even if it's for the same entity.

Note that this doesn't quite fix my prediction issue as client and server are using slightly different timings for the event.
2025-04-30 17:49:36 +10:00
Gentleman-Bird
2ff8a45b58 fix so that the meat patty uses the meat patty sprite on custom burgers (#37064) 2025-04-30 00:13:20 -07:00
IProduceWidgets
ebb1f92027 feex oasis portal (#37058) 2025-04-29 19:55:45 -07:00
PJBot
1b5547fbb9 Automatic changelog update 2025-04-30 00:52:48 +00:00
Nemanja
e3c3f4898f Fix NPCs stalling when too many exist (#37056)
Fix NPC stalling when too many exist
2025-04-30 10:51:41 +10:00
slarticodefast
97d4e80685 merge stable into master (#37055) 2025-04-30 02:42:06 +02:00
PJBot
0ee4babc55 Automatic changelog update 2025-04-30 00:41:34 +00:00
K-Dynamic
f399126c66 Centcomm carapace, moved armour from vests.yml to armor.yml (#35301)
* centcomm carapace, loadout for CC official, move armoured vests from vests.yml to armor.yml

* revert rename from previous commit; command carapace returned to captain's carapace

* meta.json 4 space

* restored deleted comments for some armours and original description for slim armour

* Add recently added elite web vest

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-29 20:40:27 -04:00
PJBot
504dd63200 Automatic changelog update 2025-04-30 00:35:27 +00:00
Pieter-Jan Briers
10796df6bc Un-copypaste wallmount substation prototype to give them a UI (#37047)
*sigh*
2025-04-29 20:34:20 -04:00
slarticodefast
0e586e3fae Hotfix: Fix item toggling crashing the client for slimes (#37054)
fix item toggling crashing the server for slimes
2025-04-30 02:19:07 +02:00
PJBot
aaf3db8f9d Automatic changelog update 2025-04-29 22:56:54 +00:00
ScarKy0
a00b7b753c Mail visual update (#37049) 2025-04-29 15:55:47 -07:00
PJBot
f69a856da0 Automatic changelog update 2025-04-29 22:18:39 +00:00
themias
f59b878ce5 Add toolbox sound effects (#37048) 2025-04-29 15:17:32 -07:00
Myra
c96af2808f Added warning when attempting to run RUN_THIS on a zip repo download (Attempt 2) (#36922)
* Added warning when attempting to run RUN_THIS on a zip repo download

* Fix it actually

* Update git_helper.py
2025-04-29 23:51:21 +02:00
PJBot
3f17e7171b Automatic changelog update 2025-04-29 21:45:57 +00:00
Whatstone
afc55d6573 Show other speso colours, add larger denominations (Frontier#1496) (#37030) 2025-04-29 14:44:47 -07:00
Myra
87d097bb5d Stable merge (#37050) 2025-04-29 21:54:43 +01:00
Princess Cheeseballs
84178dd534 Puddle code hotfix 2 (#37046) 2025-04-29 21:10:00 +01:00
ActiveMammmoth
a8ff930763 Staff of Animation Fixes & Recharging (#37021) 2025-04-29 20:40:49 +01:00
SlamBamActionman
e366230458 Add inhand sprites for mini jetpack (#37041)
* Inhand sprites for mini jetpack

* Attribution
2025-04-29 19:43:09 +02:00
Milon
b9b854e179 ringer bugfixes (#36936)
AAAAAAAAAA
2025-04-29 19:08:23 +02:00
PJBot
0c4713da7f Automatic changelog update 2025-04-29 16:37:59 +00:00
Boaz1111
3f1ba3b6e7 Added Space Carp Tooth Arrows and Sharkminnow Spears, buffs sharkminnow teeth. (#31257)
* carp arrow, sharkminnow tooth spear

* review

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-29 12:36:53 -04:00
Ed
b4ea0f69f5 Update tiefling.yml (#1245) 2025-04-29 18:11:36 +03:00
Ed
8cc50ea3a4 Update tiefling.yml 2025-04-29 17:20:25 +03:00
Ed
c3b6938388 unicorns 2025-04-29 17:14:05 +03:00
PJBot
3ce8e62157 Automatic changelog update 2025-04-29 13:33:25 +00:00
SlamBamActionman
aa29712a65 Fix clientsided alerts being overwritten by server (#37033)
Initial commit
2025-04-29 09:32:18 -04:00
pathetic meowmeow
74a8bb9509 Fix solution visualization after drawing with a whitelist (#36657) 2025-04-29 09:18:07 -04:00
PJBot
5ef74728c9 Automatic changelog update 2025-04-29 13:09:05 +00:00
Thinbug
ce080276db Push horn (#36009)
* Empty commit

* epic super duper cool fr push horn draft

* whoops turns out theres a system that does that thingi already x.x

* bunch of like fixis and generalization

* general progress

* most stuffies done

* last thingi hopefully

* small fixies, mostly preventing bypassing the delay by spamming

* rename to fit better

* rename for real i forgor to add

* weird fixie but last commit didn workie

* oki shold be fine now

* lastish cleanup

* fixies

* missed a space

* removed unnecessary component check

* getting the typos out of the way first

* moved the component to shared

* rest of fixies
2025-04-29 09:07:57 -04:00
kosticia
9e9726f81b Add borders to the asteroid sand (#35397)
* tiles

* Fix

* borderless

* Astrosand

* Add tile

* Fix
2025-04-29 08:58:39 -04:00
PJBot
db008825e6 Automatic changelog update 2025-04-29 10:26:03 +00:00
abadaba695
8245474fdc Chem master more unit transfer buttons (#36995)
* Changes chem master unit transfers to be the same as the chem dispenser

* adds chem master transfer buttons for 15u, 20u, and 30u
2025-04-29 12:24:56 +02:00
Ed
612ffb90cb Update ores.yml 2025-04-29 13:10:43 +03:00
PJBot
ad63aef2b2 Automatic changelog update 2025-04-29 10:02:04 +00:00
TytosB
53c3153645 re-buffs proto kinetic accelerator (#37012)
* new ruins

* genpop

* nvm

* abc

* fuckin

* turnstyle

* ruins

* stamp

* abc

* bruh

* efg

* pka fixed

* range tweak
2025-04-29 12:00:55 +02:00
PJBot
5afd520773 Automatic changelog update 2025-04-29 09:05:14 +00:00
IProduceWidgets
23d835b4b6 oasis genpop (#37031) 2025-04-29 02:04:07 -07:00
Princess Cheeseballs
aeed6b3954 More Mail Sprites (#37023)
* Commit

* Sprite update

* Last push for real for real

* Final Commit for real for real for real
2025-04-29 01:27:14 -04:00
PJBot
31e0fedb61 Automatic changelog update 2025-04-29 05:25:40 +00:00
lzk
207d513666 SSD sleep take 2 (#34039)
* ssd sleep part 2

* forgot this

* apply review

* yeah

* add onmapinit

* cache cvar values

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-29 01:24:33 -04:00
PJBot
e21944d083 Automatic changelog update 2025-04-29 04:46:17 +00:00
drakewill-CRL
294a5a1b69 Display obvious plant mutations in examine text (#32650)
* Effect mutations now display on examine

* ChangeSpecies shouldn't stay on the list after running. Name cleanup

* EmoGarbage Review - convert description to LocId and add minor logic fix

* fix the dastardly yaml

---------

Co-authored-by: PraxisMapper <praxismapper@gmail.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-29 00:45:10 -04:00
PJBot
9a3e70ca13 Automatic changelog update 2025-04-29 03:38:45 +00:00
Nemanja
f75811b4cb Rebalance magnet debris, update worldgen (#37025) 2025-04-28 20:37:39 -07:00
PJBot
ef49416540 Automatic changelog update 2025-04-29 03:14:08 +00:00
Stomf
a94d4a0991 Buffing slugs and replacing beanbags from the Bulldog bundle (#33517)
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-28 20:13:01 -07:00
Kirus59
8c38aa3742 BatteryWeaponPowerCell tweaks (#33500)
* BatteryWeaponPowerCell tweaks

* add update ammo ev & shuttle guns tweaks

* MilonPL requested changes

* revert changes in OnPowerCellChanged

* Add events to get charge info & change current charge

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-28 21:12:25 -04:00
PJBot
a8054c37b1 Automatic changelog update 2025-04-29 00:27:29 +00:00
themias
b33f1db432 Theatre access to Service Request Computer (#37003) 2025-04-29 02:26:23 +02:00
PJBot
9154fbf7fe Automatic changelog update 2025-04-29 00:25:19 +00:00
Victor Shen
4671382419 Remove Contact Slowdown when Weightless or in the Air (#33299)
* removed contact slowdowns from entities that are weightless or in the air

* fixed kudzu not applying contact slowdown to airbone entities

* revert kudzu fix

* reimplemented kudzu fix with bool datafield

* update variable serialization format

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* empty commit

* cleaned up and added documentation

* cached airborne check

* rerun tests

* minor review

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-28 20:24:12 -04:00
PJBot
f7a8a1779e Automatic changelog update 2025-04-28 23:44:46 +00:00
themias
bd08c71189 Fix t-ray scanner exception spam (#37018) 2025-04-28 19:43:39 -04:00
Partmedia
956652e111 Disown atmos and botany (#37017)
* Disown atmos and botany

* Update .github/CODEOWNERS

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-29 00:21:53 +02:00
Samuka-C
02b5592d69 Xenoborgs part 2 (#36844)
* add lawsets for the xenoborgs and mothership core

* add xenoborg names

* add xenoborg radio

* add xenoborg device frequency

* add xenoborg access

* add xenoborg contraband

* Update Resources/Locale/en-US/station-laws/laws.ftl

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* add xenoborg access to the universal Id card and universal access config

* remove 6th law of xenoborg and mothership lawset (got jointed into the 5th law)

* added xenoborg and mothership law boards

* add more names

* add Xenoborg faction

* moved all lawboards into a separate yml file

* removed custom xenoborg contraband severity

* add Xenoborg and Mothership components

* add xenoborg laser guns

* add self recharging fire extinguisher

* add mothership pinpointer

* add material bag

* add infinite jetpack

* add a only blue energy dagger

* add xenoborg jammer

* add refueling welding tool

* add nocturine hypo

* add nuclear small power cell

* add cloaking device

* add xenoborg door remote

* add custom sprites for xenoborg modules

* add custom sprites for xenoborg module actions

* removed Xenoborg Comp until is actually needed

* add xenoborg module tags

* spelling

* add xenoborg module bases

* organazied xenoborg modules sprites better

* add generic xenoborg modules

* add heavy xenoborg modules

* add engi xenoborg modules

* small fix to meta file in actions_borg.rsi

* renamed mothership comp to XenoborgMothership

* fixed the base for the xenoborg engi modules

* add scout xenoborg modules

* add stealth xenoborg modules

* localization for names and descriptions of the xenoborg modules

* fixed issues related to the XenoborgMothership component

* revert localization (it wasn't working for some reason)

* fixes

* fixed issue with container slot in the cloaking device

* Update description of small capacity nuclear power cell

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Fix indentation in material bag

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Spelling

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* fix parameter order in some prototypes

* rename proto id InfiniteJetpack to JetpackXenoborg

* localize pinpointer targets

* Revert "localize pinpointer targets"

doesn't work

* added lines in the end of files (and in the middle of one)

* reorder paramenter in some entities

* fixed some descriptions

* minor fixes

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-28 18:10:35 -04:00
PJBot
46b030df45 Automatic changelog update 2025-04-28 21:17:21 +00:00
ScarKy0
9d8cc64d48 Fix mail cutting thinking your arms are infinite length (#37019)
* init

* hand
2025-04-28 17:16:14 -04:00
PJBot
75a90152a7 Automatic changelog update 2025-04-28 21:01:17 +00:00
KingFroozy
3d0485fe5b Shoulder-length hairstyles resprite (#37000)
* sprite

* final

* final (final fr)
2025-04-28 17:00:10 -04:00
PJBot
b3ea8ee031 Automatic changelog update 2025-04-28 19:23:15 +00:00
lzk
4171c4e6d5 make scrubber widenet in panic mode (#37013) 2025-04-28 21:22:05 +02:00
slarticodefast
c6bdce3b0c merge staging into master (#37009) 2025-04-28 20:14:39 +02:00
Pieter-Jan Briers
b629cbac3e Clear MIDI masters properly to avoid replay freezes (#36809)
While trying to play a replay I noticed that the replay would freeze
when seeking in some cases. After some debugging, I discovered that two
MIDI renderers had each other as master, which caused an infinite loop
processing MIDI events.

I'm not entirely sure of the sequence of events that leads to this
during replay playback, but I did notice that MIDI render masters are
never set to null. This is in the best case just a memory leak, in the
worst case probably the source of the bug, so... I fixed that.
2025-04-28 19:51:41 +02:00
keronshb
0a394d4af5 Wizard Teleport Scroll (Teleport Location ECS) (#36424) 2025-04-28 19:42:24 +02:00
Myra
f6bae21184 Cherrypick #36955 into staging (#37002) 2025-04-28 19:40:56 +02:00
Nemanja
d4e40ae44b Revert "Add new color turtlenecks in WinterDrobe" (#36983)
Revert "Add new color turtlenecks in WinterDrobe (#32920)"

This reverts commit 34cc49c175.
2025-04-28 19:38:43 +02:00
github-actions[bot]
391230cd4b @Militore has signed the CLA in crystallpunk-14/crystall-punk-14#1242 2025-04-28 15:27:14 +00:00
metalgearsloth
fe3fe95dfa Fix autorecharge 2025-04-28 15:53:40 +02:00
Kyle Tyo
88eda89faa MapManager warning cleanup on tests (#36940)
lets see if this works.
2025-04-28 12:52:25 +02:00
ScarKy0
14ddd8b4cd Merge hotfix into master (#37001) 2025-04-28 11:47:56 +02:00
Nemanja
4509821f0e [HOTFIX] Revert "Updated air scrubber and air vent sprites." (#36992)
Revert "Updated air scrubber and air vent sprites. (#34223)"

This reverts commit 3957bbb97d.
2025-04-28 11:45:19 +02:00
ScarKy0
14cca7990a [HOTFIX] Fix maroon objective, change the text (#36990)
* test

* text

* capital C

* guh
2025-04-28 11:31:42 +02:00
PJBot
973ad71f5c Automatic changelog update 2025-04-28 06:57:46 +00:00
Southbridge
2e8291cecb Amber Station - Added Genpop (#36997) 2025-04-27 23:56:39 -07:00
IProduceWidgets
0043bde402 Add some salvage ruins (#36814)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-27 22:33:40 -07:00
PJBot
ff69325652 Automatic changelog update 2025-04-28 02:41:28 +00:00
KingFroozy
a42fb658fd Mime suit resprite (#36702) 2025-04-27 19:40:21 -07:00
Leon Friedrich
fba07c69a9 Update staging to engine v255.0.0 (#36916)
Updatee engine to v255.0.0
2025-04-28 12:11:48 +10:00
PJBot
03894048e9 Automatic changelog update 2025-04-28 01:01:56 +00:00
lzk
875ccb94c6 nuke shelves' whitelists (#36986) 2025-04-27 18:00:46 -07:00
Bokser815
f6b3ba79d3 Temporarily Making Cargo Buy and Sell Pallets Indestructible (#34195)
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-27 17:59:54 -07:00
PJBot
106bee52b0 Automatic changelog update 2025-04-27 23:05:47 +00:00
ScarKy0
13a1853168 Fragile Deliveries (#36980)
* epic

* tweaks
2025-04-28 01:04:39 +02:00
PJBot
fac4bcd9b2 Automatic changelog update 2025-04-27 20:16:23 +00:00
ArtisticRoomba
85f0760b1b Add a mapping changelog to upstream (#34848) 2025-04-27 13:15:17 -07:00
PJBot
536106a666 Automatic changelog update 2025-04-27 15:12:19 +00:00
Fildrance
4690e62575 Feature/auto sync node scanner (#36635)
* feat: node scanner now auto-updates artifact details if in range

* refactor: minor cleanup

* refactor: optimization for update and query of range checking

* refactor: fix xml-doc

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-04-27 11:11:13 -04:00
PJBot
b17e558046 Automatic changelog update 2025-04-27 14:48:24 +00:00
metalgearsloth
f29b38c44b Use RMC mob collision values (#36851)
Use RMC movement values

General feedback was it's too slow to push through people but this still prevents stacking so.
2025-04-28 00:47:18 +10:00
Ed
991d2fbf74 Update Dev.toml 2025-04-27 17:01:16 +03:00
PJBot
0da897947f Automatic changelog update 2025-04-27 11:09:42 +00:00
Pieter-Jan Briers
ffe130b38d Battery (SMES/substation) interface (#36386)
* Add ENERGYWATTHOURS() loc function

Takes in joules (energy), displays as watt-hours.

* Add simple OnOffButton control

* Re-add Inset style class

This was sloppily removed at some point?? Whatever, I need it.

* Add helper functions for setting title/guidebook IDs on FancyWindow

Reagent dispenser uses these, more in the next commits.

* Add BuiPredictionState helper

This enables me to implement coarse prediction manually in the battery UI.

Basically it's a local buffer of predicted inputs that can easily be replayed against future BUI states from the server.

* Add input coalescing infrastructure

I ran into the following problem: Robust's Slider control absolutely *spams* input events, to such a degree that it actually causes issues for the networking layer if directly passed through. For something like a slider, we just need to send the most recent value.

There is no good way for us to handle this in the control itself, as it *really* needs to happen in PreEngine. For simplicity reasons (for BUIs) I came to the conclusion it's best if it's there, as it's *before* any new states from the server can be applied. We can't just do this in Update() or something on the control as the timing just doesn't line up.

I made a content system, BuiPreTickUpdateSystem, that runs in the ModRunLevel.PreEngine phase to achieve this. It runs a method on a new IBuiPreTickUpdate interface on all open BUIs. They can then implement their own coalescing logic.

In the simplest case, this coalescing logic can just be "save the last value, and if we have any new value since the last update, send an input event." This is what the new InputCoalescer<T> type is for.

Adding new coalescing logic should be possible in the future, of course. It's all just small helpers.

* Battery interface

This adds a proper interface to batteries (SMES/substation). Players can turn IO on and off, and they can change charge and discharge rate. There's also a ton of numbers and stuff. It looks great.

This actually enables charge and discharge rates to be changed for these devices. The settings for both have been set between 5kW and 150kW.

* Oops, forgot to remove these style class defs.
2025-04-27 21:08:34 +10:00
KingFroozy
791f7af5d4 Paramedic suits adjustments (#36707)
* Changes

* meta
2025-04-27 12:27:01 +02:00
Viator-MV
39c6544dc9 visionCorrector (#1230) 2025-04-27 13:24:52 +03:00
Deserty0
8089be4596 Loc fix (#1229)
* fun

* Revert "fun"

This reverts commit 419b4e9e8f.

* fix
2025-04-27 13:11:23 +03:00
PJBot
f512c7bf91 Automatic changelog update 2025-04-27 09:15:01 +00:00
ScarKy0
2a5cf10aa6 Priority Deliveries (#36968) 2025-04-27 02:13:52 -07:00
Nemanja
497f43ec65 Remove legacy cargo shuttle code/prototypes (#36967) 2025-04-27 12:06:45 +10:00
github-actions[bot]
71e58834ff Update Credits (#36966)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-04-26 20:34:39 -04:00
PJBot
2f2685cb2c Automatic changelog update 2025-04-26 23:46:17 +00:00
UpAndLeaves
9fc6de35df New Science Biosuit Locker Sprite (#36929)
* first commit, slightly broken

* fixed meta json

* reverse accidental cmo inclusion
2025-04-26 19:45:10 -04:00
PJBot
34e67f71ba Automatic changelog update 2025-04-26 23:37:08 +00:00
Tiniest Shark
bb9c6dbe9d Ammo Mag + Speedloader Inhand Sprites (#34235)
* Added inhand visuals to (most) ammo magazines and speedloaders

* whoops mixed up a single inhand on the rifle mag

* Didn't realize rubber ammo got removed.

* added attributions

* adjusted inhand visuals to account for magazine types

* missed one :eye:👁️

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-26 19:36:01 -04:00
PJBot
021bd04b65 Automatic changelog update 2025-04-26 23:25:32 +00:00
Centronias
90582f27ee Adds Parcel Wrap (#34471)
* Parcel Wrap

* fix TG sprite licenses
update attribution on modified `unwrapped` sprite to better conform to CC's guidance

* ContainerContainer test failure fix

* Just easy changes for now.

* Imagine building your code before pushing it for review

* The rest of the PR comments

* PR comments

* more comments + cargo orderability

* whitespace: deduplicated.

* use limitedcharges
replace mostly-duped client/server with if(onserver)

* cabinet perspective sprites

* web edit detected

fite me

* @ps3moira 's new sprites for me :)

* add a touch of attribution

* EmoGarbage Review

* Merge with master

* Merge with master

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-26 19:24:25 -04:00
PJBot
fd24e4bc5b Automatic changelog update 2025-04-26 21:50:07 +00:00
UpAndLeaves
dafb99258e CMO Hardsuit: Zombification Resistance tweak (#36957)
initial commit
2025-04-26 14:49:00 -07:00
Nox
2378b9ad68 Descriptions for .30 Rifle (#36958)
Initial commit
2025-04-26 14:48:40 -07:00
PJBot
d26fbbb6e7 Automatic changelog update 2025-04-26 21:47:00 +00:00
pathetic meowmeow
b7d020570f Truncate lathe announcement lists (#36945) 2025-04-26 17:45:53 -04:00
PJBot
f74b1c35bb Automatic changelog update 2025-04-26 21:43:34 +00:00
ScarKy0
f0472b2173 Delivery random multipliers (#36918)
* init

* review

* init

* teehee
2025-04-26 17:42:27 -04:00
Kyle Tyo
8f35bc76c2 Resolve a warning in SharedAnomalySystem and quell some linter whining. (#36939)
* resolve a warning and deal with some linter whining.

* Update Content.Shared/Anomaly/SharedAnomalySystem.cs

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-26 17:40:44 -04:00
PJBot
b1a846a6e9 Automatic changelog update 2025-04-26 21:07:41 +00:00
qrwas
6d935ced3a Only sec glasses can show contraband: second attempt (#36412)
* Add base code for cheking contraband in hud

* Fix missing using in InventorySystem.Relay

* Fix errors and update HUD yml

* Add show contraband with component on entity

* fix component description

* Update Content.Shared/Contraband/ShowContrabandDetailsComponent.cs

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Update "if" for check if ent hasComp in contrabandSystem

* Remove << InventorySystem.Relay.cs

* Update Content.Shared/Contraband/ShowContrabandDetailsComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/CCVar/CCVars.Game.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Fix partial class ShowContrabandSystem

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/Contraband/ShowContrabandDetailsComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/Inventory/InventorySystem.Relay.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Some update ShowContrabandSystem

* Try with record struct

* back again ti default class with EntityEventArgs

* Remove EntityEventArgs

* Finally use record struct

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-26 17:06:34 -04:00
PJBot
76676014a6 Automatic changelog update 2025-04-26 20:57:25 +00:00
beck-thompson
65ff527f13 Fix inflatable barriers finishing instantly if canceled! (#36937)
Fix
2025-04-26 16:56:18 -04:00
metalgearsloth
d2caa5eae0 Fix autorecharge (#36955) 2025-04-26 16:54:06 -04:00
PJBot
0fbed2c95a Automatic changelog update 2025-04-26 20:46:15 +00:00
RedBookcase
b0dedb9770 Changed the storage sizes of different swords. (#36564)
Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-04-26 13:45:08 -07:00
TakoDragon
2bd8455ff7 The Atmos A Airlock (#36376)
* airlocks

* Update meta.json

Added my modification in the meta
2025-04-26 21:26:23 +02:00
Ed
e7e55cdb5e fix viator 2025-04-26 18:09:44 +03:00
Ed
a1153843a2 Storage durability rebalance + Fuck nails (#1225)
* fix storage

* bye nails

* Update target.yml

* f

* Update migration.yml

* Update migration.yml
2025-04-26 17:20:52 +03:00
Ed
cff9dc6fcf Wendigo renamed to Lurker (#1213)
* Добавлены изменения для создания пулл реквеста

* Update Step.yml

* rename!

* fix

* interrupting toggleable spells
2025-04-26 16:38:54 +03:00
PJBot
0503287230 Automatic changelog update 2025-04-26 13:37:58 +00:00
SyaoranFox
7a256bac84 Changed soundGunshot for Pulse Pistol and Pulse Carbine from laser_cannon to laser3 (#36952) 2025-04-26 15:36:50 +02:00
ArZarLordOfMango
07132cdbd8 [Fix]Roof (#1147)
* roof

* why you dont work...

* fix and locale

* weh check

* Update no-roof-in-tile.ftl

* Update no-roof-in-tile.ftl

* Update roofs.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Ed <edwardxperia2000@gmail.com>
2025-04-26 15:23:11 +03:00
Ed
7941be4490 dungeon walls resprite, fix TOSTRING problem from C4viwlle 2025-04-26 13:29:23 +03:00
Ed
1ee7b9b76c fixes 2025-04-26 13:07:04 +03:00
Viator-MV
834fad0533 fixes (#1223) 2025-04-26 12:21:01 +03:00
Pieter-Jan Briers
e7be57d85f Clear MIDI masters properly to avoid replay freezes (#36809)
While trying to play a replay I noticed that the replay would freeze
when seeking in some cases. After some debugging, I discovered that two
MIDI renderers had each other as master, which caused an infinite loop
processing MIDI events.

I'm not entirely sure of the sequence of events that leads to this
during replay playback, but I did notice that MIDI render masters are
never set to null. This is in the best case just a memory leak, in the
worst case probably the source of the bug, so... I fixed that.
2025-04-26 16:42:16 +10:00
TytosB
f4322c5bb7 loop turnstyle fix hopefully (#36946) 2025-04-25 22:08:23 -07:00
PJBot
3a3a8b038a Automatic changelog update 2025-04-26 03:24:00 +00:00
OnyxTheBrave
5f2fb8dc82 Sheet-meister 2000 Cloth recipe (#32676)
* Sheet-meister 2000 can now make rolls of cloth

* Small Cleanup

* resolve conflicts

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-26 05:22:51 +02:00
TGRCDev
79ae7e7abe Fixed stinger grenade lag spikes (#36641)
* Fixed stinger lag spikes

* Simplify nullable checks

* More cleanup of projectile grenades

* Remove null default from ShootProjectile
2025-04-26 04:12:18 +02:00
PJBot
bd51fd76d7 Automatic changelog update 2025-04-26 01:55:29 +00:00
Booblesnoot42
0638147aa9 hide light-switches from build menu (#34664) 2025-04-26 03:54:23 +02:00
Wolfkey-SomeoneElseTookMyUsername
0dd9ffe8bf Add Cotton Burgers (#36405)
* Adds cotton burgers

* Rephrased copyright

* Added an extra comment

* Adds CottonBurger to tags.yml, Not sure if i am supposed to do this or not.

* Reordered Cotton bun YAML, and fixed overwritten tags

* Merge issue fix?

* Add experiment plushie and remove rubber chicken from cotton burgers

* Minor comment change

---------

Co-authored-by: beck-thompson <beck314159@hotmail.com>
2025-04-25 18:54:14 -07:00
kaiserbirch
8812237108 Land mine armament (#33883)
* Land Mine is now armable, it will not explode unless armed.

* Land Mine is now armable, it will not explode unless armed.

* Explicitly have Armed as false

* SharedLandMineSystem.cs adds the "Arm"-verb in "Content.Shared" with the Arming logic being implemented in "Content.Server"

* Land Mines now blink only when armed.

* Added prediction components, moved logic to SharedLandMineSystem.cs and inherit it in client content.

* Accessing the datafield directly instead of using methods

* Mines are now armed by default with a unarmed prototype

* Land mine now shows if it is armed when examined and in range.

* Landmine is unarmed by default with an armed variant for mapping purposes.

* Removed properties that were already defined by inheritance.

* Access the bool directly from the component

* Add booleans to change if the Arm-verb is showed and if examining the mine shows the status.

* Added status message for unarmed mine, removed using PushGroup since only one string is displayed.

* Added properties to the explosive floor sign to ensure that it is armed, not showing neither status nor arm-verb.

* The prototypes work now as before with added unarmed versions. Sprite is now only one toggable layer.

* Make the craftable land mine unarmed.

* Refactored the arming mechanic into own component and system.

* Reverted the explosive wet floor sign to previous prototype and added the Armable component and ItemToggle to the landmines.

* Moved the examination strings from land-mines.ftl to armable.ftl.

* Removed unused property.

* Formatting and fixing imports

* Added prefixes to the ftl naming. Moved LocId from system to component

* Added documentation. Moved check for armable to HandleStepTriggerAttempt.
Moved the LocId to component.

* Removed the TryArming method. Added documentation.

* Removed unnecessary TryComp

* Simplified the logic for the trigger attempt

* HasComp instead of TryComp on logic

* EmoGarbage Review

---------

Co-authored-by: Franz - Josef Björck <kaiserbirch@proton.me>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-25 16:53:50 -04:00
Ed
8fbcaf496a some bugfixes 2025-04-25 23:17:06 +03:00
Kyle Tyo
b2f1f7c5ad Remove a redundant trycomp from TileAnomalySystem (#36924)
* remove a redundant check

* revert this space.
2025-04-25 15:32:23 -04:00
PJBot
5fa59ea213 Automatic changelog update 2025-04-25 18:19:31 +00:00
Nemanja
f900d9f8b2 PKA Modkits + Rebalance (#31247) 2025-04-25 11:18:23 -07:00
TytosB
9430a0f835 loop genpop (#36912)
* new ruins

* genpop

* nvm

* abc

* fuckin
2025-04-25 08:38:39 -07:00
PJBot
70ae0bbc28 Automatic changelog update 2025-04-25 15:34:21 +00:00
Kiri1674
a6905f2101 Make 10u of "Atomic Bomb" drink instead of 11u (#36921)
changed atomic bomb recipe
2025-04-25 08:33:14 -07:00
creamybag
72d8767a6d recoloring (#1221) 2025-04-25 18:27:07 +03:00
PJBot
e68d0243d9 Automatic changelog update 2025-04-25 15:08:57 +00:00
Radezolid
86a20dfdea Fix donuts tags breaking the bounty (#36903) 2025-04-25 08:07:50 -07:00
Deerstop
6bde7fdaa2 Elkridge - Genpop (#36914) 2025-04-25 08:05:25 -07:00
Spessmann
22bd884c19 Fix random maints room deleting whatever was already there (#36605) 2025-04-25 08:04:18 -07:00
Tornado Tech
67912d2c44 fix: mistakes in legal.md (#1220) 2025-04-25 14:51:55 +03:00
Ed
23e276b886 Update caves.yml 2025-04-25 14:22:05 +03:00
Ed
5484557c6d demiplane minor rebalance 2025-04-25 14:19:33 +03:00
Ed
a8b1b0ed37 sphere of light redesign 2025-04-25 14:11:36 +03:00
Ed
62cdf9e1c5 Bugfixes + QoL (#1218)
* fix keyring

* fix #1209

* fix #1116

* fix water, test reenable ambient loop

* recipe categories in workbecnhes

* Update CP14StoreWindow.xaml

* refactor: review

* Update CP14WorkbenchWindow.xaml.cs

* Update SharedCP14MagicEnergySystem.cs

* categorizize all recipes + some UI fix

* Update round_end.yml

---------

Co-authored-by: Tornado Tech <54727692+Tornado-Technology@users.noreply.github.com>
2025-04-25 13:39:20 +03:00
PJBot
f2036aae3a Automatic changelog update 2025-04-25 10:31:46 +00:00
chromiumboy
65f50b55b6 Fix for ghosts being unable to follow the AI when it uses a holopad (#36355)
* Initial commit

* Added to-do
2025-04-25 12:30:39 +02:00
lzk
25f016e806 fix changelog (#36915) 2025-04-25 01:51:05 -07:00
PJBot
c21ef2108a Automatic changelog update 2025-04-25 07:22:06 +00:00
chromiumboy
ed5c7aa942 Releasing an under-pressure lockout is now a verb (#36910)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-25 00:21:00 -07:00
kosticia
010435fdb3 [FIX] Rubber now uneatable (#34543) 2025-04-25 00:20:09 -07:00
PJBot
a1468e7fbb Automatic changelog update 2025-04-25 06:04:10 +00:00
Alzore
dae811746a Inaprovaline metabolizes slower for better use as a stabilizing medicine (#32293) 2025-04-24 23:03:03 -07:00
PJBot
374ebfb621 Automatic changelog update 2025-04-25 05:55:56 +00:00
lzk
2eeef256e5 cleanup instruments yml (#32262)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-24 22:54:49 -07:00
PJBot
2570473c67 Automatic changelog update 2025-04-25 04:53:27 +00:00
ScarKy0
4c7ad1e2f9 Lower interdyne herbals TC cost (#36841) 2025-04-24 21:52:20 -07:00
PJBot
e53f8b8ed6 Automatic changelog update 2025-04-25 04:50:41 +00:00
Kresny
3594f47c8d Controls page guidebook rework 2025 Q1 (#36363)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-24 21:49:35 -07:00
PJBot
84053234a6 Automatic changelog update 2025-04-25 04:06:36 +00:00
Alzore
c8a02fd4cd Nerf mining hardsuit's effectiveness against bullets and bombs. (#31450) 2025-04-24 21:05:29 -07:00
PJBot
6cd8d1fba9 Automatic changelog update 2025-04-25 04:03:10 +00:00
Victor Shen
dab9bd69c6 Add Bloodstream to Goliaths (#33305) 2025-04-24 21:02:03 -07:00
PJBot
ba9ce72e62 Automatic changelog update 2025-04-25 03:54:22 +00:00
Smith
5bef44b296 Reptilians Can Eat Orange Creamsicles (#36890) 2025-04-24 20:53:13 -07:00
Spessmann
a22106f083 Convex genpop update (#36908) 2025-04-24 20:49:06 -07:00
PJBot
ee5a38d3e8 Automatic changelog update 2025-04-25 02:30:25 +00:00
Nox
a92ad620b2 Cyborg Rebalance (#34186)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-24 19:29:16 -07:00
PJBot
5af9ab4e99 Automatic changelog update 2025-04-24 23:46:02 +00:00
SlamBamActionman
735bbf93a9 Change some posters to be rules-compliant (#32734)
* Initial commit

* Minor edit

* it's very hard to fit "disorder"

* Revert No ERP poster, fix spawner

* Attribution

* Update text

* Missed poster spawner

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-24 19:44:54 -04:00
PJBot
42c344a5da Automatic changelog update 2025-04-24 23:43:35 +00:00
Preston Smith
f22160aa48 Correct IdentityBlocker to include specific outer clothing (#33085)
* Make IdentityBlocker include outerclothing

* Modify Correct Bit

* Fix mask/eye cobo
2025-04-24 19:42:27 -04:00
themias
bce195b53e Fix disposal unit flush animation (#30677)
* Fix disposal unit flush animation

* Revert "Fix disposal unit flush animation"

This reverts commit a596ecfd5f5368f87ef52cfb27884a8e000185c6.

* control by setting layer visibility rather than overwriting

* restore changes
2025-04-24 18:59:39 -04:00
ScarKy0
56ee29ab41 Turnstiles lower volume + access reader (#36900)
fixes
2025-04-25 00:14:47 +02:00
Nemanja
abb9e373bd Fix storage ui hovering over the hotbar (#36770) 2025-04-25 00:10:43 +02:00
slarticodefast
2b1161c8a6 Revert "Added warning when attempting to run RUN_THIS on a zip repo download" (#36899)
Revert "Added warning when attempting to run RUN_THIS on a zip repo download …"

This reverts commit d4c3ff3de4.
2025-04-24 23:44:28 +02:00
PJBot
407f0d5433 Automatic changelog update 2025-04-24 21:19:33 +00:00
Nemanja
f9b3d59a53 Fix QSI bringing people into paused maps (#36834) 2025-04-24 14:18:26 -07:00
slarticodefast
b3b6d47310 Disable shadows for observer pointlight (#36897)
no shadows
2025-04-24 22:42:21 +02:00
Myra
d4c3ff3de4 Added warning when attempting to run RUN_THIS on a zip repo download (#36896) 2025-04-24 22:39:33 +02:00
PJBot
31b5365ae0 Automatic changelog update 2025-04-24 19:48:53 +00:00
ScarKy0
a16504fa42 Tearable Deliveries V2 (#36815)
* Add new fields to DeliveryComponent for #36636

* Setting the baseSpesoPenalty for currently available deliveries

* Small fixes

* Basic delivery penalization

* Penalty and reward multiplier calculation in place

Also fixes an issue in SharedCargoSystem when opening a delivery in dev server due to trying to allocate cargo twice.

* Calling penalty no longer happens on opening

* Extract multiplier getting

* Removing unused include

* Changing method description. \n\n Not actually sure what I meant by the first one

* Localising default delivery messages

* Unused include removal

* init or smth

* minor tweaks

* I KEEP MERGE CONFLICTING MYSELF

* comments

* no icon

* slight increase

* slarti changes

* forgot

* stuffs

* yippee

* Locn't

* doc

* partial review

* message

* review

* pain

* stuff

---------

Co-authored-by: Lmorgan89 <billsmith116@gmail.com>
2025-04-24 21:47:46 +02:00
Southbridge
6a567cbcb8 Amber Station - Silo (#36764) 2025-04-24 11:24:07 -07:00
PJBot
435affce7e Automatic changelog update 2025-04-24 17:43:03 +00:00
Southbridge
3f588a1bb1 New Spawners, Modified Spawners, new Service/Theatre Airlock, and new Colorful Light Crate (#36750)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-24 10:41:55 -07:00
ScarKy0
9fd5ed6d05 Meta Silo n Dept Economy (#36885) 2025-04-24 10:28:50 -07:00
Nemanja
68881ac030 Fix small misc. turnstile issues (#36893)
* Fix small misc. turnstile issues

* more missing things

* quieter
2025-04-24 19:02:12 +02:00
J
1f722bcc44 Delivery system now has the possibility of penalisation (#36660)
* Add new fields to DeliveryComponent for #36636

* Setting the baseSpesoPenalty for currently available deliveries

* Small fixes

* Basic delivery penalization

* Penalty and reward multiplier calculation in place

Also fixes an issue in SharedCargoSystem when opening a delivery in dev server due to trying to allocate cargo twice.

* Calling penalty no longer happens on opening

* Extract multiplier getting

* Removing unused include

* Changing method description. \n\n Not actually sure what I meant by the first one

* Localising default delivery messages

* Unused include removal

* minor tweaks

* slarti changes

* forgot

* stuffs

* yippee

* Locn't

* doc

* Apply suggestions from code review

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-24 18:05:32 +02:00
PJBot
5371dbe9a7 Automatic changelog update 2025-04-24 14:33:18 +00:00
Nemanja
dc9844edd1 Genpop Closets & IDs (#36392)
* Genpop IDs and Lockers

* placeholder generation, no ui yet.

* UI

* Fix time offset

* fix meta.jsons

* big speller

* Scarkyo review

* Add turnstile prototypes

* make IDs recyclable

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2025-04-24 16:32:11 +02:00
Ed
4bb614981f Keys & Locks crafting (#1207)
* keeye

* random locks for demiplanes

* blank keys, material keys

* craft blank keys

* key file

* fix skill tree UIScaling

* fix audio and sounds and prediction

* delete crowbar, merge its into pickaxe

* QoL key shaping

* lock introdusing

* QoL progress lockpicking

* examinable lock

* lock insert

* mithril lockkpick

* Update wall_dirt.yml
2025-04-24 17:10:52 +03:00
PJBot
896f73c59d Automatic changelog update 2025-04-24 11:40:47 +00:00
Nemanja
712954f1c4 Turnstiles (#36313)
* construction rotation fix

* Turnstiles

* renaming

* review-slarticodefast-1

* mild attempts to fix (sorry sloth)

* move some more shit

* Remove engine dependency

* grid agnostic

* remove debug string

* fix json

* Update Content.Shared/Movement/Pulling/Systems/PullingSystem.cs

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Update Content.Shared/Movement/Pulling/Systems/PullingSystem.cs

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* remove pass delay for mispredict reasons.

* most minor of changes

* Give directional indicator on examine

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-24 13:39:40 +02:00
Leon Friedrich
0deb35000f Remove beaker from the MaterialArbitrageTest whitelist (#36876) 2025-04-24 11:58:30 +02:00
PJBot
aed40f8e47 Automatic changelog update 2025-04-24 03:46:34 +00:00
SG6732
b0edf7106f Meat Patty (#34896)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-23 20:45:27 -07:00
PJBot
cb53647748 Automatic changelog update 2025-04-24 03:25:44 +00:00
Smith
8478125fe8 Cotton Grilled Cheese Sandwich (#36135)
* Working entity.

* New sprite by MadeOfHeartAndStone

* Removed deadspace, changed attribution in meta.json

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-24 05:24:37 +02:00
Milon
1d14d6b468 fix NoCargoOrderArbitrage fail (#36878)
whoopsie
2025-04-24 05:09:59 +02:00
PJBot
408a70f68c Automatic changelog update 2025-04-24 03:02:36 +00:00
RedBookcase
9a646634d4 Removed syndicate surgery duffel, added advanced circular saw to Medical Doctor uplink. (#35915)
* Removed syndicate surgery duffel, added advanced circular saw to Medical Doctor uplink.

* Update Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-04-24 05:01:29 +02:00
beck-thompson
186cef25ca Put items inside cakes! (#31015)
* First commit

* I'm silly

* Please be it

* Some more fixes

* Cleanup

* fine!

* removed = false

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-24 05:00:50 +02:00
PJBot
7fded8c8c5 Automatic changelog update 2025-04-24 02:59:00 +00:00
Coolsurf6
b7a0bce4a4 Updated Syndicate and Ammo Contraband (#35102)
Co-authored-by: RedBookcase <crazykid1590@gmail.com>
2025-04-23 19:57:53 -07:00
Samuka-C
6ef03b082f Xenoborgs part 1 (#36830)
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-23 19:38:10 -07:00
PJBot
fc50922187 Automatic changelog update 2025-04-24 02:29:41 +00:00
Princess Cheeseballs
dca704c52c Moths can eat pills (#35609) 2025-04-23 19:28:34 -07:00
PotRoastPiggy
82269075bd Adds shorts/pants to ClothesMate vending machine (#35361)
* Clothesmate shorts

* matches price of vend to the new contents
2025-04-24 04:12:48 +02:00
PJBot
bb5ea2ff81 Automatic changelog update 2025-04-24 01:22:43 +00:00
No Elka
a8f05f5547 Make toy sword less obvious (#34199)
* YAML fuckery

* Remove toy_sword.rsi

Not a webedit btw
2025-04-24 03:21:35 +02:00
PJBot
fa622eac50 Automatic changelog update 2025-04-23 23:56:45 +00:00
Southbridge
a7b2b0bf0f New Salvage Ruin - Hydro Outpost (#36826) 2025-04-23 16:56:31 -07:00
ArchRBX
8045373197 pAI Software Catalog (#36857)
* initial commit

* add the shop and make it work

* add existing pai actions to the software shop

* added power monitor app

* killed the power and crew monitor software, too powercreepy

* fix test failures

* fix more test failures

* fix merge conflicts

* code changes to conform with review

* fix unintentional submodule update

* submodule update

* remove unused currency prototype ref

---------

Co-authored-by: archrbx <punk.gear5260@fastmail.com>
2025-04-23 16:55:35 -07:00
Tayrtahn
3313c648fe Fix warnings in ServerDbManager (#36871)
Fix warnings in ServerDbManager
2025-04-24 01:48:27 +02:00
Tayrtahn
acee0e53f7 Cleanup warnings in SpawnSalvageMissionJob (#36866)
* DoMapInitialize and SetMapPaused

* GridTileToLocal

* Formatting

* Remove unused variables

* Update Content.Server/Salvage/SpawnSalvageMissionJob.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-24 01:33:30 +02:00
Tayrtahn
44106d5570 Move guardian sounds to component (#36870) 2025-04-24 01:29:49 +02:00
Tayrtahn
b3d761921f Cleanup warnings in WorldgenConfigSystem (#36864)
Fix warnings in WorldgenConfigSystem
2025-04-24 00:39:17 +02:00
Tayrtahn
02814e1e8d Cleanup warnings in PolymorphSystem.Map (#36869)
Fix warnings in PolymorphSystem.Map
2025-04-24 00:25:13 +02:00
Tayrtahn
411b563b1f Cleanup warnings in CableSystem.Placer (#36868)
* Fix warnings in CableSystem.Placer

* Formatting
2025-04-23 18:14:50 -04:00
Tayrtahn
43d9365abf Cleanup warnings in SharedCryostorageSystem (#36863)
Fix warnings in SharedCryostorageSystem
2025-04-24 00:05:10 +02:00
Tayrtahn
5ede1f7b4e Cleanup warning in EmptyAllContainersBehaviour (#36860)
Fix warning in EmptyAllContainersBehaviour
2025-04-23 20:33:18 +02:00
Tayrtahn
6d88dd910d Modernize GhostComponent & Ghost API (#36858)
* Move CanReturnToBody to system

* Move CanGhostInteract to system

* Cleanup redundant datafields and viewvariables

* Document datafields

* Document component

* Add SetTimeOfDeath Entity<T> overload, obsolete old version

* Document public methods

* Cleanup obsoleted method calls
2025-04-23 20:28:10 +02:00
Tayrtahn
a7b9694d10 Cleanup warnings in NinjaSuitSystem (#36861)
Fix warnings in NinjaSuitSystem
2025-04-23 20:24:21 +02:00
Tayrtahn
88d8458b5d Remove redundant fields from MovementSpeedModifierComponent (#36859)
Delete _baseWalkSpeedVV and _baseSprintSpeedVV
2025-04-23 19:54:49 +02:00
lzk
09c1189571 cleanup + add names to some entities (#36856) 2025-04-23 18:11:19 +02:00
PJBot
9418d29a59 Automatic changelog update 2025-04-23 11:09:09 +00:00
Saphire Lattice
49ff1b5e51 Remove steel sheet hull fixing (#33443)
* Remove steel sheet hull fixing

It's unintuitive that it's wasteful, there's not really any systems to NOT make it wasteful, and it's a UX trap. No this is not "noob trap", no. It's an UX issue because if hundreds of people do it over and over again without noticing anything wrong, well, something fails to properly note that there's an issue with what they are doing. Aka user experience issue. Aka not a problem with the user but the design.

Also could be a shitty doafter action that makes you wonder if something's wrong

* Why was this testing using steel of all things
2025-04-23 21:08:02 +10:00
T-Stalker
bad79973f2 Add 1 dragon name (#36846)
* this is a commit you cannot skip

* why do you have to add a count why
2025-04-23 20:11:34 +10:00
Tayrtahn
a48e975ea3 Fix warning CS9107 (#36845) 2025-04-23 11:42:08 +02:00
Tayrtahn
e529bc6196 Improve LocalizedDataset test to check for low Count (#36848)
* Improve LocalizedDataset test to check for low Count

* Fix missing entries for FigurinesFootsoldier
2025-04-23 11:29:13 +02:00
Winkarst
3ac8bc71f1 Cleanup: Move folders out of bureaucracy.rsi and paper.yml (#35108)
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-22 23:31:42 -07:00
PJBot
c387bdb136 Automatic changelog update 2025-04-23 05:38:16 +00:00
Smith
82bc2a728c Four new food crates for the ATS (#33286)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-22 22:37:09 -07:00
kosticia
2076e8b02d Moth-pockets (#34517)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-22 22:36:54 -07:00
lzk
638ee7aa2c elemental.yml & asteroid.yml cleanup (#36448) 2025-04-22 21:42:08 -07:00
PJBot
bfe18059f1 Automatic changelog update 2025-04-23 01:59:49 +00:00
Vladislav Suchkov
00af8f96f6 Fix construction orientation being ignored for some objects (#36488)
* fixes

* removed empty "SnapToGrid"s and parent "completed"s
2025-04-22 21:58:42 -04:00
Princess Cheeseballs
db922024be Give Admins "Tails" (#36842)
One line yaml change
2025-04-22 21:25:12 -04:00
PJBot
0256fb5a4f Automatic changelog update 2025-04-22 23:54:48 +00:00
poklj
7e63b397cf Nerf Firelock electronic prices (#33469)
* Nerf Firelock electronic prices

- make firelock electronics price half of the input cost to make one
(27) rounded up

* Why does firelock make glass?

- remove the Physical composition of glass from
FirelockElectronics as the input does not contain glass
and the output cannot contain half a steel and plastic

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-22 19:53:42 -04:00
Tayrtahn
441083e906 Fix warning CS0414 instances (#36832)
Fix warning cs0414 instances
2025-04-23 01:36:49 +02:00
IProduceWidgets
4fa808ace5 Simulate command in minutes for real (#36808)
* 60
2025-04-22 18:20:45 -04:00
catlord
14b5496c33 Update MinorAntagonists.xml (#36836) 2025-04-23 00:04:20 +02:00
Tayrtahn
37f2c29559 Fix warning CS8524 instances (#36837) 2025-04-22 23:48:30 +02:00
Hanz
6cc53e3e1c Ashtray staticPack fix (#36835)
Ashes to Ashes

God I love staticPacks
2025-04-22 13:34:29 -07:00
PJBot
45938f2fae Automatic changelog update 2025-04-22 19:47:45 +00:00
Southbridge
1e794a30d0 Cherry Pick Round-start Solar Variation (#36825)
* Roundstart Variation for Solar Panels (#86)

* Added roundstart variation for solar panels

* Removed HV cable spawner since i don't want to bother with mapping them

* Solar Panel Variation Pass Fix (#96)

Added a second variation pass for regular solar assemblies, since otherwise they would spawn both it and the broken variety

* Reorganized everything to no longer be in the _Moffstation subdirectory

* Removed a forgotten tag for Moffstation

* Removed the moffstation namespace settings

* Update Content.Server/GameTicking/Rules/VariationPass/Components/SolarPanelReplaceVariationPassComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/GameTicking/Rules/VariationPass/Components/ReplacementMarkers/SolarPanelReplacementMarkerComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-04-22 15:46:38 -04:00
Hanz
bd1f2af691 Ashtray Resprite and Fix (#31643)
* The meat and potatoes

Yup

* Stupid recycler

bruh

* guh

guh
2025-04-22 15:34:39 -04:00
Ed
a2ed3154bb Update natural.yml 2025-04-22 22:05:24 +03:00
Zachary Yona
063bbfa77c Ashen hud item status slot fix (#31411)
* new patchMargin variable added, horizontals fixed

* All sides now work, system is fully integarated

---------

Co-authored-by: Zachary Yona <magicalusf@gmail.com>
2025-04-22 14:40:58 -04:00
PJBot
7ae7def1fb Automatic changelog update 2025-04-22 18:39:42 +00:00
Ilya246
2f8809c74c downprice many cargo orders (#32375)
* atmos repricing

* emitter crate

* materials

* lasers

* revert gun prices
2025-04-22 14:38:32 -04:00
PJBot
3aa5eb5a21 Automatic changelog update 2025-04-22 18:36:50 +00:00
Golden Can
106a31410f Command uniform (#32103)
* Added generic command jumpskirt, jumpsuit and cap, and made them available in the HoP's clothing printer.

* fixed generic command jumpskirt and jumpsuit.

* Updated generic command jumpskirt/-suit textures, added generic command beret.

* Fixed game-breaking bug in previous commit relating to the command beret.

* altered generic command soft cap/baseball cap sprites.

* Update Resources/Prototypes/Entities/Clothing/Head/hats.yml

Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml

Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml

Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>

* review

* whoopsie

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-22 14:35:43 -04:00
PJBot
9f49404e70 Automatic changelog update 2025-04-22 18:16:20 +00:00
Tayrtahn
b8a894bfd1 Banana cream pie loc improvements (#36829)
* CAPITALIZE(THE($owner))

* Rename "thrower" to "thrown"; use THE($thrown)

* "the banana cream pie" -> "a banana cream pie"

* Simplify filter
2025-04-22 20:15:39 +02:00
godisdeadLOL
ebf9f4a38e Fingerprint taking improvements (#31864)
* now using event to check access to fingerprint

* Opps actually commiting the changes

---------

Co-authored-by: YourUsername <you@example.com>
Co-authored-by: beck-thompson <beck314159@hotmail.com>
2025-04-22 14:15:12 -04:00
PJBot
44c8004cfe Automatic changelog update 2025-04-22 12:36:01 +00:00
pathetic meowmeow
907f4b39cd Make funding allocation computer more configurable (#36790)
* Make funding allocation computer more configurable

* admin logging

* unused

* ccvar enabled

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-04-22 08:34:53 -04:00
Tornado Tech
037c760096 fix: codeowners (#1208) 2025-04-22 15:22:16 +03:00
Nim
b70af8848c Modular helmet (#1206)
* modular helmet

* fix

* del Bascinet
2025-04-22 14:12:41 +03:00
Ed
0996413d72 Structure Durability rebalance - Part 1 (#1205)
* walls rebalance pass

* windows and fence fix

* doors rebalance

* doors tweaks

* door construction rebalance

* Update WallWood.yml

* Update WallDirt.yml

* stone wall sfx

* ore rebalance

* Я не удержался и снес половину репы

* fix rsi

* Update windows.yml

* stonebrick constructions

* Update stonebrick.yml

* Update migration.yml

* Delete cargo_shuttle.yml

* Delete wall_marble.yml

* fix

* Update wooden.yml
2025-04-22 13:22:28 +03:00
PJBot
1197d9b038 Automatic changelog update 2025-04-22 06:34:06 +00:00
mubururu_
1e3f73a0e0 dragons can now pry doors (#36811) 2025-04-21 23:32:59 -07:00
PJBot
b64b24ef7f Automatic changelog update 2025-04-22 05:52:27 +00:00
K-Dynamic
43451f82c5 Metal foam grenade rework, small tweaks to grenade timers (#34579) 2025-04-21 22:51:21 -07:00
Spessmann
939a732236 Added more salvage ruins (#36822) 2025-04-21 22:30:20 -07:00
PJBot
2e3371f8ff Automatic changelog update 2025-04-22 03:24:03 +00:00
Michael
1707037964 Tweak Security protection values (#30212)
* Tweak Hardsuits

* HoS/Ward Coats change

* Whoopsie wrong number

god why am i doing this its 1:33 AM and i made a silly mistake...

* Adress Review

Revert Warden hardsuit slowdown to 30% again
Decreased Security hardsuit heat protection down to 20%
2025-04-21 23:22:56 -04:00
Nemanja
fa6c97bf50 Fix vox hair (#36816)
* Fix vox hair

* remove CL
2025-04-21 21:24:37 -04:00
PJBot
38aee7fcfa Automatic changelog update 2025-04-22 01:04:43 +00:00
Ghagliiarghii
5b18f99b8d Fix Animal Versions of Captain Uniform (#36804)
* scienceevasuit

* update money uniforms

* update meta.json files and hamster hats

* revert scienceevasuit

* revert accidental prisoner eva change
2025-04-21 21:03:36 -04:00
Nemanja
907aecb0ae Fix identity grammar (#36817)
Fix identity
2025-04-22 02:26:29 +02:00
PJBot
3e4c28c038 Automatic changelog update 2025-04-21 22:50:49 +00:00
lzk
00cd08231a Fix bots parenting, emotes (#29949)
* Bots overhaul

* fix

* change speech sound to pai

* purge a lot

* i forgor :trollface:

* adjust

* that aswell
2025-04-21 18:49:43 -04:00
PJBot
f2817f39bb Automatic changelog update 2025-04-21 22:40:35 +00:00
ShadowCommander
1bfa303f36 Firelock temperature and pressure warning lights (#28339)
* Add temperature and pressure lights to firelocks

* Replace sprites with new pressure and temperature light versions

* Remove obsolete deny and locked sprites

* Add SpriteSync for warning light animation synchronization

* Teal lights

* Partial animation implementation

* fixup! Teal lights

* Temperature lights

* Adjusted firelock light heights and added final warning light sprites

* Fix colors

* Testing colors

* Update light sprites

* updated sprites

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-21 18:39:28 -04:00
Tayrtahn
17813825da Remove non-functional ninja exemption from SpawnAndDeleteEntityCountTest (#36813)
Remove non-functional ninja exemption from SpawnAndDeleteEntityCountTest
2025-04-21 23:46:07 +02:00
PJBot
1a8d4c9717 Automatic changelog update 2025-04-21 20:16:26 +00:00
lzk
9e39f99a92 Fix some locale strings and make some code for them looks better (#32003)
* Fix a lot locale strings

add functions using
fix identity for meat spike and creaming

* comma

* fixes for fixes

* yeah

* fuck
2025-04-21 22:15:20 +02:00
J
ded94ebc3d Various sharedsystem spring cleaning (#36200)
* Various shared system warnings cleanup

* More shared system warnings cleanup

* Rearranging changes

* Using correct transform for unbuckle

* Small changes

* Revert buckle change

* Update Content.Shared/Ghost/SharedGhostSystem.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-21 20:40:31 +02:00
Verm
dd308c6d2d Makes EventRole Ids properly set ID names. (#28958)
* Add id binding system

* Change so it activates when added too

* Add to eventhumanoid

* Add PDA binding, try to fix some things

* Still not fixed, PDA is working right

* Move to server, add on mind instead

* Implement suggestions

* Fix things

* Finish review stuff

* Messed up cluwne

* Remove after only changing id too

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-21 14:25:22 -04:00
PJBot
e8ee73dd33 Automatic changelog update 2025-04-21 17:55:57 +00:00
ScarKy0
13e546a0a6 Station AI Name Identifier (#36801)
init
2025-04-21 19:54:51 +02:00
PJBot
44133075e4 Automatic changelog update 2025-04-21 17:47:40 +00:00
T
cc80f8d782 Added a semi-functional genderfluid pin. (#35854)
* Added a semi-function GenderfluidPin

* Update pins.yml

fix bug

* Fix meta.json under the newly merged "fix as you go" policy

* Update pin description

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-21 13:46:33 -04:00
PJBot
6f27a9ec74 Automatic changelog update 2025-04-21 17:25:35 +00:00
Ed
68f1bc408f Update Dev.toml 2025-04-21 20:24:48 +03:00
K-Dynamic
b3725ef855 Increase thief to player ratio (#36531)
* reduce max number of traitors, increase thief to player ratio

* revert traitor max back to 8
2025-04-21 19:24:28 +02:00
PJBot
22dcd52bf3 Automatic changelog update 2025-04-21 17:17:31 +00:00
Hrosts
ae8b5c6097 Add rehydratable mop bucket cube, refactor the rehydratable yml (#34586)
* Refactor rehydratable items

* Finish main refactor

* Add mop bucket cube

* Move cube sprite and item size to RehydratableAnimalCube

* Fix sprite attribution

* Make it follow the conventions

* Refactor wrapped cube, leave MonkeyCube tag only on the cube and the Syndie Sponge

* Fix DehydratedSpaceCarp inheritance overwriting needed components

* no need for this comment

* remove whitespace

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* indentation

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Restore lost description

* reorder stuff

* line

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-21 13:16:25 -04:00
lzk
15f862a807 fix some datasets (#36806) 2025-04-21 18:59:11 +02:00
PJBot
60c87d1198 Automatic changelog update 2025-04-21 15:51:14 +00:00
Łukasz Lindert
04ea0b5e5a Solution drag and drop now checks if container is closed and drainable (#34683)
drainable fix
2025-04-21 17:50:07 +02:00
PJBot
dfd0745db0 Automatic changelog update 2025-04-21 15:39:29 +00:00
āda
4acb92791a hotplate, kitcken grille bugfixes (#34776)
* commit

* cleanup
2025-04-21 17:38:23 +02:00
TytosB
92a9740081 new salv ruins (#36798) 2025-04-21 07:25:26 -07:00
PJBot
14b9973f1b Automatic changelog update 2025-04-21 12:08:40 +00:00
Phooooooooooooooooooooooooooooooosphate
a83402f382 Add the medical HUDs to medical's loadouts (except chem) (#32847)
Added the medical HUD and eyepatch to the medical (CMO, doctor, paramed and intern) loadout to let them choose between. Also gives the option for the regular glasses.
2025-04-21 14:07:33 +02:00
PJBot
9fd70dd6d4 Automatic changelog update 2025-04-21 10:33:21 +00:00
ScarKy0
467fe23795 Further Allocation Tweaks (#36800)
* init

* fix lockboxes
2025-04-21 12:32:14 +02:00
Thomas
df5e6a2b5c Add RGA/RSI to Credits (#36704)
* Add RGA and RSI to Credits

* Move to thread + add directory field
2025-04-21 12:24:44 +02:00
PJBot
b83cb209fe Automatic changelog update 2025-04-21 09:33:27 +00:00
ScarKy0
2fdfb4b14a Reworked Mail Spawning (#36774)
* init

* stuff
2025-04-21 11:32:18 +02:00
Deserty0
850111f469 Entity 0 fix (#1204)
* fix

* Update scattering_grenades.yml

* Update EntityTest.cs
2025-04-21 12:20:26 +03:00
Nim
5bbf0df340 Bell (#1185)
* bell

* soundCollection

* sound

* bell sound

* bell short

* surrendering
2025-04-21 11:46:58 +03:00
Leon Friedrich
e1c70882ef Fix NRE in GasTileOverlaySystem (#36793) 2025-04-21 15:06:54 +10:00
Spessmann
d792908e56 Add more ruins (#36785) 2025-04-20 19:16:52 -07:00
IProduceWidgets
98511d1b21 Binomial Number Selector for EntityTables (#36783)
* binomial dist

* lol initialize the int tho idiot

* xml docs my forgotten

* ditto
2025-04-21 02:57:20 +02:00
Tayrtahn
d4dfbcc853 Cleanup warnings in SharedPortalSystem (#36747)
* Cleanup warnings in SharedPortalSystem

* Formatting while we're here

* Replace uses of !Any() with Count == 0

* AnyEntitiesIntersecting
2025-04-21 02:32:34 +02:00
PJBot
915f8cca8c Automatic changelog update 2025-04-20 22:28:56 +00:00
āda
f52445ec4e Reorder electronics recipe file, add filter categories (#35713)
* electronics split

* split base recipe and category

* all but machines

* machine shuffle

* reorder

* delete unused recipes

* rename cargo to supply

* git weirdness

* git weirdness 2
2025-04-20 18:27:49 -04:00
dffdff2423
592530593d Remove MK ULTRA ai name (#35726)
* Remove bad AI names

* Fine, I won't try to sneak this in here.
2025-04-20 17:42:49 -04:00
PJBot
40afc6f58a Automatic changelog update 2025-04-20 21:39:36 +00:00
Entvari
dee1db4113 Wizard Headset (#35732)
* wizardcomms

* wizheadset

* Addressed requested changes and axed wizard channel due to redundancy.

* oops overlooked this, dont tell anyone

* another mistake fixed

* removed wiz encryption key due to redundancy

* accidentally left some punctuation in a now unrelated meta.json
2025-04-20 17:38:30 -04:00
PJBot
9ab3bd6792 Automatic changelog update 2025-04-20 21:35:26 +00:00
Jackson Langley
256b6b88fb Require traitors to maroon their objective no matter what (#35825)
* jesus

* okay.

* OOPS

* ok

* ok

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* ok

* Update Resources/Prototypes/Objectives/paradoxClone.yml

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Resources/Prototypes/Objectives/base_objectives.yml

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* m

* ok

* ok

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-20 17:34:19 -04:00
PJBot
1ba2dfa10e Automatic changelog update 2025-04-20 21:28:42 +00:00
uhbg
94b46a9edc The Bartender can now make Eggnog (#34065)
* Preliminary eggnog changes (egg in shaker crashes?)

* Fixed eggnog reagent name and description

* added - to flavor

* deleted a space

* Added eggnog glass sprite

* changed fill levels to match rsi

* Added two more fill levels to eggnog

* Removed fizziness, changed physical description, and fixed rsi

---------

Co-authored-by: uhbg <29674581+uhbg@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-20 17:27:35 -04:00
Princess Cheeseballs
251cfbd8be Puddle Code Slipping Cleanup (#35845)
* Init Commit

* windows yelling at me to update commit

* working commit, need prediciton and more dehardcoding

* Project 0 warnings

* Working Commit (Near Final)

* ryder got confused commit

* I love Merge Conflicts :)

* Working commit, no prediction

* Forgot the yaml changes

* Comments and typos

* Apparently while the reduced launch mult of lube was initialized it was never used so I revered back to default

* Fixed an incorrect divisor

* bit of cleanup

* Prediciton fixed, and puddles now affect all entities

* FORGOT TO RENAME A VERY IMPORTANT VARIABLE OOPS

* Really big I forgor moment

* Even bigger I forgor moment

* four more merge conflicts to fix four more oopsies

* fixed actual divide by zero moment and also im very dumb

* Even bigger I forgor moment

* four more merge conflicts to fix four more oopsies

* fixed actual divide by zero moment and also im very dumb

* Fix all test fails

* code cleanup

* Webedit whitespace

* Code cleaup

* whitespace webedit

* whitespace webedit

* whitespace webedit

* whitespace removal

* Comments and cleanup

* Re-Added 20 warnings as per Ork's request

* Cleanups

* Spacing fix

* bugfixes and cleanup

* Small bugfix

* Actually dirty the slipComp for real

* Added Friction field to Reagent Prototype per design discussion

* Sliding system is kill
2025-04-20 17:27:12 -04:00
PJBot
c2857c5247 Automatic changelog update 2025-04-20 21:18:18 +00:00
Banedon
aeb53a302b Santa hat with a foldable beard (#36510)
* Added foldable component to santa hat

* Modified sprites, modified YAML. YAML is cursed

* Changed santa hat description to mention the beard fold

* Removed HideLayerClothing since it doesnt work

* Changed the prefix from "beard" to "nobeard" to match with the fold/unfold verb

* Credits for sprite changes

---------

Co-authored-by: Lanedon <matth.galvez@gmail>
2025-04-20 17:17:12 -04:00
PJBot
3f2b161277 Automatic changelog update 2025-04-20 21:16:40 +00:00
UBlueberry
1220b8c4c7 Adds beanies to the WinterDrobe! (#32946)
* sprites

* messing with the ymls

* new sprites

* that's a lotta yaml

* make the sprites gooder

* color adjustment

* to the winterdrobe with you

* layering fix
2025-04-20 17:15:34 -04:00
PJBot
1fadb31f47 Automatic changelog update 2025-04-20 21:10:07 +00:00
Booblesnoot42
b7dfd60517 Resprite main altars (#35685)
* resprite main altars

* updated meta.json
2025-04-20 17:09:00 -04:00
PJBot
5fa93d6974 Automatic changelog update 2025-04-20 21:02:56 +00:00
Ed
f6a29e24a2 Markings overhaul (#35938)
* markings displacement setup

* ok i got it!

* fix map updating

* remove trackingLayers

* markings clean up and modernizize

* marking disabling displacements

* markings restriction

* dehihienize

* dehihiniezize 2

* aa

* nice
2025-04-20 17:01:50 -04:00
PJBot
f3a33fefc2 Automatic changelog update 2025-04-20 20:56:49 +00:00
RedBookcase
aea474d4a9 Pirate Gear Tweaks. (#35986)
* Tweaked pirate gear to be in-line with similar items.

* Added attribution for flashlight sprites, made hardsuits Major Contraband

* Added empty versions of the pirate revolver and flintlock.

* Test fail fix hopefully?

* Test fail fix hopefully V2.0

* Test fail fix hopefully V3.0

* Test fail fix hopefully V4.0

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-04-20 16:55:42 -04:00
Prole
58fb282023 The Beverage Jug Can Now Look Open (#36070)
* GenJug-Changes

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Guh

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Support For the Rest

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* New Sprites

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Newest Sprites

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

---------

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>
2025-04-20 16:36:22 -04:00
lzk
63350853f0 change MV cable outline (#36751)
* change MV cable outline

* zamn
2025-04-20 16:30:37 -04:00
YoungThug
d8ea0a39fe Wizard Figure Voiceline Fix #36771 (#36779)
DA WIZARDgit add -A
2025-04-20 16:30:04 -04:00
Tayrtahn
bd40cb9fa5 Restore LimitedChargesComponent.MaxCharges default value to 3 (#36778) 2025-04-20 12:20:57 -07:00
PJBot
314ced1bf9 Automatic changelog update 2025-04-20 19:09:47 +00:00
Tayrtahn
ca33d6bb70 Add marker components for admin shenanigans (#36776) 2025-04-20 21:08:41 +02:00
Tayrtahn
1bad0980ee Use non-generic TryComp in StationSpawningSystem (#36769)
Use non-generic TryComp in StationSpawningSystem
2025-04-21 01:00:33 +10:00
Ed
74cafc7584 Merge branch 'master' of https://github.com/crystallpunk-14/crystall-punk-14 2025-04-20 17:38:51 +03:00
Ed
3affdaf167 Update Dev.toml 2025-04-20 17:38:32 +03:00
Ed
cd0fcb8b47 Global Fence update (#1186)
* small wooden fence new

* birch and stonebrick fences

* big wooden fence

* birch big

* iron fence

* iron fence gate

* fence iron window

* fix

* fix
2025-04-20 17:37:56 +03:00
PJBot
ae41b6547e Automatic changelog update 2025-04-20 14:09:09 +00:00
K-Dynamic
d11a10d5ea Nonlethal throwables crate (#35808) 2025-04-20 07:08:02 -07:00
PJBot
17cdb4393f Automatic changelog update 2025-04-20 14:07:21 +00:00
Hyper B
cd6130ce22 Fire protection for ERT engineering hardsuit (#34949) 2025-04-20 07:06:14 -07:00
Kyle Tyo
a711912cba Unused dependency cleanup. (#36760)
* take 2! fight!!!

* final touches

* reeeeeee
2025-04-20 15:56:39 +02:00
PJBot
0d0ac82484 Automatic changelog update 2025-04-20 13:56:30 +00:00
ScarKy0
2d94045995 Decrease amount of mail, increase profits (#36767)
init
2025-04-20 15:55:23 +02:00
Ed
25fd73fec9 Update DiscordAuthManager.cs 2025-04-20 16:41:55 +03:00
Kyle Tyo
f77f000b93 Replace GetEntitiesInTile with EntityLookupSystem equivalent (#36756)
* commit GET!!

* minor cleanup
2025-04-20 22:57:53 +10:00
PJBot
d35c9ac17c Automatic changelog update 2025-04-20 12:20:18 +00:00
Hyper B
09f3d7f5eb Departmental shelves whitelist expansion (Attempt №3) (#34292)
* Expand-Shelves-Whitelist

Made departmental shelves hold a wider variety of items.

* Accidentally included "Packet" twice
2025-04-20 14:19:11 +02:00
PJBot
006f1aea3b Automatic changelog update 2025-04-20 12:04:52 +00:00
TakoDragon
056b25d01a Salvage Airlock (#36375)
* Salvage

* atmos a

* more muted colours

* Mapping Related to AI

* Fixed small naming inconsistency

* Revert "Fixed small naming inconsistency"

This reverts commit 985e1fd46a09e521c11dc345f470228e7907fbb9.

* Revert "Mapping Related to AI"

This reverts commit 5d5ae4feb819396c5c2a7413399ab5ce34f8683b.

* Revert "atmos a"

This reverts commit 529831e2584df27fa102ee1c970948fa3b6bab56.

* indent

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-20 14:03:46 +02:00
Pgriha
097aff5e58 Heterochromia for Moth (#36061)
* 1

* Fix local

* formatting

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-20 14:03:37 +02:00
PJBot
2bd3f6ce20 Automatic changelog update 2025-04-20 12:02:14 +00:00
Alice4267
a8b954fb0c Fix glass duplication with beakers (#34441)
Update chemistry.yml

Fixing glass dupe.
2025-04-20 14:01:08 +02:00
PJBot
c063f98f22 Automatic changelog update 2025-04-20 11:54:49 +00:00
PJBot
3f8e3f70b0 Automatic changelog update 2025-04-20 11:53:43 +00:00
RedBookcase
05d79667bb Makes more items recyclable. (#35800)
* Makes more items recyclable.

* Added newlines

* Fixed material issues which were NOT MY FAULT

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-04-20 13:53:37 +02:00
PJBot
6622dcafb5 Automatic changelog update 2025-04-20 11:52:37 +00:00
Pgriha
8be4abc3fc Fix head markings under some helmets (#36074)
* 1

* 2
2025-04-20 13:52:31 +02:00
Nox
f4e7601dc9 Descriptions for .35 auto (#36085)
* Initial commit.

* added SMG descriptions

* Update Resources/Prototypes/Entities/Objects/Weapons/Guns/SMGs/smgs.yml

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Updated descriptions to incorporate Roomba's feedback.

* Slightly changed Viper description

* Minor formatting change

* Updated Atreides description

* Fixed a minor convention mistake in magazines

* Slightly changed the Viper's description to not reveal its manufacturer.

* Updated Drozd description.

* Rerun test

* Updated descriptions in accordance with Roomba's suggestions!

* Updated Viper description!

* Shit I forgot to remove the cartridge length, did it now!

* More smart changes by Roomba

* Tests gaslighting me

* Update Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Updated WT550 description

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-20 13:51:27 +02:00
Nox
9d4c97701d Fix some SMG magazines fitting 35 rounds (#34782)
All SMG magazines are now 30 round, rather than half being 35 round.
2025-04-20 13:33:31 +02:00
PJBot
d46c54bde0 Automatic changelog update 2025-04-20 09:33:09 +00:00
Helm
edc57cab16 Fix soup (#34633)
Co-authored-by: Helm4142 <Helm4142@users.noreply.github.com>
2025-04-20 11:32:02 +02:00
Spessmann
1c3bdd5ba5 Small ruin fixes (#36763) 2025-04-20 01:54:01 -07:00
PJBot
79a76e418c Automatic changelog update 2025-04-20 07:01:40 +00:00
Cass
39bf2469ad Plurality pin addition (now not on master branch) (#36744) 2025-04-20 00:00:33 -07:00
PJBot
0768f1f33f Automatic changelog update 2025-04-20 06:02:34 +00:00
ArtisticRoomba
8d8398e60d kill filing cabinet heisentests (#36757) 2025-04-20 02:01:28 -04:00
PJBot
99364dc4de Automatic changelog update 2025-04-20 05:59:48 +00:00
chromiumboy
6bebde9959 Bugfix to sync emergency broadcast cooldowns on holopad UIs (#34115)
* Initial commit

* Bug fix

* Included check for gaining power

* Addressed reviews
2025-04-20 15:58:41 +10:00
PJBot
d5252d9808 Automatic changelog update 2025-04-20 05:58:08 +00:00
Alzore
d7c244293c Aquatic tail and back fin markings for lizards (#33219)
* shark tail and back fin for lizards

* credit me
2025-04-20 15:57:01 +10:00
TytosB
394c0c5414 loop lairlock lattice fix (#36758)
* sinful

* funeralofdeadbutterflies

* butterfly

* lattice fix
2025-04-19 23:51:13 -06:00
TytosB
5ad02a0844 New salv ruin- butterfly funeral (#36755) 2025-04-19 22:22:04 -07:00
TytosB
739917641d Salvage ruins- the deadly sins (#36754) 2025-04-19 21:32:19 -07:00
Spessmann
1aa397bcd6 Add More Ruins (#36752) 2025-04-19 21:27:20 -07:00
Tayrtahn
31cf0505c9 Convert NameIdentifier to use NameModifierSystem (#36736)
Convert NameIdentifier to use NameModifierSystem
2025-04-20 14:16:59 +10:00
Kyle Tyo
2c54ec10c6 replace obsolete IsGrid calls with HasComp<MapGridComponent> (#36729)
* replace obsolete IsGrid calls with HasComp<MapGridComponent>

* remove IMapManager dependency

* well would you look at that

* just look at it
2025-04-20 14:14:58 +10:00
Emisse
a6d2b1f0b8 Terrarium ruin (#36739) 2025-04-19 21:03:34 -06:00
PJBot
89d0eb140e Automatic changelog update 2025-04-20 02:42:30 +00:00
ArtisticRoomba
44925b9be7 Fix spray nozzle not cleaning reagents properly (#35950)
* init, god help us all

* further refining

* final round of bugfixes

* whoopsies

* To file scoped namespace

* first review

* oopsie

* oopsie woopsie

* pie is on my face

* persistence

* datafieldn't

* make PreviousTileRef nullable

* change component to file scoped namespace

* Minor tweaks:

- We clamp the reaction amount to a minimum value because when working with percentages and dividing, we approach numbers like 0.01 and never actually properly delete the entity (because we check for zero). This allows us to react with a minimum amount and cleans things up nicely.
- Minor clarification to comments.
- Rebalancing of the spray nozzle projectile.

* the scug lies!!!!

* undo file scoped namespace in system

* kid named warning

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2025-04-19 22:41:24 -04:00
shibe
a90c16b8d1 Add one word to the dragon summon announcement (#36749)
terror!!!!
2025-04-20 12:26:10 +10:00
Nemanja
07e21c6516 Fix artifact spawns parenting to players (#36745) 2025-04-20 11:00:49 +10:00
Nemanja
f04f19a7aa Fix ore silo clients showing up when out of range (#36741) 2025-04-20 11:00:23 +10:00
github-actions[bot]
5b3a72e9b5 Update Credits (#36748)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-04-19 20:41:15 -04:00
PJBot
642e3a6042 Automatic changelog update 2025-04-20 00:18:47 +00:00
SeamLesss
511467f94a Scarf Resprite (#35446)
* guh???

* Merge branch 'master' of https://github.com/SeamLesss/space-station-14

* all of em

* better scarfs
2025-04-19 20:17:38 -04:00
TytosB
10ca6cb179 fixgridatmos 2025-04-19 16:19:08 -05:00
Velcroboy
a327a59cb2 Smuggler follow up (#36456)
* Fix Overfilling satchels

* Add notes

* Clearer

* remove line :/

* Reduce by 1 cigars/booze

* fix typo

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-04-19 23:07:49 +02:00
TytosB
e561836a03 terrarium 2025-04-19 15:42:59 -05:00
PJBot
aed81bf82e Automatic changelog update 2025-04-19 20:35:01 +00:00
ScarKy0
20841d402f Give salvage borgs a tool module. (#33336)
Init
2025-04-19 16:33:54 -04:00
PJBot
74f68fa634 Automatic changelog update 2025-04-19 20:33:24 +00:00
MilenVolf
6f475741b2 [#30096 Fix] Dumping a RefillableSolution into a DumpableSolution now requires CanComplexInteract (#33350)
* dumping containers now require having at least one hand

* Cleanup

* Better

* Apply suggested changes

* Cleanup

---------

Co-authored-by: Luiz Costa <luiz@mavromati.com>
2025-04-19 16:32:17 -04:00
PJBot
cb5a0fbbb3 Automatic changelog update 2025-04-19 20:21:41 +00:00
c4llv07e
52323a8972 Better PowerCharge menu wrapping (retry) (#34036)
* fixed

* Move wattage to the power button

---------

Co-authored-by: VideoKompany <135313844+VlaDOS1408@users.noreply.github.com>
2025-04-19 16:20:32 -04:00
Emisse
83db0689d6 Plasma ore silos and department eco (#36715) 2025-04-19 12:56:46 -06:00
Emisse
c9c94bb407 Elkridge - Silo (#36716) 2025-04-19 12:56:21 -06:00
Emisse
54242c6982 Fland Silo (#36724) 2025-04-19 12:56:11 -06:00
Emisse
313e48f911 Packed Silo (#36722) 2025-04-19 12:31:39 -06:00
Emisse
e93bfff6b0 Omega Silo (#36718) 2025-04-19 12:31:28 -06:00
Emisse
492ff9dbd7 Oasis Silo (#36720) 2025-04-19 12:31:12 -06:00
Emisse
85c6ef0fef Convex Silo (#36734) 2025-04-19 12:21:39 -06:00
Emisse
a94404b06b Loop Silo (#36733) 2025-04-19 12:21:28 -06:00
Emisse
30174276e5 Marathon Silo (#36732) 2025-04-19 12:21:15 -06:00
Emisse
03cabf91f6 Box Silo (#36723) 2025-04-19 12:21:01 -06:00
Emisse
8028c304ba Bagel Silo (#36721) 2025-04-19 12:19:05 -06:00
ScarKy0
66b65314d0 Fix silo rotation (#36737)
Update silo.yml
2025-04-19 14:00:31 -04:00
ScarKy0
e168f2007b init 2025-04-19 19:28:25 +02:00
ScarKy0
de8deaf6ad init 2025-04-19 19:18:22 +02:00
ScarKy0
efafd4f98d init 2025-04-19 19:11:17 +02:00
slarticodefast
51e2607a12 cleanup RingerSystem (#36731)
cleanup ringersystem
2025-04-19 19:11:08 +02:00
PJBot
f3429615a6 Automatic changelog update 2025-04-19 17:08:30 +00:00
Fildrance
b36169c58f fixing spessman getting teleported inside artifact (#36719)
* fixing spessman getting teleported inside artifact

* refactor: move XAEPortal comp to server

* refactor: replace Spawn and coord logic with with TrySpawnNextTo

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-04-19 13:07:23 -04:00
Kyle Tyo
8dc2cb8874 Minor dependency and variable cleanup. (#36730)
removal of misc unused or extra dependency definitions.
2025-04-19 18:11:34 +02:00
PJBot
1daac6d86b Automatic changelog update 2025-04-19 15:32:44 +00:00
Minemoder5000
5097ae5e6f Rebalance and reduce playtime requirements for most roles. (#36666) 2025-04-19 11:31:38 -04:00
PJBot
d866d61b56 Automatic changelog update 2025-04-19 14:42:41 +00:00
Ps3Moira
d984259db6 Removed Interior Shuttle Walls (#34261)
* Removed Interior Shuttle Walls

* Update migration.yml

* Update walls.yml

* Update girder.yml

* Fix Migration

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-19 10:41:35 -04:00
pathetic meowmeow
8e24308714 Make two inventories not dance around as much when opening/closing them (#35041)
* Make two inventories not dance around as much when opening/closing them

* Use .Any
2025-04-19 10:40:49 -04:00
PJBot
c813891342 Automatic changelog update 2025-04-19 14:38:51 +00:00
metalgearsloth
39aefa0441 Fix detailed examine mispredicts (#33814)
So:
- Shared examine like armour, adds the button incorrectly and mispredicts it.
- Server-only like damage, doesn't add it (correct) and no mispredict.

We'll just prune any verbs if the server sends them in unless the verb is client-only and it should fix it unless there's client-side code not flagging it as clientexclusive.
2025-04-19 10:37:45 -04:00
PJBot
63eb99d57c Automatic changelog update 2025-04-19 14:30:43 +00:00
claustro305
2201eae899 Removed collision from wall mounted lights and security cameras (#35908)
* Removed collision from wall mounted lights and security cameras

* Updated because I'm dumb and didn't realise the collision groups were case sensitive
2025-04-19 16:29:36 +02:00
Winkarst
8982956a6b Cleanup: Superbonk cleanup (#35104)
* SuperBonk cleanup

* Update

* Comment changes

* Update

* Changes

* EnsureComp
2025-04-19 10:26:56 -04:00
PJBot
3075d55506 Automatic changelog update 2025-04-19 14:26:15 +00:00
GrownSamoyedDog
36999e5a06 Gave Bartender Pineapple Juice Cartons (#34769)
pineapple juice core pina colada maxxed
2025-04-19 10:25:09 -04:00
Ed
f787bb5ea4 Ice bow artifact (#1200)
* pvs

* fix tradepost

* ice bow artifact
2025-04-19 17:24:57 +03:00
creamybag
000a064140 Modular Palette (#1199) 2025-04-19 17:22:58 +03:00
PJBot
de7a34a18c Automatic changelog update 2025-04-19 14:13:01 +00:00
ArtisticRoomba
d9e9afed1e DetGadget hat fixes (#35658)
* """Refactors""" extraction code, fixes bug with labeled items

* second line of fixes

* Enhance label handling and add label retrieval method (its more preformant I swear)

* Cleanup

---------

Co-authored-by: beck-thompson <beck314159@hotmail.com>
2025-04-19 16:11:55 +02:00
Southbridge
aa5d344a57 ERT Janitor Weapon - Hydra (#34416)
* checkpointing work

* Got this fully working and all sprites done

* Exchanged my sprites with the ones made by AugustSun

* Changed the name to Hydra Launcher, and adjusted it to function like a revolver instead.

* Modified the hydra to be a revolver

* fixed container issue

* Swapped in even newer sprites

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-19 16:03:05 +02:00
Milon
6138fcdce9 Predict and cleanup RingerComponent (#35907)
* clean up most stuff

* move to shared

* works

* shuffle shit around

* oops! access

* fixes

* todo: everything

* SUFFERING

* curse you
2025-04-19 15:55:05 +02:00
PJBot
e214eb7a28 Automatic changelog update 2025-04-19 13:44:12 +00:00
Benjamin Velliquette
bd79d09939 Fix Long Produce Time After De-aging A Plant with cryoxadone. (#34668)
Update LastProduce when deaging plant from cryoxadone
2025-04-19 09:43:05 -04:00
Ed
b8ee816b4b Update CP14EdSystem.cs 2025-04-19 16:40:37 +03:00
Zokkie
35fc2013e3 Flippo Engraved Lighter is now in detective locker (#35165)
Makes the Flipp Engraved Lighter from the detective less obscure to find.
2025-04-19 15:28:30 +02:00
PJBot
f815825d1e Automatic changelog update 2025-04-19 13:11:49 +00:00
Boaz1111
b435d0f2e6 Reduces handheld security radios range for picking people's messages up. (#34878)
weh
2025-04-19 15:10:43 +02:00
Ed
026a17be57 Raids (#1198)
* simpliest undead raid

* map fix

* Comoss big update

* fix raids

* Update demiplane_rifts.yml

* fix

* Update mobs.yml
2025-04-19 15:47:06 +03:00
Kyle Tyo
e9b49b00ef Fix a minor warning in BatterySystem.cs (#36726)
change timing from protected to private, rename, and adjust references.
2025-04-19 14:37:10 +02:00
Leon Friedrich
49da5c540b Try fix RestartTest (#36725) 2025-04-19 22:17:03 +10:00
ScarKy0
5c1cee58ba init 2025-04-19 13:30:30 +02:00
ScarKy0
92106c52b6 init 2025-04-19 13:21:07 +02:00
ScarKy0
25a73ce3eb init 2025-04-19 13:13:05 +02:00
ScarKy0
9bdba76f67 init 2025-04-19 12:48:50 +02:00
ScarKy0
d48948aae9 init 2025-04-19 12:17:09 +02:00
ScarKy0
61c3f944f0 init 2025-04-19 12:07:50 +02:00
Ed
c1e5ee6f82 Update Dev.toml 2025-04-19 11:57:14 +03:00
Ed
7802a61b4c fix lang problem 2025-04-19 11:56:38 +03:00
Deerstop
b09c3f1e56 added silo, moved service request console 2025-04-19 18:54:29 +10:00
jbox1
919425911e Ore silos and department eco 2025-04-19 18:51:53 +10:00
PJBot
c45f291425 Automatic changelog update 2025-04-19 08:50:09 +00:00
metalgearsloth
bffd951867 Fix charges (#36714)
We have the absolute value so use that.
2025-04-19 18:49:02 +10:00
Ed
a87364541e Update Dev.toml 2025-04-19 11:47:32 +03:00
metalgearsloth
9bdd7307fd Predicted multihanded component (#36712)
* Predicted multihanded component

* Refview

* reh
2025-04-19 18:05:20 +10:00
metalgearsloth
64cd180556 Update submodule to 254.1.0 (#36711)
* Update submodule to 254.1.0

* API update
2025-04-19 17:29:32 +10:00
PJBot
694190f2a4 Automatic changelog update 2025-04-19 06:52:19 +00:00
metalgearsloth
4682149e74 Predict virtual hands and co (#36617)
These are the easy ones anything else gets slightly spicier.
2025-04-19 16:51:12 +10:00
metalgearsloth
63dfd21b14 Predict dumping (#32394)
* Predict dumping

- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.

* Fix a bunch of stuff

* nasty merge

* Some reviews

* Some more reviews while I stash

* Fix merge

* Fix merge

* Half of review

* Review

* re(h)f

* lizards

* feexes

* feex
2025-04-19 16:20:40 +10:00
PJBot
f1f431e720 Automatic changelog update 2025-04-19 05:15:57 +00:00
Ko4ergaPunk
34cc49c175 Add new color turtlenecks in WinterDrobe (#32920) 2025-04-18 22:14:50 -07:00
PJBot
5fad0e0745 Automatic changelog update 2025-04-19 05:13:17 +00:00
SharkSnake98
9599f582f3 New Drinks (#36287)
Co-authored-by: RedBookcase <crazykid1590@gmail.com>
Co-authored-by: SharkSnake98 <sharksnake87@gmail.com>
2025-04-18 22:12:10 -07:00
metalgearsloth
be8fa724a7 Fix import (#36706) 2025-04-19 12:31:21 +10:00
SlamBamActionman
b6e101b96f Prevent certain foldable items from being unfolded on structures (#36687)
initial commit
2025-04-19 12:17:13 +10:00
PJBot
4d25907ba4 Automatic changelog update 2025-04-19 01:49:48 +00:00
metalgearsloth
72372dc77d Predict gas volume pumps (#33835)
* Predict gas volume pumps

* Also this one

* Review
2025-04-19 11:48:41 +10:00
PJBot
84fe396480 Automatic changelog update 2025-04-19 01:39:28 +00:00
metalgearsloth
8ab0e59db6 Refactor disarms (#36546)
* Refactor disarms

- Move client stuff to shared
- Cleanup a bunch of stuff
- Ref events
- Fix the swing sound mispredict (I noticed it on target dummies).

* Revert this change

* minor review

* Rebiew

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-19 11:38:22 +10:00
PJBot
1dbc40f051 Automatic changelog update 2025-04-19 01:25:04 +00:00
Coolsurf6
369eef146f Fixed Attachbodypart Console Command (#34577)
* remade command for attachbodypart

* fixed up WriteError
2025-04-19 11:23:58 +10:00
PJBot
b034a1053f Automatic changelog update 2025-04-19 01:03:47 +00:00
SlamBamActionman
a44baec417 Fix forensics not being applied to held items (#30609)
* Initial commit

* Fix merge changes

* sloth comment: bitmask

* fix MIA parameter

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-18 21:02:41 -04:00
PJBot
00c4833c9a Automatic changelog update 2025-04-19 00:58:23 +00:00
Booblesnoot42
9317bbf653 Fix Airlock Crushing Animation (#34523)
fixed issue
2025-04-18 20:57:17 -04:00
PJBot
46b13897ab Automatic changelog update 2025-04-19 00:39:40 +00:00
IProduceWidgets
d69738a9f4 Fix two zombie bugs (#34472)
* fix two zombie bugs

* add comment
2025-04-18 20:38:33 -04:00
Preston Smith
cfda91e0f0 Correct mobster suffix (#33240)
Correct mob grammar
2025-04-18 20:33:14 -04:00
PJBot
f23851a30d Automatic changelog update 2025-04-19 00:27:30 +00:00
August Sun
d0c2a64436 Resprited the Chief Engineer's mantle/manica (#36697)
* Swapped sprites, updated JSON and name/description of item

* Change RSI meta.json spacing

---------

Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-19 02:26:23 +02:00
PJBot
7b78feb308 Automatic changelog update 2025-04-19 00:25:36 +00:00
ScarKy0
d569c3b73c Make artifact module actually useful. (#33338)
Init
2025-04-18 20:25:29 -04:00
Alpaccalypse
07c1a6fd45 Change 'Irish slammer' to 'Grenade Penguin' (#34181)
* Changed irish slammer to grenade penguin.

* changed DrinkGlass suffix to grenade penguin

* Fixed typo

* Added penguin squawk to reaction

* Added comment as ID differs from localisation

* Minor, post merge fix
2025-04-18 20:24:26 -04:00
Aaron
56feab4e0b Add PreventFTLComponent and changed FTL check (#34077)
* Add PreventFTLComponent and changed FTL check

* Remove component body.

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-18 20:14:44 -04:00
Jajsha
a6741e42c1 Un-Hardcode water evaporation & mopping behavior (#33399)
* Un-harcode slipperiness

* Make it actually work

* Prettyfy

* Cleanup GetEvaporatingReagents

* Fix mopping with space lube + wrong solutions in absorbance

* Remove LINQ and rename parameters

* Change evaporation speed to fixedpoint2

* Add evaporating speed functionality

* Remove unused imports

* Swap around reagent evaporation speed and puddle evaporation speed.

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2025-04-18 20:11:28 -04:00
PJBot
181bb27797 Automatic changelog update 2025-04-19 00:05:50 +00:00
OneZerooo0
37f16c3abd Modular Grenades now fit in security belts/carriers (#34169)
* Added PayloadCase component to secbelt whitelist

* Replaced PayloadCase type whitelist with a tag

* fucking hell

* Add HandGrenade tag to all grenades
Grenades are so unbelievably cooked right now. I've counted about 4 separate baseitems that they inherit from whenever they feel like it. Why? They're all the same.

---------

Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-18 17:04:44 -07:00
PJBot
297a9a8762 Automatic changelog update 2025-04-18 23:44:24 +00:00
Nemanja
f8ff7aee92 Local Material Silo (#36492)
* Material Silo

* fix board, fix copyright

* a bit of review.... for the vibe....

* a tiny bit of review

* 4 spaced

* sloths no good very tiny nitpick

* fix ui flickers

* oops

* slightly lower range

* Sloth Review

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-04-19 09:43:17 +10:00
PJBot
667bda28df Automatic changelog update 2025-04-18 23:36:05 +00:00
ScarKy0
3957bbb97d Updated air scrubber and air vent sprites. (#34223)
* vents

* slower animation

* formatting fix

* scrubber
2025-04-18 19:34:59 -04:00
PJBot
4547da9660 Automatic changelog update 2025-04-18 23:27:51 +00:00
Skye
5a1dd9de42 Fix Speedloader Partial Reload (#32396) 2025-04-18 19:26:44 -04:00
PJBot
280a21733e Automatic changelog update 2025-04-18 23:20:11 +00:00
YoungThug
44b8b3e5ce New Speech Indicators for species that don't have any. (#36126)
* DionaAndGingerbread

* DionaSpeechTweaks

* FixGingerbread

* IfYourReadingThisYouMatter
2025-04-19 09:19:04 +10:00
PJBot
646baebea9 Automatic changelog update 2025-04-18 22:53:16 +00:00
lzk
b96fa3dcfa Fix space wind layer removal (#33888)
* Fix space wind layer removal

* apply review

* Update MovedByPressureComponent.cs

* remove this
2025-04-19 00:52:09 +02:00
PJBot
fbf7dd9fba Automatic changelog update 2025-04-18 22:46:29 +00:00
Ilya246
615584e7e4 extend hotbar hotkeys to 20 keys via shift (#33872)
shift+ keys in hotbar
2025-04-18 18:45:20 -04:00
Milon
3fc9bcbbbe remove Session from MindComponent (#34753)
* yummy

* fix tests
2025-04-19 00:23:01 +02:00
Nemanja
ba6d8f5376 Cargo Funds Exception (#36694) 2025-04-19 08:21:01 +10:00
deltanedas
14d9a35116 ciggie sounds (#32426)
* add sounds

* change _active to BurningComponent

* play sound when lighting and snuffing a cigar

* network it

* mono

* attribution

* doc

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2025-04-19 00:01:52 +02:00
Minemoder5000
dd35318a87 Fix slime hand gradient not showing on the opposite side of the body (#36543)
fix gradient color not showing on other side of body
2025-04-18 17:41:30 -04:00
Tayrtahn
69f8fe393f Remove redundant admin flag check in AdminVerbSystem.Tools (#36122)
* Remove redundant admin flag check

* Formatting
2025-04-18 22:06:27 +02:00
PJBot
9a05bf138d Automatic changelog update 2025-04-18 19:58:03 +00:00
Nox
5285eac443 Agent -> Corpsman (#34627) 2025-04-18 12:56:57 -07:00
PJBot
862a704ab0 Automatic changelog update 2025-04-18 19:53:18 +00:00
āda
dbf1363195 Increase base amount of egg in egg-plant (#36693) 2025-04-18 12:52:12 -07:00
Ed
b437be5cf8 Random bullfix go! (#1197)
* some fixes for AI pathfinding

* cobblestone tile

* stonebrick update

* fix #1194

* fix #1193

* Update stonebricks_square_carved.png
2025-04-18 22:47:17 +03:00
PJBot
4c7ad68866 Automatic changelog update 2025-04-18 17:39:03 +00:00
IProduceWidgets
f833c5675a Update filing cabinet inventories (#36185)
* Entity tables, more folders, 1984 whitelist.

* add easter eggs

* oops typo

* undent

* adjust ranges

* absolute instead of relative prob

* woops forgot to 1984 a selector
2025-04-18 19:37:56 +02:00
PJBot
e796b83341 Automatic changelog update 2025-04-18 17:13:44 +00:00
Centronias
98f9149883 Add inhand sprites for the drink shaker (#36382)
* Add inhand sprites for the drink shaker

* Update Resources/Textures/Objects/Consumable/Drinks/shaker.rsi/meta.json

oop that's not actually their discord name

* Co-Authored-By: Failed <158702813+failed5@users.noreply.github.com>
2025-04-18 10:12:37 -07:00
YoungThug
370a3a7fa3 Grammar Consistency In All Instances of 'S (#36422)
* Bacchusdlajsnwajdoks

* FSP CHANGE
2025-04-18 10:05:11 -07:00
PJBot
5d3ea9d1b5 Automatic changelog update 2025-04-18 16:43:57 +00:00
K-Dynamic
4585a17744 Remove egg-plant from MegaSeed Servitor (#36579)
remove eggy
2025-04-18 09:42:50 -07:00
Tayrtahn
c155740ac5 Cleanup warnings in SimpleRadialMenu (#36690) 2025-04-18 18:28:24 +02:00
PJBot
45fdf5cf4d Automatic changelog update 2025-04-18 16:11:19 +00:00
IProduceWidgets
73f3016758 sec holobarrier charge increase (#34473)
more charges
2025-04-18 18:10:12 +02:00
Viator-MV
a57f613d91 all in 1 (#1192) 2025-04-18 18:00:21 +03:00
J
a89af44f56 Weapons warnings cleanup (#36164)
* Weapons warnings cleanup

* Changes to audio on Reflection stuff
2025-04-19 00:28:40 +10:00
PJBot
d068075c81 Automatic changelog update 2025-04-18 14:13:32 +00:00
Minemoder5000
bfba10b96e Disable point light on rainbow weed (#36479)
* botanists can no longer destroy the lighting engine

* unshaded

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-19 00:12:26 +10:00
ScarKy0
3f9895cb38 Slightly tweak base funding allocations. (#36688)
init
2025-04-18 23:37:58 +10:00
metalgearsloth
e838667d87 Predict blocking examine + fix blocking breaking persistence (#36619)
* Predict blocking examine

No idea why this was blocked.

* Fix blocking

* remove nullcheck that made no sense

* predict popups

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-18 14:57:23 +02:00
PJBot
f2232e2ffb Automatic changelog update 2025-04-18 12:27:55 +00:00
slarticodefast
a9720f2149 Fix powered lights electrocuting you despite having insulated gloves V2 (#36686)
fix light insulation
2025-04-18 22:26:47 +10:00
PJBot
f017b7dbaf Automatic changelog update 2025-04-18 12:25:45 +00:00
Errant
80ec149955 setgamepreset command rework (take two) (#30812)
* gameticker.gamepreset namespace

* setgamepreset now has a finite duration

* comments, cleanup
2025-04-18 22:24:39 +10:00
PJBot
c30728a1f1 Automatic changelog update 2025-04-18 12:10:56 +00:00
Tayrtahn
14cdb0adf7 Improve messages for pointing at items in inventories (#36252)
* Show different messages for pointing at items in someone's inventory

* Improve search for inventory (requires engine PR)

* Add comments explaining each GetString

* Better loc ids

* Add comment about using innermost inventory

* Swap conditions for named variables

* Remove POSS-NOUN uses

* Add missing THE
2025-04-18 08:09:49 -04:00
Gagarinten-Noverdo
e1326c00b1 sharpness reduce on throw hit (#1164)
* sharpness reduce on throw hit

* kill me please, submod update

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-04-18 13:51:15 +03:00
metalgearsloth
259ac00c29 Update submodule to 254.0.0 (#36681) 2025-04-18 19:30:50 +10:00
Leon Friedrich
e4f3d19094 Make MappingDataNode use string keys (#36111)
* MappingDataNode string keys

* a

* poke
2025-04-18 19:28:22 +10:00
metalgearsloth
644cce2b9f Revert "Fix auto-updates of RobustToolbox on Windows" (#36671)
Revert "Fix auto-updates of RobustToolbox on Windows (#33323)"

This reverts commit b1c1cb96b5.
2025-04-18 10:45:56 +02:00
osjarw
cca5a88be4 Make HTN constantly replanning optional (#33023)
Make constant replanning optional
And apply it to our most expensive NPCs
2025-04-18 18:16:26 +10:00
PJBot
90359e407c Automatic changelog update 2025-04-18 07:45:35 +00:00
IProduceWidgets
42cb3ccb5b StationEvent Toolshed Command fixes. (#32200)
* toolshed makes me want to take a long walk off a short pier.

* fuck it everything is in seconds.

* catch rounding error

* reviews

* lsprobtheoretical to mins

* Git please.

* Git Please.

* GIT PLEASE.

* unchange file

* take2

* empty line?

* new new lines?

* idk 1000 commits I guess

* spacius maximus
2025-04-18 17:44:29 +10:00
PJBot
8d1cd9a3aa Automatic changelog update 2025-04-18 07:44:06 +00:00
metalgearsloth
812e9c24b2 Revert this cl (#36675)
I forgor the procedure but if doesn't work i'm gonna be mad.
2025-04-18 17:43:12 +10:00
Ciarán Walsh
ab1bcfe391 Implement client-side theming for OutputPanel scroll-down button. (#35913)
* Implement client-side theming for OutputPanel scroll-down button.

* Use OutputPanel constant for button class name

* Remove unused string

* Enable scroll button for ChatBox

* Update RobustToolbox

* Update to merged RT version
2025-04-18 17:42:59 +10:00
PJBot
f7d925d972 Automatic changelog update 2025-04-18 04:51:22 +00:00
Fildrance
7d81d63aa0 fix: return deconstruct to the top level option of radial menu (#36486)
feat: now RCD can have recepies that are placed on the top level of radial menu - 'Main' category name is reserved for this

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-04-17 23:50:15 -05:00
Tayrtahn
e00e2ba407 Add PopupPredictedCursor and fix doubled popups on vending machines (#36655)
* Add PopupCursorPredicted method

* Fix doubled popups on vending machine restock failures

* Rename to match existing pattern
2025-04-18 14:01:46 +10:00
Tayrtahn
725522c183 Partial cleanup of ExplosionSystem (#36098)
* Cleanup warnings in ExplosionSystem.TileFill

* Formatting in ExplosionSystem.TileFill

* Cleanup warning in ExplosionSystem

* Formatting for ExplosionSystem

* Switch from MapChangedEvent to MapRemovedEvent

* Fix 1 warning in ExplosionSystem.Processing

* Fix 1 warning in ExplosionSystem.Visuals

* Fix 1 warning in ExplosionSystem.GridMap

* Fix 2 warnings in ExplosionSystem.Airtight

* Clear _grids
2025-04-18 13:55:09 +10:00
PJBot
0da27d3371 Automatic changelog update 2025-04-18 03:53:11 +00:00
āda
44435a42ef Reorganize security lathe recipes, add category filters (#35594)
* split

* touchup

* touchup

* double check

* minor rename
2025-04-18 13:52:04 +10:00
Andrew Montagne
f404ea039d Adds Test & Integration Test commands to the Visual Studio Code configuration (#32705)
Adds the test commands to the vscode configuration.
2025-04-18 13:49:36 +10:00
Spessmann
3676bf3617 Removed the periodic table from the poster spawner (#36402)
removed the periodic table from the legit/any poster spawner
2025-04-17 23:47:43 -04:00
J
fa24960445 Storage warnings cleanup (#36196)
* Storage warnings cleanup

* Setting audio params on component
2025-04-18 13:47:17 +10:00
metalgearsloth
7d2ef2bd47 Action charges refactor (#33993)
* Action charges refactor

- Fixes the slight godmoding of baseactioncomponent.
- Gets back 1ms of server time.

* chorg

* Remove FrameUpdate

* Fixes

* More fixes

* Combine

* Fixes

* Updates

* weh

* Last fixes

* weh

* Fix naughty

* YAML fixes

* This one too

* Merge conflicts

* This thing

* Review

* Fix this as well

* Icon fix

* weh

* Review

* Review

* seamless

* Review
2025-04-18 13:45:48 +10:00
PJBot
424f153142 Automatic changelog update 2025-04-18 03:42:33 +00:00
slarticodefast
e1a1150257 Allow fire extinguishers and sprays to push grids you are standing on (#31754)
* allow fire extinguishers and sprays to push grids

* add cvar and reduce pushback

* EmoGarbage Review - Resolve Conflicts

* Ensure grid parenting

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-18 13:41:27 +10:00
PJBot
638187c253 Automatic changelog update 2025-04-18 02:39:40 +00:00
T-Stalker
4d457db9e9 Add Experiment plushie (#36663)
* Plushie

* Add to fills and fix license

* minor spelling issue
2025-04-18 12:38:34 +10:00
PJBot
2a3171a59d Automatic changelog update 2025-04-18 02:33:09 +00:00
lzk
8ff7767c85 Allow clown mime and borg customize names (#35170)
* Allow clown mime and borg customize name

* how

* uh

* 3

* good commit
2025-04-18 12:32:03 +10:00
Nemanja
c3e43a78f3 Fix another storedSprite bug (#36662) 2025-04-18 12:15:31 +10:00
AL-S?
a70f513c0f Update README.md (#33528)
* Update README.md

* New edits, new links

* I returned everything to a more standard appearance.

You can say now it's just updating links(=

* Last minor change

* Update README.md

Removed the "---"

---------

Co-authored-by: Vasilis <vasilis@pikachu.systems>
2025-04-18 12:14:23 +10:00
PJBot
5e96f16f43 Automatic changelog update 2025-04-18 02:12:37 +00:00
metalgearsloth
e1a21728e7 Storage fixes (#36533)
* Storage fixes

- Add size event.
- Fix reclaim not running always.

* Block the toggles

* Standardise and popup explaining

* Disable item toggles in bags

* Fix verb popping up even if we can't activate

* Conflicts

* Validate

* Stop drags if source closes

* Really fixes

* Real fix

* Revert this
2025-04-18 12:11:31 +10:00
Ethan_k
5e10bd91e3 Remove clone of dragon faction (#36667)
PLEASE WORK
2025-04-18 12:08:39 +10:00
Nemanja
57bbf76ec6 Fix inability to engage with economic Cargonia (#36668)
Fix inability to engage with cargo supremacy
2025-04-18 12:06:29 +10:00
PJBot
1af3c599c5 Automatic changelog update 2025-04-18 02:00:48 +00:00
mjarduk
fb912b3d5c Added the ability to refuel torches (and other expendable lights) (#36209)
* Added expendable light source refueling. Also fixed it to use the name modifier system so attributes like glue show up.

* Removed a duplicate line of code.

* Replaced TryGetComponent with TryComp, changed a variable name to be a little more clear.

* Removed the removed field "spentDesc" in flares and glowsticks

* Fixed to comply with slarticodefast's review. Name modifiers don't work yet (fixing that tmr)

* Fixed the localization!!!! :DDDD
2025-04-17 21:59:41 -04:00
gus
2c60d6b27f RCD Refactor (#34781)
* fixed prediction (hopefully), removed caching of prototype, sealed the class, removed any and count

* erroneus using statement

* removed unused timing, removed obsolete method of getting gridUid

* nuked mapgriddata

* code cleanup

* cleanup

* this has to be a string without me rewriting more code than i want to in this moment

* kill

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2025-04-17 21:34:38 -04:00
PJBot
944aa57907 Automatic changelog update 2025-04-18 01:24:08 +00:00
Killerqu00
e0308d0913 Contraband examine changes (again) (#36032)
* g

* no one caught it in review, damn
2025-04-18 11:23:02 +10:00
PJBot
4f24b25cf9 Automatic changelog update 2025-04-18 01:16:33 +00:00
archee1
40a999d6db Allowing Cats to walk (#36542)
* Adds the ability for Syndicats to walk

* Moved walking speed modifier to the base MobCat from MobCatSyndy

* Fixes Cak's flipped sprinting/walking speeds
2025-04-18 11:15:25 +10:00
PJBot
8f729b01ef Automatic changelog update 2025-04-17 21:06:23 +00:00
mubururu_
8f68d7c7a2 random names for space dragons (#36656)
* raoooaoaouurrr

* forgot to save before initial

* title changes

* new format who dis

* forgot i made 30
2025-04-17 23:05:14 +02:00
Ed
39ca6175e6 Simple sponsorship system (#1189)
* simple sponsorship system

* priority Join

* OOC Sponsor Color

* Update CP14SponsorRolePrototype.cs

* loadout sponsorship

* bruh

* refactor to interfaces

* Update CP14ClientSponsorManager.cs

* finish loadout option

* role pass
2025-04-17 19:55:25 +03:00
PJBot
fe140a1e6a Automatic changelog update 2025-04-17 14:06:34 +00:00
Alexandre Courtin
6c1b350c12 Banjo can now be worn on your back. (#34057)
* Banjo can now be worn on your back

* Added banjo backpack sprite

* Reduced banjo backpack sprite size

* Added my username to copyright

* 2nd try banjo backpack sprite

* 3rd banjo backpack sprite

* EmoGarbage Review - Adjust Strap Color

---------

Co-authored-by: Hoodie <hoodie>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-17 16:05:27 +02:00
PJBot
d1abf36111 Automatic changelog update 2025-04-17 13:44:51 +00:00
Jacktastic09
e16365d1bf Add Solid Headband (#36650)
* Added The Solid Headband, avaliable from hacked clothesmates

* Added The Solid Headband, avaliable from hacked clothesmates
2025-04-17 09:43:44 -04:00
Nim
1a0136c21f a variety of fixes (#1191) 2025-04-17 16:12:04 +03:00
osjarw
700cb02d5e Fix HTN task ordering bug (#32909)
* first, bad ordering

* fix

* Revert "first, bad ordering", recording artifacts

This reverts commit 22307675d79b417371775a0558c39781f59423d6.
2025-04-17 22:42:31 +10:00
PJBot
7be3811413 Automatic changelog update 2025-04-17 12:34:38 +00:00
Centronias
f72604bf92 Make tank harness smaller in inventories and craftable at lathes (#35590)
* Make tank harness smaller in inventories and craftable at lathes

* pr comment
2025-04-17 22:33:31 +10:00
eoineoineoin
05ae563e29 Fix exception when telepad system plays beam animations (#33010)
Fix exception when order sent to telepad

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-17 21:52:38 +10:00
Nikolai Korolev
b1c1cb96b5 Fix auto-updates of RobustToolbox on Windows (#33323)
* Fix auto-updates of RobustToolbox on Windows

* Also fix hooks

* Upgrade version of hooks in git_helper script
2025-04-17 21:45:35 +10:00
Tayrtahn
db40bce58f SpawnAndDeleteEntityCountTest improvements (#34069)
* Minor improvements to SpawnAndDeleteEntityCountTest Assert messages

* * Now lists added/removed entities on test failure.
* Wrapped entity loop in MultipleAsync so all failing ents are reported.
* Removed Multiple wrappers on client/server pairs, as they made result formatting ugly.

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2025-04-17 21:43:28 +10:00
metalgearsloth
9b7af5dfcf Fix hunger + thirst mispredicts (#36549)
* Fix hunger + thirst mispredicts

* Review
2025-04-17 21:43:16 +10:00
slarticodefast
a85370cc81 minor MindShieldSystem cleanup (#35905)
clean up MindShieldSystem
2025-04-17 21:38:53 +10:00
Velken
d8281c7d2d New component: change alert level on trigger (#36581)
* adds component that lets change alert level on trigger

* oops, put stuff on wrong folder

* missclick, forgor a file

* slarti finds ways to improve code

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-17 21:35:27 +10:00
PJBot
a46ab100ff Automatic changelog update 2025-04-17 11:25:54 +00:00
Errant
9b1a7dea1d Geiger counters can now be heard by everyone nearby (#30463)
* haha geiger counter go brrrrrrr

* move hardcoded values to datafields

* syntax cleanup
2025-04-17 21:24:47 +10:00
Leon Friedrich
f46bb301fb Fix lathe arbitrage test (#34449)
* Fix lathe arbitrage test

* Add refinables

* nullable

* nullable2

* Fix merge

* Ignore failures
2025-04-17 21:07:51 +10:00
lzk
9b3f37f5af Improve solar panels descriptions a little (#34925)
* improve solar panels descriptions a little

* Apply suggestions from code review

Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>

---------

Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
2025-04-17 20:42:39 +10:00
Ben Bryant
73e3e90198 Skip unnecessary MaterialStorageControl updates (#32662)
Remove unnecessary dictionary copying
2025-04-17 20:41:15 +10:00
lzk
0ad56dfddd Fix simple hostile (#32898) 2025-04-17 20:39:45 +10:00
PJBot
34ac758bf9 Automatic changelog update 2025-04-17 10:39:07 +00:00
Callmore
c979370d57 Make borgs require prying to open instead of screwing (#32796)
make borgs require prying to open instead of screwing...
2025-04-17 20:38:00 +10:00
PJBot
ab477606ab Automatic changelog update 2025-04-17 10:37:30 +00:00
beck-thompson
28b4fd9763 Fix trash bag visuals (#32386)
* First commit

* Dont even look what I did at first I'm silly

* more negative diff!!
2025-04-17 20:36:23 +10:00
Morb
4692d3ae48 Remove test maps from MapRender (#32649)
Remove test map prototypes from render list
2025-04-17 20:34:41 +10:00
eoineoineoin
2fc8cdff00 Fix UI issues with Camera Monitor (#31809)
* Fix jumpy camera monitor UI

Basically copy-pasted same solution from #30292

* Remove duplicate code; use shared ItemList method to sync items
2025-04-17 20:15:35 +10:00
PJBot
6c05477ca3 Automatic changelog update 2025-04-17 10:13:21 +00:00
Leon Friedrich
779fdefa7e Fix explosion visuals (#36644) 2025-04-17 20:12:13 +10:00
Tayrtahn
64327326fd Make AllComponentsOneToOneDeleteTest skip components with Required fields (#30582) 2025-04-17 20:10:23 +10:00
PJBot
26db5cbe3a Automatic changelog update 2025-04-17 10:09:17 +00:00
Kyle Tyo
7d64599d2d Action buttons are now usable in the action window. (#35642)
* Update ActionUIController.cs

* renamed some inconsistent arguments.

* removed a redundant check.

* revert some variable renames to reduce the diff.
2025-04-17 20:08:09 +10:00
TytosB
68a1e5156a loop minor pipe fix (#36646)
pipe
2025-04-16 22:48:48 -07:00
PJBot
b1a3c62b25 Automatic changelog update 2025-04-17 03:15:23 +00:00
Nemanja
cc7df12996 Fix artifact point extraction going into negatives (#36642) 2025-04-16 23:14:17 -04:00
Callmore
eed374ffee Fix assert when trying to get TEG circuit component (#33071)
* Fix crash that was happening while testing nukeops

* Update Content.Server/Power/Generation/Teg/TegSystem.cs

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>

* Fix incorrect review

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-16 21:36:20 -04:00
beck-thompson
b41ee53dbd Cleanup various admin buttons (#36312)
cleanup
2025-04-17 03:02:41 +02:00
Ed
5a69877fe7 storedOffset bugfix (#33606)
* Update ItemGridPiece.cs

* Update SharedItemSystem.cs

* Update ItemGridPiece.cs

* EmoGarbage Review

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-16 20:42:22 -04:00
PJBot
54e7b762e3 Automatic changelog update 2025-04-16 23:52:07 +00:00
ScarKy0
bfe739e0af Hydroponic trays can now be bought (#36630) 2025-04-16 16:51:00 -07:00
PJBot
8f45639661 Automatic changelog update 2025-04-16 23:37:03 +00:00
SpaceRox1244
6ef5f8e2f1 Adds handheld artifact container to cargo orders (#33327)
* Adds handheld artifact container

* Adds inhands and missing details

* Reduces use delay on unlocking and opening hand arti container

* Adds handheld arti container to cargo orders

* Fixes build error i think

* Removes extra whitespace

* Adds static price to handheld arti container
2025-04-16 19:35:57 -04:00
PJBot
4c43e8263e Automatic changelog update 2025-04-16 23:15:34 +00:00
Mercer Bray
31185fbff3 Added Junkeys (#34121)
* Added Junkeys

Monkeys can now tote the syndicate Juggernaut suit! With a nifty little sprite.

Update meta.json

Update Equipped-HELMET-monkey.png

Delete Equipped-HELMET-monkey.png

Create equipped-HELMET-monkey.png

* Update meta.json

Credit attributed.

* Update meta.json

Credited edit.
2025-04-16 19:14:28 -04:00
PJBot
a0672a2ad7 Automatic changelog update 2025-04-16 23:00:43 +00:00
Errant
a23b5fb502 add subtype to admin notice (#36640) 2025-04-17 00:59:36 +02:00
PJBot
d318cc2663 Automatic changelog update 2025-04-16 22:16:44 +00:00
SeamLesss
557e5b3a10 Standardize In-hand Sprites for Gloves (#35997)
* guh???

* Merge branch 'master' of https://github.com/SeamLesss/space-station-14

* glove inhands

* wrong side

* attribution hell

* slight tweaks

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-04-17 00:15:37 +02:00
mubururu_
2b845c70c7 space adder sprite cleanup (#36584) 2025-04-16 15:14:48 -07:00
Tayrtahn
f4f9f7ea7b Cleanup warnings in ScreenshotHook (#36637) 2025-04-16 23:51:38 +02:00
Tayrtahn
aec8e7f8d9 Add self message variants for starting/finishing vending machine restocking (#36633)
* Add self message variants for starting/finishing restock

* Identity
2025-04-16 23:33:02 +02:00
PJBot
705cbe1541 Automatic changelog update 2025-04-16 21:15:24 +00:00
Ciarán Walsh
a16097fa33 Fix duplicate suit signals (#35918)
* Include the suit owner’s UID in suit sensor status updates.

* Show a single monitoring entry per crew member

* Rewrite sensor collection using a dictionary
2025-04-16 23:14:05 +02:00
github-actions[bot]
11f68df6f5 @Abiergo has signed the CLA in crystallpunk-14/crystall-punk-14#1196 2025-04-16 20:27:55 +00:00
PJBot
a28a12140e Automatic changelog update 2025-04-16 20:27:32 +00:00
Linkbro
0d70d6bfdf New Sprites for cables (#34955)
* initial textures

* Makes it have layers because Milon wanted it

* Makes it have layers because Milon wanted it

* in do NOT understand github

* tested, works

* Update Content.Client/Power/Visualizers/CableVisualizerComponent.cs

Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>

* Update Content.Client/Power/Visualizers/CableVisualizerComponent.cs

Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>

* remove extra newline

* EmoGarbage Review - Adjust MV cables to use orange stripes

---------

Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
2025-04-16 16:26:25 -04:00
Emisse
89526cfa01 Box but I finally fix the armory power (#36632) 2025-04-16 14:11:41 -06:00
Nox38
aec0edfd64 Miscounted by one 2025-04-16 12:50:27 -07:00
Nox38
4e60387bd1 Fixed armory power! 2025-04-16 12:49:01 -07:00
metalgearsloth
468d1424ec Vending machine popup prediction (#36622)
Title.
2025-04-16 15:39:14 -04:00
PJBot
0cbd7549b2 Automatic changelog update 2025-04-16 19:30:33 +00:00
pathetic meowmeow
5d38ae56de Add chatty lathes (#34959) 2025-04-16 21:29:25 +02:00
PJBot
be5bbd4dc3 Automatic changelog update 2025-04-16 19:21:45 +00:00
ScarKy0
56412d4b4e Basic Resources Crate (#36419)
* init

* 1660

* I never webedit

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-04-16 15:20:36 -04:00
Tayrtahn
a0d5d85019 Cleanup warnings in GunSystem (#36629)
* Cleanup warnings in GunSystem

* Remove _transform and use shared's TransformSystem instead

* Missed one
2025-04-16 21:01:54 +02:00
PJBot
c0aa3189c7 Automatic changelog update 2025-04-16 18:22:52 +00:00
UpAndLeaves
1c7e6592e9 Zombification resistance rework (#36485)
* initial commit

* Commit cuz beck said so 👍

* Implement balance changes, and revert some stuff

* fix yaml test real

* Added full stop, ensured display of infection chance, buffed biosuit speed

* Maint reviews, I commit

* Review completed, winter coats nerfed, CMO bio suit removed for future PR

* Final-final commit-REAL (2)-COPY
2025-04-16 14:21:45 -04:00
PJBot
c183231834 Automatic changelog update 2025-04-16 17:59:41 +00:00
ArtisticRoomba
a94f64d942 New Arsenal T3: Temperature Gun Revitalization (#35447)
* tempgun real

* fixin shit

* Warios Couch

* fix tests. i hope

* add to lathes

* tests begone

* RIP svalinn

* maintainer for the project btw

---------

Co-authored-by: Flareguy <woaj9999@outlook.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
2025-04-16 13:58:35 -04:00
PJBot
5dc012374e Automatic changelog update 2025-04-16 17:05:54 +00:00
Errant
fb388d2265 Role subtypes (#35359) 2025-04-16 19:04:48 +02:00
PJBot
7aa0c7562e Automatic changelog update 2025-04-16 14:13:37 +00:00
SlamBamActionman
cbf0f6fdd0 Remove fixture MachineLayer from pet carriers (#36627)
Initial commit
2025-04-16 16:12:30 +02:00
Nim
63993e221f skeleton ModifierSet (#1190) 2025-04-16 15:46:11 +03:00
PJBot
c9964a61b2 Automatic changelog update 2025-04-16 12:24:47 +00:00
metalgearsloth
a436032963 Fix tippy speech time (#36616) 2025-04-16 08:23:40 -04:00
PJBot
de33ed7f02 Automatic changelog update 2025-04-16 11:55:49 +00:00
SlamBamActionman
0da8984431 Fix certain foldable items not being possible to store in crates/lockers (#36625)
Remove OnStoreThisAttempt
2025-04-16 13:54:42 +02:00
J
b1c08582d5 Various system spring cleaning (#36206)
* Various systems warnings cleanup

* Last changes before submitting PR

* Add guard for transform component, fix failing test

* Small corrections

* Audio params to specifiers datafields

* Using audio params on components and configs
2025-04-16 13:08:22 +02:00
J
2a80540b70 Construction spring cleaning (#36163)
* Construction warnings cleanup

* More construction warnings cleanup

* Fix failing ITests - Remove unnecessary casts and dodgy anchroing implementation.

* Checking anchor status before setting

* Reusing shared system call

* inlining anchor setting
2025-04-16 13:02:41 +02:00
metalgearsloth
0a750fd6db Blindness networking (#36623)
* Blindness networking

Nothing actually sets this.

* Update Content.Shared/Traits/Assorted/PermanentBlindnessComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-16 12:27:25 +02:00
metalgearsloth
7e3f3a7ca3 Combat mode prediction thing (#36620)
Was written before predicted popups prolly
2025-04-16 12:27:10 +02:00
PJBot
14cc8f7a50 Automatic changelog update 2025-04-16 10:13:30 +00:00
RedBookcase
ca1e5e0942 Blueprint tweaks. (#36609)
* Blueprint tweaks.

* Inhand fixes.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-04-16 12:12:22 +02:00
Emisse
9cbcdabcfa Meta: Fix unintended wizard robes in dorm room (#36248) 2025-04-16 01:25:57 -06:00
Emisse
76fd2d0648 Elkridge - i forgot the funding allocation console (#36574) 2025-04-16 01:25:26 -06:00
PJBot
59327bdc61 Automatic changelog update 2025-04-16 02:27:26 +00:00
Samuka-C
cb7bb7623a Add bluespace flash effect (#36607) 2025-04-16 12:26:19 +10:00
PJBot
a77ecd0c36 Automatic changelog update 2025-04-16 01:34:46 +00:00
Flareguy
92b0f62500 New Experimental Science T3: Desynchronizer (#35752)
* desynchronizer real

* yaml stuff from slarti branch

* C# stuff

* oops

* review

* improve

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-16 11:33:39 +10:00
PJBot
68cfd1c798 Automatic changelog update 2025-04-15 22:51:05 +00:00
Nemanja
83c2fdb619 Restore Artifexium Effect (#36595)
* Restore Artifexium

* popup

* small tweaks
2025-04-16 00:49:58 +02:00
IProduceWidgets
a3b68f7181 Oasis update, request comps etc. (#36582) 2025-04-15 15:48:44 -07:00
PJBot
fe6f2235a2 Automatic changelog update 2025-04-15 22:39:33 +00:00
Nemanja
bbc0a09493 XenoArch Rebalancing (#36604)
* Miscellaneous XenoArch Rebalancing

* Miscellaneous XenoArch Rebalancing

* 1 durability anomaly node

* better version
2025-04-16 00:38:26 +02:00
PJBot
3ded6b537a Automatic changelog update 2025-04-15 22:26:05 +00:00
Nemanja
22468b4d40 Sentient Artifacts Can Self-Activate Again (#36598)
Sentient Artifacts
2025-04-16 08:24:58 +10:00
Fildrance
98d951008a fix: mode scanner footer now is not jumping up and down on scanning artifact (#36599)
fix: scanner footer now is not jumping up and down on scanning artifact

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-04-16 00:05:36 +02:00
PJBot
ecbbc41bcc Automatic changelog update 2025-04-15 21:40:26 +00:00
Minemoder5000
28e3660e37 Remove elite and juggernaut hardsuits from traitor uplink, add elite webvest (#36225) 2025-04-15 14:39:18 -07:00
Ed
b40cbfb5d7 Automatic Open tests (#1142)
* auto eng obt

* Update CP14RoundEndSystem.CBT.cs

* Update CP14EdSystem.cs

* cbt cbt!

* Update CP14RoundEndSystem.CBT.cs
2025-04-15 23:09:49 +03:00
Ed
c61a76fa69 Merge pull request #1004 from crystallpunk-14/ed-11-03-2025-discord-auth
Discord Auth expanse
2025-04-15 22:50:08 +03:00
Tayrtahn
e0870d0cd2 Cleanup: ExtensionCableSystem (#36052)
* Use Entity<T> and avoid Owner

* Use SharedMapSystem
2025-04-15 21:01:40 +02:00
PJBot
968fd94bce Automatic changelog update 2025-04-15 18:28:40 +00:00
Crazydave91920
10e37f7e50 Contraband Fix - ZooKeeper - Double barrel shotgun (#36583)
* Contraband Fix

* Update base_contraband.yml

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2025-04-15 20:27:29 +02:00
ScarKy0
cfbc54d154 Box Dept Economy (#36587)
init
2025-04-15 10:06:32 -07:00
ScarKy0
c6c502d45d Fland Dept Economy (#36589)
init
2025-04-15 10:05:20 -07:00
ScarKy0
c0adeee9e2 Marathon Dept Economy (#36592)
init
2025-04-15 10:03:59 -07:00
Kirby
16617f0ec6 AgriChem kit "handing" typo fix (#36588)
Handing typo fix
2025-04-15 13:55:29 +02:00
ScarKy0
1d7ad04905 Omega Dept Economy (#36559)
init
2025-04-14 22:14:26 -07:00
ScarKy0
7f75645959 Bagel Dept Economy (#36556)
* init

* lockboxes
2025-04-14 22:13:41 -07:00
TheProNoob678
f611b6ea5e Inhand sprites for figurines (#36017)
* figurine sprite update

* Updated meta.json to credit inhand sprites

* Update meta.json to credit inhand sprites

* Updated meta.json because crlf check

* potentially fixing CRLF issues in meta.json + consistent spacing

* Fix CRLF, maybe?

* properly credited myself for all my amazing work in the community

* Reformat meta.json as per the newly merged "fix as you go" procedure.

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-14 21:15:49 -07:00
Spessmann
542ac16a14 Convex update (#36575)
conbex updoot
2025-04-14 21:15:18 -07:00
Nemanja
bf84924067 Fix shadow anomalies dropping stacks of artifact fragments (#36578) 2025-04-14 20:44:09 -07:00
PJBot
518e091e61 Automatic changelog update 2025-04-15 03:39:38 +00:00
Nemanja
07b7d839cb Fix skeletons not becoming skulls on gib (#36571) 2025-04-14 20:38:31 -07:00
TytosB
f73d721aa5 loop station dept request pcs (#36566)
* request pcs

* forgor lockboxes

* allocation pc
2025-04-14 18:47:02 -07:00
Deerstop
b0f2e4dc26 changed theatre doors back to theatre access, moved some wallmounts in engi locker 2025-04-15 11:05:28 +10:00
PJBot
3f35b0d296 Automatic changelog update 2025-04-15 00:36:00 +00:00
Fildrance
d38042a0c0 3mo xeno archeology (first phase) (#33370)
* DAG Adjacency Matrix & Tests

* Fix sandbox type errors

* First pass on procgen

* Procgen adjustments

* Networking

* Cruft and god and beauty and analysis console

* convert to data types that dont make me want to kill myself

* starting work on console UI

* drawing nodes n shit

* damn that ui FUCKS

* XAT

* Add a bunch of basic triggers

* Fix trigger gen

* Add node info into the analysis console UI

* Add node unlocking

* more trigger cuz thats pretty cool

* final triggers + incorporate gnostic faith

* some ui changes, mostly

* Fix orphaned procgen segments

* its not random dipshit

* yeah... this one will make pjb happy....

* we call it a day for the UI

* imagine... shared power code...

* extraction WIP but we gotta sidequest momentarily

* oh hey would you look at that its the actual functionality

* distrotrased

* Small departure for randomness.

* ok yep yep indeed that is an effect very cool.

* thanos snap oldcode

* fuck it we ball

* feat: node scanner now displays triggered nodes. Removed unused old artifact systems and related code (most of it). xml-doc and minor fixups.

* refactor: most of preparations, cleanup and groundwork. also segment-related tests

* feature: all basic effects returning

* feat: finished effects lits, created weight lists for struct and handheld artifacts, fixed throw trigger and music ApplyComponent artifact effects not working

* feat: prevent non-first-time-predicted calls in shared artifact effect systems

* fix: remove gun effect from artifact effects - as it interferes with 'activate artefact' action

* fix: foam reagent selection, neat ApplyComponents art effect scenarios, handheld art is RadiationReceiver again

* fix: moved spawn/ pry&throw effect systems back to server part of code - entity duplication bugs were not quite fun

* refactor: fix protos

* refactor: fix linter

* fix: fix old artifact component names in yml

* fix: no more throwing error on artifact spawn with empty XAEFoamComponent.Reagents

* fix: removed old component usage in maps

* fix: remove more deleted components from map

* fix: ContainerContainer is now part of initial artifact entity, it won't be affecting UninitializedSaveTest

* refactor: fix tests, add loc description to toolshed commands

* Changed node scanner to tell the whole story about current artifact state

* refactor: remove excessive get of EntityCoordinates in XAE systems, removed Value access in NodeScannerDisplay

* fix: turned off TriggerInteraction, removed XAESpawn usage and system, EmpSystem now can use EntityCoordinates,

* fix: moved SharedXenoArtifactSystem.CancelUnlockingOnGraphStructureChange into RebuildXenoArtifactMetaData to lessen code coupling

* fix: XenoArtifactEffectJunkSpawn moved invalid rolls declaration

* refactor: set default value for XenoArtifactComponent.EffectsTable for tests

* fix: now explosions XAE can be activated for effect

* refactor: added some usedelay so artifactuse would'nt be spammed

* refactor: artifact-related hints improvements

* fix: artifact no longer spawns fauna into itself

* refactor: xml-doc and minor refactoring

* refactor: xml-doc for Xeno Artifact systems, renaming of questionable XAT systems

* map for playtest, TODO REVERT THIS

* fix: magboots trigger art from a mile

* refactor: bind artifact animation to unlocking state

* feat: radiation dmg now have reference to source (and artifacts won't irradiate themselves)

* fix: random artifact node durability now is rolled for max and not current value

* refactor: gas effects are more rare, hand-held artifact effects are filtered properly now, rad dmg trigger now requires only 20 dmg for activation

* feat: animations and sound effects for artifact force-use and failed finish of unlocking phase

* use only 1 file with art use animation

* refactor: minor artifact dmg triggers tuning

* feat: now nodes that CAN be unlocked are displayed with specific color in console.

* feat: now unlocking stage time is dynamic and it depends on amount of triggers player activated correctly. Failed one stops incrementing

* feat: now non-active unlocked nodes return more points if durability was not wasted

* feat: now puddle/foam effects change description of node

* fix: fix test failure

* refactor: renamed phasing effect, fixed failing test for elkridge

* minor balance changes

* refactor: split rare materials into separate effects

* feat: unlocked nodes without successor wont listen to unlocks, node unlock is not activating node

* fix: removed OnIrradiatedEvent duplicate c-tor

* revert changes of reach for playtest

* revert last row empty line removal on reach.yml

* fix: fix PVS bug, born from attempt to relay event to art nodes that were not synced yet to the client

* fix: fix elkridge for tests (again)

* refactor: xml-doc, more stuff predicted, allocation optimization in XAE/XAT systems

* refactor: naming

* refactor: extract variable refactor for XAEApplyComponentsSystem.OnActivated insides

* fix: duplicate xeno artifact unlocking sound fixed

* feat: CreatePuddle xeno artifact effect now can have min and max borders for chamicals to be drafted, minor XAECreatePuddleSystem refactor

* feat: networking for shared XAE components + xml-doc leftovers

* refactor: more xml-doc, fix XAEApplyComponentsComponent.Components not being serializable but trying to be

* refactor: xml-docs and XAEThrowThingsAroundSystem now uses circle and not box for prying tiles

* refactor: xml-docs, minor refactors

* revert XenoArtifactCommand.ArtifactPrototype being PrototId

* refactor: simplify the way ExtractionResearchLabel works

---------

Co-authored-by: EmoGarbage404 <retron404@gmail.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-04-15 10:34:53 +10:00
Deerstop
264017a25e adds funding allocation console cos i forgot 2025-04-15 09:44:13 +10:00
PJBot
e9d13ea565 Automatic changelog update 2025-04-14 23:28:53 +00:00
Will-Oliver-Br
1a95418e94 Now you can see if there's a beaker in the chemmaster (#36472)
* fix

* fix

* Update Resources/Prototypes/Entities/Structures/Machines/chem_master.yml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-14 16:27:46 -07:00
Nemanja
ed3e4c7d4e Fix station income instantly accumulating roundstart (#36572)
Fix station money accumulating roundstart
2025-04-15 01:00:34 +02:00
Token
ace3682de3 Item HeldPrefix and Clothing EquippedPrefix toggler (#33054)
* Item and clothes prefix toggler
Handles Item.HeldPrefix and ClothingComponent.EquippedPrefix respectively

* stunbaton and magboots sprites activations to Toggler yml

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-14 15:50:21 -07:00
Ed
61edcf69df Update Dev.toml 2025-04-15 01:45:15 +03:00
MilenVolf
fc12739df0 Fix the ability to kill clumsy mobs by force climbing (#33844)
* Make clumsy work only when dragged by owner entity & Check for reclaimer comp

* Revert "Make clumsy work only when dragged by owner entity & Check for reclaimer comp"

This reverts commit 7ff984bbc2e53f7070580a4cc4b1b43f8f0461d0.

* Remove check that passes if somebody forces us to climb
2025-04-15 00:04:56 +02:00
Ed
40daccc703 Upstream sync (#1187)
* Mob movement rewrite (#35931)

* Conveyor optimisations

- Optimise movement for moving stuff. Better flags + less resolves + slapped parallelrobustjob on it.
- Sleeping for entities getting conveyed into walls.

* Blocker version

* Finish

* Final

* Fix conveyor power mispredict

* Bagel save

* Revert "Bagel save"

This reverts commit 1b93fda81fb852d89b89b0beae0b80f8a61165f2.

* Conveyor resave

* Fix prediction

* Mob movement rewrite

* Bandaid

* Working version

* Tentatively working

* Friction to fix cornering

* More fixes

* Revert bagel

* Revert this

* a

* Reviewed

* Funky re-save

* Fix velocity

* Table fix

* Review

* a

* Automatic changelog update

* Unhardcode role type names and colors within localization text (#36096)

* localize role type names within localization text

* also unhardcode colors

* comment

* typo

* Fix gas pressure pump prediction (#35865)

* ACTUALLY predict gas pumps

* generic fake

* aaaaaaaaaaaaa

* Fix embedded projectile deletion not being tracked by container (#36123)

* Remove deleted projectiles from the container tracking them

* Gotta dirty the container

* Remove the container component when all embedded projectiles are gone

* Add test

* No clientside deletion of networked entities

* Move cleanup logic before deletion

* Make ContainerFillSystem print contents on failure (#36128)

* Make ContainerFill/EntityTableContainerFill print current contents when failing to spawn an entity

* List each entry on a new line; add fallback for empty

* convex update

* update emergency_courser

* update emergency_meta

* update man-o-war shuttle

* remove warden stamp mapped on meta

* me waiting

* update fland

* sure

* update box

* another one

* le heisentest au chocolat

* oops

* Death Nettle changes (#25253)

* Added ThornyComponent, ThornyImmuneComponent, and ThornySystem, as well as changed Botanists glove's to have the ThornyImmuneComponent, and for Death Nettle to have the ThornyComponent.

* Added heat damage to the player if they pickup nettle without gloves. Also displays a popup message .

* Revised OnHandPickUp method and reduced whitespace

* Touching death nettle without gloves now does damage split between heat and caustic, and does more damage.

* File-scoped namespace adherence

* Code revisions, and removal of old file.

* Removed thornyImmune key from botanist's gloves in gloves.yml for cleanup / yaml linter

* Adds new generic DamageOnPickup, still very WIP

* Starting on localization, removed _Notes.txt, adds immunity component

* Added OnPickupDamageImmune component to botanists gloves

* Removed botany specific components/system, moved to generic DamageOnPickup. Added code comments. Extra checks in component for whether to toss an item, damage an entity. Still WIP.

* changes to audio and popups

* Removes my system/component/ftl in favor of DamageOnInteract, tweaking values

* me stupid

* Death nettle will 'wilt' after 5 hits

* added interaction delay to stop spam clicking, added a 10% stun (paralyze) chance

* minor changes/cleanup

* more minor changes and cleanup

* Reduced maximum amatoxin within fly amanita spores.

* Readjusted to allow more than 5 amatoxin above 50 potency

* Remove Debug.Log statement from system

* Mark Death Nettle as major contraband.

* Automatic changelog update

* "I'm Weh-cellent" Cap (#28573)

* copy pasted fishcap.rsi

* added the sprites

* credited myself

* added it to the hats.yml list

* meh, make the spites look nicer

* hopefully this fixes that

* yeah that makes sense

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* that too

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* new courtroom, better signage, fixed uncleanable dirt, more

* Delete AccessReaderTest.TestTags (#36153)

* Sentry turrets - Part 4: The sentry turret and its primary systems (#35123)

* Initial commit

* Removed mention of StationAiTurretComponent (for now)

* Prep for moving out of draft

* Fixing merge conflict

* Re-added new net frequencies to AI turrets

* Removed turret control content

* Removed unintended change

* Final tweaks

* Fixed incorrect file name

* Improvement to fire mode handling

* Addressed review comments

* Updated how turret wire panel auto-closing is handled

* Ranged NPCs no longer waste shots on stunned targets

* Fixed bug in tracking broken state

* Addressed review comments

* Bug fix

* Removed unnecessary event call

* Automatic changelog update

* Shove down a person on uncuff if harm mode is on (#35193)

* stamdamage on uncuff while buckled

* pro tip

* 99 -> 100 stamdmg and don't count self-uncuffs

* review implementation

* tip update

* guidebook update

* merg

* Automatic changelog update

* Mapping warnings cleanup (#36168)

* Mapping warnings cleanup

* Redo

* Remove warnings from cargo system (#36159)

* Remove warnings from cargo system

* Guard statement early exit and cleaner object instantiation

* Whitespace

* Add AnimationPlayer as a component of telepads

* Fix some atmos warnings (#36157)

* Update Credits (#36172)

Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>

* Draw depth bug fix for sentry turrets (#36175)

Initial commit

* Update oasis

* Better jetpack emitter (#36093)

* Better jetpack emitter

Still need particles this just tilts me whenever I see it.

* Update Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Automatic changelog update

* Implement field-deltas for melee (#33977)

* Implement field-deltas for melee

* Review

* One day Im gonna snap and fix a bug

* Fix LoadGameMap running MapInit sometimes (#35241)

The map loadpath keeps it as not being mapinit but the grid one does not so this standardises them slightly.

* More responsive votekick system (reduce timer and successive timeout) (#36044)

* reduce votekick timer from 60 to 20 seconds

* votekick timeout from 120 to 30 seconds

* votekick timer duration from 20 seconds to 45, successive votekick timeout from 30 to 60 seconds

* Examine warnings cleanup (#36162)

* Examine warnings cleanup

* Revert unnecessary change

* SpriteSystem naming conventions

* Chemistry warnings cleanup (#36160)

* Chemistry warnings cleanup

* Fixing failed ITest

* Better entity instantiation

* Caching spritesystem and entity instantiation improvement

* Correcting naming conventions

* Rearranging dependency caching

* Movement systems warning cleanup (#36161)

* Movement systems warning cleanup

* Revert unnecessary change

* Reverting variable removal and changing entity query

* Reverting VV removals

* LocalEntity does in fact exist

* Anomaly warnings cleanup (#36188)

* use manual component state for BaseEmitSoundComponent (#35030)

* why

* cursed

* Gameticking warnings cleanup (#36193)

* Cleanup and small update to the stethoscope! (#36210)

* First commit

* Address most of the review!

* Automatic changelog update

* refactor: simple radial menu for easier creation (#34639)

* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

* feat: simple radial menu prototype for easier creation

* refactor: cleanup, restored emote filtering, button models now have class hierarchy

* refactor: remove usage of closure from 'outside code'

* refactor: remove non existing type from UiControlTest

* refactor: remove unused using

* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu

* refactor: whitespaces

* refactor: subscribe for dispose on existing radial menus

* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu

* fix: AI door menu now can be closed by verb if it gets unpowered

* refactor: simplify hiding border, extended xml-doc for simple radial menu settings

* refactor: remove linq

* fix: fix AI radial action serialization using invalid type

* refactor: fix duplicate ShowDeviceNotRespondingPopup for AI by properly checking if it can interact

* refactor: whitespaces, changed list to array in simple radial button preparing methods

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>

* delete PolymorphOnCollideComponent (#36227)

delete component

* Light warnings cleanup (#36195)

* Light warnings cleanup

* Using EntitySystem Proxy overrides

* New TryComp guards for light animations

* Reverting guards when not wanted

* Holoparasite injector fix (#36109)

* HoloParaTextFix

* PleaseSpeedMergeLmao

* ThankYouOrks

* Update Resources/Locale/en-US/guardian/guardian.ftl

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Guardian/GuardianSystem.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Guardian/GuardianSystem.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Localize and colorize grill temperature settings (#36236)

* Make it easier to localize grill heat level settings

* Change examine text color based on setting

* Trailing periods

* Use Fluent terms to reduce duplication

* Rework the way held items scatter when holder is knocked down (#36232)

* Redo drop held items math

* Don't assume the holder has a PhysicsComponent

* Assume infinite mass for held items with no PhysicsComponent

* Switch to EntityQuery for PhysicsComponent

* The micro-est of optimizations

* use NextAngle

* Might as well do that outside the loop

* Automatic changelog update

* Undetermined thieving satchel (#36201)

* yippee!

* no toolboxes allowed

* sprite, descriptions

* Automatic changelog update

* more maints, new AI, xenobiology, etc, ect

* Add prediction to electric grills (#36241)

* Prediction for EntityHeaterSystem

* Switch to Entity<T>

* meh

* Move popup inside ChangeSetting

* Fix grill visually turning on when changing setting while power is off

* Add note about my failed quest

* Why isn't this an IDE warning?

* Move comment above switch expression in SettingPower

* Automatic changelog update

* Move medical locker fills to entityTables (#36249)

* Added tables + moved things to EntityTableContainerFill

* YAML convention

* Rotation warnings cleanup (#36197)

* Rotation warnings cleanup

* Naming convention fix

* Adding component that we already have

* New food recipe: World Peazza (#35191)

* added world peazza

* fixed a comma in the pizza sprite json

* changed attribution comment on ArtisticRoomba's suggestion

* restored accidentally deleted line, thanks Tayrtahn

* Automatic changelog update

* Fix KeyNotFoundException that sometimes happens on server shutdown (#36221)

* Fix "other player points at you" message formatting (#36253)

Fix "other player points at you" message's Fluent functions

* Light replacer description typo fix (#36256)

Replacer description typo fix

* fix: re-add missing RCD deconstruct action #36243 (#36255)

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>

* Automatic changelog update

* add: Dragon rift color changes based on charge (#36216)

* use dragon rift sprite colours

* Entity<T>

* Automatic changelog update

* :3

This is so we can publish stable again

* Convert AgentIDCard message to use a Fluent selector (#36263)

Convert AgentIDCard message to use a selector

* NPC Warnings cleanup (#36189)

* NPC Warnings cleanup

* Reverting unnecessary changes

* Reverting unnecessary changes, missed

* Using entity GetGrid override instead

* Fix entities burning to ash not using identity, and bad formatting (#36268)

* Make burning to ash use identity

* CAPITALIZE(THE())

* Localize air alarm states (#36266)

* Fix a few loc bugs with magic mirror/scissors (#36269)

* Use identity for magic mirror popups

* THE()

* Use correct pronouns in blocked-by-hat message

* Add autocomplete to controlmob (#36234)

Expensive for what it is just really annoying in debug to not have it. Worst case I just make it debug only and we don't add it for release.

* Change the name and description of the templar helmet. (#36258)

Changed the name and description of the knight helmet.

Co-authored-by: Flesh <N/A>

* Diphenhydramine causes drowsiness (#36212)

* nap time in medbay

* suggested changes

* fake test fail

* Automatic changelog update

* Improve sprite fading behaviour (#35863)

* Click through faded sprites

* Count the mouse position for which sprites to fade

* Automatic changelog update

* Recipes for curtains and tables using carpets now respect stacks. (#33721)

* Carpet curtain/table recipes now respect stacks

* remove unused colour carpet tags

* Remove the tags outright

* Automatic changelog update

* Stop ghosts from being logged to Airlocks (#36261)

* stop ghosts from being logged

* thanks rider for the random import

* add new tag PreventAccessLogging

* once again removing random auto imports

* inverted if for code readability

* switch to ProtoId<> usage

* Automatic changelog update

* Fix loc issues with syringes (#36285)

Fix injector loc issues

* [Hotfix] Change ID card console admin log severity to Medium (#36283)

It's that simple

* Fix loc issues with suicide popup (#36284)

* Add PKA and PTK-800 shuttle gun recipes to sec techfab (#34566)

* add Magboots and PKA to sec lathe

* add kinetic shuttle gun to sec lathe

* use pack recipe

* remove magboot from prior commit

* Automatic changelog update

* Mob collisions (#34580)

* Conveyor optimisations

- Optimise movement for moving stuff. Better flags + less resolves + slapped parallelrobustjob on it.
- Sleeping for entities getting conveyed into walls.

* Blocker version

* Finish

* Final

* Mob collisions

* impulses

* Collision smoothing

* Locked in

* 30tps working

* r

* fixes

* Best

* Fixes + CVars

* CVars in place

* Pushies

* Opt attempt 1

* Revert "Opt attempt 1"

This reverts commit 5ccd72dcbea09261a992aa1f7f05df169a1ce676.

* Fix mispredicts

* Ready-ish

* better

* Cleanup

* Fix conveyor power mispredict

* Forgetting to actually do deltas

* Fix buckle pushes

* Bagel save

* Revert "Bagel save"

This reverts commit 1b93fda81fb852d89b89b0beae0b80f8a61165f2.

* Conveyor resave

* Fix prediction

* Mob movement rewrite

* Bandaid

* Working version

* Tentatively working

* Friction to fix cornering

* More fixes

* Revert bagel

* Revert this

* Bad parity

* Working

* Fixes

* Woops

* Doc comments

* Pen cap cvar

* StandingState cleanup and sub

* Fix downed mobs

* fish

* client

* Disable pushing on tests

* More variables

* Movement mods

* Mass diff

* 1 more tweak

* Cvar

* Mob collision tweaks (#36296)

* Mob collision tweaks

- Remove the dot product default so moving also pops it.
- Cleanup the cvars so admins can adjust

* Gas canister revert

* fix implanting borgs and bots (#36218)

* fix implanting borgs

* fix

* Automatic changelog update

* Rotate Adv Mineral Scanner in Inventory (#36294)

* Automatic changelog update

* Fix ninjas not being able to hack criminal records (#36299)

Index reason placeholders prototype as a LocalizedDataset

* Automatic changelog update

* Remove embed mispredict (#36297)

* Remove embed mispredict

I don't know why this is here but it doesn't seem to cause issues and transforms should be fully predicted so if there are bugs I will deal with them as they come up.

* a

* IPIntel now rounds to 2 decimal points (#36298)

* IPIntel now rounds to 2 decimal points

* Nvm i understood what pjb wanted now

* Antagonist roles now require 1h playtime. (#36276)

* init

* whitespace

* Automatic changelog update

* Extracts magic strings from Tag calls (#36305)

* Extracts magic strings from Tag calls

When #36281 gets merged, the `TagSystem` methods will all give warnings. Let's fix those warnings before they even happen!

* Adds missing libraries

* Remove not yet implemented TagSystem changes

* Fix tag spelling error

Genuinely surprised there was only 1!

* Styling and proper type changes

* Styling

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Fix shutter construction ghost rotation (#36082)

* Fixed shutter construction frame not aligning with construction ghost

* removed metadata change that should be in a different PR

* Add 10u of plasma to SyndieJuice (#36280)

Gift for the agent

* Automatic changelog update

* maints insuls, more meteor shielding

* Typo fix in Syndicate agent locale resources (#36318)

* "discretely" corrected to "discreetly"

* how did it happen twice

* removed mapinit and mappaused components

* Remove "SHUTTLES" from the allergy list in ion_storm.yml (#36317)

with accordance pull 35751, removes the "SHUTTLES" as a possible allergy to prevent possible round stall

* Reduce storage implant to a 2x L shape/6 slots (#36272)

Change subdermal implant

* Automatic changelog update

* Add additional Biome Markers. (#36300)

* init

* slight value tweaks

* few more

* move DeviceLinking events to shared (#36307)

move events

* Displacement Map Visualizer update (#35952)

Update Displacement Map Visualizer.lua

* remove evil shitcode from randommetadata (#36324)

* remove evil

* fix non-localizeddataset uses

---------

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

* Centcomm death rattle implant (#36113)

* behold!

* minor name change 👍

* Remove fields 👍

* Changes it to parent off DeathRattleImplant

* Adds implants round start and fixes hypothetical bug

* Update Resources/Prototypes/Entities/Mobs/Player/humanoid.yml

As per slarticodefast's suggestion

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Remove toxins from the chemical synthesis kit description (#36323)

Alter the description of the chemical synthesis kit to no longer include any false hopes of toxins

* Automatic changelog update

* Fix blocked UI interaction on unpowered devices (#36319)

init

* Automatic changelog update

* Update Credits (#36337)

Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>

* Salvage melee weapon tweaks (#35914)

* Minor salvage melee tweaks.

* Minor salvage melee tweaks.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>

* Automatic changelog update

* Make Health Analyzer scan range nullable and adjust admin PDA (#36347)

* Modify .cs and admin pda

* enhance comment

* Automatic changelog update

* Allow Aghosts to load biomes. (#36325)

* init

* review

* Automatic changelog update

* Make `RandomMetadata` properly support localization (#36343)

* Make _outputSegments readonly

* Remove mystery character

* Use Fluent instead of string concatenation

* Adjust format

* Convert existing content

* Don't need these anymore

* Docs

* predict IgnitionSourceComponent (#36310)

* PREDICTION

* comment

* don't overwrite event args

* totally not a web edit

* intn't

* Make spam delivery headers easier to reuse (#36332)

Convert nanotrasen, syndicate, and alternate timeline nanotrasen headers into reusable terms

* Make FlammableTileReaction additive instead of multiplicative. (#36387)

Make FlammableTileReaction additive

* New security box fills, renamed and replaced sechud box icon (#35057)

* secglasses and sechud icons, new box fills

* sunglasses box

* fixes indentation

* Automatic changelog update

* Allow sound to play at the start of anomaly supercritical animation (#36260)

* Add datafield to AnomalyComponent to play a sound when an anomaly enters supercriticality

* use Entity<T> pattern

* use implicit default for nullable

* don't forget to resolve the AnomalyComponent...

* Add comment for StartSupercriticalEvent "ent" parameter

* use implicit casts from Entity<T> to EntityUid

* StartSupercriticalEvent requires AnomalyComponent to resolve

* Printable vials (#36380)

* add vial recipe

* adding vial to lathe recipes

* adjusted vial production cost

* Reduced glass cost for vials

* Automatic changelog update

* DocumentParsingManager: Ignore XML comments in guidebook pages (#35506)

* Parse XML comments

* Use var instead of typed for variable declaration

---------

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>

* fix rmobjective command and add completion options (#36396)

fix rmobjective command

* Automatic changelog update

* Fix `lsobjectives` target player logic (#36398)

* Fix lsobjectives target player logic

* Logic 3.0

* Fix matchstick prediction issues (#31418)

* First commit

* Minor fixes please ymal error begone

* If this fixes it

* Last chance

* How

* Forgot

* First fixes

* Added correct component tags

* Minor cleanup

* Address review!

* Namespace change

* Fix yaml yelling

* Changes

* Update namespace

* Removed the unneeded files

* Add inhands for Holoprojectors, labelers, cone, brb sign, fartbag (#36036)

* Add inhands for Holoprojectors, labelers, cone, brb sign, whoopie cushion

* Update Resources/Textures/Objects/Devices/Holoprojectors/atmos.rsi/meta.json

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Automatic changelog update

* Replaced Sterile Swabs in NutriMax with a Swab Dispenser (#36399)

Replaced Sterile Swabs with Swab Dispenser in NutriMax

* Automatic changelog update

* convex fixes

* Mark the spider clan explosive as major contraband (#36421)

Even though it's an unsanctioned explosive device, it's currently
not considered contraband. This patch adds BaseMajorContraband to it.

* Automatic changelog update

* job counts for each map

* remove duplicate CE entry

* Predict inflatable barriers verb (#32420)

* First commit

* evil

* Made it not do weird things

* address review!

* Automatic changelog update

* Feature/shader radial menu (#35152)

* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

* feat: simple radial menu prototype for easier creation

* refactor: cleanup, restored emote filtering, button models now have class hierarchy

* refactor: remove usage of closure from 'outside code'

* refactor: remove non existing type from UiControlTest

* refactor: remove unused using

* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu

* refactor: whitespaces

* refactor: subscribe for dispose on existing radial menus

* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu

* fix: AI door menu now can be closed by verb if it gets unpowered

* overlay and its registration

* radial menu shader but it requires wierd offset

* remove unused file

* smol cleanup

* remove unused code

* neat internal subsctors in radial menu shaders

* refactor finalize visual style

* comments, simplify, extract variable and other minor refactors on radial-menu shader

* refactor: extract more data from radial menu with sector to radial container for shader drawing

* replaced DrawSeparators for RadialMenuTextureButtonWithSector with DrawBorder (no reason to make them separate), also now colors are properly applied

* refactor: simplify hiding border, extended xml-doc for simple radial menu settings

* refactor: remove duplication of radial menu shaders, use ValueList to collect ClearExistingChildrenRadialButtons buttons to remove

* refactor: remove linq

* fix: fix AI radial action serialization using invalid type

* refactor: fix duplicate ShowDeviceNotRespondingPopup for AI by properly checking if it can interact

* refactor: removed *if* blocks from shader, replaced with branchless logic

* refactor: whitespaces, changed list to array in simple radial button preparing methods

* fix: merge duplicated code

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>

* Fixed the empty mass scanner still being a normal item, whoops. (#36340)

* Fixed the empty mass scanner still being a normal item, whoops.

* Fixed parenting duplication and issues with item state.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>

* remove mind roles from EntityWhitelist (#36089)

* remove mind roles from EntityWhitelist

* remove redundant dependency

* Automatic changelog update

* Various UI warnings cleanup (#36169)

* Various UI warnings cleanup

* Revert unnecessary change

* Redoing SpriteSystem as it's non-injectable

* Missed one

* Better entity instantiation

* General cleanup of warnings changes

* Wrong class name!

* Lower minimum size of absorbent item status (#35804)

80f2dc6dd3 fixed BoxContainer so that the actual specified MinimumSize gets used. This is a problem because for the absorbent item status it's way too high so it looks silly.

* Update submodule to 251.0.0 (#36435)

* Fix power cells/cages counting for laser weapon bounties (#36431)

fix cargo bounty bug

* Automatic changelog update

* Holopad fixtures bugfix (#36341)

Initial commit

* Automatic changelog update

* Add cooked dragon steak and cutlets (#36273)

* Add cooked dragon steak and cutlets

* If it's worse for you it's even more of a delicacy

* Attribution

* Automatic changelog update

* Disable mob pushing

Part of maint meeting

* Revert "Feature/shader radial menu" due to shader issue (#36470)

* Hotfix for water/fuel tank fixtures (#36527)

Sharing the same fixture layer as walls causes dragged water/fuel tanks to be blocked by things that they really shouldn't be, such as lights and holopads

Being PRed as a hotfix in order to fully finalize #36341

* [HOTFIX] Sprite fade review #36509 (#36552)

cherry-picked

* Clarify "purple text" characters in rules & readd Space Law non-restricted item seizure (#36414)

Initial commit

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: James <40279265+ViceEmargo@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: J <billsmith116@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Avery Dobbins <avery.dobbins@gmail.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: Fildrance <fildrance@gmail.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: YoungThug <ramialanbagy@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: Radezolid <snappednexus@gmail.com>
Co-authored-by: MisterImp <101299120+MisterImp@users.noreply.github.com>
Co-authored-by: Kirby <205904127+154942@users.noreply.github.com>
Co-authored-by: qwerltaz <msmarcinpl@gmail.com>
Co-authored-by: Polter <62557990+PolterTzi@users.noreply.github.com>
Co-authored-by: āda <ss.adasts@gmail.com>
Co-authored-by: pathetic meowmeow <uhhadd@gmail.com>
Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com>
Co-authored-by: Luna "YuNii" Henrich <yuniivrc+github@proton.me>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: TheBlueYowie <the.blue.yowie@hotmail.com>
Co-authored-by: BWTCK <193008538+BWTCK@users.noreply.github.com>
Co-authored-by: Super <84590915+SuperGDPWYL@users.noreply.github.com>
Co-authored-by: KamTheSythe <kamil.dolowiec01@gmail.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: UpAndLeaves <92269094+Alpha-Two@users.noreply.github.com>
Co-authored-by: Phil <91200802+PhilIngham@users.noreply.github.com>
Co-authored-by: RedBookcase <crazykid1590@gmail.com>
Co-authored-by: RedBookcase <Usualmoves@gmail.com>
Co-authored-by: Minemoder5000 <minemoder50000@gmail.com>
Co-authored-by: Quantum-cross <7065792+Quantum-cross@users.noreply.github.com>
Co-authored-by: Nyxilath <colton.malone@gmail.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: Tiniest Shark <head.rebel@yahoo.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: Alex Parrill <alex.parrill@col32.net>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2025-04-15 01:00:51 +03:00
Brassica Prime
05ee55fa3e Edited the elite hardsuit description to be more accurate (#33900) 2025-04-14 14:46:07 -07:00
Ed
5420469d62 Merge remote-tracking branch 'upstream/stable' into ed-upstream-sync
# Conflicts:
#	Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs
2025-04-15 00:44:29 +03:00
PJBot
c753ec660c Automatic changelog update 2025-04-14 21:03:55 +00:00
ArtisticRoomba
6c2c5935ed fix RangeNumberSelector to actually be inclusive (#36155)
* fix RangeNumberSelector to actually be inclusive

* Convert all random number stuff to randomint and prune unused code

* another heisentest???

* another heisentest after a heisentest. im going to lose it.
2025-04-14 17:02:49 -04:00
PJBot
0de0ef6065 Automatic changelog update 2025-04-14 20:46:44 +00:00
SlamBamActionman
61fd345214 Increase chest rig explosive resistance (#35889)
Improve chest rig explosive resistance
2025-04-14 22:45:38 +02:00
PJBot
3301adf6e1 Automatic changelog update 2025-04-14 20:24:18 +00:00
SlamBamActionman
140963852a Remove deathrattle functionality from tracking implants (#35995)
De-rattle
2025-04-14 22:23:11 +02:00
metalgearsloth
3cc544705c Use approx NPC steering checks (#36110)
Much faster lookup and shouldn't affect final result.
2025-04-14 22:15:16 +02:00
J
22639a3cdf Ghost spring cleaning (#36194)
* Ghost warnings cleanup

* Undo incorrect changes

* Removing whitespace
2025-04-14 22:12:04 +02:00
PJBot
3be4322d1b Automatic changelog update 2025-04-14 19:11:17 +00:00
metalgearsloth
9d03081fda Predict DamagePopup (#36547)
* Predict DamagePopup

Pretty easy one.

* cleanup and localize

* oops

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-14 21:10:09 +02:00
ScarKy0
ec31847e9e Packed Dept Economy (#36560) 2025-04-14 12:06:16 -07:00
PJBot
04e5896345 Automatic changelog update 2025-04-14 18:58:56 +00:00
Southbridge
1947b47d92 Amber Station - Small Improvements (#36335) 2025-04-14 11:58:21 -07:00
Голубь
3dfaac808a Add the knock spell to the grimoire (#36562) 2025-04-14 14:57:47 -04:00
Emisse
d10a35df11 Elkridge - Department Request Consoles and Rebuilt AI Core (#36534) 2025-04-14 11:54:34 -06:00
Tayrtahn
110ed2736f Convert spam letters to a LocalizedDataset (#36393)
* Convert spam letters to a LocalizedDataset

* Error -> warning

* Comments

* Add migrations for old spam mail entities
2025-04-14 19:38:21 +02:00
Milon
e7dfb66def update editorconfig docstring indentation (#36511)
* Update .editorconfig

* webedit ops
2025-04-14 19:07:21 +02:00
PJBot
6350aef4f5 Automatic changelog update 2025-04-14 16:51:49 +00:00
SlamBamActionman
18bedfec0a Add implant names to implanters (#36555)
* Initial commit

* Add tips!
2025-04-14 18:50:42 +02:00
PJBot
4df6212b19 Automatic changelog update 2025-04-14 16:00:01 +00:00
SlamBamActionman
69f9d531f9 Add SolutionContainerVisuals to the hypospray (#30703)
* Hypovisuals

* Syndie hypo

* Include attribution
2025-04-14 08:58:55 -07:00
PJBot
b079af1192 Automatic changelog update 2025-04-14 15:57:20 +00:00
Ben
b01ca8e57e fix #31963: Stopped climbing movent while in containers (#32033)
* hack to resolve offset issues while in locker

* moved movment cancel from lerp to init

* Added DoAfter canceling for buckling and stowing

* changed container event & removed inventory check from climb initation

* resolved integration test fail

* style

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-14 17:56:14 +02:00
PJBot
c4b4063cb9 Automatic changelog update 2025-04-14 15:39:05 +00:00
eoineoineoin
7c4b34c1de Command to open chatbox in a new window (#33548)
* Command to open chatbox in a new window

* Add command for users with AdminChat permission

* Add command button to admin tools window
2025-04-14 17:37:58 +02:00
PJBot
a1439c5637 Automatic changelog update 2025-04-14 15:28:32 +00:00
BramvanZijp
cf14cb3eb5 The long overdue downfall of stun meta - Stamina resists on Nukie & ERT Suits. (#35580)
* Add stamina damage resistance

* Probably starting a civil war within the community.

* Tweak some values, my chart was outdated.

* Tone down the values

* Allow a way to bypass the resistances, which forks downstream can use.

* Apply suggestions from code review

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Comment out the changes to non-deathsquad suits.

* minor text fix e

* review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-14 17:27:26 +02:00
slarticodefast
8700d10f98 Stable merge (#36557) 2025-04-14 17:06:45 +02:00
PJBot
58df742a64 Automatic changelog update 2025-04-14 15:03:33 +00:00
Alfred Baumann
5e74afc72c Fix IDs without station records not being able to have nonstandard contents (#34921)
* fix ID console resetting to passenger

* review

* whoopsie! whitespace

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-14 17:02:27 +02:00
PJBot
3cc917f1a8 Automatic changelog update 2025-04-14 14:47:05 +00:00
slarticodefast
f1d938ceb6 fix inspect mind verb (#36558) 2025-04-14 16:45:57 +02:00
PJBot
69aa245428 Automatic changelog update 2025-04-14 14:35:27 +00:00
metalgearsloth
dfa5ccf625 Fix shuttle arrival visualizer (#35772)
* Fix shuttle arrival visualizer

It was at a fixed spot but if the target is rotating it wasn't handled.

* hew

* Fixes
2025-04-15 00:34:18 +10:00
Tornado Tech
52f31e4403 refactor: Magic system (#1138)
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-04-14 17:32:41 +03:00
creamybag
e7cd69e383 Carcat sprites fix (#1176)
* CarcatSpritesFix

* fix
2025-04-14 17:16:08 +03:00
SlamBamActionman
961d2cfdef Clarify "purple text" characters in rules & readd Space Law non-restricted item seizure (#36414)
Initial commit
2025-04-14 16:12:03 +02:00
SlamBamActionman
3b04d5a66c [HOTFIX] Sprite fade review #36509 (#36552)
cherry-picked
2025-04-14 16:00:03 +02:00
Nim
b7e4fbb74a Amulets are jewellery (#1126)
* amulets are jewellery

* transfer textures
2025-04-14 14:50:07 +03:00
Nim
85204144fb magic modifier (#1103) 2025-04-14 14:45:36 +03:00
metalgearsloth
595b1f5073 Fix autosave path (#36352)
Asserts on debug due to non-standard path.
2025-04-14 13:41:41 +03:00
creamybag
f2520fd468 beards 2.0 (#1182) 2025-04-14 13:18:38 +03:00
Deerstop
e7d20275d3 fixed some cameras, removed apc from xenobio 2025-04-14 19:49:02 +10:00
PJBot
dc8120b02b Automatic changelog update 2025-04-14 09:01:54 +00:00
Pieter-Jan Briers
843d79be5f Fire extinguishers can now extinguish items, including when held/worn (#36267)
* Fire extinguishers now put out candles

This did not actually require any changes to flammable or extinguishers directly, the only necessary changes were to make the collision actually work.

Vapor entities (also used for fire extinguishers) now have a collision layer, so they can hit items.

Added a new FlammableSetCollisionWake component to actually enable collision on candles while they are lit, because otherwise CollisionWake on entities gets in the way too.

* Extinguishing items is now relayed to held/worn items

This means held candles get extinguished too.

Involved moving the core logic of ExtinguishReaction into an event so that it can be relayed via the existing hand/inventory relay logic.

* Add helper functions for subscribing to relayed events.

Use these in FlammableSystem

* Make extinguishers work on cigarettes too

A bunch of renaming to make the rest of my code work with SmokableComponent

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2025-04-14 19:00:47 +10:00
PJBot
d0b4f4744c Automatic changelog update 2025-04-14 08:59:48 +00:00
K-Dynamic
25902b5dd0 Change colour tone of blue and green crayons (#36532)
* change crayon lightblue to blue

* recolour both green and blue to match crayons
2025-04-14 18:58:41 +10:00
PJBot
b7a630f06d Automatic changelog update 2025-04-14 06:35:26 +00:00
YoungThug
dc41bd33f3 Binocular Neck Slots! (#35759)
* binoculartweaks

* WhoNeedsArtApprovalQuestionMark

* Roomba Can You Merge Now?
2025-04-13 23:34:20 -07:00
PJBot
e54f8c43df Automatic changelog update 2025-04-14 05:38:58 +00:00
K-Dynamic
ae3918c268 Adds 10% slowdown to syndicate commander hardsuit (#35805)
commander hardsuit slowdown
2025-04-13 22:37:51 -07:00
Deerstop
9ce1cac393 added department request consoles, rebuilt AI core 2025-04-14 15:24:33 +10:00
chromiumboy
87b6eb55e5 Hotfix for water/fuel tank fixtures (#36527)
Sharing the same fixture layer as walls causes dragged water/fuel tanks to be blocked by things that they really shouldn't be, such as lights and holopads

Being PRed as a hotfix in order to fully finalize #36341
2025-04-13 22:02:29 -07:00
Leon Friedrich
4f8f2de561 Remove invalid error logging in HideLayerClothingSystem (#36529) 2025-04-14 14:56:37 +10:00
metalgearsloth
ed9958d838 Update submodule to 253.0.0 (#36528) 2025-04-14 14:27:20 +10:00
J
7e4045d274 Admin spring cleaning (#36190)
* Cleanup warnings in administration

* Job command cleanup

* Reverting already implemented changes
2025-04-14 14:06:36 +10:00
J
2024a29c60 Changes ParallaxGenerator to use FastNoiseLite (#36214)
Instead of the NoiseGenerator we use FastNoiseLite
If I'm correct, after this we'll be able to remove NoiseGenerator and FastNoise from the codebase entirely!
2025-04-14 14:03:49 +10:00
J
8fea9cc30b Entity effects warnings cleanup (#36166) 2025-04-14 13:58:53 +10:00
J
afb0d7efca Worldgen spring cleaning (#36199)
* Worldgen warnings cleanup

* DebrisFeaturePlacerSystem general cleanup
2025-04-14 13:36:54 +10:00
PJBot
5cd38188bb Automatic changelog update 2025-04-14 01:34:11 +00:00
TeenSarlacc
1be56fedf2 Added a crate of shark plushies to cargo (#36338)
* shark time

* cargo

* unfucked a typo maybe

* unfucked a fuckup

---------

Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
2025-04-14 03:33:04 +02:00
PJBot
fe2c40f105 Automatic changelog update 2025-04-14 01:23:00 +00:00
Unisol
021ad0f8e0 New deathmatch map: DM01 Entryway (#31533)
* added plastitanium walls and windows

* Added DM01 Entryway to pool of deathmatch arenas

* replaced non-occluding walls with occluding ones

* added more details and fluff to empty rooms and hallways; added floor drains around the map

* Fixed failing integration test

* fixed YML syntax error causing test failures. What kind of retard thought that using whitespace as structural syntax is a good idea?

* minor map changes

---------

Co-authored-by: Unisol <pavelyakushevich@gmail.com>
2025-04-13 18:21:53 -07:00
Myra
b7a05d7c76 Stable merge (#36520) 2025-04-14 00:24:24 +02:00
metalgearsloth
16c78aa8ee Sprite fade review (#36509)
* Sprite fade review

* Skip non-hard fixtures

Probably fine.
2025-04-14 01:22:05 +03:00
Pieter-Jan Briers
7bb35889ce Revert "Feature/shader radial menu" due to shader issue (#36470) 2025-04-13 23:55:27 +02:00
Ed
5df9a526f0 new horns 2025-04-13 23:27:24 +03:00
Myra
c9d71a4e45 Disable mob pushing (Stable -> Master) (#36519) 2025-04-13 22:07:18 +02:00
Myra
1741f40f8a Disable mob pushing
Part of maint meeting
2025-04-13 22:04:52 +02:00
Ed
4a98d86330 wastelands (#1181) 2025-04-13 22:43:47 +03:00
Errant
8e911d96f9 antag role placeholder loc text (#36514) 2025-04-13 20:15:21 +02:00
Ed
aef6eb155e back to ru cbt 2025-04-13 21:06:44 +03:00
Ed
78c61c3094 ssss 2025-04-13 21:02:25 +03:00
PJBot
3a6085a10a Automatic changelog update 2025-04-13 17:24:41 +00:00
K-Dynamic
232ade99a9 Remove flash payload from stinger grenades (#36394)
Remove flash payload from stinger
2025-04-13 19:23:35 +02:00
Ed
5646e419bc Update Fear.yml 2025-04-13 19:51:20 +03:00
PJBot
66f1316616 Automatic changelog update 2025-04-13 16:11:02 +00:00
Leon Friedrich
6af4a4d9b8 Fix user interface interaction validation (#36480) 2025-04-14 02:09:56 +10:00
deltanedas
b619d4fae1 add some error logging to exped generation (#32867)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2025-04-13 18:03:13 +02:00
PJBot
7da4804ffb Automatic changelog update 2025-04-13 15:52:42 +00:00
beck-thompson
05f9e6d28e ID card computer bug fixed (And made it more fun!) (#32308)
* First commit

* More feature yay

* comments

* good

* silly me

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-13 17:51:35 +02:00
PJBot
022a383a58 Automatic changelog update 2025-04-13 15:30:19 +00:00
ArchRBX
d2bfa2fdda Examining now shows Coords on Handheld GPS, Coord readout update frequency increased (#31814)
* initial commit

* fixed LoadSaveTicksSaveBagel failure

* fixes issues raised in beck's review, yay!

* remove redundant variable

* removed delay on coordinate update, removed system update loop

* changed delay from 0.2s to 0.5s as travelling at high speeds would make it kinda illegible

* 0.35s seems to be the sweet-spot

* fixes merge conflicts

* remove unused dependencies

* review

---------

Co-authored-by: archrbx <punk.gear5260@fastmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-13 11:29:13 -04:00
PJBot
7d1ab10da4 Automatic changelog update 2025-04-13 15:23:01 +00:00
ScarKy0
cfbf620e3f Condensed gases can now be metabolized. (#31648)
* Condensed gasses can now be metabolized.

* Made condensed frezon weaker

* Liquid frezon nerf
2025-04-13 17:21:55 +02:00
Verm
8084f48328 Fix sometimes still not dropping pulls after crit/death (#31637) 2025-04-13 16:52:25 +02:00
PJBot
cebc73fe0c Automatic changelog update 2025-04-13 14:25:18 +00:00
K-Dynamic
701f480051 Neutralised anomaly infections drop inert cores (#36503)
adds inert core prototypes
2025-04-13 17:24:11 +03:00
PJBot
bb09920174 Automatic changelog update 2025-04-13 13:23:44 +00:00
Nemanja
12b75beeab Departmental Economy (#36445)
* Cargo Accounts, Request Consoles, and lock boxes

* Funding Allocation Computer

* final changes

* test fix

* remove dumb code

* ScarKy0 review

* first cour

* second cour

* Update machines.yml

* review

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-13 15:22:36 +02:00
Ed
5f78b72763 ParallaxControl UI Dehardcode (#36071)
* Parallax Control Improve

* Update MainMenuControl.xaml

* PJBControl.cs
2025-04-13 22:44:44 +10:00
Ed
6f665266c4 s (#1179) 2025-04-13 15:37:00 +03:00
Ed
ac541b63ef new round leave system (#1178)
* round leave

* maps update
2025-04-13 15:36:41 +03:00
Viator-MV
0f37c24df0 fix (#1177) 2025-04-13 14:48:33 +03:00
ruddygreat
f61bbebb7f Fixes hitscan weapons not respecting reflectTypes (#34203)
* removes otherwise unused events that broke reflectType

* that last one broke everything. this actually fixes it

* minor cleanup

* move some stuff around for optimisation

---------

Co-authored-by: Ruddygreat <ruddygreat1@gmail.com>
2025-04-13 21:42:03 +10:00
PJBot
555c0d3437 Automatic changelog update 2025-04-13 10:36:37 +00:00
KingFroozy
736a51962e Skirt of Life resprite + white shoes to paramedic loadout (#32227)
* skirt rises

* white shoes

* remove from loadout
2025-04-13 12:35:28 +02:00
Ed
e968c7a9b8 wendigo tweak 2025-04-13 12:34:03 +03:00
PJBot
0940f58cc3 Automatic changelog update 2025-04-13 06:30:12 +00:00
metalgearsloth
83aaa73f0e Fix docks clipping on shuttle nav (#36348)
* Fix docks clipping on shuttle nav

UI scale casualty.

* review
2025-04-13 16:29:05 +10:00
github-actions[bot]
f7ad043239 Update Credits (#36499)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-04-13 03:52:03 +02:00
Super
38daa81754 Changed misleading line in the Traitors guidebook (#36416)
fym sec can access it it's against the rules to use an uplink as command/sec
2025-04-13 02:25:16 +02:00
PJBot
15fdb01895 Automatic changelog update 2025-04-12 23:28:06 +00:00
Quantum-cross
4d41e720bb Fix for anomaly double explosion sound and sprite scaling flicker before removal (#36489)
* Fix anomaly supercrit explosion sound playing twice.

* Fix so that the supercritical anomaly doesn't scale back to normal visually before removal.
2025-04-13 01:27:00 +02:00
Ed
26d81b684b Weather refill (#1175)
* refillable by weather

* fix
2025-04-13 01:01:22 +03:00
UpAndLeaves
fa09c540a2 Dehardcode zombie damage values (#36494)
* Quick, send it!

* no spaces, no fun

* Noooo I have to adhere to good code standards
2025-04-12 13:43:31 -07:00
PJBot
ba6995fa82 Automatic changelog update 2025-04-12 20:01:54 +00:00
Errant
0c6e21dec2 PlayerPanel Follow button (#36466)
* Follow button

* remove event stuff
2025-04-12 22:00:46 +02:00
Ed
51b3492cea Update wendigo.yml 2025-04-12 22:01:14 +03:00
Ed
517bc5418b Wendigo demiplane antag (#1174)
* wendigo

* ritual3

* Update sky_lightning.yml
2025-04-12 17:32:53 +03:00
Tayrtahn
76e72893c9 Add warnings when TagSystem methods are called with string literals (#36281)
Apply ForbidLiteralAttribute to all appropriate TagSystem methods
2025-04-12 16:18:31 +02:00
PJBot
a6a29e2554 Automatic changelog update 2025-04-12 13:38:15 +00:00
slarticodefast
fca83f9924 add debug verb for inspecting mind entities (#36474)
* mind verb

* new line
2025-04-12 15:37:07 +02:00
Viator-MV
ee30ae1341 frigid coast (#1173)
* frigid coast

* fix

* Update snow.yml

* Update default.yml

* Update Frigid_Coast.yml

---------

Co-authored-by: Ed <edwardxperia2000@gmail.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-04-12 16:35:41 +03:00
PJBot
4e5a73a447 Automatic changelog update 2025-04-12 09:06:22 +00:00
Pieter-Jan Briers
453e85a899 Lobby duration is now 5 minutes on wizden (#36476)
The default value is 2 minutes 30 seconds, which was set many years ago. The game is different now, people need time to stretch their legs or get some water.

This was prompted by an internal discussion about unhealthy playing habits in the game.
2025-04-12 11:05:13 +02:00
Ed
3c27e0ed99 Revert "Another Try" (#1170)
* Revert "Another Try (#1167)"

This reverts commit 355fc410a3.

* Update EntityTest.cs

* Revert "Update EntityTest.cs"

This reverts commit 1f75981e59.
2025-04-12 12:03:18 +03:00
Ed
e64c8f3d4f Dead tree (#1172)
* farming rebalance

* Update base.yml

* Update CP14FarmingSystem.Resourse.cs

* dead tree

* Update scattering_grenades.yml
2025-04-12 11:43:45 +03:00
Emisse
0b48cbe5e4 Increase Bagel's secoff job slots to 6 (#36434) 2025-04-12 01:37:50 -06:00
Pieter-Jan Briers
e6e60dead4 Revert "Feature/shader radial menu" due to shader issue (#36470) 2025-04-11 23:30:52 +02:00
PJBot
86620dbe6c Automatic changelog update 2025-04-11 21:05:44 +00:00
Errant
4ecdc17bb8 PlayerPanel username copy fix (#36468)
weh
2025-04-11 23:04:37 +02:00
Ed
da5190ae60 Farming rebalance (#1171)
* farming rebalance

* Update base.yml

* Update CP14FarmingSystem.Resourse.cs
2025-04-11 23:45:03 +03:00
Tayrtahn
f7850a3c0b Fix ninja battery drain debug assertion (#36461)
Fix ninja battery drain using wrong uid
2025-04-11 19:42:54 +02:00
Silicon14
054a58d199 Fixed phalanxamines guidebook entry. (#36458)
* fixed phalanxamines guidebook entry

* Update Resources/Locale/en-US/reagents/meta/medicine.ftl

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-04-11 19:02:53 +02:00
Ed
355fc410a3 Another Try (#1167)
* tick

* Update simple.yml

* revert deep

* revert straw

* revert surko

* revert fix

* revert beards

* Revert "revert surko"

This reverts commit 9ea597414a.

* Revert "revert fix"

This reverts commit 910da9d6e6.

* Revert "revert beards"

This reverts commit a941a41788.

* Revert "revert deep"

This reverts commit 8dd25a4b96.

* Reapply "revert deep"

This reverts commit cbde613021.
2025-04-11 19:53:00 +03:00
metalgearsloth
6b96fb45a6 Update submodule to 252.0.0 (#36462) 2025-04-12 02:10:54 +10:00
Milon
3a6441932e Directional BoundUserInterfaceMessageAttempt content edition (#36320) 2025-04-12 01:33:32 +10:00
TakoDragon
dc37ab7c6d RD Windoor (#36377)
rd-windoor
2025-04-11 15:13:17 +02:00
lunarcomets
fd7413f51a predict borg selection (#36430)
do the thing
2025-04-11 14:17:11 +02:00
Damn Feds
edb5dd0b30 fixes removed annotations 2025-04-11 22:43:11 +12:00
Damn Feds
d66c59d38d Merge branch 'master' into bagel-sec-count 2025-04-11 22:41:46 +12:00
Nemanja
1540880eb2 Predict Labels (#36406)
* Predict Labels

* nitpicks
2025-04-10 22:19:48 -07:00
PJBot
b812045d64 Automatic changelog update 2025-04-11 04:59:40 +00:00
Nox
680544a53a Descriptions for .45 magnum (#36383)
* Initial commit: added descriptions to revolvers, N1984, speedloaders, cartridges, and ammo boxes.

* Updated descriptions in accordance with Slarti and Roomba's suggestions.

* Oops, did a misclick!

* Updated Mateba description slightly

* Slightly updated pirate revolver description

* Updated Mateba description

* Updated Mateba description again

* Fixed a last occurence of restricted in AP bullets
2025-04-10 21:58:33 -07:00
PJBot
3a27de3f7e Automatic changelog update 2025-04-11 02:16:33 +00:00
Nox
4006914e35 Descriptions for .25 caseless (#36385)
* Initial commit: added descriptions to ammo boxes, cartridges, and magazines, and modified the cobra pistol's description.

* Updated magazine descriptions slightly

* Updated descriptions according to Roomba's feedback

* Minor updates

* Minor fixes

* Minor touch-up

* I should stop making tiny changes.

* Update Resources/Prototypes/Entities/Objects/Weapons/Guns/Pistols/pistols.yml

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-11 04:15:26 +02:00
PJBot
6d2f5a6844 Automatic changelog update 2025-04-11 02:11:10 +00:00
Dinner
3f0ca9b786 Fix gas mixers and pneumatic valves being hidden by floor tiles (#36428)
fix gas mixers and pneumatics valves being hidden by floor tiles
2025-04-11 04:10:03 +02:00
PJBot
b2c05b807d Automatic changelog update 2025-04-11 02:07:53 +00:00
YoungThug
97e8c4d506 Wizard added in all at once! (#36408)
SpeedMergePlease
2025-04-10 19:06:47 -07:00
Tobias Berger
812d47bb2d Choose correct state when rendering entities (#36409) 2025-04-11 03:56:02 +02:00
lzk
262e7ae904 fix cargo products (#36447) 2025-04-11 03:15:20 +02:00
PJBot
1100807944 Automatic changelog update 2025-04-11 01:13:20 +00:00
Ethan_k
0977b74294 Zombies can no longer Suicide take 2 (#36453)
* I did it right

* Update Content.Server/Zombies/ZombieSystem.Transform.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-11 03:12:13 +02:00
PJBot
55bc0058f4 Automatic changelog update 2025-04-11 00:58:48 +00:00
RedBookcase
05785e7d45 Made the mosin major contraband, fixed uplink name. (#36446)
Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-04-11 02:57:41 +02:00
PJBot
be6753a9c3 Automatic changelog update 2025-04-11 00:55:32 +00:00
Nemanja
2769de7b5d Add Aluminum Source (Cans) (#36449)
* aluminium cans

* shhhhh
2025-04-11 02:54:24 +02:00
Tiniest Shark
d50703d7a4 Hypospray Inhand Fix (#36452)
* fixed the cmo hypospray inhands

* whoops it was the gorlex one too
2025-04-11 02:53:31 +02:00
PJBot
3c5877edb6 Automatic changelog update 2025-04-10 22:23:24 +00:00
SlamBamActionman
5975853447 Decrease Syndicate raid suit size, add bundle backpack (#35890)
Decreased Syndicate raid suit size, add bundle backpack
2025-04-10 15:22:17 -07:00
Myra
a96fd7e08f New "PR made on master" message (#36441)
* New "PR made on master" message

* Update close-master-pr.yml

* Sponsored by languagetool

* Update close-master-pr.yml

* Update close-master-pr.yml
2025-04-10 13:10:26 -07:00
Silicon14
ddaa62c685 Change ambuzol plus guidebook entry to match recipe. (#36444)
change ambuzol plus guidebook entry to match recipe
2025-04-10 22:04:10 +02:00
Kirby
ee90926ccd Changes the name of the Detectives suitskirts from "... suit" to "... suitskirt" (#36436)
* Changes the name of the detectives skirts

* Whoops. Didn't mean to delete that
2025-04-10 12:34:48 -07:00
Ed
948d711336 Bunch of bugfixes (#1165)
* watcher fix

* fix #1162

* fix #1111

* make watcher move smoothly

* s

* Delete test_xeno.yml
2025-04-10 22:28:50 +03:00
Emisse
418b931ab8 Job count annotation for each map yml file (#36433) 2025-04-10 11:43:52 -06:00
PJBot
32e6203a9d Automatic changelog update 2025-04-10 16:00:25 +00:00
SlamBamActionman
7f6756135b Add cooked dragon steak and cutlets (#36273)
* Add cooked dragon steak and cutlets

* If it's worse for you it's even more of a delicacy

* Attribution
2025-04-10 08:59:18 -07:00
PJBot
08679be702 Automatic changelog update 2025-04-10 14:19:42 +00:00
chromiumboy
00ab7775d0 Holopad fixtures bugfix (#36341)
Initial commit
2025-04-10 16:18:36 +02:00
PJBot
4862f072c2 Automatic changelog update 2025-04-10 13:56:20 +00:00
ArtisticRoomba
c6581e655c Fix power cells/cages counting for laser weapon bounties (#36431)
fix cargo bounty bug
2025-04-10 15:55:13 +02:00
metalgearsloth
4b5b7a19a1 Update submodule to 251.0.0 (#36435) 2025-04-10 21:49:14 +10:00
Pieter-Jan Briers
25b620de23 Lower minimum size of absorbent item status (#35804)
80f2dc6dd3 fixed BoxContainer so that the actual specified MinimumSize gets used. This is a problem because for the absorbent item status it's way too high so it looks silly.
2025-04-10 20:48:13 +10:00
J
3c307f3b36 Various UI warnings cleanup (#36169)
* Various UI warnings cleanup

* Revert unnecessary change

* Redoing SpriteSystem as it's non-injectable

* Missed one

* Better entity instantiation

* General cleanup of warnings changes

* Wrong class name!
2025-04-10 20:47:05 +10:00
PJBot
48004bfad7 Automatic changelog update 2025-04-10 10:45:17 +00:00
slarticodefast
f6bfce38da remove mind roles from EntityWhitelist (#36089)
* remove mind roles from EntityWhitelist

* remove redundant dependency
2025-04-10 20:45:12 +10:00
RedBookcase
dc6ed30ec8 Fixed the empty mass scanner still being a normal item, whoops. (#36340)
* Fixed the empty mass scanner still being a normal item, whoops.

* Fixed parenting duplication and issues with item state.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-04-10 20:44:06 +10:00
Fildrance
56710697a9 Feature/shader radial menu (#35152)
* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

* feat: simple radial menu prototype for easier creation

* refactor: cleanup, restored emote filtering, button models now have class hierarchy

* refactor: remove usage of closure from 'outside code'

* refactor: remove non existing type from UiControlTest

* refactor: remove unused using

* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu

* refactor: whitespaces

* refactor: subscribe for dispose on existing radial menus

* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu

* fix: AI door menu now can be closed by verb if it gets unpowered

* overlay and its registration

* radial menu shader but it requires wierd offset

* remove unused file

* smol cleanup

* remove unused code

* neat internal subsctors in radial menu shaders

* refactor finalize visual style

* comments, simplify, extract variable and other minor refactors on radial-menu shader

* refactor: extract more data from radial menu with sector to radial container for shader drawing

* replaced DrawSeparators for RadialMenuTextureButtonWithSector with DrawBorder (no reason to make them separate), also now colors are properly applied

* refactor: simplify hiding border, extended xml-doc for simple radial menu settings

* refactor: remove duplication of radial menu shaders, use ValueList to collect ClearExistingChildrenRadialButtons buttons to remove

* refactor: remove linq

* fix: fix AI radial action serialization using invalid type

* refactor: fix duplicate ShowDeviceNotRespondingPopup for AI by properly checking if it can interact

* refactor: removed *if* blocks from shader, replaced with branchless logic

* refactor: whitespaces, changed list to array in simple radial button preparing methods

* fix: merge duplicated code

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2025-04-10 20:42:53 +10:00
PJBot
2172eaa492 Automatic changelog update 2025-04-10 10:40:21 +00:00
beck-thompson
149c42f385 Predict inflatable barriers verb (#32420)
* First commit

* evil

* Made it not do weird things

* address review!
2025-04-10 20:39:13 +10:00
Damn Feds
a8e347c606 increase sec count to 6 2025-04-10 22:17:38 +12:00
Damn Feds
e2296f6d58 remove duplicate CE entry 2025-04-10 22:06:10 +12:00
Damn Feds
829f8199e0 job counts for each map 2025-04-10 21:55:45 +12:00
github-actions[bot]
de5ec12791 @noverd has signed the CLA in crystallpunk-14/crystall-punk-14#1164 2025-04-10 08:40:55 +00:00
Ed
41b84f43eb Delete Factoria (#1156)
* bue

* Update PostMapInitTest.cs
2025-04-10 11:10:04 +03:00
PJBot
728603f714 Automatic changelog update 2025-04-09 22:34:06 +00:00
Alex Parrill
74ca51dac8 Mark the spider clan explosive as major contraband (#36421)
Even though it's an unsanctioned explosive device, it's currently
not considered contraband. This patch adds BaseMajorContraband to it.
2025-04-10 00:32:57 +02:00
Ed
0decd375e4 Birch tree (#1154)
* birch

* wooden birch log and planks

* birch tile crafting

* add birch to worldgen

* Update grasslands.yml

* wooden planks (any)

* universal wood crafting

* birch wall
2025-04-09 15:54:38 +03:00
Emisse
cc167b0c2f Convex update (#36401) 2025-04-08 17:51:41 -06:00
Spessmann
2d25c1266a convex fixes 2025-04-08 15:38:28 -07:00
PJBot
394affeb95 Automatic changelog update 2025-04-08 21:55:10 +00:00
TheBlueYowie
517aeb6486 Replaced Sterile Swabs in NutriMax with a Swab Dispenser (#36399)
Replaced Sterile Swabs with Swab Dispenser in NutriMax
2025-04-08 17:54:04 -04:00
PJBot
b4c460752f Automatic changelog update 2025-04-08 21:28:14 +00:00
Tiniest Shark
bfac77b53f Add inhands for Holoprojectors, labelers, cone, brb sign, fartbag (#36036)
* Add inhands for Holoprojectors, labelers, cone, brb sign, whoopie cushion

* Update Resources/Textures/Objects/Devices/Holoprojectors/atmos.rsi/meta.json

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-04-08 23:27:07 +02:00
beck-thompson
3135b2ab3e Fix matchstick prediction issues (#31418)
* First commit

* Minor fixes please ymal error begone

* If this fixes it

* Last chance

* How

* Forgot

* First fixes

* Added correct component tags

* Minor cleanup

* Address review!

* Namespace change

* Fix yaml yelling

* Changes

* Update namespace

* Removed the unneeded files
2025-04-08 23:00:57 +02:00
Tayrtahn
048dcd9eeb Fix lsobjectives target player logic (#36398)
* Fix lsobjectives target player logic

* Logic 3.0
2025-04-08 21:42:38 +02:00
PJBot
d9115f8bcc Automatic changelog update 2025-04-08 14:55:20 +00:00
slarticodefast
b276524468 fix rmobjective command and add completion options (#36396)
fix rmobjective command
2025-04-08 16:54:13 +02:00
creamybag
d201dc0695 Beards (#1153)
* beards

* fix

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-04-08 17:40:01 +03:00
Ed
5b3688fc89 deep Comoss ocean (#1150)
* deep Comoss ocean

* Update migration.yml
2025-04-08 17:39:23 +03:00
Ed
f7b5e40f23 fix master (#1152) 2025-04-08 17:24:56 +03:00
Viator-MV
d0a185cca0 Empties (#1151)
добавлены пустые пресеты карт 2 биомов со всеми нужными компонентами
2025-04-08 16:04:45 +03:00
Whatstone
e6ea77d21b DocumentParsingManager: Ignore XML comments in guidebook pages (#35506)
* Parse XML comments

* Use var instead of typed for variable declaration

---------

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
2025-04-08 14:44:55 +02:00
PJBot
73863d3304 Automatic changelog update 2025-04-08 09:38:19 +00:00
Nyxilath
8d3b89ca9b Printable vials (#36380)
* add vial recipe

* adding vial to lathe recipes

* adjusted vial production cost

* Reduced glass cost for vials
2025-04-08 11:37:11 +02:00
Quantum-cross
716c0ef51f Allow sound to play at the start of anomaly supercritical animation (#36260)
* Add datafield to AnomalyComponent to play a sound when an anomaly enters supercriticality

* use Entity<T> pattern

* use implicit default for nullable

* don't forget to resolve the AnomalyComponent...

* Add comment for StartSupercriticalEvent "ent" parameter

* use implicit casts from Entity<T> to EntityUid

* StartSupercriticalEvent requires AnomalyComponent to resolve
2025-04-08 19:11:32 +10:00
PJBot
5cc8b01e64 Automatic changelog update 2025-04-08 08:24:22 +00:00
K-Dynamic
5b4e3b46a6 New security box fills, renamed and replaced sechud box icon (#35057)
* secglasses and sechud icons, new box fills

* sunglasses box

* fixes indentation
2025-04-08 10:23:12 +02:00
Radezolid
8da64c127a Make FlammableTileReaction additive instead of multiplicative. (#36387)
Make FlammableTileReaction additive
2025-04-08 09:44:52 +03:00
Tayrtahn
3e98f1699d Make spam delivery headers easier to reuse (#36332)
Convert nanotrasen, syndicate, and alternate timeline nanotrasen headers into reusable terms
2025-04-08 00:33:10 +02:00
Ed
f7f7feb837 Marble update (#1146)
* all marble resprite

* Update meta.json

* marble table

* marble natural wall

* marble cave floor

* marble material

* marble small floor bricks

* marble in demiplanes
2025-04-07 21:27:20 +03:00
creamybag
06863d9986 StrawHat (#1132) 2025-04-07 17:15:56 +03:00
creamybag
d5ce5d9f37 Syurko update (#1148)
* Syurko\

* Translation editsЭ

* fix
2025-04-07 17:15:21 +03:00
slarticodefast
50bbb1c101 predict IgnitionSourceComponent (#36310)
* PREDICTION

* comment

* don't overwrite event args

* totally not a web edit

* intn't
2025-04-06 17:54:47 -07:00
Ed
56299c62d6 fix 2025-04-07 01:36:55 +03:00
Ed
e77645d9d6 old tiles YES (#1144) 2025-04-07 01:34:45 +03:00
Tayrtahn
8d8c1e4dae Make RandomMetadata properly support localization (#36343)
* Make _outputSegments readonly

* Remove mystery character

* Use Fluent instead of string concatenation

* Adjust format

* Convert existing content

* Don't need these anymore

* Docs
2025-04-06 11:12:39 -07:00
Ed
d81dbe4c20 Update tiefling.yml 2025-04-06 20:32:52 +03:00
Nim
d3be599ccb carcat tail (#1141) 2025-04-06 17:26:36 +03:00
PJBot
e88371b23b Automatic changelog update 2025-04-06 12:11:24 +00:00
ScarKy0
9e299a1053 Allow Aghosts to load biomes. (#36325)
* init

* review
2025-04-06 14:10:17 +02:00
Ed
4efbb6f307 Update sell.yml 2025-04-06 15:04:18 +03:00
Ed
b4ab1a714c Update CP14SharedFarmingSystem.Interactions.cs 2025-04-06 14:05:04 +03:00
Ed
b04b95cae4 farm buff 2025-04-06 13:59:50 +03:00
PJBot
92c9653801 Automatic changelog update 2025-04-06 08:32:13 +00:00
Minemoder5000
7c84ff1a93 Make Health Analyzer scan range nullable and adjust admin PDA (#36347)
* Modify .cs and admin pda

* enhance comment
2025-04-06 10:31:06 +02:00
PJBot
fe7814c94b Automatic changelog update 2025-04-06 06:49:26 +00:00
RedBookcase
b5616d22a9 Salvage melee weapon tweaks (#35914)
* Minor salvage melee tweaks.

* Minor salvage melee tweaks.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-04-05 23:48:18 -07:00
github-actions[bot]
87c7305c41 Update Credits (#36337)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-04-06 02:37:26 +02:00
PJBot
45c9e10d20 Automatic changelog update 2025-04-05 21:06:49 +00:00
ArtisticRoomba
9b86624d30 Fix blocked UI interaction on unpowered devices (#36319)
init
2025-04-05 23:05:42 +02:00
PJBot
7f96f82603 Automatic changelog update 2025-04-05 20:22:18 +00:00
Phil
f7b32d9226 Remove toxins from the chemical synthesis kit description (#36323)
Alter the description of the chemical synthesis kit to no longer include any false hopes of toxins
2025-04-05 22:21:10 +02:00
Emisse
0a8072db30 Elkridge - AI update and maints expansion + fixes (#36151) 2025-04-05 11:30:13 -06:00
UpAndLeaves
d083842f1f Centcomm death rattle implant (#36113)
* behold!

* minor name change 👍

* Remove fields 👍

* Changes it to parent off DeathRattleImplant

* Adds implants round start and fixes hypothetical bug

* Update Resources/Prototypes/Entities/Mobs/Player/humanoid.yml

As per slarticodefast's suggestion

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-04-05 09:21:10 -07:00
deltanedas
67a9809a5e remove evil shitcode from randommetadata (#36324)
* remove evil

* fix non-localizeddataset uses

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2025-04-05 17:56:22 +02:00
Ed
e6180da35c Displacement Map Visualizer update (#35952)
Update Displacement Map Visualizer.lua
2025-04-05 15:51:59 +03:00
slarticodefast
aa24066450 move DeviceLinking events to shared (#36307)
move events
2025-04-05 14:20:14 +02:00
ScarKy0
890d4339d1 Add additional Biome Markers. (#36300)
* init

* slight value tweaks

* few more
2025-04-05 14:03:19 +02:00
Viator-MV
32b077af63 update (#1137) 2025-04-05 14:42:51 +03:00
Ed
52c06249ea f (#1136) 2025-04-05 13:46:23 +03:00
Ed
bb2fbd1baf Update secret_weights.yml 2025-04-05 12:43:46 +03:00
PJBot
371e28f22f Automatic changelog update 2025-04-05 09:40:07 +00:00
SlamBamActionman
cb03ea3d0b Reduce storage implant to a 2x L shape/6 slots (#36272)
Change subdermal implant
2025-04-05 11:38:58 +02:00
KamTheSythe
0a229f5abf Remove "SHUTTLES" from the allergy list in ion_storm.yml (#36317)
with accordance pull 35751, removes the "SHUTTLES" as a possible allergy to prevent possible round stall
2025-04-05 11:00:19 +02:00
Deerstop
ccb884f141 removed mapinit and mappaused components 2025-04-05 18:59:19 +11:00
Super
033712e34b Typo fix in Syndicate agent locale resources (#36318)
* "discretely" corrected to "discreetly"

* how did it happen twice
2025-04-05 09:36:00 +02:00
Emisse
ce988bfe7c Update Oasis (#36178) 2025-04-05 01:24:54 -06:00
Deerstop
c2fc62e3b3 maints insuls, more meteor shielding 2025-04-05 17:35:21 +11:00
Deerstop
aa6cfa40a6 Merge branch 'space-wizards:master' into elk-new 2025-04-05 16:37:06 +11:00
PJBot
a4ba5ff408 Automatic changelog update 2025-04-05 03:23:21 +00:00
āda
f66fd152cf Add 10u of plasma to SyndieJuice (#36280)
Gift for the agent
2025-04-04 20:22:12 -07:00
BWTCK
6ed0644fc0 Fix shutter construction ghost rotation (#36082)
* Fixed shutter construction frame not aligning with construction ghost

* removed metadata change that should be in a different PR
2025-04-04 20:00:47 -07:00
J
af9526197a Extracts magic strings from Tag calls (#36305)
* Extracts magic strings from Tag calls

When #36281 gets merged, the `TagSystem` methods will all give warnings. Let's fix those warnings before they even happen!

* Adds missing libraries

* Remove not yet implemented TagSystem changes

* Fix tag spelling error

Genuinely surprised there was only 1!

* Styling and proper type changes

* Styling

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-04-04 20:20:19 -04:00
Ed
e308eec703 Hoe dirt preparing (#1135)
* seedbed returns

* modular hoe!

* hoe gameplay

* remove onion seeds
2025-04-05 01:00:39 +03:00
PJBot
e58ab56e42 Automatic changelog update 2025-04-04 20:25:11 +00:00
ScarKy0
9993cf8227 Antagonist roles now require 1h playtime. (#36276)
* init

* whitespace
2025-04-04 22:24:04 +02:00
Myra
fe1664b46d IPIntel now rounds to 2 decimal points (#36298)
* IPIntel now rounds to 2 decimal points

* Nvm i understood what pjb wanted now
2025-04-04 20:42:13 +02:00
metalgearsloth
d844ec250e Remove embed mispredict (#36297)
* Remove embed mispredict

I don't know why this is here but it doesn't seem to cause issues and transforms should be fully predicted so if there are bugs I will deal with them as they come up.

* a
2025-04-04 19:49:21 +02:00
PJBot
be809b9f65 Automatic changelog update 2025-04-04 17:48:06 +00:00
Tayrtahn
6000855bb2 Fix ninjas not being able to hack criminal records (#36299)
Index reason placeholders prototype as a LocalizedDataset
2025-04-04 19:46:59 +02:00
PJBot
b72674e738 Automatic changelog update 2025-04-04 15:57:37 +00:00
TheBlueYowie
21bad6ade1 Rotate Adv Mineral Scanner in Inventory (#36294) 2025-04-04 08:56:30 -07:00
PJBot
ed4d709c9e Automatic changelog update 2025-04-04 15:37:35 +00:00
lzk
4e33a288d2 fix implanting borgs and bots (#36218)
* fix implanting borgs

* fix
2025-04-04 17:36:28 +02:00
metalgearsloth
b501026dcd Mob collision tweaks (#36296)
* Mob collision tweaks

- Remove the dot product default so moving also pops it.
- Cleanup the cvars so admins can adjust

* Gas canister revert
2025-04-04 17:14:04 +02:00
Nim
d5e54ce744 minor edits (#1130) 2025-04-04 17:30:41 +03:00
Nim
c91a6c3f59 Adapted watchers (#1129)
* watcher

* co

* sadly
2025-04-04 17:30:26 +03:00
metalgearsloth
593804b517 Mob collisions (#34580)
* Conveyor optimisations

- Optimise movement for moving stuff. Better flags + less resolves + slapped parallelrobustjob on it.
- Sleeping for entities getting conveyed into walls.

* Blocker version

* Finish

* Final

* Mob collisions

* impulses

* Collision smoothing

* Locked in

* 30tps working

* r

* fixes

* Best

* Fixes + CVars

* CVars in place

* Pushies

* Opt attempt 1

* Revert "Opt attempt 1"

This reverts commit 5ccd72dcbea09261a992aa1f7f05df169a1ce676.

* Fix mispredicts

* Ready-ish

* better

* Cleanup

* Fix conveyor power mispredict

* Forgetting to actually do deltas

* Fix buckle pushes

* Bagel save

* Revert "Bagel save"

This reverts commit 1b93fda81fb852d89b89b0beae0b80f8a61165f2.

* Conveyor resave

* Fix prediction

* Mob movement rewrite

* Bandaid

* Working version

* Tentatively working

* Friction to fix cornering

* More fixes

* Revert bagel

* Revert this

* Bad parity

* Working

* Fixes

* Woops

* Doc comments

* Pen cap cvar

* StandingState cleanup and sub

* Fix downed mobs

* fish

* client

* Disable pushing on tests

* More variables

* Movement mods

* Mass diff

* 1 more tweak

* Cvar
2025-04-05 00:33:52 +11:00
PJBot
ba2a89ecfc Automatic changelog update 2025-04-04 13:13:11 +00:00
K-Dynamic
dfbcfaf45d Add PKA and PTK-800 shuttle gun recipes to sec techfab (#34566)
* add Magboots and PKA to sec lathe

* add kinetic shuttle gun to sec lathe

* use pack recipe

* remove magboot from prior commit
2025-04-04 15:12:04 +02:00
Tayrtahn
d295aed791 Fix loc issues with suicide popup (#36284) 2025-04-04 11:41:21 +02:00
ScarKy0
14b9afff67 Stable merge (#36291) 2025-04-04 11:30:40 +02:00
SlamBamActionman
444ef029bc [Hotfix] Change ID card console admin log severity to Medium (#36283)
It's that simple
2025-04-04 11:18:02 +02:00
Ed
b66ee390a6 Dynamic demiplane weather + farming hotfix (#1131)
* dynamic demiplane weather

* add skeleton sprite

* hotfix farming

* Update wheat.yml
2025-04-04 10:35:48 +03:00
Tayrtahn
5a25ef08b1 Fix loc issues with syringes (#36285)
Fix injector loc issues
2025-04-03 18:28:26 -07:00
PJBot
5d8e0bf954 Automatic changelog update 2025-04-03 22:25:39 +00:00
Luna "YuNii" Henrich
db62336618 Stop ghosts from being logged to Airlocks (#36261)
* stop ghosts from being logged

* thanks rider for the random import

* add new tag PreventAccessLogging

* once again removing random auto imports

* inverted if for code readability

* switch to ProtoId<> usage
2025-04-04 00:24:30 +02:00
scrivoy
748e4719eb Merge branch 'master' into meta-remove-wizard-robes 2025-04-03 23:17:14 +02:00
PJBot
f2391cbcc9 Automatic changelog update 2025-04-03 14:46:11 +00:00
Whatstone
983cf150e0 Recipes for curtains and tables using carpets now respect stacks. (#33721)
* Carpet curtain/table recipes now respect stacks

* remove unused colour carpet tags

* Remove the tags outright
2025-04-03 17:45:04 +03:00
Nim
e125605f25 fix constructions (#1125) 2025-04-03 17:13:39 +03:00
creamybag
dd9aea718c The guildmaster's rapier was not given out in the round. (#1123)
* fix

* fix2
2025-04-03 15:34:35 +03:00
Ed
48831380b4 Give some love to farming (#1124)
* give some love to farming

* Queryptimization

* Fuck soil!!!

* fuck soil in prototypes!

* seeds improve

* partial merge wild and farm

* some strange fix

* plant kills refactor, add compost

* fix compost

* Update migration.yml

* rain can watering plants

* sage update

* Update seeds.yml

* sage smoking update

* Update seeds.yml
2025-04-03 15:29:08 +03:00
creamybag
16c4f8be53 Furcoat carcat (#1122)
* FurcoatCat

* fix
2025-04-03 10:00:27 +03:00
PJBot
c877941aba Automatic changelog update 2025-04-03 06:59:12 +00:00
pathetic meowmeow
e9b89a1c6b Improve sprite fading behaviour (#35863)
* Click through faded sprites

* Count the mouse position for which sprites to fade
2025-04-03 09:58:05 +03:00
scrivoy
5d62d60749 add two fake wizard hats 2025-04-03 08:35:22 +02:00
scrivoy
cea942db7f Merge branch 'master' into meta-remove-wizard-robes 2025-04-03 08:32:40 +02:00
PJBot
ce53629f1d Automatic changelog update 2025-04-03 06:31:00 +00:00
āda
4c73dcc2c8 Diphenhydramine causes drowsiness (#36212)
* nap time in medbay

* suggested changes

* fake test fail
2025-04-02 23:29:52 -07:00
Polter
b2f7196e26 Change the name and description of the templar helmet. (#36258)
Changed the name and description of the knight helmet.

Co-authored-by: Flesh <N/A>
2025-04-02 23:03:36 -07:00
metalgearsloth
8ad7c9c281 Add autocomplete to controlmob (#36234)
Expensive for what it is just really annoying in debug to not have it. Worst case I just make it debug only and we don't add it for release.
2025-04-03 05:32:14 +02:00
Tayrtahn
8007a4ebf7 Fix a few loc bugs with magic mirror/scissors (#36269)
* Use identity for magic mirror popups

* THE()

* Use correct pronouns in blocked-by-hat message
2025-04-03 05:30:30 +02:00
Tayrtahn
e4d7f164f6 Localize air alarm states (#36266) 2025-04-02 19:38:26 -07:00
Tayrtahn
bb864f2b56 Fix entities burning to ash not using identity, and bad formatting (#36268)
* Make burning to ash use identity

* CAPITALIZE(THE())
2025-04-03 04:02:09 +02:00
J
7e4cf87820 NPC Warnings cleanup (#36189)
* NPC Warnings cleanup

* Reverting unnecessary changes

* Reverting unnecessary changes, missed

* Using entity GetGrid override instead
2025-04-02 17:12:25 -07:00
Tayrtahn
7f781e7bda Convert AgentIDCard message to use a Fluent selector (#36263)
Convert AgentIDCard message to use a selector
2025-04-02 16:26:36 -07:00
Myra
5d37e77e57 [Stable merge] :3 (#36264) 2025-04-02 23:57:33 +02:00
Vasilis The Pikachu
933984fe6f :3
This is so we can publish stable again
2025-04-02 23:55:10 +02:00
PJBot
b72a9170b0 Automatic changelog update 2025-04-02 18:38:43 +00:00
qwerltaz
b204fd9b0e add: Dragon rift color changes based on charge (#36216)
* use dragon rift sprite colours

* Entity<T>
2025-04-02 14:37:34 -04:00
PJBot
e920558bb6 Automatic changelog update 2025-04-02 16:12:41 +00:00
Fildrance
3f8deb7aa4 fix: re-add missing RCD deconstruct action #36243 (#36255)
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-04-02 18:11:34 +02:00
Nim
879792be09 Fix mana damage (#1106)
* fix mana damage

* mana potion

* fix rev

* ehh

* hmm

* nop

* Update target_effect_creation_on_water.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-04-02 16:11:48 +03:00
Kirby
8548e062ed Light replacer description typo fix (#36256)
Replacer description typo fix
2025-04-02 12:42:05 +02:00
Deerstop
c78b8a806a Merge branch 'space-wizards:master' into elk-new 2025-04-02 17:12:10 +11:00
Tayrtahn
93df56ac16 Fix "other player points at you" message formatting (#36253)
Fix "other player points at you" message's Fluent functions
2025-04-01 22:40:49 -07:00
Tayrtahn
593a8fe869 Fix KeyNotFoundException that sometimes happens on server shutdown (#36221) 2025-04-01 23:11:15 -04:00
PJBot
3dba0d2159 Automatic changelog update 2025-04-01 23:28:01 +00:00
MisterImp
899d318f01 New food recipe: World Peazza (#35191)
* added world peazza

* fixed a comma in the pizza sprite json

* changed attribution comment on ArtisticRoomba's suggestion

* restored accidentally deleted line, thanks Tayrtahn
2025-04-01 16:26:53 -07:00
J
3192a7fde5 Rotation warnings cleanup (#36197)
* Rotation warnings cleanup

* Naming convention fix

* Adding component that we already have
2025-04-01 23:56:37 +02:00
Radezolid
4cf14211f9 Move medical locker fills to entityTables (#36249)
* Added tables + moved things to EntityTableContainerFill

* YAML convention
2025-04-01 23:55:43 +02:00
scrivoy
be50544252 remove wizard robes 2025-04-01 22:30:38 +02:00
Ed
fa7aacc103 Update Dev.toml 2025-04-01 23:08:46 +03:00
Ed
937851a72c Update Dev.toml 2025-04-01 21:50:20 +03:00
Ed
504adb6738 Fools day end (#1115)
* Revert "April fools fix (#1113)"

This reverts commit e2dec03cbb.

* Revert "April fools fix (#1113)"

This reverts commit e2dec03cbb.

* Revert "Update secret_weights.yml"

This reverts commit 256476b576.

* Update Dev.toml
2025-04-01 21:40:43 +03:00
PJBot
2cc93e23e2 Automatic changelog update 2025-04-01 16:44:28 +00:00
Tayrtahn
c8fe3651e5 Add prediction to electric grills (#36241)
* Prediction for EntityHeaterSystem

* Switch to Entity<T>

* meh

* Move popup inside ChangeSetting

* Fix grill visually turning on when changing setting while power is off

* Add note about my failed quest

* Why isn't this an IDE warning?

* Move comment above switch expression in SettingPower
2025-04-01 09:43:19 -07:00
Deerstop
212cafcf14 more maints, new AI, xenobiology, etc, ect 2025-04-01 23:29:02 +11:00
Nim
b9d191c7e4 Fix bandage (#1112)
* CP14Biological

* storePositionBuy
2025-04-01 11:26:17 +03:00
Ed
1573d1ee81 ru 2025-04-01 11:16:33 +03:00
Deserty0
e2dec03cbb April fools fix (#1113)
* fix

* fuck

* фы
2025-04-01 08:41:35 +03:00
PJBot
3c24f21607 Automatic changelog update 2025-03-31 22:33:39 +00:00
ScarKy0
115313dded Undetermined thieving satchel (#36201)
* yippee!

* no toolboxes allowed

* sprite, descriptions
2025-03-31 15:32:31 -07:00
PJBot
2688a867df Automatic changelog update 2025-03-31 22:01:13 +00:00
Tayrtahn
d2ad6cdcaa Rework the way held items scatter when holder is knocked down (#36232)
* Redo drop held items math

* Don't assume the holder has a PhysicsComponent

* Assume infinite mass for held items with no PhysicsComponent

* Switch to EntityQuery for PhysicsComponent

* The micro-est of optimizations

* use NextAngle

* Might as well do that outside the loop
2025-03-31 15:00:04 -07:00
Tayrtahn
d6dad24db8 Localize and colorize grill temperature settings (#36236)
* Make it easier to localize grill heat level settings

* Change examine text color based on setting

* Trailing periods

* Use Fluent terms to reduce duplication
2025-03-31 14:56:06 -07:00
YoungThug
f01c6e9b37 Holoparasite injector fix (#36109)
* HoloParaTextFix

* PleaseSpeedMergeLmao

* ThankYouOrks

* Update Resources/Locale/en-US/guardian/guardian.ftl

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Guardian/GuardianSystem.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Guardian/GuardianSystem.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-03-31 17:18:21 -04:00
Ed
6e96943df5 Merge branch 'master' of https://github.com/crystallpunk-14/crystall-punk-14 2025-04-01 00:11:16 +03:00
Ed
256476b576 Update secret_weights.yml 2025-04-01 00:10:51 +03:00
Ed
655cba7674 April 2025 fool (#1109)
* Новый геймплей кузнеца и алхимика (#1084)

* anvilvat

Vat is now anvil

* deleted layers

* я даун

* тесты скажите что не так

* fuck documentation

* finally ok

* Alloys

* test not give up

* fix tests mk2 and anvil rename

* anvilgril

* FUCK TABS

* cattle

* meow

* the чистка

* armor

* fuck

* Update tags.yml

* ДА КАК ЭТО Я ВООБЩЕ БЛЯТЬ МОГ СДЕЛАТЬ НАХУЙ

* garde

* yes

* сохранить забыл

* голова потекла

* упс

* b

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Viator's april fools (#1091)

* uno reverse

* comos!

* desery special

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* [April Fools] Mob Pumpkin King!!! (#1092)

* MobPumpkinKing

* generation

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* asdsasdd (#1110)

* wait what???

* some fixes

* Поправка локализации на завтра (#1108)

* локаль

* упс

* Create TOPSECRET.xml

* Update entry.yml

* Update TOPSECRET.xml

* ч

---------

Co-authored-by: Deserty0 <86846189+Deserty0@users.noreply.github.com>
Co-authored-by: Viator-MV <egor44148@gmail.com>
Co-authored-by: Nim <128169402+Nimfar11@users.noreply.github.com>
2025-04-01 00:05:46 +03:00
Ed
edc67dd280 Storm nerf (#1107)
* weather lightning nerf

* port storm weather to gamerule events

* fix
2025-03-31 23:46:21 +03:00
creamybag
05de87e9e9 Merge pull request #1090 from creamybag/toadslippers
Frogerge
2025-03-31 23:01:14 +03:00
J
3c3cf1d867 Light warnings cleanup (#36195)
* Light warnings cleanup

* Using EntitySystem Proxy overrides

* New TryComp guards for light animations

* Reverting guards when not wanted
2025-03-31 20:25:00 +02:00
github-actions[bot]
e4bd418c45 @kvant8 has signed the CLA in crystallpunk-14/crystall-punk-14#1105 2025-03-31 17:52:57 +00:00
slarticodefast
b980c509f9 delete PolymorphOnCollideComponent (#36227)
delete component
2025-03-31 17:45:18 +02:00
Ed
d6943c762c Merge pull request #1102 from ArZarLordOfMango/water
[Fix]CP14FloorWaterOptimized fix
2025-03-31 15:48:31 +03:00
ArZarLordOfMango
6ac00528e9 fix 2025-03-31 14:05:17 +02:00
ArZarLordOfMango
5ae9df1f0b water 2025-03-31 13:36:48 +02:00
Ed
41433d1414 Merge pull request #1100 from crystallpunk-14/ed-311-03-2025-upstream-2
Stable upstream sync
2025-03-31 13:15:22 +03:00
creamybag
4d1094cd6b scars (#1094) 2025-03-31 13:05:03 +03:00
Nim
2e85ac0263 Magic damage (#1047)
* magic damage

* mana-healing potion

* slimes

* ManaDepletion

* Examinable

* color
2025-03-31 13:03:42 +03:00
Fildrance
19f3497b35 refactor: simple radial menu for easier creation (#34639)
* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

* feat: simple radial menu prototype for easier creation

* refactor: cleanup, restored emote filtering, button models now have class hierarchy

* refactor: remove usage of closure from 'outside code'

* refactor: remove non existing type from UiControlTest

* refactor: remove unused using

* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu

* refactor: whitespaces

* refactor: subscribe for dispose on existing radial menus

* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu

* fix: AI door menu now can be closed by verb if it gets unpowered

* refactor: simplify hiding border, extended xml-doc for simple radial menu settings

* refactor: remove linq

* fix: fix AI radial action serialization using invalid type

* refactor: fix duplicate ShowDeviceNotRespondingPopup for AI by properly checking if it can interact

* refactor: whitespaces, changed list to array in simple radial button preparing methods

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2025-03-31 12:57:47 +03:00
Ed
9d6e023bd0 Merge remote-tracking branch 'upstream/stable' into ed-311-03-2025-upstream-2
# Conflicts:
#	Content.Client/Administration/AdminNameOverlay.cs
#	Content.Client/Administration/UI/Bwoink/BwoinkControl.xaml
#	Content.Client/Guidebook/Controls/GuideReagentReaction.xaml
#	Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs
#	Content.Client/SubFloor/SubFloorHideSystem.cs
#	Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs
#	Content.Server/Antag/AntagSelectionSystem.cs
#	Content.Server/Cloning/CloningSystem.cs
#	Content.Server/GameTicking/Rules/Components/ParadoxCloneRuleComponent.cs
#	Content.Server/GameTicking/Rules/ParadoxCloneRuleSystem.cs
#	Content.Server/Roles/ParadoxCloneRoleComponent.cs
#	Content.Shared.Database/LogType.cs
#	Content.Shared/CCVar/CCVars.Interface.cs
#	Content.Shared/Cloning/CloningEvents.cs
#	Content.Shared/Cloning/CloningSettingsPrototype.cs
#	Content.Shared/Humanoid/NamingSystem.cs
#	Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs
#	Content.Shared/Light/Components/SunShadowCycleComponent.cs
#	Content.Shared/Storage/StorageComponent.cs
#	Resources/Changelog/Admin.yml
#	Resources/Changelog/Changelog.yml
#	Resources/Credits/GitHub.txt
#	Resources/Locale/en-US/paradox-clone/role.ftl
#	Resources/Maps/bagel.yml
#	Resources/Maps/loop.yml
#	Resources/Prototypes/Chemistry/mixing_types.yml
#	Resources/Prototypes/Datasets/Names/last.yml
#	Resources/Prototypes/Entities/Effects/puddle.yml
#	Resources/Prototypes/Entities/Mobs/Player/clone.yml
#	Resources/Prototypes/Entities/Mobs/Species/base.yml
#	Resources/Prototypes/Entities/Objects/Deliveries/deliveries_tables.yml
#	Resources/Prototypes/Entities/Objects/Devices/pda.yml
#	Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml
#	Resources/Prototypes/GameRules/events.yml
#	Resources/Prototypes/Maps/Pools/default.yml
#	Resources/Prototypes/Objectives/paradoxClone.yml
#	Resources/Prototypes/Reagents/Consumable/Drink/alcohol.yml
#	Resources/Textures/Clothing/Eyes/Glasses/jensen.rsi/equipped-EYES-arachnid.png
2025-03-31 12:41:37 +03:00
PJBot
86e4365438 Automatic changelog update 2025-03-31 02:28:17 +00:00
beck-thompson
fc0a6dfdb3 Cleanup and small update to the stethoscope! (#36210)
* First commit

* Address most of the review!
2025-03-30 22:27:08 -04:00
Ed
987f00a493 s (#1096) 2025-03-30 20:31:37 +03:00
J
66e2b0ab64 Gameticking warnings cleanup (#36193) 2025-03-30 18:29:32 +02:00
Myra
3fbc50f787 Stable merge (#36192) 2025-03-30 17:44:14 +02:00
Ed
8a479c4e5e Update weather.yml 2025-03-30 18:43:07 +03:00
Ed
011e90a5d1 Weather gameplay effects (#1089)
* pipa

* Weather effects

* Weather in demiplanes!

* demiplane enter roofs

* Demiplane ruins

* Update weather.yml

* Update paper.yml

* Update paper.yml
2025-03-30 17:27:05 +03:00
Milon
89e59b391d use manual component state for BaseEmitSoundComponent (#35030)
* why

* cursed
2025-03-31 00:41:11 +11:00
J
47f8aefc25 Anomaly warnings cleanup (#36188) 2025-03-30 15:16:46 +02:00
J
4f848e814f Movement systems warning cleanup (#36161)
* Movement systems warning cleanup

* Revert unnecessary change

* Reverting variable removal and changing entity query

* Reverting VV removals

* LocalEntity does in fact exist
2025-03-30 15:06:20 +02:00
J
504e70be2b Chemistry warnings cleanup (#36160)
* Chemistry warnings cleanup

* Fixing failed ITest

* Better entity instantiation

* Caching spritesystem and entity instantiation improvement

* Correcting naming conventions

* Rearranging dependency caching
2025-03-30 14:07:34 +02:00
J
0180a9db50 Examine warnings cleanup (#36162)
* Examine warnings cleanup

* Revert unnecessary change

* SpriteSystem naming conventions
2025-03-30 14:06:43 +02:00
K-Dynamic
1f1cf06978 More responsive votekick system (reduce timer and successive timeout) (#36044)
* reduce votekick timer from 60 to 20 seconds

* votekick timeout from 120 to 30 seconds

* votekick timer duration from 20 seconds to 45, successive votekick timeout from 30 to 60 seconds
2025-03-30 14:00:43 +02:00
metalgearsloth
085e28dd00 Fix LoadGameMap running MapInit sometimes (#35241)
The map loadpath keeps it as not being mapinit but the grid one does not so this standardises them slightly.
2025-03-30 09:06:24 +02:00
Avery Dobbins
918e7c33f8 One day Im gonna snap and fix a bug 2025-03-30 02:39:46 -04:00
metalgearsloth
0ff70fdb40 Implement field-deltas for melee (#33977)
* Implement field-deltas for melee

* Review
2025-03-30 16:02:45 +11:00
PJBot
b1f542a54c Automatic changelog update 2025-03-30 04:07:08 +00:00
metalgearsloth
ef11f96344 Better jetpack emitter (#36093)
* Better jetpack emitter

Still need particles this just tilts me whenever I see it.

* Update Resources/Prototypes/Entities/Objects/Tools/jetpacks.yml

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-30 15:06:01 +11:00
Avery Dobbins
9d023c305f Update oasis 2025-03-29 23:59:11 -04:00
chromiumboy
d9b8c0a28f Draw depth bug fix for sentry turrets (#36175)
Initial commit
2025-03-30 14:58:05 +11:00
github-actions[bot]
0ea3792c56 Update Credits (#36172)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-03-30 03:29:30 +02:00
J
6a79c247e3 Fix some atmos warnings (#36157) 2025-03-29 18:12:14 -07:00
J
2f58fdf1e1 Remove warnings from cargo system (#36159)
* Remove warnings from cargo system

* Guard statement early exit and cleaner object instantiation

* Whitespace

* Add AnimationPlayer as a component of telepads
2025-03-30 03:11:04 +02:00
J
99e675c506 Mapping warnings cleanup (#36168)
* Mapping warnings cleanup

* Redo
2025-03-30 03:05:22 +02:00
PJBot
41f4d93a15 Automatic changelog update 2025-03-29 20:10:41 +00:00
Killerqu00
8d7b21988b Shove down a person on uncuff if harm mode is on (#35193)
* stamdamage on uncuff while buckled

* pro tip

* 99 -> 100 stamdmg and don't count self-uncuffs

* review implementation

* tip update

* guidebook update

* merg
2025-03-29 21:09:34 +01:00
Ed
abdd46c7d5 Random bugfixes and balance (#1088)
* shared magic energy examine

* fix #1067

* fix #984

* nerf slimes

* fireSpread nerf

* slimes demiplane examine + remove whistler
2025-03-29 22:08:58 +03:00
metalgearsloth
0c98ad8b38 Fix 1x1 storage windows (#35985) 2025-03-29 19:57:28 +01:00
PJBot
6102d3f0ed Automatic changelog update 2025-03-29 17:57:06 +00:00
chromiumboy
dfd3e36a0a Sentry turrets - Part 4: The sentry turret and its primary systems (#35123)
* Initial commit

* Removed mention of StationAiTurretComponent (for now)

* Prep for moving out of draft

* Fixing merge conflict

* Re-added new net frequencies to AI turrets

* Removed turret control content

* Removed unintended change

* Final tweaks

* Fixed incorrect file name

* Improvement to fire mode handling

* Addressed review comments

* Updated how turret wire panel auto-closing is handled

* Ranged NPCs no longer waste shots on stunned targets

* Fixed bug in tracking broken state

* Addressed review comments

* Bug fix

* Removed unnecessary event call
2025-03-29 12:55:58 -05:00
ScarKy0
89ea21bc31 Fix admeme hand teleproter. (#36147)
* init

* changes
2025-03-29 17:51:46 +03:00
Tayrtahn
587afe7598 Delete AccessReaderTest.TestTags (#36153) 2025-03-29 15:45:37 +01:00
ArZarLordOfMango
f81f7a836e mana-fix (#1082) 2025-03-29 16:57:13 +03:00
F8ctor
03e0d66083 No life mobs (#1072)
* Slimeeeee!

* SimpleSpaceMobNoLifeBase

* No-no-no mr. Skeletik, you not alive

* Delete "bug"

* Revert "Delete "bug""

This reverts commit 4ce64f1cbc.

* Revert "No-no-no mr. Skeletik, you not alive"

This reverts commit f0c878c6a3.

* return, I'll see what's wrong

* Fix

* [ ] Work complete
2025-03-29 16:53:34 +03:00
Ed
fddbb010cf Skill requirements (#1085)
* prerequites refactor

* tiefling only spells

* metamagic update

* sort trying

* goblin speed port
2025-03-29 16:50:14 +03:00
Deerstop
9e9fdc0b07 new courtroom, better signage, fixed uncleanable dirt, more 2025-03-30 00:28:06 +11:00
UBlueberry
489f91dafd "I'm Weh-cellent" Cap (#28573)
* copy pasted fishcap.rsi

* added the sprites

* credited myself

* added it to the hats.yml list

* meh, make the spites look nicer

* hopefully this fixes that

* yeah that makes sense

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* that too

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-03-29 12:59:43 +01:00
ScarKy0
87be2dde27 Fix codermins appearing as red in-game OOC (#36148)
init
2025-03-29 12:33:25 +01:00
Ed
2248e2ad5c Merge branch 'master' of https://github.com/crystallpunk-14/crystall-punk-14 2025-03-29 14:24:31 +03:00
Ed
6706a14163 secret polymorph spell 2025-03-29 14:22:53 +03:00
PJBot
73bae8408c Automatic changelog update 2025-03-29 09:36:27 +00:00
James
a8e99ff65c Death Nettle changes (#25253)
* Added ThornyComponent, ThornyImmuneComponent, and ThornySystem, as well as changed Botanists glove's to have the ThornyImmuneComponent, and for Death Nettle to have the ThornyComponent.

* Added heat damage to the player if they pickup nettle without gloves. Also displays a popup message .

* Revised OnHandPickUp method and reduced whitespace

* Touching death nettle without gloves now does damage split between heat and caustic, and does more damage.

* File-scoped namespace adherence

* Code revisions, and removal of old file.

* Removed thornyImmune key from botanist's gloves in gloves.yml for cleanup / yaml linter

* Adds new generic DamageOnPickup, still very WIP

* Starting on localization, removed _Notes.txt, adds immunity component

* Added OnPickupDamageImmune component to botanists gloves

* Removed botany specific components/system, moved to generic DamageOnPickup. Added code comments. Extra checks in component for whether to toss an item, damage an entity. Still WIP.

* changes to audio and popups

* Removes my system/component/ftl in favor of DamageOnInteract, tweaking values

* me stupid

* Death nettle will 'wilt' after 5 hits

* added interaction delay to stop spam clicking, added a 10% stun (paralyze) chance

* minor changes/cleanup

* more minor changes and cleanup

* Reduced maximum amatoxin within fly amanita spores.

* Readjusted to allow more than 5 amatoxin above 50 potency

* Remove Debug.Log statement from system

* Mark Death Nettle as major contraband.
2025-03-29 10:35:16 +01:00
Emisse
8f65144bb8 update box (#36144) 2025-03-29 01:20:13 -06:00
Emisse
d35259fe52 update fland (#36141) 2025-03-29 01:19:55 -06:00
Emisse
809dd07859 remove warden stamp mapped on meta (#36140) 2025-03-29 01:19:16 -06:00
Emisse
afdba66246 update man-o-war shuttle (#36139) 2025-03-29 01:18:33 -06:00
Emisse
2f7ec5c020 update emergency_meta (#36138) 2025-03-29 01:18:22 -06:00
Emisse
20a6027108 update emergency_courser (#36137) 2025-03-29 01:18:07 -06:00
Emisse
a036becc08 convex update (#36136) 2025-03-29 01:17:58 -06:00
ArtisticRoomba
9c110e1384 oops 2025-03-28 22:14:12 -07:00
ArtisticRoomba
903f502f23 le heisentest au chocolat 2025-03-28 22:02:26 -07:00
ArtisticRoomba
18e9859a73 another one 2025-03-28 22:00:42 -07:00
ArtisticRoomba
653aabe91a update box 2025-03-28 21:49:48 -07:00
ArtisticRoomba
feb3d599a7 sure 2025-03-28 21:11:27 -07:00
ArtisticRoomba
626832b11c update fland 2025-03-28 20:57:36 -07:00
ArtisticRoomba
1a4f6d43dd me waiting 2025-03-28 20:39:59 -07:00
ArtisticRoomba
8ab9ddf603 remove warden stamp mapped on meta 2025-03-28 20:28:09 -07:00
ArtisticRoomba
b9b48ec918 update man-o-war shuttle 2025-03-28 20:20:50 -07:00
ArtisticRoomba
16c426904e update emergency_meta 2025-03-28 20:10:37 -07:00
ArtisticRoomba
9617553f50 update emergency_courser 2025-03-28 20:04:09 -07:00
ArtisticRoomba
b5b30e4dbf convex update 2025-03-28 18:27:29 -07:00
Deserty0
baa48eb0e5 the aer attack (#1081) 2025-03-28 20:15:36 +03:00
Tayrtahn
99484ad744 Make ContainerFillSystem print contents on failure (#36128)
* Make ContainerFill/EntityTableContainerFill print current contents when failing to spawn an entity

* List each entry on a new line; add fallback for empty
2025-03-28 16:37:34 +01:00
Ed
d3f70aee7e Minor Skill Tree rebalance (#1080)
* save: no for visual effect

* some tweaks

* Update healing.yml
2025-03-28 17:45:19 +03:00
ArZarLordOfMango
f337fde3d9 paper fix (#1079) 2025-03-28 16:14:12 +03:00
Tayrtahn
b9517fcbe8 Fix embedded projectile deletion not being tracked by container (#36123)
* Remove deleted projectiles from the container tracking them

* Gotta dirty the container

* Remove the container component when all embedded projectiles are gone

* Add test

* No clientside deletion of networked entities

* Move cleanup logic before deletion
2025-03-28 11:43:13 +03:00
Link
b9fad6cbd4 Mana no longer regenerates after death (#1027)
* Update CP14MagicEnergySystem.Draw.cs

* :nerd:

* Update CP14MagicEnergySystem.Draw.cs

* Update CP14MagicEnergySystem.Draw.cs

* oops...

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-28 11:10:42 +03:00
Nim
532f44eb3c coloured chainmail (#1077) 2025-03-28 11:09:39 +03:00
Milon
92a3fd99ca Fix gas pressure pump prediction (#35865)
* ACTUALLY predict gas pumps

* generic fake

* aaaaaaaaaaaaa
2025-03-28 10:42:16 +11:00
Errant
ea785da1b2 Unhardcode role type names and colors within localization text (#36096)
* localize role type names within localization text

* also unhardcode colors

* comment

* typo
2025-03-28 00:34:20 +01:00
PJBot
b38a341ac9 Automatic changelog update 2025-03-27 22:30:10 +00:00
metalgearsloth
948588399c Mob movement rewrite (#35931)
* Conveyor optimisations

- Optimise movement for moving stuff. Better flags + less resolves + slapped parallelrobustjob on it.
- Sleeping for entities getting conveyed into walls.

* Blocker version

* Finish

* Final

* Fix conveyor power mispredict

* Bagel save

* Revert "Bagel save"

This reverts commit 1b93fda81fb852d89b89b0beae0b80f8a61165f2.

* Conveyor resave

* Fix prediction

* Mob movement rewrite

* Bandaid

* Working version

* Tentatively working

* Friction to fix cornering

* More fixes

* Revert bagel

* Revert this

* a

* Reviewed

* Funky re-save

* Fix velocity

* Table fix

* Review

* a
2025-03-28 09:29:02 +11:00
PJBot
e98df217e2 Automatic changelog update 2025-03-27 17:44:04 +00:00
lzk
8f049f174d make admin interacts with storages silent (#35417)
* make admin interacts with storages silent

* review

* silent insert and transfer

* i love code

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-03-27 18:42:57 +01:00
PJBot
f9320aacd7 Automatic changelog update 2025-03-27 17:20:43 +00:00
SlamBamActionman
5c505958a7 Add a new poster (#36104)
* Poster

* THAT tortilla...

* roombareview
2025-03-27 18:19:36 +01:00
Chaoticaa
db65e3241e Updates to Hydroponic sprites (#35004)
* changes to some hydroponics plant sprites

* tomato changes

* added tomatoes and further changes

* added tomatoes and adjustments

* added tomatoes and adjustments

* added apples and meatwheat

* watermelon + adjustments

* sugarcane

* blood tomatoes & pumpkin harvest

* final changes for a while

* poppy harvest repaint

* smoller melon + holy melon stages

* final changes + attributions added to json files

* oops

* changes

* changes x2

* egg success + tree changes and additions

* bagel mistake

* lemon lime garlic fly

* grapes and stuff

* Potate

* peas and attributes

* more veg while my monitor flashbangs me repeatedly trying to find source links

* soyyyyyyy

* eggplant and berries yuuumm

* corn life

* grape disaster

* my computer is slow

* Pray

---------

Co-authored-by: Your Name <[you@example.com])>
Co-authored-by: beck-thompson <beck314159@hotmail.com>
2025-03-27 10:11:02 -07:00
PJBot
56e0cb642a Automatic changelog update 2025-03-27 17:05:33 +00:00
slarticodefast
7c44038f63 Add paradox clone to admin antag control (#36105)
* make paradox clone receive the original's objectives

* antag control verb

* rename verb
2025-03-27 10:04:25 -07:00
Ed
2a524b4b4b Update CP14ClientSkillSystem.cs 2025-03-27 18:24:26 +03:00
Ed
735b4f5c7b Merge branch 'master' of https://github.com/crystallpunk-14/crystall-punk-14 2025-03-27 17:59:30 +03:00
Ed
4b13d876e8 Update skill_tree.yml 2025-03-27 17:53:25 +03:00
Nim
afea64252b Wrench sprite and fix mask (#1075)
* wrench

* stored

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-27 16:37:11 +02:00
Ed
1e36a61339 Skill progression system [Draft] (#1056)
* fuck all

* clean up

* remove knowledge books

* Update base.yml

* cl

* fix #991

* fix

* Update subgamemodes.yml

* manual migration + recipes fix

* Update comoss.yml

* setup data

* setup skills systems

* more blacksmithing skills

* Update base.yml

* Create CP14SkillEffectAction.cs

* skill button returns

* base graph UI window

* skill tree drawing

* UI improve

* pyro setup

* skill trees selection, dragging control

* refactor skill system: rename Skills to LearnedSkills, add experience tracking and learning logic

* Create available.png

* skill description generation setup

* auto parsing skill names and descriptions

* Hydrosophistry

* water light fire and metamagic ported to skill tre

* ice dagger spell returns

* Update ice_dagger.yml

* delete old files

* Update modular_garde.yml

* ice arrow spell

* link graph with parallax

* show experience counter

* polish

* puf

* p

* pipap

* finally ready to merg?

* fix

* fix 2
2025-03-27 17:20:20 +03:00
creamybag
6a6350a827 Blacksmith's gloves (#1045)
* gloves

* fix
2025-03-27 17:02:52 +03:00
creamybag
9271500fe4 mime (#1074) 2025-03-27 17:02:35 +03:00
PJBot
f4adb0bdb3 Automatic changelog update 2025-03-27 06:27:21 +00:00
Centronias
f45794002b Raw meatball cooks into cooked meatball (#36003)
meatballs can be cooked on their own
2025-03-26 23:26:13 -07:00
metalgearsloth
da2c9510b2 Update submodule to v250.0.0 (#36108) 2025-03-27 15:29:14 +11:00
Errant
e4a5043d4e Overlay stack sorting fix (#36103)
* round float before sorting

* weh
2025-03-26 21:40:13 +01:00
ScarKy0
5bedf1761a 1984 the unsafe gift from smuggler stashes (#36102)
1984
2025-03-26 20:42:08 +01:00
Tayrtahn
bf17f85ced Cleanup AdminVerbSystem (#36099)
* Fix 3 warnings in AdminVerbSystem.Tools

* Fix 3 warnings in AdminVerbSystem.Smites

* Use SetMapCoordinates directly
2025-03-26 19:36:29 +01:00
PJBot
18cc899897 Automatic changelog update 2025-03-26 16:14:09 +00:00
slarticodefast
c8494dd5c9 Improve paradox clone item copying (#35993)
* even better item copying for the paradox clone

* copy paper

* fix

* blacklist implanter

* string.Empty

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-03-26 17:13:02 +01:00
PJBot
f31a568ccc Automatic changelog update 2025-03-26 15:35:27 +00:00
slarticodefast
f838e6730d Fix faction icons for paradox clones (#35910)
* fix nukie icon

* add revs to cloning pod again
2025-03-26 16:34:17 +01:00
PJBot
e066dd3abe Automatic changelog update 2025-03-26 15:31:21 +00:00
slarticodefast
9ff43f344e Show paradox clones in deadchat (#35940)
show clones in deadchat
2025-03-26 16:30:14 +01:00
PJBot
6d63e3c1f4 Automatic changelog update 2025-03-26 15:21:22 +00:00
Velcroboy
b7b3167302 Add smuggler stashes (#19460)
* Add smuggler stashes

* Prevent anchor/collision test fail

* Enabled = false

* Oops, missed one

* NYAH!1984

* Split/Rebalance loot pools and fix test fail

* Errg, still with the canCollide thing

* Removed notes, additional balance tweaking, removed some blank lines

* Replace generator IDs

* Adjust briefcase fill

* Node moved

* Use noSpawn

* Goldschlonger

* Adjusts fills for grid-inv

* Replace removed items

* Replace removed items part 2

* Add empty satchel to clothesmate contraband inventory

* Merge master and switch spawning to roundstart event

* Cleaned up and converted to entity spawn tables + Added funny clown satchel

* Adds comp to prevent stacking bags

* Inital cleanup

* More changes

* ff

* Some fixes but yaml needs to be organized and a few bugs remain

* Final fixes

* Cleanup

* good

* One more

* minor tweaks

* Rename

* Combine dupe fields

* address review

* review

* make linter happy

* names, contraband status

* uplink

* small bugfix

---------

Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: beck-thompson <beck314159@hotmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-03-26 16:20:15 +01:00
github-actions[bot]
615af0b116 @F8ctor has signed the CLA in crystallpunk-14/crystall-punk-14#1072 2025-03-26 14:57:07 +00:00
Tayrtahn
9b28aedbc5 Cleanup TabletopSystem.Map (#36097)
* Add SharedMapSystem dependency

* IMapManager.MapExists -> SharedMapSystem.MapExists

* IMapManager.CreateMap & IMapManager.GetMapEntityId -> SharedMapSystem.CreateMap

* IMapManager.DeleteMap -> SharedMapSystem.DeleteMap

* Remove IMapManager dependency
2025-03-26 15:17:28 +01:00
Milon
b97de9d603 add predicted popups with PVS filtering (#36092)
add
2025-03-26 12:45:29 +01:00
Ed
87d757de45 Update furnace.yml 2025-03-26 14:29:49 +03:00
Ed
fd2c59f4bb Update spells.yml 2025-03-26 12:17:19 +03:00
Errant
2f30fe3ceb adminnotes command cleanup (#36086)
localize adminnotes command, autocomplete
2025-03-25 22:42:17 -07:00
Tayrtahn
462519b7da Cleanup WarpCommand (#36088)
* EntityCoordinates.GetGridUid -> SharedTransformSystem.GetGrid

* EntityCoordinates.GetMapId -> SharedTransformSystem.GetMapId

* Hey look, there's been a bug here this whole time

* TransformComponent.Coordinates.set -> SharedTransformSystem.SetCoordinates

* Now actually working!

* Formatting why not

* Remove unneeded GetComponent
2025-03-26 03:17:46 +01:00
BWTCK
9ca6353dcd Add code comment to antifreeze reagent (#36065)
* Recolored the metamorphic glass antifreeze sprite to reflect the actual color of the chemical

* Added recolor credit in meta.json

* The antifreeze shall be blue!

* removed weird fill-5 change
2025-03-26 00:06:04 +01:00
Tayrtahn
7270988961 Cleanup BiomeSystem.Commands (#36084)
* _mapManager.GetMapEntityId -> _mapSystem.GetMapOrInvalid

* _mapManager.MapExists -> _mapSystem.MapExists

* Unused using
2025-03-25 23:30:06 +01:00
Tayrtahn
1364bfd422 Cleanup SpecialRespawnSystem (#36087)
* grid.TileIndicesFor -> _map.TileIndicesFor

* coords.ToMap -> _transform.ToMapCoordinates

* grid.TryGetTileRef -> _map.TryGetTileRef

* grid.GridTileToWorldPos -> _map.GridTileToWorldPos

* grid.WorldToTile -> _map.WorldToTile

* grid.GridTileToLocal -> _map.GridTileToLocal

* Formatting why not
2025-03-25 23:16:48 +01:00
ArZarLordOfMango
33970b0429 syringe fix (#1071) 2025-03-26 00:57:37 +03:00
Tayrtahn
8dfa2e8f95 Cleanup PathfindingSystem (#36083)
* EntityCoordinates.GetMapUid -> SharedTransformSystem.GetMap

* EntityCoordinates.GetGridUid -> SharedTransformSystem.GetGrid

* EntityCoordinates.ToMapPos -> SharedTransformSystem.ToMapCoordinates().Position

* Formatting why not
2025-03-25 21:51:11 +01:00
PJBot
1732579c22 Automatic changelog update 2025-03-25 20:16:30 +00:00
Errant
c82d531a8f Admin Overlay stacking and ghost hiding (#35622)
* ghostbuster mouse and overlay stacks

* variable adjustment

* use map coords for distance check

* vertical stack ordering, and cvars

* skreee

* fix stack merge 'sidedness' issue

* overlays no longer try to stack to overlays at the wrong coordinates

* options slider for stack merge distance

* admin option sliders for ghost fade/hide

* Update AdminOptionsTab.xaml.cs

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-03-25 21:15:22 +01:00
TheProNoob678
098e594161 A Bunch of New Figurine Voicelines (#36039)
* Add a bunch of figurine voicelines and reduces delay

* Added footsoldier figurine voicelines

* Fixed voiceline count.

* Fixed Queen Xeno figurine formatting issues

* Fixed my terrible fucking grammar
2025-03-25 21:14:34 +01:00
PJBot
9148c21b2b Automatic changelog update 2025-03-25 18:42:03 +00:00
ScarKy0
c3d0b93ddf Fix admin "Spawn here" verb (#36080)
* init

* review

* review

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-25 19:40:54 +01:00
Pieter-Jan Briers
981eb42979 Enable parallel Pow3r solver on Vulture (#36079)
See if it still causes issues.
2025-03-25 18:53:19 +01:00
Pieter-Jan Briers
ecf590f223 Remove unused PowerConsumer from grilles (#36077)
This caused tons of completely wasted processing in the power system. Incredible.
2025-03-25 18:47:49 +01:00
Pieter-Jan Briers
290bffceec Make pow3r validation logic available on release (#36075)
I want to run this on live servers. It's behind a power_validate command, it still doesn't automatically get ran outside debug otherwise.
2025-03-25 10:02:39 -07:00
PJBot
9243d65e6f Automatic changelog update 2025-03-25 16:05:08 +00:00
Errant
72141abf8a Admin playerlist antag presentation rework (#35538)
* refactor(src): Minor refactor of Draw in "AdminNameOverlay. And new info about playtime player

* fix(src): Add configure classic admin owerlay

* fix

* antag status indication rework

* the cvars are free, you can just take them

* update playerlist on cvar change

* more overlay options

* tweak(src): Use _antagLabelClassic and tweak style

* tweak(src): Add config display overlay for startingJob and playTime

* tweak(src): Vector2 is replaced by var

* tweak(src): return to the end of the list

* add new option checkboxes

* passing ConfigurationManager through constructor, some format changes

* made sorting values more futureproof

* comments

* labels

* no point commenting this out when the overlay stack PR will uncomment it again anyway

* sorting prototype

* localize symbols because why not

* symmetry

* Revert "localize symbols because why not"

This reverts commit 922d4030300285a45777d62fcfd9c74b25fe7a60.

* layout and formatting stuff

* fix errant space

---------

Co-authored-by: Schrödinger <132720404+Schrodinger71@users.noreply.github.com>
2025-03-25 17:03:59 +01:00
creamybag
ee2846613a guildmaster's rapier (#1070) 2025-03-25 17:47:44 +03:00
ArZarLordOfMango
0bcc5ace8c [Fix]Updating the Alchemist's guidebook (#1069)
* first-ru

* ru-2

* en-1
2025-03-25 16:19:08 +03:00
Nim
0d3be998a0 Deleted trade amulet (#1066)
* deleted trade amulet

* comm
2025-03-25 09:37:23 +03:00
āda
1b74de6dbb Fix Wizard/Librarian PDA flashlight visual (#36064)
the other light
2025-03-25 02:21:59 +01:00
Tayrtahn
0096dedb18 Fix error when disconnecting the client while a projectile is embedded (#36048)
* Add test for disconnecting the client while a projectile is embedded

* Add check for non-terminating grid or map

* Add test that an embeddable detaches when the target is deleted.

* Remove Explicit tag from TestDisconnectWhileEmbedded
2025-03-25 01:16:13 +01:00
āda
2bc3561868 Fix misplaced pixel on Wizard/Librarian PDA (#36060)
* nudge that pixel

* new base

* whoops, leftovers
2025-03-25 01:11:04 +01:00
PJBot
99e62b4a49 Automatic changelog update 2025-03-24 23:56:24 +00:00
slarticodefast
9502ca0d23 Fix thermal regulation this time for real (#36062) 2025-03-24 16:55:16 -07:00
Partmedia
37c88debb5 Fix comment (#36054) 2025-03-24 20:47:48 +01:00
Tayrtahn
ae07c5d841 Allow NukeOps test to function with multiple RuleGrids (#36049) 2025-03-24 19:59:13 +01:00
Tayrtahn
67b76d81e5 Fix SpeakOnTrigger not working for messages starting with '.' (#36053) 2025-03-24 11:19:29 -07:00
PJBot
c9f567956a Automatic changelog update 2025-03-24 16:37:57 +00:00
Emisse
b1af9ac89e Relic improvements (#35507) 2025-03-24 10:36:44 -06:00
metalgearsloth
4f23016c72 Fix TrayScannerUser (#35959)
* Fix TrayScannerUser

* Ignore

* Update Content.Shared/SubFloor/TrayScannerUserComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-24 16:35:22 +01:00
Nim
b2095a01cc Trade orders (#1037)
* orders

* sprite

* fix orders

* different

* layers

* scrolls

* flora

* loot

* groups

* entity-group

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-24 17:15:44 +03:00
creamybag
b5a2508ebc Maid Update (#1064)
* MaidUpdate

* fix
2025-03-24 17:15:29 +03:00
Nim
44b775b308 Request editing (#1063)
* request editing

* skeleton

* no bank

* job
2025-03-24 17:07:48 +03:00
Ed
2dbc3e7a4d Back to Ru CBT + Bugfixes (#1065)
* Update Dev.toml

* fix #1059

* fix #1061

* fix #1060

* fix #1058
2025-03-24 17:06:09 +03:00
Vortebo
4530749f1d lol im dum 2025-03-23 20:05:55 -05:00
Tayrtahn
7c9e344cd2 Fix changelog entries with brackets crashing the client (#36033) 2025-03-24 00:46:34 +01:00
Vortebo
3e36b2c1f7 more touchups 2025-03-23 18:19:14 -05:00
Vortebo
4f1b8ea65d small touchups 2025-03-23 17:53:04 -05:00
Vortebo
b566eef796 pickup truck and beds 2025-03-23 16:56:30 -05:00
Killerqu00
fbf0679650 Fix admin changelog hard-crash (#36029)
fix changelog
2025-03-23 21:37:58 +01:00
Deserty0
b325a80a61 Фикс гайдбука (#1057)
* Update Alchemy.xml

* Звучит фигово

* Update Resources/ServerInfo/_CP14/Guidebook_RU/JobsTabs/AlchemistTabs/Alchemy.xml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-23 22:32:31 +03:00
ScarKy0
c8f5b480cb Package loot tables part 2: Engineering (#36026)
* MAIL!!!!

* changes
2025-03-23 19:46:58 +01:00
Vortebo
35a619b1d5 aaaa the atmosphere the atmosphere 2025-03-23 13:10:11 -05:00
Myra
f4c5253f9c Increase IPIntel bad rating score & Enable warnings (#36021)
Admin requested change
2025-03-23 17:42:00 +01:00
Ed
4083b79217 Update Dev.toml 2025-03-23 17:07:21 +03:00
ScarKy0
9e1a150829 Package loot tables part 1: Medical (#35895)
* :3

* oops

* moved file, comments
2025-03-23 14:53:02 +01:00
ArZarLordOfMango
28d30571ca locale-fix (#1055) 2025-03-23 16:28:54 +03:00
Myra
57e3f0494e Upgrade GitHub actions in Workfows to node20 (#33668) 2025-03-23 13:54:56 +01:00
Ed
8656a7e1f0 Update floorLava.yml 2025-03-23 15:45:41 +03:00
ScarKy0
1859975ae6 Chemistry bottle cleanup (#35911)
* init

* clean

* god save me

* fuck relic

* i HATE HATE  HATE relic

* make it stop

* please make it stop

* CEASE

* PLEASE

* Revert "PLEASE"

This reverts commit 47d34f3c1e657adf869d84a5349f9c18fc33bfea.

* Revert "CEASE"

This reverts commit 147ab6697807b98e24b0e1ee05571a1995f3c41c.

* Revert "please make it stop"

This reverts commit f2a4f63e5f5b017f2b4ad3511e8c77700abed58b.

* Revert "make it stop"

This reverts commit b10c6344bd9e9e3f1989b29fc46a8de7829e382e.

* Revert "i HATE HATE  HATE relic"

This reverts commit a05d60c0055fa003f7746be7aec2ebf4acd6e136.

* Revert "fuck relic"

This reverts commit e44f3368bc8aa5938095dc5a60e9390fbaf8aba3.
2025-03-23 13:24:55 +01:00
Ed
29278ca98b localization (#1054) 2025-03-23 15:00:18 +03:00
Viator-MV
9c5662d7f5 Skeleton upgrade (#1053)
* skeleton upgrade

* armor upgradde

* skelute

* true, not real

* fix
2025-03-23 14:27:14 +03:00
Ed
eaf9c009c1 Slimes mob (#1049)
* import sprites

* pipia

* 3 slime types

* Delete generic_magic_effects.yml

* Update scrolls.yml

* demiplane integration

* Update fire.yml

* Update crystals.yml

* local

* Update fire.yml

* fix AI stuck

* Update base.yml

* loot

* Update mobs.yml
2025-03-23 14:14:08 +03:00
ArZarLordOfMango
5512e1a665 barrel (#1052) 2025-03-23 13:32:03 +03:00
Tayrtahn
d4c8ddb0ac Fix migrations not being applied to PostMapInitTest (#35933)
* Fix migrations not being applied to PostMapInitTest

* formatting

* Raise the event outside the loop so it only happens once
2025-03-23 21:07:01 +11:00
Emisse
c42d0913cb Fix bagel engineering power (#36018) 2025-03-23 02:26:14 -06:00
ArtisticRoomba
3f2befca9e fix bagel power 2025-03-23 01:04:49 -07:00
github-actions[bot]
dac6c53aa1 Update Credits (#36015)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-03-23 01:42:14 +01:00
PJBot
b5f142b568 Automatic changelog update 2025-03-23 00:22:38 +00:00
RedBookcase
64faddf77a Fixed some unintended salvage changes. (#36013)
* Fixed some unintended salvage changes.

* Update Resources/Prototypes/Entities/Objects/Tools/handheld_mass_scanner.yml

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-23 01:21:29 +01:00
Vortebo
7773b77a91 grilles 2025-03-22 18:31:42 -05:00
Vortebo
f2562aad06 mail teleporter 2025-03-22 17:48:55 -05:00
Vortebo
113e335ca8 Merge remote-tracking branch 'upstream/master' into relic-improvements
need to merge
2025-03-22 15:08:21 -05:00
ArZarLordOfMango
42e3f7ce97 bone mask fix (#1050) 2025-03-22 22:52:03 +03:00
github-actions[bot]
8da5776a4e @ArZarLordOfMango has signed the CLA in crystallpunk-14/crystall-punk-14#1050 2025-03-22 19:42:23 +00:00
Vortebo
923f147d9d working, authentic emergency shuttle (no gamekit) 2025-03-22 12:16:57 -05:00
PJBot
17424e2eb6 Automatic changelog update 2025-03-22 14:43:27 +00:00
Boaz1111
559d22c86c unrevivable lets you be cloned again (#36008)
weh
2025-03-22 15:42:20 +01:00
PJBot
38f3238b1d Automatic changelog update 2025-03-22 11:42:23 +00:00
metalgearsloth
a9a6b98f99 Fix alerts mispredict + log spam (#36004)
tstalker alerted me to it and noticed the classic case of shallow copies.
2025-03-22 12:41:16 +01:00
YoungThug
c2963d47a0 Prisoner Jumpsuit Description (#36005)
* PrisonerJumpsuitFix

* Update jumpskirts.yml
2025-03-22 00:39:33 -07:00
SlamBamActionman
71ae9257f7 Remove serverside StandingStateSystem (#35999)
Refactor system
2025-03-22 16:00:21 +11:00
Killerqu00
dacf0d915c Hover examine buttons (#35206)
* hover examine verbs (not aligned to the left yet)

* handle click hovers and align them to the left

* revert contrabandsystem changes (this is for another PR)

* add support for markup tags
2025-03-22 13:22:01 +11:00
PJBot
4027115e0c Automatic changelog update 2025-03-21 23:22:40 +00:00
SlamBamActionman
6856440084 Add antag notice to admin chat alerts (#35994)
Add antag notice to admin chat pop-ups
2025-03-22 00:21:32 +01:00
Vortebo
3f62dfe0b5 technically playable 2025-03-21 17:14:38 -05:00
Viator-MV
dd6d3f8bc7 Factoria upd (#1044)
* Update factoria.yml

* fact_dung

* Update Factoria.yml

* planetarize factoria

* Update factoria.yml

* Update factoria.yml

* Update factoria_d.yml

* meh

---------

Co-authored-by: Ed <edwardxperia2000@gmail.com>
2025-03-21 22:20:12 +03:00
Vortebo
3d873c6600 the ultimate lifeform, lightswitches 2025-03-21 08:55:40 -05:00
Ed
52e6e9b28f Carcat night vision (#1046)
* carcat night vision

* Update nightVision.yml
2025-03-21 16:53:59 +03:00
YoungThug
1b26a98d7f Arachnid Jensen Googles Fix. (#35987)
pleasespeedmerge
2025-03-21 13:00:23 +01:00
beck-thompson
97d0f14dae Predict pipe anchoring and unanchroing (#35977)
* yay prediction

* Added cool popups

* bruh

* this is better!
2025-03-21 12:43:35 +03:00
PJBot
2b6c0e296d Automatic changelog update 2025-03-21 09:41:42 +00:00
āda
2dc7236a71 Recolor some machine boards (#35715)
* recolor

* Revert for easier review

This reverts commit 20709a6e1f1ac9c99cb030ee56156c8ed4bcc291.

* spacing

* colors

* Revert "spacing"

This reverts commit 92d2d4fc6ee918d13cc8f1f82ce720b94e25d4a8.
2025-03-21 12:40:35 +03:00
TeenSarlacc
6e82ac9f81 Add a crate with foam force weapons to the cargo catalog (#35824)
* made up a nice lil crate

* changed rifle count to 4, added to cargo console

---------

Co-authored-by: TeenSarlacc <baddiepro123@gmail.com>
2025-03-21 12:39:54 +03:00
PJBot
9cba450a19 Automatic changelog update 2025-03-21 09:38:08 +00:00
Tiniest Shark
e72a086815 Grenade + Throwable Inhands (#35974)
* Added inhands to grenades, bolas, ninja stars, and some bombs.

* whoops bolas were wrong hands

* Couple more quick fixes whoops
2025-03-21 12:37:02 +03:00
ArtisticRoomba
280ac8b3ed Fix thermoregulation (#35981)
* fix thermoregulation

* req
2025-03-21 12:36:16 +03:00
PJBot
a5566b1bfa Automatic changelog update 2025-03-21 08:49:13 +00:00
Moomoobeef
534f9e771f Redid Singularity Generator Sprite (#31500)
changed singularity generator sprite
2025-03-21 11:48:06 +03:00
Dakota
a8a73a611e feat: Ghost Role Button only turns red when new ghost roles are added (#35970)
* feat: Ghost Role Button only turns red when new ghost roles are added

* fix: Make _prevNumberRoles private
2025-03-21 11:15:39 +11:00
PJBot
4a234923ad Automatic changelog update 2025-03-21 00:14:07 +00:00
K-Dynamic
8a3ae8e5ca dragon ai faction fix (#35578)
* dragon ai faction fix

* xeno faction
2025-03-21 01:13:00 +01:00
PJBot
d504357aab Automatic changelog update 2025-03-20 23:02:42 +00:00
SlamBamActionman
85a6ac90ba Add stamina and mob damage playtest modifiers (#35599)
* Add stamina and mob damage playtest modifiers

* Fix typo

* Add FTL

* Review fixes

* Update Content.Shared/Mobs/Systems/MobStateSystem.Subscribers.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-21 00:01:35 +01:00
PJBot
09901e6551 Automatic changelog update 2025-03-20 22:41:39 +00:00
slarticodefast
4d50a5a903 Fix thermal regulation (#35971) 2025-03-20 23:40:31 +01:00
PJBot
1535fe731a Automatic changelog update 2025-03-20 21:47:58 +00:00
SonicHDC
4415c2448d More coat zips! (#35029)
* Update meta.json

* Sprites Exp

* Update meta.json

* More zips for coats
2025-03-20 22:46:51 +01:00
PJBot
7174195208 Automatic changelog update 2025-03-20 21:03:04 +00:00
Tayrtahn
8da4f9765e Fix erased paper sprites looking written (#35967) 2025-03-20 22:01:57 +01:00
Tayrtahn
b780b74bbd Validate some SpeciesPrototype fields (#35965)
* Convert SpeciesPrototype strings to ProtoIds

* Simplify protoman indexing calls
2025-03-20 21:15:30 +01:00
Tayrtahn
ecf22daff7 Fix wrong assert message in DeviceLinkingTest (#35964) 2025-03-20 20:58:09 +01:00
PJBot
5dd1cd4bdb Automatic changelog update 2025-03-20 19:57:58 +00:00
SlamBamActionman
43d08100b9 "New player" admin logging improvements (#35961)
* Initial commit

* Adjust a whoooole bunch of logs

* Also spears

* Track going crit

* Review fix

* Review fixes
2025-03-20 20:56:51 +01:00
Ed
07a8a02522 vox inhands displacements (#35947)
vox inhands
2025-03-20 18:01:39 +01:00
PJBot
f5b8b248f2 Automatic changelog update 2025-03-20 16:40:06 +00:00
Tobias Berger
0d04f541d2 Fix LatheMenu DefaultProductionAmount getting ignored (#35951) 2025-03-20 17:38:59 +01:00
PJBot
09c7c6b7b4 Automatic changelog update 2025-03-20 16:34:54 +00:00
psykana
98730a5485 C4 helmet unequip delay (#35922) 2025-03-20 09:33:47 -07:00
metalgearsloth
4009cea235 Update engine to 249.0.0 (#35956) 2025-03-21 01:05:55 +11:00
metalgearsloth
9292e3a43c Sloth's subfloor vismask adventure (#35347)
* Add a subfloor vismask

Significantly cuts down on sent entity count.

* More optimisations

* Fix command

* Fixes

* namespace cleanup

* Review

* Vismasks

* Content update

* Bandaid

* awewa

* Revert these

* reh

* Update Content.Shared/SubFloor/TrayScannerComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-21 00:57:04 +11:00
paige404
2e7f01b99e Fix broken layer hiding on clothes with multiple equipment slots (#34080)
* Fix broken layer hiding on clothes with multiple equipment slots

* Refactor ToggleVisualLayers, HideLayerClothingComponent, and ClothingComponent to allow more
precise layer hide behavior and more CPU efficient layer toggling.

* Adjust HumanoidAppearaceSystem to track which slots are hiding a given layer (e.g. gas mask and welding mask)
Add documentation
Change gas masks to use the new HideLayerClothingComponent structure as an example of its usage

* Fix the delayed snout bug

* Misc cleanup

* Make `bool permanent` implicit from SlotFlags

any non-permanent visibility toggle with `SlotFlags.None` isn't supported with how its set up. And similarly, the slot flags argument does nothing if permanent = true. So IMO it makes more sense to infer it from a nullable arg.

* Split into separate system

Too much pasta

* Remove (hopefully unnecessary) refresh

* Fisk mask networking

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

* Keep old behaviour, use clearer names?

I'm just guessing at what this was meant to do

* english

* Separate slot name & flag

* dirty = true

* fix comment

* Improved SetLayerVisibility with dirtying logic suggested by @ElectroJr

* Only set mask toggled if DisableOnFold is true

* FoldableClothingSystem fixes

* fix bandana state

* Better comment

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2025-03-21 00:30:47 +11:00
claustro305
65f393bb14 Fixed Wizard Thrust (#35948)
fixed wizard thruster
2025-03-20 12:54:59 +01:00
Ed
52a145f7f1 Support separate displacement maps for left and right hand (#35820)
* Update HandsSystem.cs

* Update HandsComponent.cs
2025-03-20 00:06:55 -07:00
PJBot
6351398bb6 Automatic changelog update 2025-03-20 02:19:07 +00:00
SeamLesss
a0c78e7b18 Medical Item In-Hand Sprites (#34984)
* Bruizepack fix and Gauze

* tourniquet sprites added

* medipen sprites

* bodybag sprites

* handheld crew moniter sprites

* implanter sprites

* rollerbed sprites

* health analyzer sprite

* bloodpack sprite

* small rollerbed change

* attributuions + spacing fix

* fixed?

* RAAAAAGH ITS DONE

* actually good code

* Update Resources/Textures/Objects/Specific/Medical/handheldcrewmonitor.rsi/meta.json

* Update Resources/Textures/Objects/Specific/Medical/healthanalyzer.rsi/meta.json
2025-03-19 22:18:01 -04:00
PJBot
115492e9bd Automatic changelog update 2025-03-20 02:16:50 +00:00
Errant
ba56fe8ebc fix uncuff popups (#35743)
* fix uncuff popups

* them too
2025-03-19 19:15:44 -07:00
PJBot
887edf2d7b Automatic changelog update 2025-03-20 01:51:25 +00:00
GaussiArson
672c96ef6c Removed the heat damage from disablers and disabler SMGs (#35834)
removed the heat damage from disablers and disabler SMGs
2025-03-19 18:50:18 -07:00
Tayrtahn
e2097d473c Fix strip menu revealing true identity (#35862)
* Fix strip menu revealing true identity

* Ghosts don't see through identity
2025-03-20 02:44:01 +01:00
mubururu_
d3ee9f8bc5 some robotics inhands (#33676)
* real

* spacing stuff and fix tiny issue
2025-03-19 21:43:00 -04:00
PJBot
b9f56be959 Automatic changelog update 2025-03-20 01:33:46 +00:00
Velken
003b667aa6 Mail Bag (#35702)
* mail bag

* fix

* cute envelope in the bag sprite

* Update Resources/Textures/Objects/Specific/Cargo/mail_bag.rsi/meta.json

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-19 18:32:39 -07:00
PJBot
ed9bbd9fff Automatic changelog update 2025-03-20 01:05:48 +00:00
SeamLesss
4bb1a62f22 Add In-hand Sprites for miscellaneous items (#35433)
* guh???

* Merge branch 'master' of https://github.com/SeamLesss/space-station-14

* incomplete baseball bat

* bling

* attribution

* camera bug

* damp rag

* cap cap

* centcom cap

* Update Resources/Textures/Clothing/Head/Hats/capcap.rsi/meta.json
2025-03-19 21:04:41 -04:00
PJBot
fc544d713b Automatic changelog update 2025-03-20 00:54:55 +00:00
mubururu_
eb5610b745 inhand sprites for Produce (#35151)
* awakening

* fix test fail

* attribution fix

* tomater killer inhandered

* extrorange inhand spin rate nerfed

* fuck webedit
2025-03-19 20:53:48 -04:00
PJBot
791d7c8f98 Automatic changelog update 2025-03-20 00:36:41 +00:00
MisterImp
7a539b3568 Fix recipe and animation for copypasta (#35925)
* Fixed animation and recipe for Copypasta

* Update Resources/Prototypes/Entities/Objects/Consumable/Food/noodles.yml

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-19 17:35:34 -07:00
mubururu_
752477bff3 consistent grapes (#35125)
* grape

* seedtributions
2025-03-19 20:09:50 -04:00
PJBot
7909f87d00 Automatic changelog update 2025-03-19 23:15:25 +00:00
Tiniest Shark
b1c89d059c snake can now be seen inhand and worn on neck like friend (#35323)
* snake can now be seen inhand and worn like friend

* Roomba's additions

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Update Resources/Textures/Objects/Fun/toys.rsi/meta.json

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Spacing adjustment

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-03-19 16:14:17 -07:00
PJBot
97c32d0d70 Automatic changelog update 2025-03-19 22:34:11 +00:00
āda
ef9c896972 Donk Co. Microwave heats twice as fast (#35937)
hot donk!
2025-03-19 15:33:02 -07:00
slarticodefast
988cb08760 Add a code comment to the trait prototype files (#35936)
code comment
2025-03-19 15:25:53 -07:00
Emisse
6f1642eb9a loop station minor evac fix (#35912) 2025-03-19 15:40:49 -06:00
TytosB
a4eac94670 Merge branch 'don' of https://github.com/TytosB/space-station-14-loop into don 2025-03-19 15:56:18 -05:00
TytosB
d0ce213b50 maints firelocks 2025-03-19 15:55:58 -05:00
Tayrtahn
86aa82f2b6 Cleanup: Remove redundant prototype name specifications (#35793)
* Remove redundant prototype name specifications

* These can stay
2025-03-19 19:30:31 +01:00
PJBot
916661944b Automatic changelog update 2025-03-19 17:50:05 +00:00
Errant
8394753c30 lock bwoinkwindow bottom bar height (#35896) 2025-03-19 18:48:58 +01:00
Errant
150f58a6a5 lock bwoinkwindow bottom bar height (#35896) 2025-03-19 18:43:13 +01:00
SlamBamActionman
1d4ff1b0d1 Metagame improvements to antag-before-job selection system (#35830)
* Initial commit

* Update the selection to only count for people who have one of the preferences assigned; latejoin on delay no longer applies pre-selection.
2025-03-19 18:28:25 +01:00
Tayrtahn
398d92a064 Fix artifacts swapping places with ghosts (#35074)
* Prevent artifacts swapping position with ghosts

* Filter for MobStateComponent instead

* Update Content.Server/Xenoarchaeology/XenoArtifacts/Effects/Systems/PortalArtifactSystem.cs

* bluh
2025-03-19 12:11:53 -04:00
PJBot
5b08838420 Automatic changelog update 2025-03-19 15:08:42 +00:00
claustro305
2516868bdc Adjust small light hitbox (#35920) 2025-03-19 16:07:35 +01:00
Ed
a951193dba Merge branch 'master' of https://github.com/crystallpunk-14/crystall-punk-14 2025-03-19 14:04:35 +03:00
Ed
4002b0a41c Update CP14SellWhitelistService.cs 2025-03-19 13:45:59 +03:00
Арт
709b78080f Weapon Sharpening System Update & Bread Slicing Fix (#915)
* SharpeningUpdate

* BreadSlicingFix

Before that, bread slices could be cut endlessly into new bread slices.

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-19 13:36:46 +03:00
creamybag
d71fd8ef80 jager2 (#1042) 2025-03-19 12:58:30 +03:00
Ed
1867903c46 Planetarization (#1040)
* tiers to level demiplanes

* Update demiplane_keys.yml

* demiplane on planets

* migrate to wizden dayCycle + planetarize Comoss

* Update comoss_d.yml

* Update audio_music.yml

* Update dev_map.yml

* add shadows to demiplanes

* remove outdated systems

* fix silvas

* silva fix

* Update factoria.yml

* Update island.yml
2025-03-19 12:52:37 +03:00
Tayrtahn
e76b81d291 Remove non-networked Dirty call in GuardianSystem (#35916) 2025-03-18 21:37:14 -04:00
YoungThug
097b93886b Renaming the "Mime Cap" to "White Cap" (#35901)
* MimeCapRename

* FixedTheName

* FIXITAGAIN
2025-03-18 16:54:02 -07:00
PJBot
e27d4b9459 Automatic changelog update 2025-03-18 23:46:27 +00:00
Smith
a5027e430c Smite Vendor Restock and General Soda Machine Balance (#35144)
* Inventory Buff and Enabling Restock

* Smite rebalance

* Rebalance and swapping contraband inventory positions

* Yet another rebalance

* Spaceup rebalanced, removed Smite from machine.
2025-03-18 16:45:19 -07:00
TytosB
0eb30d522b Merge branch 'space-wizards:master' into don 2025-03-18 16:44:59 -05:00
TytosB
196eb0327c evac fix 2025-03-18 16:44:21 -05:00
PJBot
cbcd1091d5 Automatic changelog update 2025-03-18 20:08:15 +00:00
slarticodefast
943d703685 Paradox Clones spawn with their suit sensors off (#35909)
* sensors off

* remove import

* Update Content.Server/Medical/SuitSensors/SuitSensorSystem.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-03-18 16:07:06 -04:00
creamybag
d7c4bc0a5c A set of "jagermeister" clothes. (#1039)
* jagermeister

* fix
2025-03-18 17:26:39 +03:00
Nim
e4eea533a5 Decorative sprite pack (#1009)
* cobweb

* statue

* demiplan fun

* flowers

* head

* head

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-18 16:33:11 +03:00
PJBot
0a166e2af0 Automatic changelog update 2025-03-18 08:01:51 +00:00
slarticodefast
c72fd448cd Killer tomatos take damage from weedkiller and plantbgone (#35898)
* tomatobgone

* formatting
2025-03-18 11:00:44 +03:00
Nim
08bc5289cd Перевод на RU (#1034)
* translated 3

* fix

* fixxxx

* c

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-18 09:15:33 +03:00
Nim
eef078111d bone mask and armor (#1025)
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-18 09:13:52 +03:00
Link
1448d41e10 maybe it works (#1018)
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-18 09:12:00 +03:00
PJBot
47dbbabe3e Automatic changelog update 2025-03-18 05:23:04 +00:00
slarticodefast
6c46fe5307 Paradox Clones receive the implants the original has (#35906)
* copy implants to paradox clones

* Minor fixes

---------

Co-authored-by: beck-thompson <beck314159@hotmail.com>
2025-03-17 22:21:56 -07:00
Tayrtahn
95055b43bf Add a test to verify that all device signal sink ports can trigger (#35891)
* Add test of all device link sink ports

* Revert the fixed problem to prove that the test works.
Revert "Fix SpawnAndDeleteAllEntitiesInTheSameSpot heisentest (#32330)"

This reverts commit 4704309b4e.

* Revert "Revert the fixed problem to prove that the test works."

This reverts commit cf0dbe797243552d8a63afefced2acd6829c3887.

* Assert that test devices aren't deleted between port triggers

* Test each port on a different map too

* Convert Linq to guard clauses

* Update Content.IntegrationTests/Tests/DeviceLinking/DeviceLinkingTest.cs

* More informative failure message

* Delete map after each test

* Don't bother sorting by ID

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-18 00:44:38 +01:00
Ed
8e1f531767 Trying to fix check fails (#1036)
* Update unique_loot.yml

* test

* slarti help

* test omega
2025-03-18 00:41:43 +03:00
PJBot
0c73b24da8 Automatic changelog update 2025-03-17 18:40:13 +00:00
beck-thompson
15a5cebdcd Chameleon vests now act like winter coats (#34929)
First commit
2025-03-17 19:39:04 +01:00
PJBot
1367ae5703 Automatic changelog update 2025-03-17 18:00:03 +00:00
SlamBamActionman
dc4e8a2972 Increase storage size of Syndicate Backpack (#35888) 2025-03-17 10:58:56 -07:00
PJBot
55f70f9d2c Automatic changelog update 2025-03-17 16:28:15 +00:00
Errant
2b83d9bf89 add missing unknown shuttle ghostrole mindroles (#35892) 2025-03-17 17:27:08 +01:00
Ed
a6250d7491 Update demiplane.yml 2025-03-17 15:36:52 +03:00
Ed
4bca807cd9 back to ru cbt 2025-03-17 14:57:37 +03:00
Ed
a3392e33db Update base.yml 2025-03-17 14:45:04 +03:00
Ed
0a46df78ea Upstream sync (#1035)
* Add new implants to deimplant list (#35563)

Initial commit

* Doxarubixadone Description Fix (#35568)

Changed medicine.ftl for Doxa.

* Reptilians Can Eat Chicken Nuggets (#35569)

Added meat tag to misc.yml for chicken nuggets.

* Automatic changelog update

* Unheck Admin Smites (#35348)

* Fix admin verb names

Fixed admin verb names.

* Add antag verb names

* Adjust antag verb icons

* Amber Station - A Couple Changes (#35548)

* [ADMIN] Minor Refactor AdminNameOverlay (#35520)

* refactor(src): Minor refactor of Draw in "AdminNameOverlay. And new info about playtime player

* fix(src): Add configure classic admin owerlay

* fix

* tweak(src): Use _antagLabelClassic and tweak style

* tweak(src): Add config display overlay for startingJob and playTime

* tweak(src): Vector2 is replaced by var

* tweak(src): return to the end of the list

* Automatic changelog update

* Wizard PDA (#35572)

* wizard PDA

* colour change to brown

* Automatic changelog update

* Increase line spacing of the admin overlay (#35591)

line spacing

* make slime hair less transparent (#35158)

* blabl blump or something

* +0.3

* blimpuf

* Automatic changelog update

* Fix being able to write on/stamp/fax paper scrap (#35596)

* init

* item

* requested changes

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Automatic changelog update

* Changed Pride to Hubris in ion_storm.yml (#35602)

Update ion_storm.yml

* Sentry turrets - Part 3: Turret AI (#35058)

* Initial commit

* Updated Access/command.yml

* Fix for Access/AccessLevelPrototype.cs

* Added silicon access levels to admin items

* Included self-recharging battery changes

* Revert "Included self-recharging battery changes"

* Addressed reviewers comments

* Additional reviewer comments

* DetGadget Hat Revitalization (#35438)

* DetGadget Hat

* uh... half-assed item description

* Reduce hat range to one tile, you have to stand on someone to steal their hat items

* Fix Integration Errors

* Only the wearer can access voice commands

* init work - handscomp is unable to be pulled

* second bit of progress

* basic working implementation

* nuke storageslots and add adminlogging

* disallow trolling nukies or hiding objective items

* remove unnecessary tags additions

* finish nuking unused tags

* death to yamllinter

* int tests be damned

* milon is a furry

* address review

* upd desc

* address reviews part 2

* address more reviews

* remove unused refs

* fix order of dependencies

* add ShowVerb to SharedStorageSystem.cs

This will allow or disallow showing the "Open Storage" verb if defined on the component.

* orks is a nerd

* add proper locale, fix adminlogging

* orks is a nerd 2

---------

Co-authored-by: Coenx-flex <coengmurray@gmail.com>

* Automatic changelog update

* Fingerprint Reader System (#35600)

* init

* public api

* stuff

* weh

* Remove cellular resistance for slimes (#35583)

* Remove cellular resistance for slimes

* Update guidebook

* Automatic changelog update

* Give the station map inhand sprites (#35605)

map has inhands

* Reagent guidebook reactions UI dividers (#35608)

* Update GuideReagentReaction.xaml

* Update Content.Client/Guidebook/Controls/GuideReagentReaction.xaml

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>

* Update Content.Client/Guidebook/Controls/GuideReagentReaction.xaml

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>

---------

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>

* fix cluwne pda pen slot (#35611)

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

* Revert "Make radioactive material radioactive" (#35330)

* Automatic changelog update

* Predict vending machine UI (#33412)

* Automatic changelog update

* #32209 changelog (#35619)

Since it was merged into staging no changelog was made, but we should at least have it for next release. (And vulture)

* Automatic changelog update

* Cloning Refactor and bugfixes (#35555)

* cloning refactor

* cleanup and fixes

* don't pick from 0

* give dwarves the correct species

* fix dna and bloodstream reagent data cloning

* don't copy helmets

* be less redundant

* Automatic changelog update

* centcomm update (#35627)

* Better Insectoid Glasses (#31812)

Sprites and file changes

Adds the variants for arachnid and moth glasses, adds the code for those in the meta.json files, and adds the speciesID tag in both arachnid and moth prototype files.

* Automatic changelog update

* Add GetBaseName method to NameModifierSystem (#35633)

* Add GetBaseName method to NameModifierSystem

* Use Name

* Save Space Station 14 from the Toilet Gibber Forever (#35587)

* The evil is defeated

* Tag body bags

* uwu, cwush me cwusher-chan

* absolute 18+ sloggery

* botos binted? 👽

* Automatic changelog update

* Changed Damage Overlay to check Burn Damage (#34535)

* updated BruteLevel to be PainLevel with burn damage checks in DamageOverlayUiController.cs

* dehardcoded pain level by adding damage groups to paindamagegroups to affect

* re-added the name for painDamageGroups

* fixed overlay default and added minimum limit to component check first

* renamed to PainDamageGroups and removed obsolete tag

* Automatic changelog update

* Wizard's Magical Pen (#35623)

* wizard pen

* description change

* Automatic changelog update

* Added decelerator percentage drain (#35643)

* Added variable PercentageDrain to SinguloFoodComponent

* Set percentageDrain to 0.03 (3%) for anti particles

* Added percentageDrain logic in public OnConsumed

* Simplify SinguloFoodComponent and set percentageDrain to negative

* EnergyFactor now applies to positive values too

* Better commenting on EnergyFactor

* Update Content.Server/Singularity/Components/SinguloFoodComponent.cs

* Documentation of EnergyFactor

* Fixing spelling mistake

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Automatic changelog update

* Made butter require less milk (#35650)

made butter take less milk

* Automatic changelog update

* Delete SolutionContainerVisualsComponent.InitialName (#35654)

* Fix name of cotton dough rope (#35657)

changed in-game name of cotton dough rope to differentiate from normal dough rope

* CVar - Toggle display of round-end greentext (#35651)

* hide greentext if cvar false

* change IFs around a lil

* reviews

* Open State for cowtools (#35666)

Open State

* Make implants unshielded (#35667)

* Add undergarments & "Censor Nudity" toggle to options (#33185)

* Initial commit

* Attribution

* Review changes

* Added comment for upstream

* Automatic changelog update

* centcomm update (#35674)

* More scars! (#35644)

* :3

* whitespace, stomach scar

* Automatic changelog update

* Lathe menu UI displays a count of available recipes (#35570)

* commit

* jumped the gun

* changes

* Players with unknown playtimes now are tagged as new players, take 2 (#35648)

* your commit? our commit.

* skreee

* show joined players before lobby players; comments

* comments

* playerinfo retains playtime data after disconnect

* new connection status symbols

* Automatic changelog update

* Add firelocks and locked external airlocks to ATS (#35516)

* Add firelocks and locked airlocks to ATS

* Add fire alarms

* Elkridge Tesla and TEG Improvements + Other stuff (#35684)

* better tesla, better TEG, better sci maints, chef gets chef closet

* added storage room for tesla parts, added captain bathroom, changed vault so nuke can be armed

* ran fixgridatmos and added some vacuum markers

* unflatpacked containment shit

* Cargo Mail System (#35429)

* shitcode init

* biocoding, SpawnTableOnUse, Moving shit to shared

* server :(

* fixes

* ok works

* Discard changes to Content.Shared/Interaction/Events/GettingUsedAttemptEvent.cs

* Discard changes to Content.Shared/Forensics/Components/FingerprintMaskComponent.cs

* Discard changes to Content.Shared/Forensics/Components/FingerprintComponent.cs

* Discard changes to Content.Server/Forensics/Systems/ForensicsSystem.cs

* Discard changes to Content.Server/StationRecords/Systems/StationRecordsSystem.cs

* Discard changes to Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs

* Discard changes to Content.Shared/Interaction/Events/GettingUsedAttemptEvent.cs

* big stuff

* preperation

* temperory spawning thing for testing

* Update CargoDeliveryDataComponent.cs

* kinda proper spawning idk god save me

* cleanup (kinda)

* preparation 2.0

* stuff i think

* entity table work

* renames

* spawn ratio based on players

* comment

* letter tables

* more spam

* package tables

* comment

* biocodedn't

* builds correctly

* cleaning

* Update deliveries_tables.yml

* labels

* package sprites

* mail teleporter

* revert testing value

* fix test

* fix other test

* i love tests

* mail teleporter enabled by default

* random cooldowns

* fixtures

* Discard changes to Content.Shared/FingerprintReader/FingerprintReaderComponent.cs

* Discard changes to Content.Shared/FingerprintReader/FingerprintReaderSystem.cs

* Discard changes to Content.Shared/Interaction/Events/GettingUsedAttemptEvent.cs

* Discard changes to Resources/Locale/en-US/fingerprint-reader/fingerprint-reader.ftl

* clean

* fuck paper scrap

* oops

* fuck SpawnTableOnUse

* mail teleporter board in QM locker + addressed review

* oops

* clean

* sound on delivery spawn

* address review

* partial review address

* partial review addressing

* addressing partial review

* pratarial revivew address

* misprediction hell

* stuff

* more stuff

* unrelated

* TODO

* link

* partial review

* DirtyField

---------

Co-authored-by: Milon <milonpl.git@proton.me>

* Automatic changelog update

* Add AssertMultiple to ContrabandTest (#35662)

* add AssertMultiple to ContrabandTest

* do the same for magazine visuals test

* :trollface:

---------

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

* add forceghost admin command (#35518)

* add forceghost admin command

* sweep linq under the rug

* braces

* ûse LocalizedEntityCommands

* Automatic changelog update

* Text related keybinds can now be changed in Controls (#35630)

* Add ability to rebind text related keybinds

* fix placement of locales

* Automatic changelog update

* Update b2dynamictree (#30630)

* Update submodule to 248.0.0 (#35720)

* Add sun shadows (planet lighting stage 2) (#35145)

* Implements a Dynamic Lighting System on maps.

* Edit: the night should be a little bit brighter and blue now.

* Major edit: everything must be done on the client side now, with certain datafield replicated.
Changes were outlined in the salvage to accommodate the new lighting system.

* Edit: The offset is now serverside, this makes the time accurate in all situations.

* Removing ununsed import

* Minor tweaks

* Tweak in time precision

* Minor tweak + Unused import removed

* Edit: apparently RealTime is better for what I'm looking for

* Fix: Now the time is calculated correctly.

* Minor tweaks

* Adds condition for when the light should be updated

* Add planet lighting

* she

* close-ish

* c

* bittersweat

* Fixes

* Revert "Merge branch '22719' into 2024-09-29-planet-lighting"

This reverts commit 9f2785bb16aee47d794aa3eed8ae15004f97fc35, reversing
changes made to 19649c07a5fb625423e08fc18d91c9cb101daa86.

* Europa and day-night

* weh

* rooves working

* Clean

* Remove Europa

* Fixes

* fix

* Update

* Fix caves

* Update for engine

* Add sun shadows (planet lighting v2)

For now mostly targeting walls and having the shadows change over time. Got the basic proof-of-concept working just needs a hell of a lot of polish.

* Documentation

* a

* Fixes

* Move blur to an overlay

* Slughands

* Fixes

* Apply RoofOverlay per-grid not per-map

* Fix light render scales

* sangas

* Juice it a bit

* Better angle

* Fixes

* Add color support

* Rounding bandaid

* Wehs

* Better

* Remember I forgot to do this when writing docs

---------

Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>

* Automatic changelog update

* Omega Mail Teleporter (#35705)

Mail!

* Packed Mail Teleporter (#35706)

Mail!

* Box Mail Teleporter (#35707)

Mail!

* Oasis Mail Teleporter (#35708)

Mail!

* Meta Mail Teleporter (#35709)

Mail!

* Marathon Mail Teleporter (#35710)

Mail!

* Fland Mail Teleporter (#35711)

Mail!

* Plasma fixes 4 (#35716)

Fixes 15

Co-authored-by: jbox1 <40789662+jbox144@users.noreply.github.com>

* Aroace pride pin, scarf, and cloak (#35718)

cloak, pin, and scarf added yayyyy

* Automatic changelog update

* [Part of #32893] Localize silicon dataset names (#33352)

* Localize ai names

* Apply requested changes

* Localize autoborg

* Localize borg names

* Localize atv names

* Correct prototypes ids to follow naming conventions

* Remove AI localization (Moved to another PR)

* Weh

* [Part of #32893] Localize arachnid dataset names (#33353)

* Localize arachnid dataset names

* Correct prototype ids to follow naming conventions

* Combine arachnid_first.yml and arachnid_last.yml

* Upstream names

* [Part of #32893] Localize summonable creatures dataset names (#33392)

* Localize clown names

* Localize golem names

* Localize hologram names

* Correct prototype ids to follow naming conventions

* Update Resources/Locale/en-US/datasets/names/golem.ftl

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* [Part of #32893] Localize antagonists dataset names (#33393)

* Localize fake human names

* Localize ninja names

* Localize operation names

* Localize regalrat names

* Localize revenant names

* Localize syndicate names

* Localize wizard names

* Correct prototype ids to follow naming conventions

* Combine fake_human_first.yml and fake_human_last.yml

* Move contents of ninja_title.yml into ninja.yml

* Combine Operation_prefix.yml and Operation_suffix.yml

* Combine wizard_first.yml and wizard_last.yml

* Upstream names

* fix wizard

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* [Part of #32893] Localize humanoid species dataset names (#33395)

* Localize diona names

* Localize moth names

* Localize mushman names

* Localize reptilian names

* Localize skeleton names

* Upstream diona names

* names-moth-male/female-first-dataset -> names-moth-first-male/female-dataset

* Correct prototype ids to follow naming conventions

* NamesSkeletonFirst -> NamesSkeleton

* Combine moth_first_female.yml, moth_first_male.yml and moth_last.yml

* Forgot about skeleton prototype

* Upstream names

* Update Resources/Locale/en-US/datasets/names/diona_last.ftl

* Update Resources/Locale/en-US/datasets/names/diona_last.ftl

* keep first name for skeleton

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* [Part of #32893] Localize vox dataset names (#33396)

* Localize vox names

* Correct prototype id to follow naming conventions

* Upstream names

* [Part of #32893] Localize first & last dataset names (#33401)

* Localize first names

* Localize last names

* Correct prototype ids to follow naming conventions

* Combine first.yml and last.yml into base.yml

* Forgot about = in last

* [Part of #32893] Localize first male & female dataset names (#33402)

* Localize first_name

* Localize first_female

* names-male/female-first-dataset -> names-first-male/female-dataset

* Correct prototype ids to follow naming conventions

* Combine first_male.yml and first_female.yml into base_gendered.yml

* [Part of #32893] Localize misc dataset names (#33404)

* Localize cargo_shuttle names

* Localize death_commando names

* Localize fortunes

* Localize military names

* Localize rollie names

* fortunes.ftl -> cookie_fortune.ftl

* Correct prototype ids to follow naming conventions

* Localize all dataset names (#32893)

* Use `LocalizedDatasetPrototype` instead of `DatasetPrototype` in `RoleLoadoutPrototype`

* Localize ai names

* Replace to `LocalizedDatasetPrototype` in `NamingSystem`

* Localize arachnid first and last names

* Localize atv names

* Localize autoborg names

* Forgot to change type to localizedDataset

* Localize borer names

* Localize borg names

* Localize cargo shuttle names

* Localize clown names

* Localize death_commando names

* Localize diona names

* Localize fake_human names

* Localize first and last names

* Localize first male and female names

* Localize fortunes descriptions

* Forgot about equal sign

* Localize golem names

* Localize hologram names

* Localize military names

* Localize moth first male and female names

* Localize moth last names

* Fix autoborg name error

* Localize mushman first and last names

* Localize ninja names

* Localize operation names

* Localize regalrat names

* Fix mushman_first

* Forgot about `Loc.GetString`

* Move comments into comment section & fix names

* Localize reptilian male and female names

* Localize revenant names

* Fix locale word order in operation

* Localize rollie (btw it was never used and was added as "for the futuгe" long time ago)

* Localize skeleton_first names

* Localize syndicate names

* Localize vox names

* Localize wizard first and last names

* `{owner}-name-dataset` -> `names-{owner}-dataset`

* Change `DatasetPrototype` to `LocalizedDatasetPrototype` and make sure it works properly

GetFTLName is no more the static method, we need it to be able to use `Loc.GetString`

* I hate those mothname comments

* Combine name datasets prototypes

* Move every ftl from` /en-US/names` to ` /en-US/datasets/names`

* Remove ftl files

* Get every dataset yml back

* Remove changes for planets. Move it in another PR

* Revert these changes (Moved to another PR)

* How

* Apply suggested changes

* Fix integration tests (#35727)

* test

* fix names

* fix more

* Initial delivery balance changes (#35728)

* init

* small balance

* guess not

* Update Content.Server/Delivery/CargoDeliveryDataComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Fixed delivery popups (#35724)

* :)

* cool stuff

* Remove a bonus Loc.GetString (#35731)

oops

* Bagel Engineering Improvements (#35717)

* woe, better engineering be upon ye

* im going to lose it

* radical plan

* oopsie

* Revert "oopsie"

This reverts commit 45ab057f55b46acd795e58257c3cc5967e5cb946.

* Revert "radical plan"

This reverts commit 57b1ae081725a47aef3ae03111cecbc91b4f47a8.

* Revert "im going to lose it"

This reverts commit e7b4afaf5d9a10a42e89831ffc9294d3b9bd96d4.

* Revert "woe, better engineering be upon ye"

This reverts commit 471dc3716b58a39631aa8bee00de79e981391d63.

* complete revamp

* revision

* oops 2 electric boogaloo

* another one

* every time i push to fix a minor mistake i found in walking around i get closer to my limit

* Update Credits (#35733)

Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>

* Loop mail teleporter (#35729)

* latejoin

* youve got mail

* Core mail update (#35719)

* core mail update

* empty

* derotate core (#35740)

Update default.yml

* Elkridge Mail Update (#35738)

add mail teleporter and mailing unit system

* Automatic changelog update

* Plasma Mail Teleporter (#35741)

Mail!

* Convex Mail Teleporter (#35742)

Mail!

* Remove unneeded Loc.GetString (#35739)

* Steal the mail thieving objective (#35746)

* mail theft

* networked

* Automatic changelog update

* fix UpdateBankAccount (#35749)

* trolled

* fun

* fuck me

* Slightly better letter loot table (#35748)

* init

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>

* Python Suit Storage Visual  (#35593)

* Python-SUITSTORAGE-Visuals

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* REVised Sprite

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Copyright

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Update Resources/Textures/Objects/Weapons/Guns/Revolvers/python.rsi/meta.json

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* fix nukeops commander name (#35753)

* bagel update (#35754)

* Predict some power PowerReceiver stuff (#33834)

* Predict some power PowerReceiver stuff

Need it for some atmos device prediction.

* Also this

* Localize traitor codeverbs datasets (#35737)

* Localize verbs dataset

* Localize adjectives dataset

* Localize corporations dataset

* Update TraitorRuleSystem to use LocalizedDatasetPrototype instead of DatasetPrototype

* Fix sun shadows in ANGLE (#35757)

I think I fat-fingered a ctrl-Z on this at some point but the intermediate blur is necessary.

* Automatic changelog update

* Tweak sun shadow rotations (#35758)

Won't use the entity's rotation for the matrix, I just forgot to do this. Means shadows will always point in the same direction and the points will correctly adjust as the entity rotates.

* Automatic changelog update

* Fix Ahelp window playerlist resize (#35747)

reorganize bwoink window layout

* Automatic changelog update

* Ensure speech bubble cap is always respected (#32223)

Ensure speech bubble cap is respected, even when messages are sent very fast

* Cleanup: Fix ``PaperWriteEvent`` in ``PaperSystem`` (#35763)

* Cleanup + fix

* Revert

* Cleanup: Add missing locale ``cmd-planet-map-prototype`` (#35766)

Cleanup

* Added New Cocktails and new fill level sprites to existing drinks. (#33570)

* Added New Cocktails and new fill level sprites to existing drinks

* Updated copyright info and fixed recipies for Caipirinha/Mojito.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>

* Automatic changelog update

* Performer's Wig (#35764)

* miku wig

* fix to correct json convention

Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>

---------

Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>

* Automatic changelog update

* Merge showsubfloorforever into showsubfloor (#33682)

* convex fix

* Removable mindshields and revolutionary tweaks. (#35769)

* I fucking hate revs

* Update preset-revolutionary.ftl

* fixy fix

* Automatic changelog update

* Mail Resprite (#35776)

* init commit

* init commit

* delete those

* added github to copyright info

* Fix Chameleon PDAs renaming the user in station records (#35782)

* Automatic changelog update

* Restore the order of admin overlay elements (#35783)

admin overlay order fix

* Automatic changelog update

* Fixes and refactoring to discord changelog script (#33859)

* Fixes and refactoring to discord changelog script

Upstreamed from https://github.com/impstation/imp-station-14/pull/1023

* Add some prints back in

* Update to borg ion storms (#35751)

* Updates ion storms for borgs.

* Remove additional ion laws into future PR

* Automatic changelog update

* TriggerSystem improvements (#35762)

* desynchronizer real

* yaml stuff from slarti branch

* C# stuff

* oops

* fix triggers

* atomize PR

---------

Co-authored-by: Flareguy <woaj9999@outlook.com>

* Roleban command error handling (#35784)

roleban command jobid fail handling

* Localize news dataset (#35774)

* Localize news dataset

* Remove the `"`

* Localize rat king commands datasets (#35780)

* Added mail room

* Update submodule to 248.0.2 (#35787)

* Update Space Law to reflect Implant changes (#35701)

* Change implanter Space Law

* Add clarification regarding unidentified implanter vs. unidentified implant sentensing

* Add support for antag-before-job selection (#35789)

* Add support for antag-before-job selection

* Include logging

* forensics cleanup (#35795)

* polymorph popup fixes (#35796)

polymorph fixes

* fix more syndicate names (#35788)

* New Feature: Warden job rolls before security officer/cadet/detective (#35313)

Commit

* Automatic changelog update

* Fix anomaly doublelogging (#34297)

cull doublelogging

* Add wallmount N2 closets, Revived (#34042)

* Add standard, wallmount and improvised N2 closets, Revived

* remove improvised locker

* Parent>ID

* Undo sprite replacement

* Update meta.json

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>

* Cryo and grinder cleanup (#34842)

* cryopod and grinder cleanup

* lower case name

* 4 spaces

* prototype clean

* looks like there is some kind of test that prevents removing this

* grinder too

* both should be empty

* cleanup

* Add Gold and Coal Rock Anomalies (#34809)

* This commit adds 2 new Rock Anomaly types, Coal and Gold. It also adds Resource Crabs, colored crystals, and lights for both.

* Added crafting recipes for yellow and black light tubes. Somehow I forgot that the first time.

* Sorted tags.yml alphabetically this time instead of not doing that.

* Updated Texture Copyright information

* Attempted to fix Merge Conflict

* Added bulb light variants for both yellow and black crystals.

* Automatic changelog update

* Tools/Devices: In-hand Sprites (#33689)

* Adds in-hand sprites to the barber scissors.

* adds in-hand sprites to the floodlight.

* adds in-hand sprites to the gas analyzer.

* adds in-hand sprites to the gps.

* Update copyright wording, linting

* resprite gps inhand sprites.

* adds in-hand sprites to the mass scanner.

* adds in-hand sprites to the spray_painter.

* resprite in-hand sprites to the mass_scanner.

* fix in-hand sprites to the mass_scanner.

* Resprite mass_scanner in-hand sprites.

* Automatic changelog update

* IconSmooth additional smoothing keys (#35790)

* additionalKeys

* Update lava.yml

* Update Content.Client/IconSmoothing/IconSmoothComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Locks nitrous oxide canisters (#35785)

lock nitrous oxide canisters

* Automatic changelog update

* Cleanup Objective files, add PickSpecificPersonComponent (#35802)

* cleanup objectives

* remove unrelated access restriction

* review

* Adds popup when firing gun while gun has no ammo (#34816)

* Adds popup when firing gun while gun has no ammo

* simplify

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Automatic changelog update

* Add the ability to pet the mail teleporter (#35819)

good mailbox

* Automatic changelog update

* Whitehole/Singularity grenade price adjustments + whitehole grenade fix (#35821)

* prices + adjustments

* teehee

* Automatic changelog update

* Update Lobby Music Attribtions (#35817)

Biggest change is updating the attributions and links for Sunbeamstress' to reflect the changes in their online profile as the previous link is now a dead link.
Updated Comet Haley's link to go directly to Stellardrone's Bandcamp instead of diverting to Free Music Archive
Fixed a double the in the comment for Space Asshole

* Paradox Clone (#35794)

* polymorph fixes

* paradox clone

* forensics cleanup

* bump doors

* 4

* attribution

* polymorphn't

* clean up objectives

* Update Resources/ServerInfo/Guidebook/Antagonist/MinorAntagonists.xml

* review

* add virtual items to blacklist

* allow them to roll sleeper agent

* Automatic changelog update

* Improvements to antag-before-job selection system (#35822)

* Fix the latejoin-antag-deficit bug, add datafield, add logging

* Fix multiple roles being made for single-role defs,

* HOTFIX: Fix paradox clone event (#35858)

fix paradox clone event

* Update CP14TownSendConditionSystem.cs

---------

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: Smith <182301147+AgentSmithRadio@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Pancake <Pangogie@users.noreply.github.com>
Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
Co-authored-by: Schrödinger <132720404+Schrodinger71@users.noreply.github.com>
Co-authored-by: Velken <8467292+Velken@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
Co-authored-by: LaCumbiaDelCoronavirus <90893484+LaCumbiaDelCoronavirus@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: FungiFellow <151778459+FungiFellow@users.noreply.github.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Coenx-flex <coengmurray@gmail.com>
Co-authored-by: hivehum <ketchupfaced@gmail.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Myra <vasilis@pikachu.systems>
Co-authored-by: Emisse <99158783+Emisse@users.noreply.github.com>
Co-authored-by: HTML/Crystal <152909599+HTMLSystem@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: Coolsurf6 <coolsurf24@yahoo.com.au>
Co-authored-by: rokudara-sen <160833839+rokudara-sen@users.noreply.github.com>
Co-authored-by: DuckManZach <144298822+DuckManZach@users.noreply.github.com>
Co-authored-by: MisterImp <101299120+MisterImp@users.noreply.github.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: Ps3Moira <113228053+ps3moira@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: āda <ss.adasts@gmail.com>
Co-authored-by: War Pigeon <54217755+minus1over12@users.noreply.github.com>
Co-authored-by: Deerstop <edainturner@gmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: Łukasz Mędrek <lukasz@lukaszm.xyz>
Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>
Co-authored-by: compilatron <40789662+Compilatron144@users.noreply.github.com>
Co-authored-by: jbox1 <40789662+jbox144@users.noreply.github.com>
Co-authored-by: Momo <Rsnesrud@gmail.com>
Co-authored-by: MilenVolf <63782763+MilenVolf@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: TytosB <54259736+TytosB@users.noreply.github.com>
Co-authored-by: Prole <172158352+Prole0@users.noreply.github.com>
Co-authored-by: Evelyn Gordon <evelyn.gordon20@gmail.com>
Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
Co-authored-by: RedBookcase <crazykid1590@gmail.com>
Co-authored-by: RedBookcase <Usualmoves@gmail.com>
Co-authored-by: SpaceManiac <tad@platymuus.com>
Co-authored-by: Spessmann <156740760+Spessmann@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: imcb <irismessage@protonmail.com>
Co-authored-by: valquaint <57813693+valquaint@users.noreply.github.com>
Co-authored-by: Flareguy <woaj9999@outlook.com>
Co-authored-by: ninruB <ninrub@tuta.io>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Łukasz Lindert <lukasz.lindert@protonmail.com>
Co-authored-by: Firewars763 <35506916+Firewars763@users.noreply.github.com>
Co-authored-by: onesch <118821520+onesch@users.noreply.github.com>
Co-authored-by: K-Dynamic <20566341+K-Dynamic@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Crude Oil <124208219+CroilBird@users.noreply.github.com>
Co-authored-by: Lusatia <ultimate_doge@outlook.com>
2025-03-17 11:54:43 +03:00
slarticodefast
08cd8d0543 Merge stable into master (#35883) 2025-03-17 01:03:47 +01:00
slarticodefast
e4864ac423 Hotfix: Fix AntagRandomSpawn location preview (#35864)
fix AntagRandomSpawn location preview
2025-03-17 00:50:23 +01:00
MilenVolf
f8ccff1363 Localize criminal records reason placeholder dataset (#35810)
* Localize criminal records reason placeholder dataset

* Forgor
2025-03-16 19:43:37 -04:00
PJBot
bf59896922 Automatic changelog update 2025-03-16 22:25:54 +00:00
slarticodefast
197ee78bfa make paradox clone receive the original's objectives (#35829)
* make paradox clone receive the original's objectives

* remove redundant indexing

* Minor comment change

* fix ninja objectives

---------

Co-authored-by: beck-thompson <beck314159@hotmail.com>
2025-03-16 15:24:47 -07:00
PJBot
03dc35ac92 Automatic changelog update 2025-03-16 22:12:37 +00:00
Errant
29cbc4a190 Mark all hostile mind roles as antag (#35832)
* dummy antag prototypes

* I'll deal with YOU later!

* remove redundant soloantag definitions

* doctor, we left the scalpel in the patient

* minor cleanup
2025-03-16 23:11:31 +01:00
PJBot
1b34884823 Automatic changelog update 2025-03-16 22:03:26 +00:00
slarticodefast
d8ed9fe152 Paradox clones get all storage items the original has. (#35838)
* recursive storage copying

* include slime storage

* future proofing

* remove survival box
2025-03-16 15:02:19 -07:00
Tayrtahn
deb3ed3ed2 Let LocalizedDatasetPrototypeTest report multiple failures (#35876) 2025-03-16 22:32:08 +01:00
Tayrtahn
04b9088c85 Add viewer parameter to Identity.Entity (#35861)
* Add viewer parameter to Identity.Entity

* Docs
2025-03-16 14:07:46 -07:00
Vortebo
a7f6ceec58 bridge and security have gone byond the impossible 2025-03-16 14:42:34 -05:00
Vortebo
71f2cf4d54 garbage. in the disposal. 2025-03-16 13:48:28 -05:00
Tayrtahn
4b9d9da074 Fix development and debug configurations for tests (#35625)
* Move settings from debug.toml to development.toml

* Don't force disable dev config for integration tests

* Force on instead?

* Remove change to PoolManager
2025-03-16 19:17:45 +01:00
PJBot
eabd0b7f24 Automatic changelog update 2025-03-16 18:16:49 +00:00
Tayrtahn
6ee3ae80a5 Fix salvage sites ejecting borg brains when they despawn (#35855)
* Fix salvage sites ejecting borg brains when they despawn

* Extra check in while loop

* Move mobStateQuery to InitializeMagnet
2025-03-16 19:15:39 +01:00
Tayrtahn
af36b3983c Make NukeOpsTest list RuleGrids on failure (#35873) 2025-03-16 12:20:13 -04:00
Myra
e0a8718f78 Stable merge (#35870) 2025-03-16 15:12:19 +01:00
Vasilis The Pikachu
1a756a6574 Merge remote-tracking branch 'upstream/staging' into stable 2025-03-16 15:09:05 +01:00
Nim
1a12df0d2f zombi pacified (#1033) 2025-03-16 15:59:11 +03:00
PJBot
6cd9c3e16d Automatic changelog update 2025-03-16 00:42:57 +00:00
Kyle Tyo
b378c5e455 Fix holopads phasing through walls. (#34300)
* change holopad mask from subfloormask lowimpassable to tabletopmachinemask opaque

* change masks to prevent laser collisions

followed the artifact analyzer for this one. I don't quite understand how fixtures work so I'm a bit perplexed by this.

* Boolean I command you: LOWERCASE
2025-03-16 01:41:50 +01:00
github-actions[bot]
411a89ce31 Update Credits (#35860)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-03-16 01:40:44 +01:00
slarticodefast
d5372db359 Merge staging into master (#35859) 2025-03-15 23:25:04 +01:00
slarticodefast
b878e80929 HOTFIX: Fix paradox clone event (#35858)
fix paradox clone event
2025-03-15 23:10:24 +01:00
Ed
45593b1db7 Puddles on the floor sticking to the walls (#35856)
Update puddle.yml
2025-03-15 17:35:49 -04:00
saga3152
36f6438c8e Light replacer is back on the menu (#35857)
Lights on
2025-03-15 17:26:38 -04:00
Milon
7f4672f963 clear buyer conditions in StoreDiscountAndRefundTest (#35847)
* fun

* Update Content.IntegrationTests/Tests/StoreTests.cs

Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>

* Update Content.IntegrationTests/Tests/StoreTests.cs

Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>

---------

Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
2025-03-15 21:58:13 +01:00
Ed
e6f9b2f099 Update puddle.yml 2025-03-15 23:15:24 +03:00
Ed
ff98037854 English OBT + Bugfixes (#1029)
* ts

* Test - without spawning at all

* Update coffin.yml

* Update CP14UniqueLootSystem.cs
2025-03-15 20:12:38 +03:00
PJBot
8848d74ccc Automatic changelog update 2025-03-15 16:44:56 +00:00
K-Dynamic
222331cb49 Take 2: Rename ammunition box (.50), Liberation Station .50 stock (#35326)
ammunition box (.50), .50 shell pellet

also die robust toolbox commits
2025-03-15 09:43:49 -07:00
PJBot
11cac44bc4 Automatic changelog update 2025-03-15 16:25:31 +00:00
pathetic meowmeow
4576555e5b NanoTask (#34095) 2025-03-15 09:24:23 -07:00
PJBot
c7022ae7c5 Automatic changelog update 2025-03-15 15:58:46 +00:00
K-Dynamic
2fe53c3722 Reduce base electrocution stun time from 8 to 5 seconds (#34578)
* reduce shock time from 8 to 3 seconds

* shocktime 5 second, 1.25 mv time multiplier, 1.5 hv time mulitplier
2025-03-15 16:57:35 +01:00
Nim
41f33bf005 Potions pouch (#1026)
* pouch

* loadout

* fix

* fix name

* fix name duo

* loadouts2
2025-03-15 16:30:40 +02:00
creamybag
b5edb27623 Working with armor sprites. (#1028)
* ChainMail

* fix
2025-03-15 15:54:19 +03:00
Tayrtahn
5efcccc81f Add interaction tests for vending machines (#35801)
* Add interaction test for vending machines

* Add test of UI basic UI interactions

* Added test for dispensing an item

* Simplify and internalize test yaml

* Add check for restocking with wrong restock box

* Add test for breaking and repairing
2025-03-15 17:07:04 +11:00
Tayrtahn
23d7cd0a29 Fix thrown item prediction weirdness (#35843)
Don't predict thrown item landing/stopping
2025-03-15 17:06:00 +11:00
PJBot
5c5dc1207a Automatic changelog update 2025-03-14 20:23:38 +00:00
Centronias
b980c94d89 Moths can eat lizard plushes again (#35835)
* tags back

* Update Resources/Prototypes/Entities/Objects/Fun/toys.yml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-14 21:22:30 +01:00
Vortebo
9ca4254e1a station is now moth-friendly 2025-03-14 14:29:14 -05:00
PJBot
e7719518c0 Automatic changelog update 2025-03-14 15:32:18 +00:00
Quantum-cross
fd59427cb5 Corrupt borg speech if they are damaged or low power (#35318)
* - Corrupt borg speech the more damaged they are
- Corrupt long borg messages if battery is low or empty

* twiddle values

* Remove RNG based loop, hardcode repeating values for p=0.25 up to 10 repeats.

* Make sure that DamagedSiliconAccentSystem is AFTER ReplacementAccentSystem

* add missing base initializer call

* use Entity<T> pattern for event listener and clarify default values

* Move corruption parameters to datafields

* Add datafields to enable and disable the two types of corruption, and add datafields to override damage values and charge levels to support entities that don't have damageable components or power cells.

* Use nullables for override values

* Move DamagedSiliconAccentComponent to Shared and make it networked

* Add DamagedSiliconAccent to cloning whitelist
2025-03-15 02:31:09 +11:00
Ed
f989980df3 Carcats species [Draft] (#1023)
* body parts

* proto setup

* inhand displacements

* carcat cloak

* eyes

* gloves

* pants carcat

* pants

* shirt

* markings nose + ears

* Update 5.png

* shoes + naming

* helmet adapt

* carcat sounds

* Update sewing_table.yml

* s

* Update comoss.yml

* Update factoria.yml

* s
2025-03-14 14:11:41 +03:00
PJBot
50525a11be Automatic changelog update 2025-03-14 06:50:33 +00:00
Coolsurf6
5d296d2dbb Added Bacchus' Blessing Drink (#35306)
* added start to bacchus blessing with few more things left to do

* added sprites and trying to get the empty sprite to work

* fixed empty sprite will fill layer

* added missing fill image

* made flavor, physical description, recipe reaction and tweaked reagent threshold

* fixed fill levels

* removed name from drinks.yml, updated suffix instead

* delay is weird and broken, removing the difference

* updated copyright
2025-03-13 23:49:26 -07:00
PJBot
0ed1f84f45 Automatic changelog update 2025-03-13 20:22:50 +00:00
SlamBamActionman
22ecd58083 Enable antag-before-job rolling for roundstart antags (#35823)
Enable antag-before-job rolling for certain antags
2025-03-13 21:21:42 +01:00
SlamBamActionman
1945c7d7c6 Improvements to antag-before-job selection system (#35822)
* Fix the latejoin-antag-deficit bug, add datafield, add logging

* Fix multiple roles being made for single-role defs,
2025-03-13 19:07:52 +01:00
PJBot
33edf9692b Automatic changelog update 2025-03-13 17:10:14 +00:00
slarticodefast
bce9b4b05b Paradox Clone (#35794)
* polymorph fixes

* paradox clone

* forensics cleanup

* bump doors

* 4

* attribution

* polymorphn't

* clean up objectives

* Update Resources/ServerInfo/Guidebook/Antagonist/MinorAntagonists.xml

* review

* add virtual items to blacklist

* allow them to roll sleeper agent
2025-03-13 10:09:07 -07:00
Link
6c7933cd7f Fixing TagResource (Meat Pies) and coffins (#1024)
* Update coffin.yml

* PierogI
2025-03-13 17:19:04 +03:00
Lusatia
1b2d3d6ab9 Update Lobby Music Attribtions (#35817)
Biggest change is updating the attributions and links for Sunbeamstress' to reflect the changes in their online profile as the previous link is now a dead link.
Updated Comet Haley's link to go directly to Stellardrone's Bandcamp instead of diverting to Free Music Archive
Fixed a double the in the comment for Space Asshole
2025-03-13 17:00:23 +03:00
PJBot
4a4d3d6a07 Automatic changelog update 2025-03-13 13:13:34 +00:00
ScarKy0
d4b7a6d582 Whitehole/Singularity grenade price adjustments + whitehole grenade fix (#35821)
* prices + adjustments

* teehee
2025-03-13 14:12:27 +01:00
PJBot
66a02010f2 Automatic changelog update 2025-03-13 12:50:33 +00:00
Crude Oil
90dc674c96 Add the ability to pet the mail teleporter (#35819)
good mailbox
2025-03-13 13:49:24 +01:00
creamybag
44c9897893 dress (#1022) 2025-03-13 15:30:18 +03:00
Ed
47ea85ba21 back to ru + fix (#1021) 2025-03-13 13:30:52 +03:00
PJBot
0b1e25b68e Automatic changelog update 2025-03-13 07:22:33 +00:00
Plykiya
96501f4966 Adds popup when firing gun while gun has no ammo (#34816)
* Adds popup when firing gun while gun has no ammo

* simplify

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-13 10:21:24 +03:00
slarticodefast
48a4aa3929 Cleanup Objective files, add PickSpecificPersonComponent (#35802)
* cleanup objectives

* remove unrelated access restriction

* review
2025-03-13 01:41:50 +01:00
PJBot
3f8be60a8d Automatic changelog update 2025-03-13 00:31:24 +00:00
K-Dynamic
e1762d91fa Locks nitrous oxide canisters (#35785)
lock nitrous oxide canisters
2025-03-12 17:30:16 -07:00
Ed
63ecf4241a IconSmooth additional smoothing keys (#35790)
* additionalKeys

* Update lava.yml

* Update Content.Client/IconSmoothing/IconSmoothComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-13 00:51:48 +01:00
PJBot
f9a48463ba Automatic changelog update 2025-03-12 22:48:05 +00:00
onesch
b3482fd737 Tools/Devices: In-hand Sprites (#33689)
* Adds in-hand sprites to the barber scissors.

* adds in-hand sprites to the floodlight.

* adds in-hand sprites to the gas analyzer.

* adds in-hand sprites to the gps.

* Update copyright wording, linting

* resprite gps inhand sprites.

* adds in-hand sprites to the mass scanner.

* adds in-hand sprites to the spray_painter.

* resprite in-hand sprites to the mass_scanner.

* fix in-hand sprites to the mass_scanner.

* Resprite mass_scanner in-hand sprites.
2025-03-13 01:46:58 +03:00
PJBot
e4b268088a Automatic changelog update 2025-03-12 22:46:29 +00:00
Firewars763
212bf99688 Add Gold and Coal Rock Anomalies (#34809)
* This commit adds 2 new Rock Anomaly types, Coal and Gold. It also adds Resource Crabs, colored crystals, and lights for both.

* Added crafting recipes for yellow and black light tubes. Somehow I forgot that the first time.

* Sorted tags.yml alphabetically this time instead of not doing that.

* Updated Texture Copyright information

* Attempted to fix Merge Conflict

* Added bulb light variants for both yellow and black crystals.
2025-03-13 01:45:22 +03:00
Łukasz Lindert
8f81e55711 Cryo and grinder cleanup (#34842)
* cryopod and grinder cleanup

* lower case name

* 4 spaces

* prototype clean

* looks like there is some kind of test that prevents removing this

* grinder too

* both should be empty

* cleanup
2025-03-13 01:44:05 +03:00
Velcroboy
9005183e6e Add wallmount N2 closets, Revived (#34042)
* Add standard, wallmount and improvised N2 closets, Revived

* remove improvised locker

* Parent>ID

* Undo sprite replacement

* Update meta.json

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-03-13 01:42:15 +03:00
ninruB
b7759cccbd Fix anomaly doublelogging (#34297)
cull doublelogging
2025-03-13 01:39:42 +03:00
PJBot
28ff4eddf5 Automatic changelog update 2025-03-12 22:37:50 +00:00
Winkarst
0d16bd5d2b New Feature: Warden job rolls before security officer/cadet/detective (#35313)
Commit
2025-03-13 01:36:41 +03:00
slarticodefast
ccc8837b69 fix more syndicate names (#35788) 2025-03-12 15:16:16 -04:00
slarticodefast
d8ac1524ef polymorph popup fixes (#35796)
polymorph fixes
2025-03-12 19:48:45 +01:00
slarticodefast
45e5fbfcdf forensics cleanup (#35795) 2025-03-12 18:57:06 +01:00
Ed
dcacd8f8da bugfixes and ENG OBT preparation (#1015)
* bugfixes and OBT preparation

* Update CP14CargoSystem.cs
2025-03-12 20:14:50 +03:00
Nim
18373b65ac fix tag food (#1013) 2025-03-12 19:43:20 +03:00
SlamBamActionman
2ff59f153e Add support for antag-before-job selection (#35789)
* Add support for antag-before-job selection

* Include logging
2025-03-12 16:48:39 +01:00
SlamBamActionman
02aec8fe54 Update Space Law to reflect Implant changes (#35701)
* Change implanter Space Law

* Add clarification regarding unidentified implanter vs. unidentified implant sentensing
2025-03-12 15:33:33 +01:00
Ed
55dd261f13 palisaade (#1012) 2025-03-12 17:32:48 +03:00
metalgearsloth
44c8e05d1f Update submodule to 248.0.2 (#35787) 2025-03-12 23:47:28 +11:00
Ed
0616d552f2 demiplane hints (#1011)
* demiplane hints

* lava update

* water resprite

* Update demiplane_hint.yml
2025-03-12 15:22:14 +03:00
Emisse
d12e0b8ddf Amber Station - Added Mail Room (#35786) 2025-03-12 02:50:23 -06:00
Southbridge
06ee81d1fe Added mail room 2025-03-12 04:34:06 -04:00
MilenVolf
5db89ab7e9 Localize rat king commands datasets (#35780) 2025-03-11 22:49:32 -07:00
MilenVolf
b5728c228d Localize news dataset (#35774)
* Localize news dataset

* Remove the `"`
2025-03-11 22:44:19 -07:00
Errant
3d898ed25a Roleban command error handling (#35784)
roleban command jobid fail handling
2025-03-11 22:41:01 -07:00
slarticodefast
175f5e6c2f TriggerSystem improvements (#35762)
* desynchronizer real

* yaml stuff from slarti branch

* C# stuff

* oops

* fix triggers

* atomize PR

---------

Co-authored-by: Flareguy <woaj9999@outlook.com>
2025-03-11 22:31:33 -07:00
PJBot
a384cbed89 Automatic changelog update 2025-03-12 01:23:08 +00:00
valquaint
4baaff2a23 Update to borg ion storms (#35751)
* Updates ion storms for borgs.

* Remove additional ion laws into future PR
2025-03-12 02:21:59 +01:00
Vortebo
3276deeca0 pipes. done. maybe 2025-03-11 16:57:53 -05:00
Ed
93ed28d34c Trading content (#1010)
* reroll positions

* more trading content

* bugfixes

* more content

* guidebook uodate

* Update buy.yml
2025-03-12 00:51:58 +03:00
imcb
231847a36d Fixes and refactoring to discord changelog script (#33859)
* Fixes and refactoring to discord changelog script

Upstreamed from https://github.com/impstation/imp-station-14/pull/1023

* Add some prints back in
2025-03-11 20:14:40 +01:00
PJBot
0575a3afd6 Automatic changelog update 2025-03-11 16:48:10 +00:00
Errant
a6d66e682f Restore the order of admin overlay elements (#35783)
admin overlay order fix
2025-03-11 17:47:03 +01:00
Ed
56f4012a49 Lava + Chest resprite (#1007)
* simple lava

* add into demiplanes

* Update meta.json

* wooden chest update

* Update migration.yml

* Update dev_map.yml

* manual migration

* Update factoria.yml
2025-03-11 17:39:46 +03:00
PJBot
9c84acdd92 Automatic changelog update 2025-03-11 13:53:45 +00:00
SlamBamActionman
ab72f682ce Fix Chameleon PDAs renaming the user in station records (#35782) 2025-03-11 14:52:38 +01:00
Princess Cheeseballs
81a1ae1623 Mail Resprite (#35776)
* init commit

* init commit

* delete those

* added github to copyright info
2025-03-11 13:44:32 +01:00
PJBot
6d99887746 Automatic changelog update 2025-03-11 09:42:20 +00:00
ScarKy0
4d98b9d621 Removable mindshields and revolutionary tweaks. (#35769)
* I fucking hate revs

* Update preset-revolutionary.ftl

* fixy fix
2025-03-11 10:41:13 +01:00
Nim
41e9e9f6ef Mannequin slot (#1003)
* mannequin slot

* pos
2025-03-11 10:55:40 +03:00
Link
0168dbabbb Separated mana modifiers (#1001)
* brainrot

* Update test_armor.yml
2025-03-11 10:23:09 +03:00
Link
540def6650 Update skeleton.yml (#1005) 2025-03-11 10:22:20 +03:00
Emisse
314b64226c Convex random maints fix (#35777) 2025-03-11 00:16:54 -06:00
Spessmann
de98dbb400 convex fix 2025-03-10 22:40:16 -07:00
SpaceManiac
38615b72e5 Merge showsubfloorforever into showsubfloor (#33682) 2025-03-11 11:01:11 +11:00
PJBot
3b31b72ed0 Automatic changelog update 2025-03-10 23:18:32 +00:00
Velken
4e37bcc40e Performer's Wig (#35764)
* miku wig

* fix to correct json convention

Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>

---------

Co-authored-by: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com>
2025-03-10 19:17:23 -04:00
PJBot
12a3a67ca9 Automatic changelog update 2025-03-10 23:09:33 +00:00
RedBookcase
80e674a9ae Added New Cocktails and new fill level sprites to existing drinks. (#33570)
* Added New Cocktails and new fill level sprites to existing drinks

* Updated copyright info and fixed recipies for Caipirinha/Mojito.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-03-10 19:08:23 -04:00
TytosB
a8d5e08d69 Merge branch 'space-wizards:master' into don 2025-03-10 17:41:46 -05:00
Nim
2ce913dd2d fix (#1002) 2025-03-10 19:02:31 +03:00
Winkarst
ca60f22c4d Cleanup: Add missing locale `cmd-planet-map-prototype` (#35766)
Cleanup
2025-03-10 16:34:27 +01:00
Vortebo
f4873e9c56 cowdoy in the city TWO 2025-03-10 10:16:38 -05:00
Winkarst
8d93eebceb Cleanup: Fix `PaperWriteEvent in PaperSystem` (#35763)
* Cleanup + fix

* Revert
2025-03-10 15:52:57 +01:00
Ed
dd26640465 fix #980 2025-03-10 17:03:59 +03:00
Ed
e7fc6bc652 some weapon balance 2025-03-10 17:01:39 +03:00
Nim
74fa1251c7 Modular armour 1 (#936)
* armor

* fix

* fix color

* migra

* + *

* balance

* caustic

* presets

* migr2

* plate

* chainmail

* fix speed

* ehh

* ehh2

* ehh3

* fix layers

* mask craft

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-03-10 16:24:10 +03:00
Deserty0
7806e2234f Update cleaner.yml (#1000)
* Update cleaner.yml

* Update cleaner.yml
2025-03-10 16:18:51 +03:00
github-actions[bot]
83770b3432 @Deserty0 has signed the CLA in crystallpunk-14/crystall-punk-14#1000 2025-03-10 12:37:20 +00:00
Evelyn Gordon
e0d6944822 Ensure speech bubble cap is always respected (#32223)
Ensure speech bubble cap is respected, even when messages are sent very fast
2025-03-10 13:28:08 +01:00
Nim
391cc8e7a5 Green salad (#999)
* green salad

* maxvol

* duplicate
2025-03-10 15:18:36 +03:00
Ed
10b38f04ce 129 Dinazewwr hairstyles (#717)
* first pass

* Sync new sprites

* ru loc

* chatgpt moment

* clean up

* Update human-hair.ftl
2025-03-10 13:06:18 +03:00
PJBot
d1b714bcf8 Automatic changelog update 2025-03-10 09:41:43 +00:00
Errant
c7d9a45dab Fix Ahelp window playerlist resize (#35747)
reorganize bwoink window layout
2025-03-10 20:40:36 +11:00
PJBot
2742429341 Automatic changelog update 2025-03-10 04:39:39 +00:00
metalgearsloth
70fca49063 Tweak sun shadow rotations (#35758)
Won't use the entity's rotation for the matrix, I just forgot to do this. Means shadows will always point in the same direction and the points will correctly adjust as the entity rotates.
2025-03-10 15:38:33 +11:00
PJBot
71ac80eb6c Automatic changelog update 2025-03-10 04:19:00 +00:00
metalgearsloth
b8b6634c0f Fix sun shadows in ANGLE (#35757)
I think I fat-fingered a ctrl-Z on this at some point but the intermediate blur is necessary.
2025-03-10 15:17:53 +11:00
MilenVolf
b1ddc1a20d Localize traitor codeverbs datasets (#35737)
* Localize verbs dataset

* Localize adjectives dataset

* Localize corporations dataset

* Update TraitorRuleSystem to use LocalizedDatasetPrototype instead of DatasetPrototype
2025-03-09 22:20:05 -04:00
metalgearsloth
75a7407e33 Predict some power PowerReceiver stuff (#33834)
* Predict some power PowerReceiver stuff

Need it for some atmos device prediction.

* Also this
2025-03-10 13:00:49 +11:00
Emisse
6689cae5a1 bagel update (#35754) 2025-03-09 19:30:42 -06:00
slarticodefast
84792f88d6 fix nukeops commander name (#35753) 2025-03-10 02:21:56 +01:00
Vortebo
38faab470b removed some stuff 2025-03-09 16:52:35 -05:00
Vortebo
008e51a5f2 more accurate emergency shuttle 2025-03-09 16:40:48 -05:00
Prole
b5b92d5f3d Python Suit Storage Visual (#35593)
* Python-SUITSTORAGE-Visuals

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* REVised Sprite

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Copyright

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>

* Update Resources/Textures/Objects/Weapons/Guns/Revolvers/python.rsi/meta.json

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

---------

Signed-off-by: Prole <172158352+Prole0@users.noreply.github.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-03-09 22:06:21 +01:00
ScarKy0
469a4196e3 Slightly better letter loot table (#35748)
* init

* review

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-03-09 21:54:10 +01:00
Milon
8e10ff1f08 fix UpdateBankAccount (#35749)
* trolled

* fun

* fuck me
2025-03-09 21:50:24 +01:00
Ed
66058ffc49 Auto CBT (#997)
* auto doggy

* fix

* fix
2025-03-09 23:29:20 +03:00
PJBot
03a8dee379 Automatic changelog update 2025-03-09 19:43:02 +00:00
slarticodefast
7a6b947e60 Steal the mail thieving objective (#35746)
* mail theft

* networked
2025-03-09 20:41:53 +01:00
Ed
759260c2ba unique loot rework 2025-03-09 18:48:48 +03:00
creamybag
a0337843ac baff (#995) 2025-03-09 17:48:41 +03:00
Vortebo
47c3dc65fa big bang little bang 2025-03-09 09:12:05 -05:00
MilenVolf
bcf3390c88 Remove unneeded Loc.GetString (#35739) 2025-03-09 11:06:11 +01:00
ScarKy0
39a8bae2d2 Convex Mail Teleporter (#35742)
Mail!
2025-03-09 03:40:58 -06:00
ScarKy0
ddc5758d00 Plasma Mail Teleporter (#35741)
Mail!
2025-03-09 03:38:15 -06:00
PJBot
66f89cece6 Automatic changelog update 2025-03-09 08:50:04 +00:00
Deerstop
217845b7ae Elkridge Mail Update (#35738)
add mail teleporter and mailing unit system
2025-03-09 01:49:33 -07:00
Emisse
4ed99ca367 derotate core (#35740)
Update default.yml
2025-03-09 01:48:55 -07:00
ArtisticRoomba
fc1c149820 Core mail update (#35719)
* core mail update

* empty
2025-03-09 01:47:43 -07:00
TytosB
f753bb9af4 Loop mail teleporter (#35729)
* latejoin

* youve got mail
2025-03-09 01:47:20 -07:00
github-actions[bot]
7215ae2d5c Update Credits (#35733)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2025-03-09 02:18:00 +01:00
ArtisticRoomba
2de3c58145 Bagel Engineering Improvements (#35717)
* woe, better engineering be upon ye

* im going to lose it

* radical plan

* oopsie

* Revert "oopsie"

This reverts commit 45ab057f55b46acd795e58257c3cc5967e5cb946.

* Revert "radical plan"

This reverts commit 57b1ae081725a47aef3ae03111cecbc91b4f47a8.

* Revert "im going to lose it"

This reverts commit e7b4afaf5d9a10a42e89831ffc9294d3b9bd96d4.

* Revert "woe, better engineering be upon ye"

This reverts commit 471dc3716b58a39631aa8bee00de79e981391d63.

* complete revamp

* revision

* oops 2 electric boogaloo

* another one

* every time i push to fix a minor mistake i found in walking around i get closer to my limit
2025-03-08 18:08:35 -07:00
ScarKy0
9d7cf27469 Remove a bonus Loc.GetString (#35731)
oops
2025-03-08 23:30:48 +01:00
ScarKy0
e57325b797 Fixed delivery popups (#35724)
* :)

* cool stuff
2025-03-08 22:08:41 +01:00
ScarKy0
6f39ee8688 Initial delivery balance changes (#35728)
* init

* small balance

* guess not

* Update Content.Server/Delivery/CargoDeliveryDataComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-08 21:48:02 +01:00
Viator-MV
d6a2c5f9f6 Commos upate 8.03.25 (#994)
* personal house fix comoss.yml

* Update comoss.yml

* Update comoss_d.yml

* MaGiC sPlItInG
2025-03-08 23:26:14 +03:00
TytosB
c64a6b03a3 youve got mail 2025-03-08 14:10:24 -06:00
TytosB
52d7479c50 Merge branch 'space-wizards:master' into don 2025-03-08 13:46:37 -06:00
slarticodefast
4735097385 Fix integration tests (#35727)
* test

* fix names

* fix more
2025-03-08 20:38:18 +01:00
MilenVolf
1abd2d3a08 Localize all dataset names (#32893)
* Use `LocalizedDatasetPrototype` instead of `DatasetPrototype` in `RoleLoadoutPrototype`

* Localize ai names

* Replace to `LocalizedDatasetPrototype` in `NamingSystem`

* Localize arachnid first and last names

* Localize atv names

* Localize autoborg names

* Forgot to change type to localizedDataset

* Localize borer names

* Localize borg names

* Localize cargo shuttle names

* Localize clown names

* Localize death_commando names

* Localize diona names

* Localize fake_human names

* Localize first and last names

* Localize first male and female names

* Localize fortunes descriptions

* Forgot about equal sign

* Localize golem names

* Localize hologram names

* Localize military names

* Localize moth first male and female names

* Localize moth last names

* Fix autoborg name error

* Localize mushman first and last names

* Localize ninja names

* Localize operation names

* Localize regalrat names

* Fix mushman_first

* Forgot about `Loc.GetString`

* Move comments into comment section & fix names

* Localize reptilian male and female names

* Localize revenant names

* Fix locale word order in operation

* Localize rollie (btw it was never used and was added as "for the futuгe" long time ago)

* Localize skeleton_first names

* Localize syndicate names

* Localize vox names

* Localize wizard first and last names

* `{owner}-name-dataset` -> `names-{owner}-dataset`

* Change `DatasetPrototype` to `LocalizedDatasetPrototype` and make sure it works properly

GetFTLName is no more the static method, we need it to be able to use `Loc.GetString`

* I hate those mothname comments

* Combine name datasets prototypes

* Move every ftl from` /en-US/names` to ` /en-US/datasets/names`

* Remove ftl files

* Get every dataset yml back

* Remove changes for planets. Move it in another PR

* Revert these changes (Moved to another PR)

* How

* Apply suggested changes
2025-03-08 20:04:26 +01:00
MilenVolf
b1fabb5a1a [Part of #32893] Localize misc dataset names (#33404)
* Localize cargo_shuttle names

* Localize death_commando names

* Localize fortunes

* Localize military names

* Localize rollie names

* fortunes.ftl -> cookie_fortune.ftl

* Correct prototype ids to follow naming conventions
2025-03-08 20:04:01 +01:00
MilenVolf
3ccd9e4b6d [Part of #32893] Localize first male & female dataset names (#33402)
* Localize first_name

* Localize first_female

* names-male/female-first-dataset -> names-first-male/female-dataset

* Correct prototype ids to follow naming conventions

* Combine first_male.yml and first_female.yml into base_gendered.yml
2025-03-08 20:03:51 +01:00
MilenVolf
9200a24dcf [Part of #32893] Localize first & last dataset names (#33401)
* Localize first names

* Localize last names

* Correct prototype ids to follow naming conventions

* Combine first.yml and last.yml into base.yml

* Forgot about = in last
2025-03-08 20:03:38 +01:00
MilenVolf
7806afb284 [Part of #32893] Localize vox dataset names (#33396)
* Localize vox names

* Correct prototype id to follow naming conventions

* Upstream names
2025-03-08 20:03:24 +01:00
MilenVolf
177a323fd4 [Part of #32893] Localize humanoid species dataset names (#33395)
* Localize diona names

* Localize moth names

* Localize mushman names

* Localize reptilian names

* Localize skeleton names

* Upstream diona names

* names-moth-male/female-first-dataset -> names-moth-first-male/female-dataset

* Correct prototype ids to follow naming conventions

* NamesSkeletonFirst -> NamesSkeleton

* Combine moth_first_female.yml, moth_first_male.yml and moth_last.yml

* Forgot about skeleton prototype

* Upstream names

* Update Resources/Locale/en-US/datasets/names/diona_last.ftl

* Update Resources/Locale/en-US/datasets/names/diona_last.ftl

* keep first name for skeleton

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-08 20:03:07 +01:00
MilenVolf
0480e1554f [Part of #32893] Localize antagonists dataset names (#33393)
* Localize fake human names

* Localize ninja names

* Localize operation names

* Localize regalrat names

* Localize revenant names

* Localize syndicate names

* Localize wizard names

* Correct prototype ids to follow naming conventions

* Combine fake_human_first.yml and fake_human_last.yml

* Move contents of ninja_title.yml into ninja.yml

* Combine Operation_prefix.yml and Operation_suffix.yml

* Combine wizard_first.yml and wizard_last.yml

* Upstream names

* fix wizard

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-08 20:02:46 +01:00
MilenVolf
7242a1d69d [Part of #32893] Localize summonable creatures dataset names (#33392)
* Localize clown names

* Localize golem names

* Localize hologram names

* Correct prototype ids to follow naming conventions

* Update Resources/Locale/en-US/datasets/names/golem.ftl

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-08 20:02:36 +01:00
MilenVolf
28174a5062 [Part of #32893] Localize arachnid dataset names (#33353)
* Localize arachnid dataset names

* Correct prototype ids to follow naming conventions

* Combine arachnid_first.yml and arachnid_last.yml

* Upstream names
2025-03-08 20:02:22 +01:00
MilenVolf
965bd1c5ac [Part of #32893] Localize silicon dataset names (#33352)
* Localize ai names

* Apply requested changes

* Localize autoborg

* Localize borg names

* Localize atv names

* Correct prototypes ids to follow naming conventions

* Remove AI localization (Moved to another PR)

* Weh
2025-03-08 20:02:12 +01:00
PJBot
804addfff7 Automatic changelog update 2025-03-08 15:22:34 +00:00
Momo
2412b4f634 Aroace pride pin, scarf, and cloak (#35718)
cloak, pin, and scarf added yayyyy
2025-03-08 16:21:21 +01:00
Ed
2be52084d6 Update CP14SharedDayCycleSystem.cs 2025-03-08 15:43:27 +03:00
Ed
c06323374f fix sun inside storage 2025-03-08 14:55:37 +03:00
Ed
978f9cf4b9 vampire buff 2025-03-08 14:46:13 +03:00
Ed
fc0e41c562 Update subgamemodes.yml 2025-03-08 14:31:42 +03:00
Nim
990a498e0d tweak meat rabbit (#993) 2025-03-08 12:34:52 +03:00
compilatron
bc083f9d49 Plasma fixes 4 (#35716)
Fixes 15

Co-authored-by: jbox1 <40789662+jbox144@users.noreply.github.com>
2025-03-08 01:47:49 -07:00
ScarKy0
315f5a21a9 Fland Mail Teleporter (#35711)
Mail!
2025-03-08 01:47:41 -07:00
ScarKy0
a1487c21bb Marathon Mail Teleporter (#35710)
Mail!
2025-03-08 01:47:15 -07:00
ScarKy0
8d6cc7b2a0 Meta Mail Teleporter (#35709)
Mail!
2025-03-08 01:47:03 -07:00
ScarKy0
d8b020ca54 Oasis Mail Teleporter (#35708)
Mail!
2025-03-08 01:46:55 -07:00
ScarKy0
6c4d1acb35 Box Mail Teleporter (#35707)
Mail!
2025-03-08 01:46:43 -07:00
ScarKy0
9f3ae33e77 Packed Mail Teleporter (#35706)
Mail!
2025-03-08 01:46:32 -07:00
ScarKy0
4c9199dd59 Omega Mail Teleporter (#35705)
Mail!
2025-03-08 01:46:20 -07:00
PJBot
2c40dde9bc Automatic changelog update 2025-03-08 05:08:48 +00:00
metalgearsloth
f51b9bc86e Add sun shadows (planet lighting stage 2) (#35145)
* Implements a Dynamic Lighting System on maps.

* Edit: the night should be a little bit brighter and blue now.

* Major edit: everything must be done on the client side now, with certain datafield replicated.
Changes were outlined in the salvage to accommodate the new lighting system.

* Edit: The offset is now serverside, this makes the time accurate in all situations.

* Removing ununsed import

* Minor tweaks

* Tweak in time precision

* Minor tweak + Unused import removed

* Edit: apparently RealTime is better for what I'm looking for

* Fix: Now the time is calculated correctly.

* Minor tweaks

* Adds condition for when the light should be updated

* Add planet lighting

* she

* close-ish

* c

* bittersweat

* Fixes

* Revert "Merge branch '22719' into 2024-09-29-planet-lighting"

This reverts commit 9f2785bb16aee47d794aa3eed8ae15004f97fc35, reversing
changes made to 19649c07a5fb625423e08fc18d91c9cb101daa86.

* Europa and day-night

* weh

* rooves working

* Clean

* Remove Europa

* Fixes

* fix

* Update

* Fix caves

* Update for engine

* Add sun shadows (planet lighting v2)

For now mostly targeting walls and having the shadows change over time. Got the basic proof-of-concept working just needs a hell of a lot of polish.

* Documentation

* a

* Fixes

* Move blur to an overlay

* Slughands

* Fixes

* Apply RoofOverlay per-grid not per-map

* Fix light render scales

* sangas

* Juice it a bit

* Better angle

* Fixes

* Add color support

* Rounding bandaid

* Wehs

* Better

* Remember I forgot to do this when writing docs

---------

Co-authored-by: DoutorWhite <thedoctorwhite@gmail.com>
2025-03-08 16:07:42 +11:00
metalgearsloth
db96cc7881 Update submodule to 248.0.0 (#35720) 2025-03-08 15:51:29 +11:00
metalgearsloth
a695a527f0 Update b2dynamictree (#30630) 2025-03-08 14:49:13 +11:00
PJBot
31a45a427c Automatic changelog update 2025-03-08 02:43:56 +00:00
Łukasz Mędrek
0be41cebb9 Text related keybinds can now be changed in Controls (#35630)
* Add ability to rebind text related keybinds

* fix placement of locales
2025-03-08 13:42:50 +11:00
PJBot
67f2c1ed58 Automatic changelog update 2025-03-08 02:40:11 +00:00
slarticodefast
531f5619be add forceghost admin command (#35518)
* add forceghost admin command

* sweep linq under the rug

* braces

* ûse LocalizedEntityCommands
2025-03-08 13:39:04 +11:00
deltanedas
cca537fb33 Add AssertMultiple to ContrabandTest (#35662)
* add AssertMultiple to ContrabandTest

* do the same for magazine visuals test

* :trollface:

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2025-03-08 13:37:26 +11:00
Vortebo
3fb80927cf clown gone 2025-03-07 17:02:46 -06:00
Ed
d1587d31b5 mimimi (#992) 2025-03-07 17:17:27 +03:00
Viator-MV
71e6b90f1a Skeleton update (#986)
* Literally everything

Как будто я не должен был делать всё в 1 коммит

* фиксы

маленькие изменения по запросу Эда

* fix

HideSpawnMenu

* fix2

fix

* final fix

final fix

* real final fix

* spell fix

* fix
2025-03-07 17:15:17 +03:00
Link
15798a44df Update CP14MagicManacostModifySystem.cs (#987) 2025-03-07 17:14:29 +03:00
creamybag
d0602d7d1d Jaster update! (#990)
* hihihi

* hihihi 32x32
2025-03-07 17:13:52 +03:00
github-actions[bot]
d97d7f6fc4 @LinkF2kkk has signed the CLA in crystallpunk-14/crystall-punk-14#987 2025-03-07 13:53:33 +00:00
PJBot
00fec734f3 Automatic changelog update 2025-03-07 13:52:18 +00:00
ScarKy0
3281f408eb Cargo Mail System (#35429)
* shitcode init

* biocoding, SpawnTableOnUse, Moving shit to shared

* server :(

* fixes

* ok works

* Discard changes to Content.Shared/Interaction/Events/GettingUsedAttemptEvent.cs

* Discard changes to Content.Shared/Forensics/Components/FingerprintMaskComponent.cs

* Discard changes to Content.Shared/Forensics/Components/FingerprintComponent.cs

* Discard changes to Content.Server/Forensics/Systems/ForensicsSystem.cs

* Discard changes to Content.Server/StationRecords/Systems/StationRecordsSystem.cs

* Discard changes to Content.Server/Storage/EntitySystems/SpawnItemsOnUseSystem.cs

* Discard changes to Content.Shared/Interaction/Events/GettingUsedAttemptEvent.cs

* big stuff

* preperation

* temperory spawning thing for testing

* Update CargoDeliveryDataComponent.cs

* kinda proper spawning idk god save me

* cleanup (kinda)

* preparation 2.0

* stuff i think

* entity table work

* renames

* spawn ratio based on players

* comment

* letter tables

* more spam

* package tables

* comment

* biocodedn't

* builds correctly

* cleaning

* Update deliveries_tables.yml

* labels

* package sprites

* mail teleporter

* revert testing value

* fix test

* fix other test

* i love tests

* mail teleporter enabled by default

* random cooldowns

* fixtures

* Discard changes to Content.Shared/FingerprintReader/FingerprintReaderComponent.cs

* Discard changes to Content.Shared/FingerprintReader/FingerprintReaderSystem.cs

* Discard changes to Content.Shared/Interaction/Events/GettingUsedAttemptEvent.cs

* Discard changes to Resources/Locale/en-US/fingerprint-reader/fingerprint-reader.ftl

* clean

* fuck paper scrap

* oops

* fuck SpawnTableOnUse

* mail teleporter board in QM locker + addressed review

* oops

* clean

* sound on delivery spawn

* address review

* partial review address

* partial review addressing

* addressing partial review

* pratarial revivew address

* misprediction hell

* stuff

* more stuff

* unrelated

* TODO

* link

* partial review

* DirtyField

---------

Co-authored-by: Milon <milonpl.git@proton.me>
2025-03-07 14:51:08 +01:00
Nim
228258e575 Dice (#989)
* dice

* wallet

* crate
2025-03-07 15:36:58 +03:00
Ed
6aac9d6447 Update wizard.yml 2025-03-07 14:53:58 +03:00
Ed
0b5712ce97 Vampire antag (#988)
* new blood types

* vampire systems setup

* death under sun

* vampire blood nutrition

* alerts

* autolearn skills

* base bite actions

* suck blood spell

* polish

* Update blood.yml

* unshitcode

* vampire hunger visual

* nerf speed

* hypnosis + map update

* darkness demiplane warning
2025-03-07 14:52:43 +03:00
Deerstop
5c12c1bf08 Elkridge Tesla and TEG Improvements + Other stuff (#35684)
* better tesla, better TEG, better sci maints, chef gets chef closet

* added storage room for tesla parts, added captain bathroom, changed vault so nuke can be armed

* ran fixgridatmos and added some vacuum markers

* unflatpacked containment shit
2025-03-07 01:25:05 -07:00
War Pigeon
fdb3082b90 Add firelocks and locked external airlocks to ATS (#35516)
* Add firelocks and locked airlocks to ATS

* Add fire alarms
2025-03-06 11:58:44 -07:00
Nim
cea7d93d12 Fixes (#975)
* fixs

* not
2025-03-06 16:33:10 +03:00
Tornado Tech
4a11cf9c53 Merge pull request #977 from crystallpunk-14/skill-remaster
Knowledge refactor
2025-03-06 22:29:36 +10:00
github-actions[bot]
19e9b3bc40 @SpyDev14 has signed the CLA in crystallpunk-14/crystall-punk-14#976 2025-03-06 10:38:37 +00:00
Tornado Tech
1ad686f42e feature: add to adghost CP14AllKnowing 2025-03-06 19:59:33 +10:00
Tornado Tech
06697abcdb fix: Books\knowledge.yml 2025-03-06 19:57:04 +10:00
Tornado Tech
1265355260 fix: CP14AddKnowledgeSpecial usings 2025-03-06 19:48:20 +10:00
github-actions[bot]
b1e985d0ad @Tornado-Technology has signed the CLA in crystallpunk-14/crystall-punk-14#977 2025-03-06 09:46:28 +00:00
Tornado Tech
ce0ec78e8d fix: CP14AddKnowledgeSpecial namespace 2025-03-06 19:43:04 +10:00
Tornado Tech
e6a28307a4 refactor: server CP14KnowledgeSystem 2025-03-06 19:42:20 +10:00
Ed
c1acf81541 NewTrade (#969)
* trading portal replace traveling storeship

* clean up content

* clean up content 2

* seel and buy realization

* fixes

* Update migration.yml

* Update migration.yml

* Update dev_map.yml

* Update dev_map.yml

* thats work correctly now

* bugfies and visual

* factions

* faction restruct + name reduce

* unnesting sell cargo positions

* unnesting cargo positions

* more cargo content

* Update buy.yml

* improve tradeportal visual

* Update migration.yml

* Bank ad Commandant removal

* merchant objectives

* finish

* clean up content

* Update migration.yml

* fix goal calculation

* Update comoss.yml

* Update dev_map.yml
2025-03-06 12:01:43 +03:00
Tornado Tech
7b5283b35b fix: Knowledge events usings (I hate Rider) 2025-03-06 18:56:06 +10:00
Tornado Tech
45a6919994 fix: KnowledgeRequired 2025-03-06 18:46:51 +10:00
Viator-MV
0d23f79eb6 Обновление скелетов (#971)
* Literally everything

Как будто я не должен был делать всё в 1 коммит

* фиксы

маленькие изменения по запросу Эда

* fix

HideSpawnMenu

* fix2

fix

* final fix

final fix
2025-03-06 11:40:30 +03:00
Tornado Tech
35e6bae5fe refactor: Add AllKnowing comp, separate paper and events 2025-03-06 18:40:17 +10:00
Tornado Tech
44f4c17266 refactor: Orthographic and obsolete in Knowledge 2025-03-06 18:22:01 +10:00
Vortebo
e82bf065dc lightz 2025-03-05 20:06:10 -06:00
Vortebo
821baa0900 one hundred per cent historically authentic 2025-03-05 12:38:14 -06:00
PJBot
0a232908a4 Automatic changelog update 2025-03-05 16:26:49 +00:00
Errant
6f23e10495 Players with unknown playtimes now are tagged as new players, take 2 (#35648)
* your commit? our commit.

* skreee

* show joined players before lobby players; comments

* comments

* playerinfo retains playtime data after disconnect

* new connection status symbols
2025-03-05 08:25:42 -08:00
Nim
e54e8a95ee Sheep (#972)
* sheep

* demi mod
2025-03-05 17:30:06 +03:00
creamybag
d9a5869504 Merge pull request #973 from creamybag/GuildmasterHat
Guildmaster hat
2025-03-05 17:28:41 +03:00
āda
b57b534380 Lathe menu UI displays a count of available recipes (#35570)
* commit

* jumped the gun

* changes
2025-03-05 23:31:48 +11:00
PJBot
657899f8b5 Automatic changelog update 2025-03-05 10:27:39 +00:00
Boaz1111
3bf38a4d46 More scars! (#35644)
* :3

* whitespace, stomach scar
2025-03-05 11:26:31 +01:00
Emisse
4c0ebb7f32 centcomm update (#35674) 2025-03-05 02:22:05 -07:00
PJBot
74e02022d6 Automatic changelog update 2025-03-05 09:15:11 +00:00
SlamBamActionman
27cfc0939c Add undergarments & "Censor Nudity" toggle to options (#33185)
* Initial commit

* Attribution

* Review changes

* Added comment for upstream
2025-03-05 10:14:01 +01:00
Vortebo
d3e1718da5 evacuate the dance floor 2025-03-04 17:04:12 -06:00
slarticodefast
8785085be6 Merge stable into master (#35669) 2025-03-04 22:24:29 +01:00
nikthechampiongr
e8c13fe325 Make implants unshielded (#35667) 2025-03-04 21:56:44 +01:00
Ps3Moira
0d01bb8894 Open State for cowtools (#35666)
Open State
2025-03-04 21:38:33 +01:00
Killerqu00
2d32e08bee CVar - Toggle display of round-end greentext (#35651)
* hide greentext if cvar false

* change IFs around a lil

* reviews
2025-03-04 08:59:44 -08:00
Vortebo
346bd8dd8b lights out 2025-03-04 09:24:51 -06:00
Vortebo
e67c7a7409 engineering walls more accurate 2025-03-04 09:24:16 -06:00
Ed
f9ff91d74b Update default.yml 2025-03-04 13:56:12 +03:00
MisterImp
5774b71b9b Fix name of cotton dough rope (#35657)
changed in-game name of cotton dough rope to differentiate from normal dough rope
2025-03-04 03:56:48 +01:00
Vortebo
14c94968fc is this better? i cannot tell if it is better 2025-03-03 19:31:29 -06:00
Tayrtahn
50f7846bb1 Delete SolutionContainerVisualsComponent.InitialName (#35654) 2025-03-03 23:58:04 +01:00
PJBot
67b8f35a3c Automatic changelog update 2025-03-03 22:05:32 +00:00
DuckManZach
ff6c212335 Made butter require less milk (#35650)
made butter take less milk
2025-03-03 23:04:26 +01:00
Vortebo
f41c98b053 i dont have anything clever to say for this one 2025-03-03 15:08:23 -06:00
Ed
b7b52e664d Update Dev.toml 2025-03-03 23:59:32 +03:00
Ed
b202897c36 Merge pull request #968 from crystallpunk-14/ed-2025-03-03-upstream-stable-2
Stable upstream sync
2025-03-03 23:40:02 +03:00
PJBot
3f7a9cad7c Automatic changelog update 2025-03-03 16:38:35 +00:00
rokudara-sen
8b7f175f84 Added decelerator percentage drain (#35643)
* Added variable PercentageDrain to SinguloFoodComponent

* Set percentageDrain to 0.03 (3%) for anti particles

* Added percentageDrain logic in public OnConsumed

* Simplify SinguloFoodComponent and set percentageDrain to negative

* EnergyFactor now applies to positive values too

* Better commenting on EnergyFactor

* Update Content.Server/Singularity/Components/SinguloFoodComponent.cs

* Documentation of EnergyFactor

* Fixing spelling mistake

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-03 11:37:28 -05:00
PJBot
69115870ea Automatic changelog update 2025-03-03 15:55:50 +00:00
Velken
7a89fe5d33 Wizard's Magical Pen (#35623)
* wizard pen

* description change
2025-03-03 16:54:43 +01:00
PJBot
ee690d9ee4 Automatic changelog update 2025-03-03 11:13:05 +00:00
Coolsurf6
913894a041 Changed Damage Overlay to check Burn Damage (#34535)
* updated BruteLevel to be PainLevel with burn damage checks in DamageOverlayUiController.cs

* dehardcoded pain level by adding damage groups to paindamagegroups to affect

* re-added the name for painDamageGroups

* fixed overlay default and added minimum limit to component check first

* renamed to PainDamageGroups and removed obsolete tag
2025-03-03 12:11:58 +01:00
PJBot
f42c1bc933 Automatic changelog update 2025-03-03 10:05:42 +00:00
Hannah Giovanna Dawson
78b2b361e8 Save Space Station 14 from the Toilet Gibber Forever (#35587)
* The evil is defeated

* Tag body bags

* uwu, cwush me cwusher-chan

* absolute 18+ sloggery

* botos binted? 👽
2025-03-03 11:04:33 +01:00
Errant
184edfe71d Merge stable to master (#35640) 2025-03-03 08:04:07 +01:00
Tayrtahn
7e7d12d437 Add GetBaseName method to NameModifierSystem (#35633)
* Add GetBaseName method to NameModifierSystem

* Use Name
2025-03-03 02:03:16 +01:00
PJBot
36021f1702 Automatic changelog update 2025-03-02 20:59:22 +00:00
HTML/Crystal
8fc78f63d9 Better Insectoid Glasses (#31812)
Sprites and file changes

Adds the variants for arachnid and moth glasses, adds the code for those in the meta.json files, and adds the speciesID tag in both arachnid and moth prototype files.
2025-03-02 15:58:15 -05:00
Emisse
5b078e3978 centcomm update (#35627) 2025-03-02 13:53:56 -07:00
slarticodefast
6f1df2b62f Merge stable into master (#35626) 2025-03-02 21:36:14 +01:00
PJBot
469bb1a9ec Automatic changelog update 2025-03-02 15:51:20 +00:00
slarticodefast
ceff2bea00 Cloning Refactor and bugfixes (#35555)
* cloning refactor

* cleanup and fixes

* don't pick from 0

* give dwarves the correct species

* fix dna and bloodstream reagent data cloning

* don't copy helmets

* be less redundant
2025-03-02 16:50:12 +01:00
Myra
02d3595faa Stable merge (#35620) 2025-03-02 13:58:59 +01:00
PJBot
ce7bb813d2 Automatic changelog update 2025-03-02 12:56:18 +00:00
Myra
51754f09ce #32209 changelog (#35619)
Since it was merged into staging no changelog was made, but we should at least have it for next release. (And vulture)
2025-03-02 13:55:10 +01:00
PJBot
7ea586cc1c Automatic changelog update 2025-03-02 02:49:00 +00:00
metalgearsloth
a8ebcac5c9 Predict vending machine UI (#33412) 2025-03-02 13:47:52 +11:00
PJBot
ba1504d0d6 Automatic changelog update 2025-03-02 02:31:03 +00:00
metalgearsloth
d9e86b3e81 Revert "Make radioactive material radioactive" (#35330) 2025-03-02 13:29:54 +11:00
deltanedas
66e926843f fix cluwne pda pen slot (#35611)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2025-03-02 00:33:24 +01:00
Vortebo
4a937edd27 goodbye salvage, you dont exist at all. no more salvage. my map cant account for having to deal with you so you arent real now 2025-03-01 16:53:33 -06:00
Ed
0563e0d67e Reagent guidebook reactions UI dividers (#35608)
* Update GuideReagentReaction.xaml

* Update Content.Client/Guidebook/Controls/GuideReagentReaction.xaml

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>

* Update Content.Client/Guidebook/Controls/GuideReagentReaction.xaml

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>

---------

Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
2025-03-01 16:21:33 -06:00
hivehum
a926c53979 Give the station map inhand sprites (#35605)
map has inhands
2025-03-01 21:31:44 +01:00
PJBot
bb0c4c66fa Automatic changelog update 2025-03-01 20:26:00 +00:00
SlamBamActionman
9c970d203d Remove cellular resistance for slimes (#35583)
* Remove cellular resistance for slimes

* Update guidebook
2025-03-01 21:24:54 +01:00
ScarKy0
a54960eb81 Fingerprint Reader System (#35600)
* init

* public api

* stuff

* weh
2025-03-01 10:41:37 -08:00
PJBot
5bdc93b102 Automatic changelog update 2025-03-01 18:04:34 +00:00
ArtisticRoomba
deea33a36a DetGadget Hat Revitalization (#35438)
* DetGadget Hat

* uh... half-assed item description

* Reduce hat range to one tile, you have to stand on someone to steal their hat items

* Fix Integration Errors

* Only the wearer can access voice commands

* init work - handscomp is unable to be pulled

* second bit of progress

* basic working implementation

* nuke storageslots and add adminlogging

* disallow trolling nukies or hiding objective items

* remove unnecessary tags additions

* finish nuking unused tags

* death to yamllinter

* int tests be damned

* milon is a furry

* address review

* upd desc

* address reviews part 2

* address more reviews

* remove unused refs

* fix order of dependencies

* add ShowVerb to SharedStorageSystem.cs

This will allow or disallow showing the "Open Storage" verb if defined on the component.

* orks is a nerd

* add proper locale, fix adminlogging

* orks is a nerd 2

---------

Co-authored-by: Coenx-flex <coengmurray@gmail.com>
2025-03-01 19:03:27 +01:00
chromiumboy
10c868011e Sentry turrets - Part 3: Turret AI (#35058)
* Initial commit

* Updated Access/command.yml

* Fix for Access/AccessLevelPrototype.cs

* Added silicon access levels to admin items

* Included self-recharging battery changes

* Revert "Included self-recharging battery changes"

* Addressed reviewers comments

* Additional reviewer comments
2025-03-01 18:42:33 +01:00
FungiFellow
e8c812f90f Changed Pride to Hubris in ion_storm.yml (#35602)
Update ion_storm.yml
2025-03-01 18:19:19 +01:00
PJBot
212e942d21 Automatic changelog update 2025-03-01 14:09:40 +00:00
ScarKy0
5169ad4e8f Fix being able to write on/stamp/fax paper scrap (#35596)
* init

* item

* requested changes

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-03-01 15:08:34 +01:00
PJBot
e540f9cd50 Automatic changelog update 2025-03-01 09:57:36 +00:00
LaCumbiaDelCoronavirus
aa05cbb49b make slime hair less transparent (#35158)
* blabl blump or something

* +0.3

* blimpuf
2025-03-01 20:56:29 +11:00
Errant
1b20121114 Increase line spacing of the admin overlay (#35591)
line spacing
2025-03-01 03:17:07 +01:00
PJBot
6b84315928 Automatic changelog update 2025-03-01 02:13:31 +00:00
Velken
30a6ebdb26 Wizard PDA (#35572)
* wizard PDA

* colour change to brown
2025-03-01 03:12:24 +01:00
PJBot
01e4029a11 Automatic changelog update 2025-02-28 20:52:39 +00:00
Schrödinger
8ea888d821 [ADMIN] Minor Refactor AdminNameOverlay (#35520)
* refactor(src): Minor refactor of Draw in "AdminNameOverlay. And new info about playtime player

* fix(src): Add configure classic admin owerlay

* fix

* tweak(src): Use _antagLabelClassic and tweak style

* tweak(src): Add config display overlay for startingJob and playTime

* tweak(src): Vector2 is replaced by var

* tweak(src): return to the end of the list
2025-02-28 21:51:30 +01:00
Vortebo
e60318e59f this was annoying me 2025-02-28 13:30:37 -06:00
Vortebo
2a7c9ed267 its the tiny details that make a map feel finished 2025-02-28 12:21:30 -06:00
Vortebo
7462f9a376 lil flower shop 2025-02-28 09:01:02 -06:00
Southbridge
0c6db4db18 Amber Station - A Couple Changes (#35548) 2025-02-27 23:48:18 -07:00
Vortebo
63a6ffaa52 the walls, they move 2025-02-27 21:22:43 -06:00
Pancake
4442d5e277 Unheck Admin Smites (#35348)
* Fix admin verb names

Fixed admin verb names.

* Add antag verb names

* Adjust antag verb icons
2025-02-28 01:05:34 +01:00
PJBot
d8838e31d5 Automatic changelog update 2025-02-27 23:37:00 +00:00
Smith
38d72434fb Reptilians Can Eat Chicken Nuggets (#35569)
Added meat tag to misc.yml for chicken nuggets.
2025-02-28 00:35:52 +01:00
Smith
6b6ac9ac53 Doxarubixadone Description Fix (#35568)
Changed medicine.ftl for Doxa.
2025-02-28 00:18:36 +01:00
SlamBamActionman
1047e32944 Add new implants to deimplant list (#35563)
Initial commit
2025-02-27 20:23:59 +01:00
Vortebo
98c7010b16 Recklessly deleted power cables and atmos, excited to see what I accidentally broke in two weeks 2025-02-27 09:50:23 -06:00
Vortebo
ac7f99d46e atmos themed nightclub 2025-02-26 14:41:16 -06:00
Vortebo
213e88820a it hurts 2025-02-25 18:23:03 -06:00
Vortebo
30bdcd58fb Bridge window wall adjusted. 2025-02-25 16:33:35 -06:00
Vortebo
d364efb886 Bridge is now separated from the greytide only by a thin sheet of glass. 2025-02-25 15:57:37 -06:00
Vortebo
c781fde830 Addressed several playtest issues. 2025-02-25 11:04:05 -06:00
Vortebo
daccf98cca hotplate 2025-02-24 17:23:09 -06:00
TytosB
b788d15da7 latejoin 2025-02-17 16:21:16 -06:00
Nikolai Korolev
ee0ce4b220 Empty commit to rerun tests 2024-11-30 22:54:41 +00:00
Nikolai Korolev
ecb6540c61 Upgrade Github actions in Workfows to node20 2024-11-30 22:35:11 +00:00
7969 changed files with 854856 additions and 499522 deletions

View File

@@ -127,6 +127,7 @@ csharp_indent_braces = false
#csharp_indent_case_contents_when_block = true
#csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
xmldoc_indent_text = zeroindent
# Space preferences
csharp_space_after_cast = false

49
.github/CODEOWNERS vendored
View File

@@ -1,45 +1,6 @@
# Last match in file takes precedence.
# TheShuEd
* @TheShuEd
# Sorting by path instead of by who added it one day :(
# this isn't how codeowners rules work pls read the first comment instead of trying to force a sorting order
/Resources/ConfigPresets/WizardsDen/ @nikthechampiongr @crazybrain23
/Content.*/Administration/ @DrSmugleaf @nikthechampiongr @crazybrain23
/Resources/ServerInfo/ @nikthechampiongr @crazybrain23
/Resources/ServerInfo/Guidebook/ServerRules/ @nikthechampiongr @crazybrain23
/Resources/Prototypes/Maps/** @Emisse
/Resources/Prototypes/Body/ @DrSmugleaf # suffering
/Resources/Prototypes/Entities/Mobs/Player/ @DrSmugleaf
/Resources/Prototypes/Entities/Mobs/Species/ @DrSmugleaf
/Resources/Prototypes/Guidebook/rules.yml @nikthechampiongr @crazybrain23
/Content.*/Body/ @DrSmugleaf
/Content.YAMLLinter @DrSmugleaf
/Content.Shared/Damage/ @DrSmugleaf
/Content.*/Anomaly/ @TheShuEd
/Resources/Prototypes/Entities/Structures/Specific/anomalies.yml @TheShuEd
/Content.*/Forensics/ @ficcialfaint
# SKREEEE
/Content.*.Database/ @PJB3005 @DrSmugleaf
/Content.Shared.Database/Log*.cs @PJB3005 @DrSmugleaf @nikthechampiongr @crazybrain23
/Pow3r/ @PJB3005
/Content.Server/Power/Pow3r/ @PJB3005
# notafet
/Content.*/Atmos/ @Partmedia
/Content.*/Botany/ @Partmedia
# Jezi
/Content.*/Medical @Jezithyr
/Content.*/Body @Jezithyr
# Sloth
/Content.*/Audio @metalgearsloth
/Content.*/Movement @metalgearsloth
/Content.*/NPC @metalgearsloth
/Content.*/Shuttles @metalgearsloth
/Content.*/Weapons @metalgearsloth
# TornadoTechnology
*.cs @Tornado-Technology
*.xaml @Tornado-Technology

View File

@@ -11,7 +11,7 @@ jobs:
name: Run Benchmarks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
with:
submodules: 'recursive'
- name: Get Engine version

View File

@@ -8,7 +8,7 @@ jobs:
docfx:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
- name: Setup submodule
run: |
git submodule update --init --recursive
@@ -19,7 +19,7 @@ jobs:
cd RobustToolbox/
git submodule update --init --recursive
- name: Setup .NET Core
uses: actions/setup-dotnet@v3.2.0
uses: actions/setup-dotnet@v4.1.0
with:
dotnet-version: 9.0.x

View File

@@ -19,7 +19,7 @@ jobs:
steps:
- name: Checkout Master
uses: actions/checkout@v3.6.0
uses: actions/checkout@v4.2.2
- name: Setup Submodule
run: |
@@ -34,7 +34,7 @@ jobs:
git submodule update --init --recursive
- name: Setup .NET Core
uses: actions/setup-dotnet@v3.2.0
uses: actions/setup-dotnet@v4.1.0
with:
dotnet-version: 9.0.x

View File

@@ -19,7 +19,7 @@ jobs:
steps:
- name: Checkout Master
uses: actions/checkout@v3.6.0
uses: actions/checkout@v4.2.2
- name: Setup Submodule
run: |
@@ -34,7 +34,7 @@ jobs:
git submodule update --init --recursive
- name: Setup .NET Core
uses: actions/setup-dotnet@v3.2.0
uses: actions/setup-dotnet@v4.1.0
with:
dotnet-version: 9.0.x

View File

@@ -10,6 +10,6 @@ jobs:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
- name: Check for CRLF
run: Tools/check_crlf.py

View File

@@ -12,7 +12,7 @@ jobs:
steps:
- uses: superbrothers/close-pull-request@v3
with:
comment: "Thank you for contributing to the Space Station 14 repository. Unfortunately, it looks like you submitted your pull request from the master branch. We suggest you follow [our git usage documentation](https://docs.spacestation14.com/en/general-development/setup/git-for-the-ss14-developer.html) \n\n You can move your current work from the master branch to another branch by doing `git branch <branch_name` and resetting the master branch."
comment: "Thank you for your contribution! It appears you created a PR from your master branch, this is [something you should avoid doing](https://jmeridth.com/posts/do-not-issue-pull-requests-from-your-master-branch/), and thus this PR has been automatically closed. \n \n We suggest you follow [our git usage documentation](https://docs.spacestation14.com/en/general-development/setup/git-for-the-ss14-developer.html). \n \n You can move your current work from the master branch to another branch by following [these commands](https://ohshitgit.com/#accidental-commit-master). And then you may recreate your PR using the new branch."
# If you prefer to just comment on the pr and not close it, uncomment the bellow and comment the above

View File

@@ -2,6 +2,7 @@
concurrency:
group: publish-testing
cancel-in-progress: true
on:
workflow_dispatch:

View File

@@ -2,6 +2,7 @@ name: Publish
concurrency:
group: publish
cancel-in-progress: true
on:
workflow_dispatch:
@@ -16,11 +17,11 @@ jobs:
- name: Install dependencies
run: sudo apt-get install -y python3-paramiko python3-lxml
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
with:
submodules: 'recursive'
- name: Setup .NET Core
uses: actions/setup-dotnet@v3.2.0
uses: actions/setup-dotnet@v4.1.0
with:
dotnet-version: 9.0.x
@@ -48,12 +49,14 @@ jobs:
GITHUB_REPOSITORY: ${{ vars.GITHUB_REPOSITORY }}
- name: Publish changelog (Discord)
continue-on-error: true
run: Tools/actions_changelogs_since_last_run.py
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DISCORD_WEBHOOK_URL: ${{ secrets.CHANGELOG_DISCORD_WEBHOOK }}
- name: Publish changelog (RSS)
continue-on-error: true
run: Tools/actions_changelog_rss.py
env:
CHANGELOG_RSS_KEY: ${{ secrets.CHANGELOG_RSS_KEY }}

View File

@@ -11,14 +11,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.6.0
uses: actions/checkout@v4.2.2
- name: Get changed files
id: files
uses: Ana06/get-changed-files@v2.3.0
with:
format: 'space-delimited'
filter: |
filter: |
**.rsi
**.png

View File

@@ -34,7 +34,7 @@ jobs:
steps:
- name: Checkout Master
uses: actions/checkout@v3.6.0
uses: actions/checkout@v4.2.2
- name: Setup Submodule
run: |
@@ -49,7 +49,7 @@ jobs:
git submodule update --init --recursive
- name: Setup .NET Core
uses: actions/setup-dotnet@v3.2.0
uses: actions/setup-dotnet@v4.1.0
with:
dotnet-version: 9.0.x

View File

@@ -4,19 +4,19 @@ on:
workflow_dispatch:
schedule:
- cron: 0 0 * * 0
jobs:
get_credits:
runs-on: ubuntu-latest
# Hey there fork dev! If you like to include your own contributors in this then you can probably just change this to your own repo
# Do this in dump_github_contributors.ps1 too into your own repo
if: github.repository == 'space-wizards/space-station-14'
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
with:
ref: master
- name: Get this week's Contributors
shell: pwsh
env:
@@ -25,25 +25,25 @@ jobs:
# TODO
#- name: Get this week's Patreons
# run: Tools/script2dumppatreons > Resources/Credits/Patrons.yml
# run: Tools/script2dumppatreons > Resources/Credits/Patrons.yml
# MAKE SURE YOU ENABLED "Allow GitHub Actions to create and approve pull requests" IN YOUR ACTIONS, OTHERWISE IT WILL MOST LIKELY FAIL
# For this you can use a pat token of an account with direct push access to the repo if you have protected branches.
# For this you can use a pat token of an account with direct push access to the repo if you have protected branches.
# Uncomment this and comment the other line if you do this.
# https://github.com/stefanzweifel/git-auto-commit-action#push-to-protected-branches
#- name: Commit new credit files
# uses: stefanzweifel/git-auto-commit-action@v4
# with:
# commit_message: Update Credits
# commit_author: PJBot <pieterjan.briers+bot@gmail.com>
# This will make a PR
- name: Set current date as env variable
run: echo "NOW=$(date +'%Y-%m-%dT%H-%M-%S')" >> $GITHUB_ENV
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:

View File

@@ -12,7 +12,7 @@ jobs:
if: github.actor != 'PJBot' && github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
- name: Setup Submodule
run: git submodule update --init
- name: Pull engine updates

View File

@@ -13,7 +13,7 @@ jobs:
name: Validate RSIs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
- name: Setup Submodule
run: git submodule update --init
- name: Pull engine updates

View File

@@ -12,7 +12,7 @@ jobs:
if: github.actor != 'PJBot' && github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
- name: Setup Submodule
run: git submodule update --init
- name: Pull engine updates

View File

@@ -13,7 +13,7 @@ jobs:
if: github.actor != 'PJBot' && github.event.pull_request.draft == false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3.6.0
- uses: actions/checkout@v4.2.2
- name: Setup submodule
run: |
git submodule update --init --recursive
@@ -24,7 +24,7 @@ jobs:
cd RobustToolbox/
git submodule update --init --recursive
- name: Setup .NET Core
uses: actions/setup-dotnet@v3.2.0
uses: actions/setup-dotnet@v4.1.0
with:
dotnet-version: 9.0.x
- name: Install dependencies

44
.vscode/tasks.json vendored
View File

@@ -32,6 +32,50 @@
"/consoleloggerparameters:'ForceNoAlign;NoSummary'"
],
"problemMatcher": "$msCompile"
},
{
"label": "test",
"command": "dotnet",
"type": "shell",
"args": [
"test",
"--no-build",
"--configuration",
"DebugOpt",
"Content.Tests/Content.Tests.csproj",
"--",
"NUnit.ConsoleOut=0"
],
"group": {
"kind": "test"
},
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
},
{
"label": "integration-test",
"command": "dotnet",
"type": "shell",
"args": [
"test",
"--no-build",
"--configuration",
"DebugOpt",
"Content.IntegrationTests/Content.IntegrationTests.csproj",
"--",
"NUnit.ConsoleOut=0",
"NUnit.MapWarningTo=Failed.ConsoleOut=0",
"NUnit.MapWarningTo=Failed"
],
"group": {
"kind": "test"
},
"presentation": {
"reveal": "silent"
},
"problemMatcher": "$msCompile"
}
]
}

View File

@@ -5,6 +5,7 @@ import subprocess
import sys
import os
import shutil
import time
from pathlib import Path
from typing import List
@@ -104,7 +105,21 @@ def reset_solution():
with SOLUTION_PATH.open("w") as f:
f.write(content)
def check_for_zip_download():
# Check if .git exists,
cur_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if not os.path.isdir(os.path.join(cur_dir, ".git")):
print("It appears that you downloaded this repository directly from GitHub. (Using the .zip download option) \n"
"When downloading straight from GitHub, it leaves out important information that git needs to function. "
"Such as information to download the engine or even the ability to even be able to create contributions. \n"
"Please read and follow https://docs.spacestation14.com/en/general-development/setup/setting-up-a-development-environment.html \n"
"If you just want a Sandbox Server, you are following the wrong guide! You can download a premade server following the instructions here:"
"https://docs.spacestation14.com/en/general-development/setup/server-hosting-tutorial.html \n"
"Closing automatically in 30 seconds.")
time.sleep(30)
exit(1)
if __name__ == '__main__':
check_for_zip_download()
install_hooks()
update_submodules()

View File

@@ -44,7 +44,7 @@ namespace Content.Benchmarks
for (var i = 0; i < Aabbs1.Length; i++)
{
var aabb = Aabbs1[i];
_b2Tree.CreateProxy(aabb, i);
_b2Tree.CreateProxy(aabb, uint.MaxValue, i);
_tree.Add(i);
}
}

View File

@@ -7,6 +7,7 @@ using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Server.Mind;
using Content.Server.Warps;
using Content.Shared.Warps;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.EntitySerialization;

View File

@@ -174,7 +174,8 @@ namespace Content.Client.Access.UI
new List<ProtoId<AccessLevelPrototype>>());
var jobIndex = _jobPrototypeIds.IndexOf(state.TargetIdJobPrototype);
// If the job index is < 0 that means they don't have a job registered in the station records.
// If the job index is < 0 that means they don't have a job registered in the station records
// or the IdCardComponent's JobPrototype field.
// For example, a new ID from a box would have no job index.
if (jobIndex < 0)
{

View File

@@ -1,6 +1,7 @@
using System.IO;
using System.Linq;
using Content.Shared.Actions;
using Content.Shared.Charges.Systems;
using JetBrains.Annotations;
using Robust.Client.Player;
using Robust.Shared.ContentPack;
@@ -22,6 +23,7 @@ namespace Content.Client.Actions
{
public delegate void OnActionReplaced(EntityUid actionId);
[Dependency] private readonly SharedChargesSystem _sharedCharges = default!;
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IResourceManager _resources = default!;
[Dependency] private readonly ISerializationManager _serialization = default!;
@@ -51,29 +53,6 @@ namespace Content.Client.Actions
SubscribeLocalEvent<EntityWorldTargetActionComponent, ComponentHandleState>(OnEntityWorldTargetHandleState);
}
public override void FrameUpdate(float frameTime)
{
base.FrameUpdate(frameTime);
var worldActionQuery = EntityQueryEnumerator<WorldTargetActionComponent>();
while (worldActionQuery.MoveNext(out var uid, out var action))
{
UpdateAction(uid, action);
}
var instantActionQuery = EntityQueryEnumerator<InstantActionComponent>();
while (instantActionQuery.MoveNext(out var uid, out var action))
{
UpdateAction(uid, action);
}
var entityActionQuery = EntityQueryEnumerator<EntityTargetActionComponent>();
while (entityActionQuery.MoveNext(out var uid, out var action))
{
UpdateAction(uid, action);
}
}
private void OnInstantHandleState(EntityUid uid, InstantActionComponent component, ref ComponentHandleState args)
{
if (args.Current is not InstantActionComponentState state)
@@ -127,9 +106,6 @@ namespace Content.Client.Actions
component.Toggled = state.Toggled;
component.Cooldown = state.Cooldown;
component.UseDelay = state.UseDelay;
component.Charges = state.Charges;
component.MaxCharges = state.MaxCharges;
component.RenewCharges = state.RenewCharges;
component.Container = EnsureEntity<T>(state.Container, uid);
component.EntityIcon = EnsureEntity<T>(state.EntityIcon, uid);
component.CheckCanInteract = state.CheckCanInteract;
@@ -152,7 +128,8 @@ namespace Content.Client.Actions
if (!ResolveActionData(actionId, ref action))
return;
action.IconColor = action.Charges < 1 ? action.DisabledIconColor : action.OriginalIconColor;
// TODO: Decouple this.
action.IconColor = _sharedCharges.GetCurrentCharges(actionId.Value) == 0 ? action.DisabledIconColor : action.OriginalIconColor;
base.UpdateAction(actionId, action);
if (_playerManager.LocalEntity != action.AttachedEntity)
@@ -225,6 +202,7 @@ namespace Content.Client.Actions
return;
OnActionAdded?.Invoke(actionId);
ActionsUpdated?.Invoke();
}
protected override void ActionRemoved(EntityUid performer, EntityUid actionId, ActionsComponent comp, BaseActionComponent action)
@@ -233,6 +211,7 @@ namespace Content.Client.Actions
return;
OnActionRemoved?.Invoke(actionId);
ActionsUpdated?.Invoke();
}
public IEnumerable<(EntityUid Id, BaseActionComponent Comp)> GetClientActions()

View File

@@ -1,8 +1,12 @@
using System.Linq;
using System.Numerics;
using Content.Client.Administration.Systems;
using Content.Client.Stylesheets;
using Content.Shared.Administration;
using Content.Shared.CCVar;
using Content.Shared.Ghost;
using Content.Shared.Mind;
using Content.Shared.Roles;
using Robust.Client.Graphics;
using Robust.Client.ResourceManagement;
using Robust.Client.UserInterface;
@@ -14,32 +18,74 @@ namespace Content.Client.Administration;
internal sealed class AdminNameOverlay : Overlay
{
[Dependency] private readonly IConfigurationManager _config = default!;
private readonly AdminSystem _system;
private readonly IEntityManager _entityManager;
private readonly IEyeManager _eyeManager;
private readonly EntityLookupSystem _entityLookup;
private readonly IUserInterfaceManager _userInterfaceManager;
private readonly SharedRoleSystem _roles;
private readonly Font _font;
private readonly Font _fontBold;
private AdminOverlayAntagFormat _overlayFormat;
private AdminOverlayAntagSymbolStyle _overlaySymbolStyle;
private bool _overlayPlaytime;
private bool _overlayStartingJob;
private float _ghostFadeDistance;
private float _ghostHideDistance;
private int _overlayStackMax;
private float _overlayMergeDistance;
//TODO make this adjustable via GUI
//TODO make this adjustable via GUI?
private readonly ProtoId<RoleTypePrototype>[] _filter =
["SoloAntagonist", "TeamAntagonist", "SiliconAntagonist", "FreeAgent"];
private readonly string _antagLabelClassic = Loc.GetString("admin-overlay-antag-classic");
private readonly Color _antagColorClassic = Color.OrangeRed;
public AdminNameOverlay(AdminSystem system, IEntityManager entityManager, IEyeManager eyeManager, IResourceCache resourceCache, EntityLookupSystem entityLookup, IUserInterfaceManager userInterfaceManager)
public AdminNameOverlay(
AdminSystem system,
IEntityManager entityManager,
IEyeManager eyeManager,
IResourceCache resourceCache,
EntityLookupSystem entityLookup,
IUserInterfaceManager userInterfaceManager,
IConfigurationManager config,
SharedRoleSystem roles)
{
IoCManager.InjectDependencies(this);
_system = system;
_entityManager = entityManager;
_eyeManager = eyeManager;
_entityLookup = entityLookup;
_userInterfaceManager = userInterfaceManager;
_roles = roles;
ZIndex = 200;
_font = new VectorFont(resourceCache.GetResource<FontResource>("/Fonts/NotoSans/NotoSans-Regular.ttf"), 10);
// Setting these to a specific ttf would break the antag symbols
_font = resourceCache.NotoStack();
_fontBold = resourceCache.NotoStack(variation: "Bold");
config.OnValueChanged(CCVars.AdminOverlayAntagFormat, (show) => { _overlayFormat = UpdateOverlayFormat(show); }, true);
config.OnValueChanged(CCVars.AdminOverlaySymbolStyle, (show) => { _overlaySymbolStyle = UpdateOverlaySymbolStyle(show); }, true);
config.OnValueChanged(CCVars.AdminOverlayPlaytime, (show) => { _overlayPlaytime = show; }, true);
config.OnValueChanged(CCVars.AdminOverlayStartingJob, (show) => { _overlayStartingJob = show; }, true);
config.OnValueChanged(CCVars.AdminOverlayGhostHideDistance, (f) => { _ghostHideDistance = f; }, true);
config.OnValueChanged(CCVars.AdminOverlayGhostFadeDistance, (f) => { _ghostFadeDistance = f; }, true);
config.OnValueChanged(CCVars.AdminOverlayStackMax, (i) => { _overlayStackMax = i; }, true);
config.OnValueChanged(CCVars.AdminOverlayMergeDistance, (f) => { _overlayMergeDistance = f; }, true);
}
private AdminOverlayAntagFormat UpdateOverlayFormat(string formatString)
{
if (!Enum.TryParse<AdminOverlayAntagFormat>(formatString, out var format))
format = AdminOverlayAntagFormat.Binary;
return format;
}
private AdminOverlayAntagSymbolStyle UpdateOverlaySymbolStyle(string symbolString)
{
if (!Enum.TryParse<AdminOverlayAntagSymbolStyle>(symbolString, out var symbolStyle))
symbolStyle = AdminOverlayAntagSymbolStyle.Off;
return symbolStyle;
}
public override OverlaySpace Space => OverlaySpace.ScreenSpace;
@@ -47,54 +93,169 @@ internal sealed class AdminNameOverlay : Overlay
protected override void Draw(in OverlayDrawArgs args)
{
var viewport = args.WorldAABB;
var colorDisconnected = Color.White;
var uiScale = _userInterfaceManager.RootControl.UIScale;
var lineoffset = new Vector2(0f, 14f) * uiScale;
var drawnOverlays = new List<(Vector2,Vector2)>() ; // A saved list of the overlays already drawn
//TODO make this adjustable via GUI
var classic = _config.GetCVar(CCVars.AdminOverlayClassic);
foreach (var playerInfo in _system.PlayerList)
// Get all player positions before drawing overlays, so they can be sorted before iteration
var sortable = new List<(PlayerInfo, Box2, EntityUid, Vector2)>();
foreach (var info in _system.PlayerList)
{
var entity = _entityManager.GetEntity(playerInfo.NetEntity);
var entity = _entityManager.GetEntity(info.NetEntity);
// Otherwise the entity can not exist yet
if (entity == null || !_entityManager.EntityExists(entity))
{
// If entity does not exist or is on a different map, skip
if (entity == null
|| !_entityManager.EntityExists(entity)
|| _entityManager.GetComponent<TransformComponent>(entity.Value).MapID != args.MapId)
continue;
}
// if not on the same map, continue
if (_entityManager.GetComponent<TransformComponent>(entity.Value).MapID != args.MapId)
{
continue;
}
var aabb = _entityLookup.GetWorldAABB(entity.Value);
// if not on screen, continue
// if not on screen, skip
if (!aabb.Intersects(in viewport))
{
continue;
}
var uiScale = _userInterfaceManager.RootControl.UIScale;
var lineoffset = new Vector2(0f, 11f) * uiScale;
var screenCoordinates = _eyeManager.WorldToScreen(aabb.Center +
new Angle(-_eyeManager.CurrentEye.Rotation).RotateVec(
aabb.TopRight - aabb.Center)) + new Vector2(1f, 7f);
// Get on-screen coordinates of player
var screenCoordinates = _eyeManager.WorldToScreen(aabb.Center).Rounded();
if (classic && playerInfo.Antag)
sortable.Add((info, aabb, entity.Value, screenCoordinates));
}
// Draw overlays for visible players, starting from the top of the screen
foreach (var info in sortable.OrderBy(s => s.Item4.Y).ToList())
{
var playerInfo = info.Item1;
var aabb = info.Item2;
var entity = info.Item3;
var screenCoordinatesCenter = info.Item4;
//the center position is kept separately, for simpler position comparison later
var centerOffset = new Vector2(28f, -18f) * uiScale;
var screenCoordinates = screenCoordinatesCenter + centerOffset;
var alpha = 1f;
//TODO make a smarter system where the starting offset can be modified by the predicted position and size of already-drawn overlays/stacks?
var currentOffset = Vector2.Zero;
// Ghosts near the cursor are made transparent/invisible
// TODO would be "cheaper" if playerinfo already contained a ghost bool, this gets called every frame for every onscreen player!
if (_entityManager.HasComponent<GhostComponent>(entity))
{
args.ScreenHandle.DrawString(_font, screenCoordinates + (lineoffset * 2), _antagLabelClassic, uiScale, _antagColorClassic);
// We want the map positions here, so we don't have to worry about resolution and such shenanigans
var mobPosition = aabb.Center;
var mousePosition = _eyeManager
.ScreenToMap(_userInterfaceManager.MousePositionScaled.Position * uiScale)
.Position;
var dist = Vector2.Distance(mobPosition, mousePosition);
if (dist < _ghostHideDistance)
continue;
alpha = Math.Clamp((dist - _ghostHideDistance) / (_ghostFadeDistance - _ghostHideDistance), 0f, 1f);
colorDisconnected.A = alpha;
}
else if (!classic && _filter.Contains(playerInfo.RoleProto))
// If the new overlay text block is within merge distance of any previous ones
// merge them into a stack so they don't hide each other
var stack = drawnOverlays.FindAll(x =>
Vector2.Distance(_eyeManager.ScreenToMap(x.Item1).Position, aabb.Center) <= _overlayMergeDistance);
if (stack.Count > 0)
{
var label = Loc.GetString(playerInfo.RoleProto.Name).ToUpper();
var color = playerInfo.RoleProto.Color;
screenCoordinates = stack.First().Item1 + centerOffset;
// Replacing this overlay's coordinates for the later save with the stack root's coordinates
// so that other overlays don't try to stack to these coordinates
screenCoordinatesCenter = stack.First().Item1;
args.ScreenHandle.DrawString(_font, screenCoordinates + (lineoffset * 2), label, uiScale, color);
var i = 1;
foreach (var s in stack)
{
// additional entries after maximum stack size is reached will be drawn over the last entry
if (i <= _overlayStackMax - 1)
currentOffset = lineoffset + s.Item2 ;
i++;
}
}
args.ScreenHandle.DrawString(_font, screenCoordinates + lineoffset, playerInfo.Username, uiScale, playerInfo.Connected ? Color.Yellow : Color.White);
args.ScreenHandle.DrawString(_font, screenCoordinates, playerInfo.CharacterName, uiScale, playerInfo.Connected ? Color.Aquamarine : Color.White);
// Character name
var color = Color.Aquamarine;
color.A = alpha;
args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.CharacterName, uiScale, playerInfo.Connected ? color : colorDisconnected);
currentOffset += lineoffset;
// Username
color = Color.Yellow;
color.A = alpha;
args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.Username, uiScale, playerInfo.Connected ? color : colorDisconnected);
currentOffset += lineoffset;
// Playtime
if (!string.IsNullOrEmpty(playerInfo.PlaytimeString) && _overlayPlaytime)
{
color = Color.Orange;
color.A = alpha;
args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, playerInfo.PlaytimeString, uiScale, playerInfo.Connected ? color : colorDisconnected);
currentOffset += lineoffset;
}
// Job
if (!string.IsNullOrEmpty(playerInfo.StartingJob) && _overlayStartingJob)
{
color = Color.GreenYellow;
color.A = alpha;
args.ScreenHandle.DrawString(_font, screenCoordinates + currentOffset, Loc.GetString(playerInfo.StartingJob), uiScale, playerInfo.Connected ? color : colorDisconnected);
currentOffset += lineoffset;
}
// Determine antag symbol
string? symbol;
switch (_overlaySymbolStyle)
{
case AdminOverlayAntagSymbolStyle.Specific:
symbol = playerInfo.RoleProto.Symbol;
break;
case AdminOverlayAntagSymbolStyle.Basic:
symbol = Loc.GetString("player-tab-antag-prefix");
break;
default:
case AdminOverlayAntagSymbolStyle.Off:
symbol = string.Empty;
break;
}
// Determine antag/role type name
string? text;
switch (_overlayFormat)
{
case AdminOverlayAntagFormat.Roletype:
color = playerInfo.RoleProto.Color;
symbol = _filter.Contains(playerInfo.RoleProto) ? symbol : string.Empty;
text = _filter.Contains(playerInfo.RoleProto)
? Loc.GetString(playerInfo.RoleProto.Name).ToUpper()
: string.Empty;
break;
case AdminOverlayAntagFormat.Subtype:
color = playerInfo.RoleProto.Color;
symbol = _filter.Contains(playerInfo.RoleProto) ? symbol : string.Empty;
text = _filter.Contains(playerInfo.RoleProto)
? _roles.GetRoleSubtypeLabel(playerInfo.RoleProto.Name, playerInfo.Subtype).ToUpper()
: string.Empty;
break;
default:
case AdminOverlayAntagFormat.Binary:
color = Color.OrangeRed;
symbol = playerInfo.Antag ? symbol : string.Empty;
text = playerInfo.Antag ? _antagLabelClassic : string.Empty;
break;
}
// Draw antag label
color.A = alpha;
var label = !string.IsNullOrEmpty(symbol)
? Loc.GetString("player-tab-character-name-antag-symbol", ("symbol", symbol), ("name", text))
: text;
args.ScreenHandle.DrawString(_fontBold, screenCoordinates + currentOffset, label, uiScale, color);
currentOffset += lineoffset;
//Save the coordinates and size of the text block, for stack merge check
drawnOverlays.Add((screenCoordinatesCenter, currentOffset));
}
}
}

View File

@@ -0,0 +1,15 @@
namespace Content.Client.Administration;
public enum AdminOverlayAntagFormat
{
Binary,
Roletype,
Subtype
}
public enum AdminOverlayAntagSymbolStyle
{
Off,
Basic,
Specific
}

View File

@@ -1,4 +1,5 @@
using Content.Client.Administration.Managers;
using Content.Shared.Roles;
using Robust.Client.Graphics;
using Robust.Client.ResourceManagement;
using Robust.Client.UserInterface;
@@ -14,6 +15,8 @@ namespace Content.Client.Administration.Systems
[Dependency] private readonly IEyeManager _eyeManager = default!;
[Dependency] private readonly EntityLookupSystem _entityLookup = default!;
[Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!;
[Dependency] private readonly IConfigurationManager _configurationManager = default!;
[Dependency] private readonly SharedRoleSystem _roles = default!;
private AdminNameOverlay _adminNameOverlay = default!;
@@ -22,7 +25,15 @@ namespace Content.Client.Administration.Systems
private void InitializeOverlay()
{
_adminNameOverlay = new AdminNameOverlay(this, EntityManager, _eyeManager, _resourceCache, _entityLookup, _userInterfaceManager);
_adminNameOverlay = new AdminNameOverlay(
this,
EntityManager,
_eyeManager,
_resourceCache,
_entityLookup,
_userInterfaceManager,
_configurationManager,
_roles);
_adminManager.AdminStatusUpdated += OnAdminStatusUpdated;
}
@@ -38,7 +49,8 @@ namespace Content.Client.Administration.Systems
public void AdminOverlayOn()
{
if (_overlayManager.HasOverlay<AdminNameOverlay>()) return;
if (_overlayManager.HasOverlay<AdminNameOverlay>())
return;
_overlayManager.AddOverlay(_adminNameOverlay);
OverlayEnabled?.Invoke();
}

View File

@@ -32,7 +32,7 @@ namespace Content.Client.Administration.Systems
var verb = new VvVerb()
{
Text = Loc.GetString("view-variables"),
Icon = new SpriteSpecifier.Texture(new ("/Textures/Interface/VerbIcons/vv.svg.192dpi.png")),
Icon = new SpriteSpecifier.Texture(new("/Textures/Interface/VerbIcons/vv.svg.192dpi.png")),
Act = () => _clientConsoleHost.ExecuteCommand($"vv {GetNetEntity(args.Target)}"),
ClientExclusive = true // opening VV window is client-side. Don't ask server to run this verb.
};

View File

@@ -1,59 +0,0 @@
using System.Threading;
using Content.Client.Stylesheets;
using Robust.Client.UserInterface.Controls;
using Timer = Robust.Shared.Timing.Timer;
namespace Content.Client.Administration.UI;
public static class AdminUIHelpers
{
private static void ResetButton(Button button, ConfirmationData data)
{
data.Cancellation.Cancel();
button.ModulateSelfOverride = null;
button.Text = data.OriginalText;
}
public static bool RemoveConfirm(Button button, Dictionary<Button, ConfirmationData> confirmations)
{
if (confirmations.Remove(button, out var data))
{
ResetButton(button, data);
return true;
}
return false;
}
public static void RemoveAllConfirms(Dictionary<Button, ConfirmationData> confirmations)
{
foreach (var (button, confirmation) in confirmations)
{
ResetButton(button, confirmation);
}
confirmations.Clear();
}
public static bool TryConfirm(Button button, Dictionary<Button, ConfirmationData> confirmations)
{
if (RemoveConfirm(button, confirmations))
return true;
var data = new ConfirmationData(new CancellationTokenSource(), button.Text);
confirmations[button] = data;
Timer.Spawn(TimeSpan.FromSeconds(5), () =>
{
confirmations.Remove(button);
button.ModulateSelfOverride = null;
button.Text = data.OriginalText;
}, data.Cancellation.Token);
button.ModulateSelfOverride = StyleNano.ButtonColorCautionDefault;
button.Text = Loc.GetString("admin-player-actions-confirm");
return false;
}
}
public readonly record struct ConfirmationData(CancellationTokenSource Cancellation, string? OriginalText);

View File

@@ -1,25 +1,28 @@
<Control
xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls">
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls">
<PanelContainer StyleClasses="BackgroundDark">
<SplitContainer Orientation="Horizontal" VerticalExpand="True">
<cc:PlayerListControl Access="Public" Name="ChannelSelector" HorizontalExpand="True" SizeFlagsStretchRatio="1" />
<BoxContainer Orientation="Vertical" HorizontalExpand="True" SizeFlagsStretchRatio="2">
<BoxContainer Access="Public" Name="BwoinkArea" VerticalExpand="True" />
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<CheckBox Name="AdminOnly" Access="Public" Text="{Loc 'admin-ahelp-admin-only'}" ToolTip="{Loc 'admin-ahelp-admin-only-tooltip'}" />
<Control HorizontalExpand="True" MinWidth="5" />
<CheckBox Name="PlaySound" Access="Public" Text="{Loc 'admin-bwoink-play-sound'}" Pressed="True" />
<Control HorizontalExpand="True" MinWidth="5" />
<Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" />
<Control HorizontalExpand="True" />
<Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" StyleClasses="OpenRight" />
<Button Visible="False" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Follow" Text="{Loc 'admin-player-actions-follow'}" StyleClasses="OpenLeft" />
<SplitContainer Orientation="Vertical" ResizeMode="NotResizable">
<SplitContainer Orientation="Horizontal" VerticalExpand="True">
<cc:PlayerListControl Access="Public" Name="ChannelSelector" HorizontalExpand="True" SizeFlagsStretchRatio="2" />
<BoxContainer Orientation="Vertical" HorizontalExpand="True" SizeFlagsStretchRatio="2">
<BoxContainer Access="Public" Name="BwoinkArea" VerticalExpand="True" />
</BoxContainer>
</SplitContainer>
<BoxContainer Orientation="Horizontal" SetHeight="30" >
<CheckBox Name="AdminOnly" Access="Public" Text="{Loc 'admin-ahelp-admin-only'}" ToolTip="{Loc 'admin-ahelp-admin-only-tooltip'}" />
<Control HorizontalExpand="True" MinWidth="5" />
<CheckBox Name="PlaySound" Access="Public" Text="{Loc 'admin-bwoink-play-sound'}" Pressed="True" />
<Control HorizontalExpand="True" MinWidth="5" />
<Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" />
<Control HorizontalExpand="True" />
<Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" StyleClasses="OpenRight" />
<Button Visible="False" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" StyleClasses="OpenBoth" />
<controls:ConfirmButton Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" StyleClasses="OpenBoth" />
<controls:ConfirmButton Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Follow" Text="{Loc 'admin-player-actions-follow'}" StyleClasses="OpenLeft" />
</BoxContainer>
</SplitContainer>
</PanelContainer>

View File

@@ -29,13 +29,15 @@ namespace Content.Client.Administration.UI.Bwoink
public AdminAHelpUIHandler AHelpHelper = default!;
private PlayerInfo? _currentPlayer;
private readonly Dictionary<Button, ConfirmationData> _confirmations = new();
public BwoinkControl()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
var newPlayerThreshold = 0;
_cfg.OnValueChanged(CCVars.NewPlayerThreshold, (val) => { newPlayerThreshold = val; }, true);
var uiController = _ui.GetUIController<AHelpUIController>();
if (uiController.UIHelper is not AdminAHelpUIHandler helper)
return;
@@ -59,9 +61,9 @@ namespace Content.Client.Administration.UI.Bwoink
var sb = new StringBuilder();
if (info.Connected)
sb.Append('●');
sb.Append(info.ActiveThisRound ? '⚫' : '◐');
else
sb.Append(info.ActiveThisRound ? '' : '·');
sb.Append(info.ActiveThisRound ? '' : '·');
sb.Append(' ');
if (AHelpHelper.TryGetChannel(info.SessionId, out var panel) && panel.Unread > 0)
@@ -73,10 +75,12 @@ namespace Content.Client.Administration.UI.Bwoink
sb.Append(' ');
}
// Mark antagonists with symbol
if (info.Antag && info.ActiveThisRound)
sb.Append(new Rune(0x1F5E1)); // 🗡
if (info.OverallPlaytime <= TimeSpan.FromMinutes(_cfg.GetCVar(CCVars.NewPlayerThreshold)))
// Mark new players with symbol
if (IsNewPlayer(info))
sb.Append(new Rune(0x23F2)); // ⏲
sb.AppendFormat("\"{0}\"", text);
@@ -84,6 +88,19 @@ namespace Content.Client.Administration.UI.Bwoink
return sb.ToString();
};
// <summary>
// Returns true if the player's overall playtime is under the set threshold
// </summary>
bool IsNewPlayer(PlayerInfo info)
{
// Don't show every disconnected player as new, don't show 0-minute players as new if threshold is
if (newPlayerThreshold <= 0 || info.OverallPlaytime is null && !info.Connected)
return false;
return (info.OverallPlaytime is null
|| info.OverallPlaytime < TimeSpan.FromMinutes(newPlayerThreshold));
}
ChannelSelector.Comparison = (a, b) =>
{
var ach = AHelpHelper.EnsurePanel(a.SessionId);
@@ -93,31 +110,37 @@ namespace Content.Client.Administration.UI.Bwoink
if (a.IsPinned != b.IsPinned)
return a.IsPinned ? -1 : 1;
// First, sort by unread. Any chat with unread messages appears first.
// Then, any chat with unread messages.
var aUnread = ach.Unread > 0;
var bUnread = bch.Unread > 0;
if (aUnread != bUnread)
return aUnread ? -1 : 1;
// Sort by recent messages during the current round.
// Then, any chat with recent messages from the current round
var aRecent = a.ActiveThisRound && ach.LastMessage != DateTime.MinValue;
var bRecent = b.ActiveThisRound && bch.LastMessage != DateTime.MinValue;
if (aRecent != bRecent)
return aRecent ? -1 : 1;
// Next, sort by connection status. Any disconnected players are grouped towards the end.
// Sort by connection status. Disconnected players will be last.
if (a.Connected != b.Connected)
return a.Connected ? -1 : 1;
// Sort connected players by New Player status, then by Antag status
// Sort connected players by whether they have joined the round, then by New Player status, then by Antag status
if (a.Connected && b.Connected)
{
var aNewPlayer = a.OverallPlaytime <= TimeSpan.FromMinutes(_cfg.GetCVar(CCVars.NewPlayerThreshold));
var bNewPlayer = b.OverallPlaytime <= TimeSpan.FromMinutes(_cfg.GetCVar(CCVars.NewPlayerThreshold));
var aNewPlayer = IsNewPlayer(a);
var bNewPlayer = IsNewPlayer(b);
// Players who have joined the round will be listed before players in the lobby
if (a.ActiveThisRound != b.ActiveThisRound)
return a.ActiveThisRound ? -1 : 1;
// Within both the joined group and lobby group, new players will be grouped and listed first
if (aNewPlayer != bNewPlayer)
return aNewPlayer ? -1 : 1;
// Within all four previous groups, antagonists will be listed first.
if (a.Antag != b.Antag)
return a.Antag ? -1 : 1;
}
@@ -154,11 +177,6 @@ namespace Content.Client.Administration.UI.Bwoink
Kick.OnPressed += _ =>
{
if (!AdminUIHelpers.TryConfirm(Kick, _confirmations))
{
return;
}
// TODO: Reason field
if (_currentPlayer is not null)
_console.ExecuteCommand($"kick \"{_currentPlayer.Username}\"");
@@ -172,11 +190,6 @@ namespace Content.Client.Administration.UI.Bwoink
Respawn.OnPressed += _ =>
{
if (!AdminUIHelpers.TryConfirm(Respawn, _confirmations))
{
return;
}
if (_currentPlayer is not null)
_console.ExecuteCommand($"respawn \"{_currentPlayer.Username}\"");
};

View File

@@ -22,12 +22,9 @@ namespace Content.Client.Administration.UI.Bwoink
return;
}
Title = $"{sel.CharacterName} / {sel.Username}";
Title = $"{sel.CharacterName} / {sel.Username} | {Loc.GetString("generic-playtime-title")}: ";
if (sel.OverallPlaytime != null)
{
Title += $" | {Loc.GetString("generic-playtime-title")}: {sel.PlaytimeString}";
}
Title += sel.OverallPlaytime != null ? sel.PlaytimeString : Loc.GetString("generic-unknown-title");
};
OnOpen += () =>

View File

@@ -1,5 +1,6 @@
<Popup xmlns="https://spacestation14.io"
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client">
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls">
<PanelContainer>
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BorderThickness="2" BorderColor="#18181B" BackgroundColor="#25252a"/>
@@ -19,7 +20,7 @@
<BoxContainer Orientation="Horizontal">
<Button Name="EditButton" Text="{Loc admin-notes-edit}"/>
<Control HorizontalExpand="True"/>
<Button Name="DeleteButton" Text="{Loc admin-notes-delete}" HorizontalAlignment="Right"/>
<controls:ConfirmButton Name="DeleteButton" Text="{Loc admin-notes-delete}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" HorizontalAlignment="Right"/>
</BoxContainer>
</BoxContainer>
</PanelContainer>

View File

@@ -19,12 +19,13 @@
<Label Name="SharedConnections"/>
<BoxContainer Align="Center">
<GridContainer Rows="5">
<GridContainer Rows="6">
<Button Name="NotesButton" Text="{Loc player-panel-show-notes}" SetWidth="136" Disabled="True"/>
<Button Name="AhelpButton" Text="{Loc player-panel-help}" Disabled="True"/>
<Button Name="FreezeButton" Text = "{Loc player-panel-freeze}" Disabled="True"/>
<controls:ConfirmButton Name="KickButton" Text="{Loc player-panel-kick}" Disabled="True"/>
<controls:ConfirmButton Name="DeleteButton" Text="{Loc player-panel-delete}" Disabled="True"/>
<Button Name="FollowButton" Text="{Loc player-panel-follow}"/>
<Button Name="ShowBansButton" Text="{Loc player-panel-show-bans}" SetWidth="136" Disabled="True"/>
<Button Name="LogsButton" Text="{Loc player-panel-logs}" Disabled="True"/>
<Button Name="FreezeAndMuteToggleButton" Text="{Loc player-panel-freeze-and-mute}" Disabled="True"/>

View File

@@ -2,7 +2,6 @@ using Content.Client.Administration.Managers;
using Content.Client.UserInterface.Controls;
using Content.Shared.Administration;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Network;
using Robust.Shared.Utility;
@@ -21,6 +20,7 @@ public sealed partial class PlayerPanel : FancyWindow
public event Action<string?>? OnKick;
public event Action<NetUserId?>? OnOpenBanPanel;
public event Action<NetUserId?, bool>? OnWhitelistToggle;
public event Action? OnFollow;
public event Action? OnFreezeAndMuteToggle;
public event Action? OnFreeze;
public event Action? OnLogs;
@@ -36,7 +36,7 @@ public sealed partial class PlayerPanel : FancyWindow
RobustXamlLoader.Load(this);
_adminManager = adminManager;
UsernameCopyButton.OnPressed += _ => OnUsernameCopy?.Invoke(PlayerName.Text ?? "");
UsernameCopyButton.OnPressed += _ => OnUsernameCopy?.Invoke(TargetUsername ?? "");
BanButton.OnPressed += _ => OnOpenBanPanel?.Invoke(TargetPlayer);
KickButton.OnPressed += _ => OnKick?.Invoke(TargetUsername);
NotesButton.OnPressed += _ => OnOpenNotes?.Invoke(TargetPlayer);
@@ -47,6 +47,7 @@ public sealed partial class PlayerPanel : FancyWindow
OnWhitelistToggle?.Invoke(TargetPlayer, _isWhitelisted);
SetWhitelisted(!_isWhitelisted);
};
FollowButton.OnPressed += _ => OnFollow?.Invoke();
FreezeButton.OnPressed += _ => OnFreeze?.Invoke();
FreezeAndMuteToggleButton.OnPressed += _ => OnFreezeAndMuteToggle?.Invoke();
LogsButton.OnPressed += _ => OnLogs?.Invoke();

View File

@@ -38,6 +38,7 @@ public sealed class PlayerPanelEui : BaseEui
PlayerPanel.OnLogs += () => SendMessage(new PlayerPanelLogsMessage());
PlayerPanel.OnRejuvenate += () => SendMessage(new PlayerPanelRejuvenationMessage());
PlayerPanel.OnDelete+= () => SendMessage(new PlayerPanelDeleteMessage());
PlayerPanel.OnFollow += () => SendMessage(new PlayerPanelFollowMessage());
PlayerPanel.OnClose += () => SendMessage(new CloseEuiMessage());
}

View File

@@ -16,6 +16,7 @@
<cc:UICommandButton Command="callshuttle" Text="{Loc admin-player-actions-window-shuttle}" WindowType="{x:Type at:AdminShuttleWindow}"/>
<cc:CommandButton Command="adminlogs" Text="{Loc admin-player-actions-window-admin-logs}"/>
<cc:CommandButton Command="faxui" Text="{Loc admin-player-actions-window-admin-fax}"/>
<cc:CommandButton Command="achatwindow" Text="{Loc admin-player-actions-window-admin-chat}"/>
</GridContainer>
</BoxContainer>
</Control>

View File

@@ -1,6 +1,7 @@
<DefaultWindow
xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Title="{Loc admin-player-actions-window-title}" MinSize="425 272">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
@@ -10,9 +11,9 @@
</BoxContainer>
<cc:PlayerListControl Name="PlayerList" VerticalExpand="True" />
<BoxContainer Orientation="Horizontal">
<Button Name="SubmitKickButton" Text="{Loc admin-player-actions-kick}" Disabled="True"/>
<controls:ConfirmButton Name="SubmitKickButton" Text="{Loc admin-player-actions-kick}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" Disabled="True"/>
<Button Name="SubmitAHelpButton" Text="{Loc admin-player-actions-ahelp}" Disabled="True"/>
<Button Name="SubmitRespawnButton" Text="{Loc admin-player-actions-respawn}" Disabled="True"/>
<controls:ConfirmButton Name="SubmitRespawnButton" Text="{Loc admin-player-actions-respawn}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" Disabled="True"/>
</BoxContainer>
</BoxContainer>
</DefaultWindow>

View File

@@ -14,7 +14,6 @@ namespace Content.Client.Administration.UI.Tabs.AdminTab
public sealed partial class PlayerActionsWindow : DefaultWindow
{
private PlayerInfo? _selectedPlayer;
private readonly Dictionary<Button, ConfirmationData> _confirmations = new();
public PlayerActionsWindow()
{
@@ -28,9 +27,6 @@ namespace Content.Client.Administration.UI.Tabs.AdminTab
private void OnListOnOnSelectionChanged(PlayerInfo? obj)
{
if (_selectedPlayer != obj)
AdminUIHelpers.RemoveAllConfirms(_confirmations);
_selectedPlayer = obj;
var disableButtons = _selectedPlayer == null;
SubmitKickButton.Disabled = disableButtons;
@@ -43,9 +39,6 @@ namespace Content.Client.Administration.UI.Tabs.AdminTab
if (_selectedPlayer == null)
return;
if (!AdminUIHelpers.TryConfirm(SubmitKickButton, _confirmations))
return;
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
$"kick \"{_selectedPlayer.Username}\" \"{CommandParsing.Escape(ReasonLine.Text)}\"");
}
@@ -64,9 +57,6 @@ namespace Content.Client.Administration.UI.Tabs.AdminTab
if (_selectedPlayer == null)
return;
if (!AdminUIHelpers.TryConfirm(SubmitRespawnButton, _confirmations))
return;
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
$"respawn \"{_selectedPlayer.Username}\"");
}

View File

@@ -13,7 +13,6 @@ public sealed partial class ObjectsTabEntry : PanelContainer
public Action<NetEntity>? OnTeleport;
public Action<NetEntity>? OnDelete;
private readonly Dictionary<Button, ConfirmationData> _confirmations = new();
public ObjectsTabEntry(IClientAdminManager manager, string name, NetEntity nent, StyleBox styleBox)
{
@@ -28,13 +27,6 @@ public sealed partial class ObjectsTabEntry : PanelContainer
DeleteButton.Disabled = !manager.CanCommand("delete");
TeleportButton.OnPressed += _ => OnTeleport?.Invoke(nent);
DeleteButton.OnPressed += _ =>
{
if (!AdminUIHelpers.TryConfirm(DeleteButton, _confirmations))
{
return;
}
OnDelete?.Invoke(nent);
};
DeleteButton.OnPressed += _ => OnDelete?.Invoke(nent);
}
}

View File

@@ -2,11 +2,13 @@ using System.Linq;
using Content.Client.Administration.Systems;
using Content.Client.UserInterface.Controls;
using Content.Shared.Administration;
using Content.Shared.CCVar;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.Player;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Configuration;
using static Content.Client.Administration.UI.Tabs.PlayerTab.PlayerTabHeader;
using static Robust.Client.UserInterface.Controls.BaseButton;
@@ -16,6 +18,7 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab;
public sealed partial class PlayerTab : Control
{
[Dependency] private readonly IEntityManager _entManager = default!;
[Dependency] private readonly IConfigurationManager _config = default!;
[Dependency] private readonly IPlayerManager _playerMan = default!;
private const string ArrowUp = "↑";
@@ -29,6 +32,10 @@ public sealed partial class PlayerTab : Control
private bool _ascending = true;
private bool _showDisconnected;
private AdminPlayerTabColorOption _playerTabColorSetting;
private AdminPlayerTabRoleTypeOption _playerTabRoleSetting;
private AdminPlayerTabSymbolOption _playerTabSymbolSetting;
public event Action<GUIBoundKeyEventArgs, ListData>? OnEntryKeyBindDown;
public PlayerTab()
@@ -41,6 +48,11 @@ public sealed partial class PlayerTab : Control
_adminSystem.OverlayEnabled += OverlayEnabled;
_adminSystem.OverlayDisabled += OverlayDisabled;
_config.OnValueChanged(CCVars.AdminPlayerTabRoleSetting, RoleSettingChanged, true);
_config.OnValueChanged(CCVars.AdminPlayerTabColorSetting, ColorSettingChanged, true);
_config.OnValueChanged(CCVars.AdminPlayerTabSymbolSetting, SymbolSettingChanged, true);
OverlayButton.OnPressed += OverlayButtonPressed;
ShowDisconnectedButton.OnPressed += ShowDisconnectedPressed;
@@ -106,6 +118,30 @@ public sealed partial class PlayerTab : Control
#region ListContainer
private void RoleSettingChanged(string s)
{
if (!Enum.TryParse<AdminPlayerTabRoleTypeOption>(s, out var format))
format = AdminPlayerTabRoleTypeOption.Subtype;
_playerTabRoleSetting = format;
RefreshPlayerList(_adminSystem.PlayerList);
}
private void ColorSettingChanged(string s)
{
if (!Enum.TryParse<AdminPlayerTabColorOption>(s, out var format))
format = AdminPlayerTabColorOption.Both;
_playerTabColorSetting = format;
RefreshPlayerList(_adminSystem.PlayerList);
}
private void SymbolSettingChanged(string s)
{
if (!Enum.TryParse<AdminPlayerTabSymbolOption>(s, out var format))
format = AdminPlayerTabSymbolOption.Specific;
_playerTabSymbolSetting = format;
RefreshPlayerList(_adminSystem.PlayerList);
}
private void RefreshPlayerList(IReadOnlyList<PlayerInfo> players)
{
_players = players;
@@ -128,7 +164,12 @@ public sealed partial class PlayerTab : Control
if (data is not PlayerListData { Info: var player})
return;
var entry = new PlayerTabEntry(player, new StyleBoxFlat(button.Index % 2 == 0 ? _altColor : _defaultColor));
var entry = new PlayerTabEntry(
player,
new StyleBoxFlat(button.Index % 2 == 0 ? _altColor : _defaultColor),
_playerTabColorSetting,
_playerTabRoleSetting,
_playerTabSymbolSetting);
button.AddChild(entry);
button.ToolTip = $"{player.Username}, {player.CharacterName}, {player.IdentityName}, {player.StartingJob}";
}
@@ -196,8 +237,7 @@ public sealed partial class PlayerTab : Control
Header.Username => Compare(x.Username, y.Username),
Header.Character => Compare(x.CharacterName, y.CharacterName),
Header.Job => Compare(x.StartingJob, y.StartingJob),
Header.Antagonist => x.Antag.CompareTo(y.Antag),
Header.RoleType => Compare(x.RoleProto.Name , y.RoleProto.Name),
Header.RoleType => y.SortWeight - x.SortWeight,
Header.Playtime => TimeSpan.Compare(x.OverallPlaytime ?? default, y.OverallPlaytime ?? default),
_ => 1
};

View File

@@ -19,11 +19,6 @@
HorizontalExpand="True"
ClipText="True"/>
<customControls:VSeparator/>
<Label Name="AntagonistLabel"
SizeFlagsStretchRatio="1"
HorizontalExpand="True"
ClipText="True"/>
<customControls:VSeparator/>
<Label Name="RoleTypeLabel"
SizeFlagsStretchRatio="2"
HorizontalExpand="True"

View File

@@ -1,4 +1,5 @@
using Content.Shared.Administration;
using Content.Shared.Roles;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface.Controls;
@@ -9,24 +10,90 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab;
[GenerateTypedNameReferences]
public sealed partial class PlayerTabEntry : PanelContainer
{
public NetEntity? PlayerEntity;
[Dependency] private readonly IEntityManager _entMan = default!;
public PlayerTabEntry(PlayerInfo player, StyleBoxFlat styleBoxFlat)
public PlayerTabEntry(
PlayerInfo player,
StyleBoxFlat styleBoxFlat,
AdminPlayerTabColorOption colorOption,
AdminPlayerTabRoleTypeOption roleSetting,
AdminPlayerTabSymbolOption symbolSetting)
{
IoCManager.InjectDependencies(this);
RobustXamlLoader.Load(this);
var roles = _entMan.System<SharedRoleSystem>();
UsernameLabel.Text = player.Username;
if (!player.Connected)
UsernameLabel.StyleClasses.Add("Disabled");
JobLabel.Text = player.StartingJob;
CharacterLabel.Text = player.CharacterName;
var colorAntags = false;
var colorRoles = false;
switch (colorOption)
{
case AdminPlayerTabColorOption.Off:
break;
case AdminPlayerTabColorOption.Character:
colorAntags = true;
break;
case AdminPlayerTabColorOption.Roletype:
colorRoles = true;
break;
default:
case AdminPlayerTabColorOption.Both:
colorAntags = true;
colorRoles = true;
break;
}
var symbol = string.Empty;
switch (symbolSetting)
{
case AdminPlayerTabSymbolOption.Off:
break;
case AdminPlayerTabSymbolOption.Basic:
symbol = player.Antag ? Loc.GetString("player-tab-antag-prefix") : string.Empty;
break;
default:
case AdminPlayerTabSymbolOption.Specific:
symbol = player.Antag ? player.RoleProto.Symbol : string.Empty;
break;
}
CharacterLabel.Text = Loc.GetString("player-tab-character-name-antag-symbol", ("symbol", symbol), ("name", player.CharacterName));
if (player.Antag && colorAntags)
CharacterLabel.FontColorOverride = player.RoleProto.Color;
if (player.IdentityName != player.CharacterName)
CharacterLabel.Text += $" [{player.IdentityName}]";
AntagonistLabel.Text = Loc.GetString(player.Antag ? "player-tab-is-antag-yes" : "player-tab-is-antag-no");
RoleTypeLabel.Text = Loc.GetString(player.RoleProto.Name);
RoleTypeLabel.FontColorOverride = player.RoleProto.Color;
var roletype = RoleTypeLabel.Text = Loc.GetString(player.RoleProto.Name);
var subtype = roles.GetRoleSubtypeLabel(player.RoleProto.Name, player.Subtype);
switch (roleSetting)
{
case AdminPlayerTabRoleTypeOption.RoleTypeSubtype:
RoleTypeLabel.Text = roletype != subtype
? roletype + " - " +subtype
: roletype;
break;
case AdminPlayerTabRoleTypeOption.SubtypeRoleType:
RoleTypeLabel.Text = roletype != subtype
? subtype + " - " + roletype
: roletype;
break;
case AdminPlayerTabRoleTypeOption.RoleType:
RoleTypeLabel.Text = roletype;
break;
default:
case AdminPlayerTabRoleTypeOption.Subtype:
RoleTypeLabel.Text = subtype;
break;
}
if (colorRoles)
RoleTypeLabel.FontColorOverride = player.RoleProto.Color;
BackgroundColorPanel.PanelOverride = styleBoxFlat;
OverallPlaytimeLabel.Text = player.PlaytimeString;
PlayerEntity = player.NetEntity;
}
}

View File

@@ -25,13 +25,6 @@
Text="{Loc player-tab-job}"
MouseFilter="Pass"/>
<cc:VSeparator/>
<Label Name="AntagonistLabel"
SizeFlagsStretchRatio="1"
HorizontalExpand="True"
ClipText="True"
Text="{Loc player-tab-antagonist}"
MouseFilter="Pass"/>
<cc:VSeparator/>
<Label Name="RoleTypeLabel"
SizeFlagsStretchRatio="2"
HorizontalExpand="True"

View File

@@ -18,7 +18,6 @@ public sealed partial class PlayerTabHeader : Control
UsernameLabel.OnKeyBindDown += UsernameClicked;
CharacterLabel.OnKeyBindDown += CharacterClicked;
JobLabel.OnKeyBindDown += JobClicked;
AntagonistLabel.OnKeyBindDown += AntagonistClicked;
RoleTypeLabel.OnKeyBindDown += RoleTypeClicked;
PlaytimeLabel.OnKeyBindDown += PlaytimeClicked;
}
@@ -30,7 +29,6 @@ public sealed partial class PlayerTabHeader : Control
Header.Username => UsernameLabel,
Header.Character => CharacterLabel,
Header.Job => JobLabel,
Header.Antagonist => AntagonistLabel,
Header.RoleType => RoleTypeLabel,
Header.Playtime => PlaytimeLabel,
_ => throw new ArgumentOutOfRangeException(nameof(header), header, null)
@@ -42,7 +40,6 @@ public sealed partial class PlayerTabHeader : Control
UsernameLabel.Text = Loc.GetString("player-tab-username");
CharacterLabel.Text = Loc.GetString("player-tab-character");
JobLabel.Text = Loc.GetString("player-tab-job");
AntagonistLabel.Text = Loc.GetString("player-tab-antagonist");
RoleTypeLabel.Text = Loc.GetString("player-tab-roletype");
PlaytimeLabel.Text = Loc.GetString("player-tab-playtime");
}
@@ -73,11 +70,6 @@ public sealed partial class PlayerTabHeader : Control
HeaderClicked(args, Header.Job);
}
private void AntagonistClicked(GUIBoundKeyEventArgs args)
{
HeaderClicked(args, Header.Antagonist);
}
private void RoleTypeClicked(GUIBoundKeyEventArgs args)
{
HeaderClicked(args, Header.RoleType);
@@ -97,7 +89,6 @@ public sealed partial class PlayerTabHeader : Control
UsernameLabel.OnKeyBindDown -= UsernameClicked;
CharacterLabel.OnKeyBindDown -= CharacterClicked;
JobLabel.OnKeyBindDown -= JobClicked;
AntagonistLabel.OnKeyBindDown -= AntagonistClicked;
RoleTypeLabel.OnKeyBindDown -= RoleTypeClicked;
PlaytimeLabel.OnKeyBindDown -= PlaytimeClicked;
}
@@ -108,7 +99,6 @@ public sealed partial class PlayerTabHeader : Control
Username,
Character,
Job,
Antagonist,
RoleType,
Playtime
}

View File

@@ -0,0 +1,24 @@
namespace Content.Client.Administration.UI.Tabs.PlayerTab;
public enum AdminPlayerTabColorOption
{
Off,
Character,
Roletype,
Both
}
public enum AdminPlayerTabRoleTypeOption
{
RoleType,
Subtype,
RoleTypeSubtype,
SubtypeRoleType
}
public enum AdminPlayerTabSymbolOption
{
Off,
Basic,
Specific
}

View File

@@ -0,0 +1,5 @@
using Content.Shared.Advertise.Systems;
namespace Content.Client.Advertise.Systems;
public sealed class SpeakOnUIClosedSystem : SharedSpeakOnUIClosedSystem;

View File

@@ -2,6 +2,7 @@ using System.Linq;
using Content.Shared.Alert;
using JetBrains.Annotations;
using Robust.Client.Player;
using Robust.Client.UserInterface;
using Robust.Shared.GameStates;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
@@ -15,6 +16,7 @@ public sealed class ClientAlertsSystem : AlertsSystem
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IUserInterfaceManager _ui = default!;
public event EventHandler? ClearAlerts;
public event EventHandler<IReadOnlyDictionary<AlertKey, AlertState>>? SyncAlerts;
@@ -27,6 +29,12 @@ public sealed class ClientAlertsSystem : AlertsSystem
SubscribeLocalEvent<AlertsComponent, LocalPlayerDetachedEvent>(OnPlayerDetached);
SubscribeLocalEvent<AlertsComponent, ComponentHandleState>(OnHandleState);
}
protected override void HandledAlert()
{
_ui.ClickSound();
}
protected override void LoadPrototypes()
{
base.LoadPrototypes();
@@ -52,7 +60,23 @@ public sealed class ClientAlertsSystem : AlertsSystem
if (args.Current is not AlertComponentState cast)
return;
alerts.Comp.Alerts = cast.Alerts;
// Save all client-sided alerts to later put back in
var clientAlerts = new Dictionary<AlertKey, AlertState>();
foreach (var alert in alerts.Comp.Alerts)
{
if (alert.Key.AlertType != null && TryGet(alert.Key.AlertType.Value, out var alertProto))
{
if (alertProto.ClientHandled)
clientAlerts[alert.Key] = alert.Value;
}
}
alerts.Comp.Alerts = new(cast.Alerts);
foreach (var alert in clientAlerts)
{
alerts.Comp.Alerts[alert.Key] = alert.Value;
}
UpdateHud(alerts);
}

View File

@@ -1,4 +1,3 @@
using Content.Client.Atmos.UI;
using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.EntitySystems;
using Content.Shared.Atmos.Piping.Binary.Components;
@@ -15,7 +14,12 @@ public sealed class GasPressurePumpSystem : SharedGasPressurePumpSystem
private void OnPumpUpdate(Entity<GasPressurePumpComponent> ent, ref AfterAutoHandleStateEvent args)
{
if (UserInterfaceSystem.TryGetOpenUi<GasPressurePumpBoundUserInterface>(ent.Owner, GasPressurePumpUiKey.Key, out var bui))
UpdateUi(ent);
}
protected override void UpdateUi(Entity<GasPressurePumpComponent> ent)
{
if (UserInterfaceSystem.TryGetOpenUi(ent.Owner, GasPressurePumpUiKey.Key, out var bui))
{
bui.Update();
}

View File

@@ -0,0 +1,29 @@
using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.EntitySystems;
namespace Content.Client.Atmos.EntitySystems;
public sealed class GasTankSystem : SharedGasTankSystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<GasTankComponent, AfterAutoHandleStateEvent>(OnGasTankState);
}
private void OnGasTankState(Entity<GasTankComponent> ent, ref AfterAutoHandleStateEvent args)
{
if (UI.TryGetOpenUi(ent.Owner, SharedGasTankUiKey.Key, out var bui))
{
bui.Update<GasTankBoundUserInterfaceState>();
}
}
public override void UpdateUserInterface(Entity<GasTankComponent> ent)
{
if (UI.TryGetOpenUi(ent.Owner, SharedGasTankUiKey.Key, out var bui))
{
bui.Update<GasTankBoundUserInterfaceState>();
}
}
}

View File

@@ -103,7 +103,7 @@ public sealed partial class AirAlarmWindow : FancyWindow
_temperature.SetMarkup(Loc.GetString("air-alarm-ui-window-temperature", ("tempC", $"{TemperatureHelpers.KelvinToCelsius(state.TemperatureAverage):0.#}"), ("temperature", $"{state.TemperatureAverage:0.##}")));
_alarmState.SetMarkup(Loc.GetString("air-alarm-ui-window-alarm-state",
("color", ColorForAlarm(state.AlarmType)),
("state", $"{state.AlarmType}")));
("state", state.AlarmType)));
UpdateModeSelector(state.Mode);
UpdateAutoMode(state.AutoMode);
foreach (var (addr, dev) in state.DeviceData)

View File

@@ -27,11 +27,11 @@ public sealed partial class SensorInfo : BoxContainer
_address = address;
SensorAddress.Title = $"{address} : {data.AlarmState}";
SensorAddress.Title = Loc.GetString("air-alarm-ui-window-listing-title", ("address", _address), ("state", data.AlarmState));
AlarmStateLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-alarm-state-indicator",
("color", AirAlarmWindow.ColorForAlarm(data.AlarmState)),
("state", $"{data.AlarmState}")));
("state", data.AlarmState)));
PressureLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-pressure-indicator",
("color", AirAlarmWindow.ColorForThreshold(data.Pressure, data.PressureThreshold)),
("pressure", $"{data.Pressure:0.##}")));
@@ -90,11 +90,11 @@ public sealed partial class SensorInfo : BoxContainer
public void ChangeData(AtmosSensorData data)
{
SensorAddress.Title = $"{_address} : {data.AlarmState}";
SensorAddress.Title = Loc.GetString("air-alarm-ui-window-listing-title", ("address", _address), ("state", data.AlarmState));
AlarmStateLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-alarm-state-indicator",
("color", AirAlarmWindow.ColorForAlarm(data.AlarmState)),
("state", $"{data.AlarmState}")));
("state", data.AlarmState)));
PressureLabel.SetMarkup(Loc.GetString("air-alarm-ui-window-pressure-indicator",
("color", AirAlarmWindow.ColorForThreshold(data.Pressure, data.PressureThreshold)),

View File

@@ -0,0 +1,29 @@
using Content.Shared.Atmos.Piping.Binary.Components;
using Content.Shared.Atmos.Piping.Binary.Systems;
using Robust.Client.GameObjects;
namespace Content.Client.Atmos.Piping.Binary.Systems;
public sealed class GasVolumePumpSystem : SharedGasVolumePumpSystem
{
[Dependency] private readonly UserInterfaceSystem _ui = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<GasVolumePumpComponent, AfterAutoHandleStateEvent>(OnPumpState);
}
protected override void UpdateUi(Entity<GasVolumePumpComponent> entity)
{
if (_ui.TryGetOpenUi(entity.Owner, GasVolumePumpUiKey.Key, out var bui))
{
bui.Update();
}
}
private void OnPumpState(Entity<GasVolumePumpComponent> ent, ref AfterAutoHandleStateEvent args)
{
UpdateUi(ent);
}
}

View File

@@ -0,0 +1,32 @@
using Content.Client.Atmos.UI;
using Content.Shared.Atmos.Piping.Binary.Components;
using Content.Shared.Atmos.Piping.Unary.Components;
using Content.Shared.Atmos.Piping.Unary.Systems;
using Content.Shared.NodeContainer;
namespace Content.Client.Atmos.Piping.Unary.Systems;
public sealed class GasCanisterSystem : SharedGasCanisterSystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<GasCanisterComponent, AfterAutoHandleStateEvent>(OnGasState);
}
private void OnGasState(Entity<GasCanisterComponent> ent, ref AfterAutoHandleStateEvent args)
{
if (UI.TryGetOpenUi<GasCanisterBoundUserInterface>(ent.Owner, GasCanisterUiKey.Key, out var bui))
{
bui.Update<GasCanisterBoundUserInterfaceState>();
}
}
protected override void DirtyUI(EntityUid uid, GasCanisterComponent? component = null, NodeContainerComponent? nodes = null)
{
if (UI.TryGetOpenUi<GasCanisterBoundUserInterface>(uid, GasCanisterUiKey.Key, out var bui))
{
bui.Update<GasCanisterBoundUserInterfaceState>();
}
}
}

View File

@@ -1,4 +1,7 @@
using Content.Shared.Atmos.Piping.Binary.Components;
using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.Piping.Binary.Components;
using Content.Shared.Atmos.Piping.Unary.Components;
using Content.Shared.IdentityManagement;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
@@ -32,22 +35,22 @@ namespace Content.Client.Atmos.UI
private void OnTankEjectPressed()
{
SendMessage(new GasCanisterHoldingTankEjectMessage());
SendPredictedMessage(new GasCanisterHoldingTankEjectMessage());
}
private void OnReleasePressureSet(float value)
{
SendMessage(new GasCanisterChangeReleasePressureMessage(value));
SendPredictedMessage(new GasCanisterChangeReleasePressureMessage(value));
}
private void OnReleaseValveOpenPressed()
{
SendMessage(new GasCanisterChangeReleaseValveMessage(true));
SendPredictedMessage(new GasCanisterChangeReleaseValveMessage(true));
}
private void OnReleaseValveClosePressed()
{
SendMessage(new GasCanisterChangeReleaseValveMessage(false));
SendPredictedMessage(new GasCanisterChangeReleaseValveMessage(false));
}
/// <summary>
@@ -57,17 +60,21 @@ namespace Content.Client.Atmos.UI
protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
if (_window == null || state is not GasCanisterBoundUserInterfaceState cast)
if (_window == null || state is not GasCanisterBoundUserInterfaceState cast || !EntMan.TryGetComponent(Owner, out GasCanisterComponent? component))
return;
_window.SetCanisterLabel(cast.CanisterLabel);
var canisterLabel = Identity.Name(Owner, EntMan);
var tankLabel = component.GasTankSlot.Item != null ? Identity.Name(component.GasTankSlot.Item.Value, EntMan) : null;
_window.SetCanisterLabel(canisterLabel);
_window.SetCanisterPressure(cast.CanisterPressure);
_window.SetPortStatus(cast.PortStatus);
_window.SetTankLabel(cast.TankLabel);
_window.SetTankLabel(tankLabel);
_window.SetTankPressure(cast.TankPressure);
_window.SetReleasePressureRange(cast.ReleasePressureMin, cast.ReleasePressureMax);
_window.SetReleasePressure(cast.ReleasePressure);
_window.SetReleaseValve(cast.ReleaseValve);
_window.SetReleasePressureRange(component.MinReleasePressure, component.MaxReleasePressure);
_window.SetReleasePressure(component.ReleasePressure);
_window.SetReleaseValve(component.ReleaseValve);
}
protected override void Dispose(bool disposing)

View File

@@ -1,8 +1,7 @@
using Content.Shared.Atmos;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.Piping.Binary.Components;
using Content.Shared.IdentityManagement;
using Content.Shared.Localizations;
using JetBrains.Annotations;
using Robust.Client.UserInterface;
@@ -12,18 +11,11 @@ namespace Content.Client.Atmos.UI;
/// Initializes a <see cref="GasPressurePumpWindow"/> and updates it when new server messages are received.
/// </summary>
[UsedImplicitly]
public sealed class GasPressurePumpBoundUserInterface : BoundUserInterface
public sealed class GasPressurePumpBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey)
{
[ViewVariables]
private const float MaxPressure = Atmospherics.MaxOutputPressure;
[ViewVariables]
private GasPressurePumpWindow? _window;
public GasPressurePumpBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
}
protected override void Open()
{
base.Open();
@@ -35,7 +27,7 @@ public sealed class GasPressurePumpBoundUserInterface : BoundUserInterface
Update();
}
public void Update()
public override void Update()
{
if (_window == null)
return;
@@ -52,7 +44,9 @@ public sealed class GasPressurePumpBoundUserInterface : BoundUserInterface
private void OnToggleStatusButtonPressed()
{
if (_window is null) return;
if (_window is null)
return;
SendPredictedMessage(new GasPressurePumpToggleStatusMessage(_window.PumpStatus));
}

View File

@@ -1,7 +1,6 @@
using Content.Client.UserInterface.Controls;
using Content.Shared.Atmos;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Atmos.UI

View File

@@ -1,8 +1,7 @@
using Content.Shared.Atmos;
using Content.Shared.Atmos.Piping.Binary.Components;
using Content.Shared.Atmos.Piping.Binary.Components;
using Content.Shared.IdentityManagement;
using Content.Shared.Localizations;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.Atmos.UI
@@ -14,7 +13,7 @@ namespace Content.Client.Atmos.UI
public sealed class GasVolumePumpBoundUserInterface : BoundUserInterface
{
[ViewVariables]
private const float MaxTransferRate = Atmospherics.MaxTransferRate;
private float _maxTransferRate;
[ViewVariables]
private GasVolumePumpWindow? _window;
@@ -29,38 +28,41 @@ namespace Content.Client.Atmos.UI
_window = this.CreateWindow<GasVolumePumpWindow>();
if (EntMan.TryGetComponent(Owner, out GasVolumePumpComponent? pump))
{
_maxTransferRate = pump.MaxTransferRate;
}
_window.ToggleStatusButtonPressed += OnToggleStatusButtonPressed;
_window.PumpTransferRateChanged += OnPumpTransferRatePressed;
Update();
}
private void OnToggleStatusButtonPressed()
{
if (_window is null) return;
SendMessage(new GasVolumePumpToggleStatusMessage(_window.PumpStatus));
SendPredictedMessage(new GasVolumePumpToggleStatusMessage(_window.PumpStatus));
}
private void OnPumpTransferRatePressed(string value)
{
var rate = UserInputParser.TryFloat(value, out var parsed) ? parsed : 0f;
if (rate > MaxTransferRate)
rate = MaxTransferRate;
rate = Math.Clamp(rate, 0f, _maxTransferRate);
SendMessage(new GasVolumePumpChangeTransferRateMessage(rate));
SendPredictedMessage(new GasVolumePumpChangeTransferRateMessage(rate));
}
/// <summary>
/// Update the UI state based on server-sent info
/// </summary>
/// <param name="state"></param>
protected override void UpdateState(BoundUserInterfaceState state)
public override void Update()
{
base.UpdateState(state);
if (_window == null || state is not GasVolumePumpBoundUserInterfaceState cast)
base.Update();
if (_window is null || !EntMan.TryGetComponent(Owner, out GasVolumePumpComponent? pump))
return;
_window.Title = cast.PumpLabel;
_window.SetPumpStatus(cast.Enabled);
_window.SetTransferRate(cast.TransferRate);
_window.Title = Identity.Name(Owner, EntMan);
_window.SetPumpStatus(pump.Enabled);
_window.SetTransferRate(pump.TransferRate);
}
}
}

View File

@@ -1,5 +1,6 @@
<DefaultWindow xmlns="https://spacestation14.io"
<controls:FancyWindow xmlns="https://spacestation14.io"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
MinSize="200 120" Title="Volume Pump">
<BoxContainer Orientation="Vertical" Margin="5 5 5 5" SeparationOverride="10">
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
@@ -19,4 +20,4 @@
<Button Name="SetTransferRateButton" Text="{Loc comp-gas-pump-ui-pump-set-rate}" HorizontalAlignment="Right" Disabled="True"/>
</BoxContainer>
</BoxContainer>
</DefaultWindow>
</controls:FancyWindow>

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Globalization;
using Content.Client.Atmos.EntitySystems;
using Content.Client.UserInterface.Controls;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Prototypes;
using Robust.Client.AutoGenerated;
@@ -16,7 +17,7 @@ namespace Content.Client.Atmos.UI
/// Client-side UI used to control a gas volume pump.
/// </summary>
[GenerateTypedNameReferences]
public sealed partial class GasVolumePumpWindow : DefaultWindow
public sealed partial class GasVolumePumpWindow : FancyWindow
{
public bool PumpStatus = true;

View File

@@ -43,14 +43,11 @@ public sealed partial class ContentAudioSystem
private void CP14UpdateAmbientLoops()
{
return; //DISABLED UNTIL CLIENT ERROR SPAM FIXED
if (_timing.CurTime <= _nextUpdateTime)
return;
_nextUpdateTime = _timing.CurTime + _updateFrequency;
if (_state.CurrentState is not GameplayState)
return;

View File

@@ -0,0 +1,24 @@
using Content.Shared.Atmos.Components;
using Content.Shared.Body.Components;
using Content.Shared.Body.Systems;
namespace Content.Client.Body.Systems;
public sealed class InternalsSystem : SharedInternalsSystem
{
[Dependency] private readonly SharedUserInterfaceSystem _ui = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<InternalsComponent, AfterAutoHandleStateEvent>(OnInternalsAfterState);
}
private void OnInternalsAfterState(Entity<InternalsComponent> ent, ref AfterAutoHandleStateEvent args)
{
if (ent.Comp.GasTankEntity != null && _ui.TryGetOpenUi(ent.Comp.GasTankEntity.Value, SharedGasTankUiKey.Key, out var bui))
{
bui.Update();
}
}
}

View File

@@ -1,6 +1,7 @@
using Content.Client.Rotation;
using Content.Shared.Buckle;
using Content.Shared.Buckle.Components;
using Content.Shared.Movement.Systems;
using Content.Shared.Rotation;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
@@ -21,6 +22,15 @@ internal sealed class BuckleSystem : SharedBuckleSystem
SubscribeLocalEvent<StrapComponent, MoveEvent>(OnStrapMoveEvent);
SubscribeLocalEvent<BuckleComponent, BuckledEvent>(OnBuckledEvent);
SubscribeLocalEvent<BuckleComponent, UnbuckledEvent>(OnUnbuckledEvent);
SubscribeLocalEvent<BuckleComponent, AttemptMobCollideEvent>(OnMobCollide);
}
private void OnMobCollide(Entity<BuckleComponent> ent, ref AttemptMobCollideEvent args)
{
if (ent.Comp.Buckled)
{
args.Cancelled = true;
}
}
private void OnStrapMoveEvent(EntityUid uid, StrapComponent component, ref MoveEvent args)

View File

@@ -1,6 +1,7 @@
using Content.Shared.Cargo;
using Content.Client.Cargo.UI;
using Content.Shared.Cargo.BUI;
using Content.Shared.Cargo.Components;
using Content.Shared.Cargo.Events;
using Content.Shared.Cargo.Prototypes;
using Content.Shared.IdentityManagement;
@@ -14,6 +15,8 @@ namespace Content.Client.Cargo.BUI
{
public sealed class CargoOrderConsoleBoundUserInterface : BoundUserInterface
{
private readonly SharedCargoSystem _cargoSystem;
[ViewVariables]
private CargoConsoleMenu? _menu;
@@ -43,6 +46,7 @@ namespace Content.Client.Cargo.BUI
public CargoOrderConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
_cargoSystem = EntMan.System<SharedCargoSystem>();
}
protected override void Open()
@@ -57,7 +61,7 @@ namespace Content.Client.Cargo.BUI
string orderRequester;
if (EntMan.TryGetComponent<MetaDataComponent>(localPlayer, out var metadata))
if (EntMan.EntityExists(localPlayer))
orderRequester = Identity.Name(localPlayer.Value, EntMan);
else
orderRequester = string.Empty;
@@ -96,41 +100,54 @@ namespace Content.Client.Cargo.BUI
}
};
_menu.OnAccountAction += (account, amount) =>
{
SendMessage(new CargoConsoleWithdrawFundsMessage(account, amount));
};
_menu.OnToggleUnboundedLimit += _ =>
{
SendMessage(new CargoConsoleToggleLimitMessage());
};
_menu.OpenCentered();
}
private void Populate(List<CargoOrderData> orders)
{
if (_menu == null) return;
if (_menu == null)
return;
_menu.PopulateProducts();
_menu.PopulateCategories();
_menu.PopulateOrders(orders);
_menu.PopulateAccountActions();
}
protected override void UpdateState(BoundUserInterfaceState state)
{
base.UpdateState(state);
if (state is not CargoConsoleInterfaceState cState)
if (state is not CargoConsoleInterfaceState cState || !EntMan.TryGetComponent<CargoOrderConsoleComponent>(Owner, out var orderConsole))
return;
var station = EntMan.GetEntity(cState.Station);
OrderCapacity = cState.Capacity;
OrderCount = cState.Count;
BankBalance = cState.Balance;
BankBalance = _cargoSystem.GetBalanceFromAccount(station, orderConsole.Account);
AccountName = cState.Name;
_menu?.UpdateStation(station);
Populate(cState.Orders);
_menu?.UpdateCargoCapacity(OrderCount, OrderCapacity);
_menu?.UpdateBankData(AccountName, BankBalance);
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing) return;
if (!disposing)
return;
_menu?.Dispose();
_orderMenu?.Dispose();
@@ -170,8 +187,6 @@ namespace Content.Client.Cargo.BUI
return;
SendMessage(new CargoConsoleApproveOrderMessage(row.Order.OrderId));
// Most of the UI isn't predicted anyway so.
// _menu?.UpdateCargoCapacity(OrderCount + row.Order.Amount, OrderCapacity);
}
}
}

View File

@@ -0,0 +1,35 @@
using Content.Client.Cargo.UI;
using Content.Shared.Cargo.Components;
using JetBrains.Annotations;
using Robust.Client.UserInterface;
namespace Content.Client.Cargo.BUI;
[UsedImplicitly]
public sealed class FundingAllocationConsoleBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey)
{
[ViewVariables]
private FundingAllocationMenu? _menu;
protected override void Open()
{
base.Open();
_menu = this.CreateWindow<FundingAllocationMenu>();
_menu.OnSavePressed += (dicts, primary, lockbox) =>
{
SendMessage(new SetFundingAllocationBuiMessage(dicts, primary, lockbox));
};
}
protected override void UpdateState(BoundUserInterfaceState message)
{
base.UpdateState(message);
if (message is not FundingAllocationConsoleBuiState state)
return;
_menu?.Update(state);
}
}

View File

@@ -67,16 +67,17 @@ public sealed partial class CargoSystem
if (!Resolve(uid, ref sprite))
return;
if (!TryComp<AnimationPlayerComponent>(uid, out var player))
return;
_appearance.TryGetData<CargoTelepadState?>(uid, CargoTelepadVisuals.State, out var state);
AnimationPlayerComponent? player = null;
switch (state)
{
case CargoTelepadState.Teleporting:
if (_player.HasRunningAnimation(uid, TelepadBeamKey))
return;
_player.Stop(uid, player, TelepadIdleKey);
_player.Play(uid, player, CargoTelepadBeamAnimation, TelepadBeamKey);
_player.Stop((uid, player), TelepadIdleKey);
if (!_player.HasRunningAnimation(uid, TelepadBeamKey))
_player.Play((uid, player), CargoTelepadBeamAnimation, TelepadBeamKey);
break;
case CargoTelepadState.Unpowered:
sprite.LayerSetVisible(CargoTelepadLayers.Beam, false);
@@ -90,7 +91,7 @@ public sealed partial class CargoSystem
_player.HasRunningAnimation(uid, player, TelepadBeamKey))
return;
_player.Play(uid, player, CargoTelepadIdleAnimation, TelepadIdleKey);
_player.Play((uid, player), CargoTelepadIdleAnimation, TelepadIdleKey);
break;
}
}

View File

@@ -3,66 +3,84 @@
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
SetSize="600 600"
MinSize="600 600">
<BoxContainer Orientation="Vertical" Margin="5 0 5 0">
<BoxContainer Orientation="Vertical" Margin="15 5 15 10">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'cargo-console-menu-account-name-label'}"
StyleClasses="LabelKeyText" />
<Label Name="AccountNameLabel"
<RichTextLabel Name="AccountNameLabel"
Text="{Loc 'cargo-console-menu-account-name-none-text'}" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'cargo-console-menu-points-label'}"
StyleClasses="LabelKeyText" />
<Label Name="PointsLabel"
<RichTextLabel Name="PointsLabel"
Text="$0" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'cargo-console-menu-order-capacity-label'}"
StyleClasses="LabelKeyText" />
<Label Name="ShuttleCapacityLabel"
Text="0/20" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<OptionButton Name="Categories"
Prefix="{Loc 'cargo-console-menu-categories-label'}"
HorizontalExpand="True" />
<LineEdit Name="SearchBar"
PlaceHolder="{Loc 'cargo-console-menu-search-bar-placeholder'}"
HorizontalExpand="True" />
</BoxContainer>
<ScrollContainer HorizontalExpand="True"
VerticalExpand="True"
SizeFlagsStretchRatio="6">
<BoxContainer Name="Products"
Orientation="Vertical"
HorizontalExpand="True"
VerticalExpand="True">
<!-- Products get added here by code -->
</BoxContainer>
</ScrollContainer>
<PanelContainer VerticalExpand="True"
SizeFlagsStretchRatio="6">
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BackgroundColor="#000000" />
</PanelContainer.PanelOverride>
<ScrollContainer VerticalExpand="True">
<BoxContainer Orientation="Vertical">
<Label Text="{Loc 'cargo-console-menu-requests-label'}" />
<BoxContainer Name="Requests"
Orientation="Vertical"
VerticalExpand="True">
<!-- Requests are added here by code -->
</BoxContainer>
<Label Text="{Loc 'cargo-console-menu-orders-label'}" />
<BoxContainer Name="Orders"
Orientation="Vertical"
StyleClasses="transparentItemList"
VerticalExpand="True">
<!-- Orders are added here by code -->
</BoxContainer>
<Control MinHeight="10"/>
<TabContainer Name="TabContainer" VerticalExpand="True">
<BoxContainer Orientation="Vertical" VerticalExpand="True">
<BoxContainer Orientation="Horizontal">
<OptionButton Name="Categories"
Prefix="{Loc 'cargo-console-menu-categories-label'}"
HorizontalExpand="True" />
<LineEdit Name="SearchBar"
PlaceHolder="{Loc 'cargo-console-menu-search-bar-placeholder'}"
HorizontalExpand="True" />
</BoxContainer>
</ScrollContainer>
</PanelContainer>
<TextureButton VerticalExpand="True" />
<Control MinHeight="5"/>
<ScrollContainer HorizontalExpand="True"
VerticalExpand="True"
SizeFlagsStretchRatio="2">
<BoxContainer Name="Products"
Orientation="Vertical"
HorizontalExpand="True"
VerticalExpand="True">
<!-- Products get added here by code -->
</BoxContainer>
</ScrollContainer>
<Control MinHeight="5" Name="OrdersSpacer"/>
<PanelContainer VerticalExpand="True"
SizeFlagsStretchRatio="1"
Name="Orders">
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BackgroundColor="#000000" />
</PanelContainer.PanelOverride>
<ScrollContainer VerticalExpand="True">
<BoxContainer Orientation="Vertical" Margin="5">
<Label Text="{Loc 'cargo-console-menu-requests-label'}" />
<BoxContainer Name="Requests"
Orientation="Vertical"
VerticalExpand="True">
<!-- Requests are added here by code -->
</BoxContainer>
</BoxContainer>
</ScrollContainer>
</PanelContainer>
</BoxContainer>
<!-- Funds tab -->
<BoxContainer Orientation="Vertical" Margin="15">
<BoxContainer Orientation="Horizontal">
<RichTextLabel Name="TransferLimitLabel" Margin="0 0 15 0"/>
<RichTextLabel Name="UnlimitedNotifier" Text="{Loc 'cargo-console-menu-account-action-transfer-limit-unlimited-notifier'}"/>
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<RichTextLabel Text="{Loc 'cargo-console-menu-account-action-select'}" Margin="0 0 10 0"/>
<OptionButton Name="ActionOptions"/>
</BoxContainer>
<Control MinHeight="5"/>
<BoxContainer Orientation="Horizontal">
<RichTextLabel Name="AmountText" Text="{ Loc 'cargo-console-menu-account-action-amount'}"/>
<SpinBox Name="TransferSpinBox" MinWidth="100" Value="10"/>
</BoxContainer>
<Control MinHeight="15"/>
<BoxContainer HorizontalAlignment="Center">
<Button Name="AccountActionButton" Text="{ Loc 'cargo-console-menu-account-action-button'}" MinHeight="45" MinWidth="120"/>
</BoxContainer>
<Control VerticalExpand="True"/>
<BoxContainer VerticalAlignment="Bottom" HorizontalAlignment="Center">
<Button Name="AccountLimitToggleButton" Text="{ Loc 'cargo-console-menu-toggle-account-lock-button'}" MinHeight="45" MinWidth="120"/>
</BoxContainer>
</BoxContainer>
</TabContainer>
</BoxContainer>
</controls:FancyWindow>

View File

@@ -1,4 +1,5 @@
using System.Linq;
using Content.Client.Cargo.Systems;
using Content.Client.UserInterface.Controls;
using Content.Shared.Cargo;
using Content.Shared.Cargo.Components;
@@ -8,6 +9,7 @@ using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using static Robust.Client.UserInterface.Controls.BaseButton;
namespace Content.Client.Cargo.UI
@@ -15,30 +17,83 @@ namespace Content.Client.Cargo.UI
[GenerateTypedNameReferences]
public sealed partial class CargoConsoleMenu : FancyWindow
{
private IEntityManager _entityManager;
private IPrototypeManager _protoManager;
private SpriteSystem _spriteSystem;
[Dependency] private readonly IGameTiming _timing = default!;
private readonly IEntityManager _entityManager;
private readonly IPrototypeManager _protoManager;
private readonly CargoSystem _cargoSystem;
private readonly SpriteSystem _spriteSystem;
private EntityUid _owner;
private EntityUid? _station;
private readonly EntityQuery<CargoOrderConsoleComponent> _orderConsoleQuery;
private readonly EntityQuery<StationBankAccountComponent> _bankQuery;
public event Action<ButtonEventArgs>? OnItemSelected;
public event Action<ButtonEventArgs>? OnOrderApproved;
public event Action<ButtonEventArgs>? OnOrderCanceled;
public event Action<ProtoId<CargoAccountPrototype>?, int>? OnAccountAction;
public event Action<ButtonEventArgs>? OnToggleUnboundedLimit;
private readonly List<string> _categoryStrings = new();
private string? _category;
public CargoConsoleMenu(EntityUid owner, IEntityManager entMan, IPrototypeManager protoManager, SpriteSystem spriteSystem)
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_entityManager = entMan;
_protoManager = protoManager;
_cargoSystem = entMan.System<CargoSystem>();
_spriteSystem = spriteSystem;
_owner = owner;
Title = Loc.GetString("cargo-console-menu-title");
_orderConsoleQuery = _entityManager.GetEntityQuery<CargoOrderConsoleComponent>();
_bankQuery = _entityManager.GetEntityQuery<StationBankAccountComponent>();
Title = entMan.GetComponent<MetaDataComponent>(owner).EntityName;
SearchBar.OnTextChanged += OnSearchBarTextChanged;
Categories.OnItemSelected += OnCategoryItemSelected;
if (entMan.TryGetComponent<CargoOrderConsoleComponent>(owner, out var orderConsole))
{
var accountProto = _protoManager.Index(orderConsole.Account);
AccountNameLabel.Text = Loc.GetString("cargo-console-menu-account-name-format",
("color", accountProto.Color),
("name", Loc.GetString(accountProto.Name)),
("code", Loc.GetString(accountProto.Code)));
}
TabContainer.SetTabTitle(0, Loc.GetString("cargo-console-menu-tab-title-orders"));
TabContainer.SetTabTitle(1, Loc.GetString("cargo-console-menu-tab-title-funds"));
ActionOptions.OnItemSelected += idx =>
{
ActionOptions.SelectId(idx.Id);
};
TransferSpinBox.IsValid = val =>
{
if (!_entityManager.TryGetComponent<CargoOrderConsoleComponent>(owner, out var console) ||
!_entityManager.TryGetComponent<StationBankAccountComponent>(_station, out var bank))
return true;
return val >= 0 && val <= (int) (console.TransferLimit * bank.Accounts[console.Account]);
};
AccountActionButton.OnPressed += _ =>
{
var account = (ProtoId<CargoAccountPrototype>?) ActionOptions.SelectedMetadata;
OnAccountAction?.Invoke(account, TransferSpinBox.Value);
};
AccountLimitToggleButton.OnPressed += a =>
{
OnToggleUnboundedLimit?.Invoke(a);
};
}
private void OnCategoryItemSelected(OptionButton.ItemSelectedEventArgs args)
@@ -144,13 +199,16 @@ namespace Content.Client.Cargo.UI
/// </summary>
public void PopulateOrders(IEnumerable<CargoOrderData> orders)
{
Orders.DisposeAllChildren();
Requests.DisposeAllChildren();
foreach (var order in orders)
{
if (order.Approved)
continue;
var product = _protoManager.Index<EntityPrototype>(order.ProductId);
var productName = product.Name;
var account = _protoManager.Index(order.Account);
var row = new CargoOrderRow
{
@@ -162,37 +220,74 @@ namespace Content.Client.Cargo.UI
"cargo-console-menu-populate-orders-cargo-order-row-product-name-text",
("productName", productName),
("orderAmount", order.OrderQuantity),
("orderRequester", order.Requester))
("orderRequester", order.Requester),
("accountColor", account.Color),
("account", Loc.GetString(account.Code)))
},
Description = {Text = Loc.GetString("cargo-console-menu-order-reason-description",
("reason", order.Reason))}
Description =
{
Text = Loc.GetString("cargo-console-menu-order-reason-description",
("reason", order.Reason))
}
};
row.Cancel.OnPressed += (args) => { OnOrderCanceled?.Invoke(args); };
if (order.Approved)
{
row.Approve.Visible = false;
row.Cancel.Visible = false;
Orders.AddChild(row);
}
else
{
// TODO: Disable based on access.
row.Approve.OnPressed += (args) => { OnOrderApproved?.Invoke(args); };
Requests.AddChild(row);
}
// TODO: Disable based on access.
row.Approve.OnPressed += (args) => { OnOrderApproved?.Invoke(args); };
Requests.AddChild(row);
}
}
public void UpdateCargoCapacity(int count, int capacity)
public void PopulateAccountActions()
{
// TODO: Rename + Loc.
ShuttleCapacityLabel.Text = $"{count}/{capacity}";
if (!_entityManager.TryGetComponent<StationBankAccountComponent>(_station, out var bank) ||
!_entityManager.TryGetComponent<CargoOrderConsoleComponent>(_owner, out var console))
return;
var i = 0;
ActionOptions.Clear();
ActionOptions.AddItem(Loc.GetString("cargo-console-menu-account-action-option-withdraw"), i);
i++;
foreach (var account in bank.Accounts.Keys)
{
if (account == console.Account)
continue;
var accountProto = _protoManager.Index(account);
ActionOptions.AddItem(Loc.GetString("cargo-console-menu-account-action-option-transfer",
("code", Loc.GetString(accountProto.Code))),
i);
ActionOptions.SetItemMetadata(i, account);
i++;
}
}
public void UpdateBankData(string name, int points)
public void UpdateStation(EntityUid station)
{
AccountNameLabel.Text = name;
PointsLabel.Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", points.ToString()));
_station = station;
}
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);
if (!_bankQuery.TryComp(_station, out var bankAccount) ||
!_orderConsoleQuery.TryComp(_owner, out var orderConsole))
{
return;
}
var balance = _cargoSystem.GetBalanceFromAccount((_station.Value, bankAccount), orderConsole.Account);
PointsLabel.Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", balance));
TransferLimitLabel.Text = Loc.GetString("cargo-console-menu-account-action-transfer-limit",
("limit", (int) (balance * orderConsole.TransferLimit)));
UnlimitedNotifier.Visible = orderConsole.TransferUnbounded;
AccountActionButton.Disabled = TransferSpinBox.Value <= 0 ||
TransferSpinBox.Value > bankAccount.Accounts[orderConsole.Account] * orderConsole.TransferLimit ||
_timing.CurTime < orderConsole.NextAccountActionTime;
OrdersSpacer.Visible = !orderConsole.SlipPrinter;
Orders.Visible = !orderConsole.SlipPrinter;
}
}
}

View File

@@ -1,19 +1,20 @@
<PanelContainer xmlns="https://spacestation14.io"
HorizontalExpand="True">
HorizontalExpand="True"
Margin="0 1">
<BoxContainer Orientation="Horizontal"
HorizontalExpand="True">
<TextureRect Name="Icon"
Access="Public"
MinSize="32 32"
RectClipContent="True" />
<Control MinWidth="5"/>
<BoxContainer Orientation="Vertical"
HorizontalExpand="True"
VerticalExpand="True">
<Label Name="ProductName"
<RichTextLabel Name="ProductName"
Access="Public"
HorizontalExpand="True"
StyleClasses="LabelSubText"
ClipText="True" />
StyleClasses="LabelSubText" />
<Label Name="Description"
Access="Public"
HorizontalExpand="True"
@@ -23,10 +24,10 @@
<Button Name="Approve"
Access="Public"
Text="{Loc 'cargo-console-menu-cargo-order-row-approve-button'}"
StyleClasses="LabelSubText" />
StyleClasses="OpenRight" />
<Button Name="Cancel"
Access="Public"
Text="{Loc 'cargo-console-menu-cargo-order-row-cancel-button'}"
StyleClasses="LabelSubText" />
StyleClasses="OpenLeft" />
</BoxContainer>
</PanelContainer>

View File

@@ -4,7 +4,8 @@
ToolTip=""
Access="Public"
HorizontalExpand="True"
VerticalExpand="True" />
VerticalExpand="True"
StyleClasses="OpenBoth"/>
<BoxContainer Orientation="Horizontal"
HorizontalExpand="True">
<TextureRect Name="Icon"
@@ -18,7 +19,8 @@
<Label Name="PointCost"
Access="Public"
MinSize="52 32"
Align="Right" />
Align="Right"
Margin="0 0 5 0"/>
</PanelContainer>
</BoxContainer>
</PanelContainer>

View File

@@ -36,6 +36,7 @@ namespace Content.Client.Cargo.UI
{
var product = protoManager.Index<EntityPrototype>(order.ProductId);
var productName = product.Name;
var account = protoManager.Index(order.Account);
var row = new CargoOrderRow
{
@@ -47,7 +48,9 @@ namespace Content.Client.Cargo.UI
"cargo-console-menu-populate-orders-cargo-order-row-product-name-text",
("productName", productName),
("orderAmount", order.OrderQuantity - order.NumDispatched),
("orderRequester", order.Requester))
("orderRequester", order.Requester),
("accountColor", account.Color),
("account", Loc.GetString(account.Code)))
},
Description = {Text = Loc.GetString("cargo-console-menu-order-reason-description",
("reason", order.Reason))}

View File

@@ -0,0 +1,32 @@
<controls:FancyWindow xmlns="https://spacestation14.io"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
xmlns:graphics="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
Title="{Loc 'cargo-funding-alloc-console-menu-title'}">
<BoxContainer Orientation="Vertical"
VerticalExpand="True"
HorizontalExpand="True"
Margin="10 5 10 10">
<controls:TableContainer Columns="2" HorizontalExpand="True" VerticalExpand="True">
<RichTextLabel Name="PrimaryCutLabel" Text="{Loc 'cargo-funding-alloc-console-label-primary-cut'}"/>
<SpinBox Name="PrimaryCut"/>
<RichTextLabel Name="LockboxCutLabel" Text="{Loc 'cargo-funding-alloc-console-label-lockbox-cut'}"/>
<SpinBox Name="LockboxCut"/>
</controls:TableContainer>
<Label Name="HelpLabel" HorizontalAlignment="Center" StyleClasses="LabelSubText" Margin="0 10"/>
<PanelContainer VerticalExpand="True" HorizontalExpand="True" VerticalAlignment="Top" MaxHeight="250">
<PanelContainer.PanelOverride>
<graphics:StyleBoxFlat BackgroundColor="#1B1B1E"/>
</PanelContainer.PanelOverride>
<controls:TableContainer Name="EntriesContainer" Columns="4" HorizontalExpand="True" VerticalExpand="True" Margin="5 0">
<RichTextLabel Text="{Loc 'cargo-funding-alloc-console-label-account'}" HorizontalAlignment="Center"/>
<RichTextLabel Text="{Loc 'cargo-funding-alloc-console-label-code'}" HorizontalAlignment="Center"/>
<RichTextLabel Text="{Loc 'cargo-funding-alloc-console-label-balance'}" HorizontalAlignment="Center"/>
<RichTextLabel Text="{Loc 'cargo-funding-alloc-console-label-cut'}" HorizontalAlignment="Center"/>
</controls:TableContainer>
</PanelContainer>
<BoxContainer Orientation="Horizontal" HorizontalExpand="True" Margin="5 0">
<Button Name="SaveButton" Text="{Loc 'cargo-funding-alloc-console-button-save'}" Disabled="True"/>
<RichTextLabel Name="SaveAlertLabel" HorizontalExpand="True" HorizontalAlignment="Right" Visible="False"/>
</BoxContainer>
</BoxContainer>
</controls:FancyWindow>

View File

@@ -0,0 +1,229 @@
using System.Collections.Generic;
using System.Linq;
using Content.Client.Message;
using Content.Client.UserInterface.Controls;
using Content.Shared.Cargo.Components;
using Content.Shared.Cargo.Prototypes;
using Content.Shared.CCVar;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
namespace Content.Client.Cargo.UI;
[GenerateTypedNameReferences]
public sealed partial class FundingAllocationMenu : FancyWindow
{
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
private readonly EntityQuery<StationBankAccountComponent> _bankQuery;
public event Action<Dictionary<ProtoId<CargoAccountPrototype>, int>, double, double>? OnSavePressed;
private EntityUid? _station;
private bool _allowPrimaryAccountAllocation;
private bool _allowPrimaryCutAdjustment;
private bool _lockboxCutEnabled;
private double _primaryCut;
private double _lockboxCut;
private readonly HashSet<Control> _addedControls = new();
private readonly List<SpinBox> _spinBoxes = new();
private readonly Dictionary<ProtoId<CargoAccountPrototype>, RichTextLabel> _balanceLabels = new();
public FundingAllocationMenu()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_bankQuery = _entityManager.GetEntityQuery<StationBankAccountComponent>();
PrimaryCut.ValueChanged += args =>
{
_primaryCut = (double)args.Value / 100.0;
UpdateButtonDisabled();
};
LockboxCut.ValueChanged += args =>
{
_lockboxCut = 1.0 - (double)args.Value / 100.0;
UpdateButtonDisabled();
};
SaveButton.OnPressed += _ =>
{
if (!_entityManager.TryGetComponent<StationBankAccountComponent>(_station, out var bank))
return;
var accounts = EditableAccounts(bank).OrderBy(p => p.Key).Select(p => p.Key).ToList();
var dicts = new Dictionary<ProtoId<CargoAccountPrototype>, int>();
for (var i = 0; i< accounts.Count; i++)
{
dicts.Add(accounts[i], _spinBoxes[i].Value);
}
OnSavePressed?.Invoke(dicts, _primaryCut, _lockboxCut);
SaveButton.Disabled = true;
};
_cfg.OnValueChanged(CCVars.AllowPrimaryAccountAllocation, enabled => { _allowPrimaryAccountAllocation = enabled; }, true);
_cfg.OnValueChanged(CCVars.AllowPrimaryCutAdjustment, enabled => { _allowPrimaryCutAdjustment = enabled; }, true);
_cfg.OnValueChanged(CCVars.LockboxCutEnabled, enabled => { _lockboxCutEnabled = enabled; }, true);
BuildEntries();
}
private IEnumerable<KeyValuePair<ProtoId<CargoAccountPrototype>, int>> EditableAccounts(StationBankAccountComponent bank)
{
foreach (var kvp in bank.Accounts)
{
if (_allowPrimaryAccountAllocation || kvp.Key != bank.PrimaryAccount)
{
yield return kvp;
}
}
}
private void BuildEntries()
{
if (!_entityManager.TryGetComponent<StationBankAccountComponent>(_station, out var bank))
return;
if (_allowPrimaryCutAdjustment)
{
HelpLabel.Text = Loc.GetString("cargo-funding-alloc-console-label-help-adjustible");
}
else
{
HelpLabel.Text = Loc.GetString("cargo-funding-alloc-console-label-help-non-adjustible",
("percent", (int) (bank.PrimaryCut * 100)));
}
foreach (var ctrl in _addedControls)
{
ctrl.Orphan();
}
_addedControls.Clear();
_spinBoxes.Clear();
_balanceLabels.Clear();
_primaryCut = bank.PrimaryCut;
_lockboxCut = bank.LockboxCut;
LockboxCut.OverrideValue(100 - (int)(_lockboxCut * 100));
PrimaryCut.OverrideValue((int)(_primaryCut * 100));
LockboxCut.IsValid = val => val is >= 0 and <= 100;
PrimaryCut.IsValid = val => val is >= 0 and <= 100;
LockboxCut.Visible = _lockboxCutEnabled;
LockboxCutLabel.Visible = _lockboxCutEnabled;
PrimaryCut.Visible = _allowPrimaryCutAdjustment;
PrimaryCutLabel.Visible = _allowPrimaryCutAdjustment;
var accounts = EditableAccounts(bank).OrderBy(p => p.Key);
foreach (var (account, balance) in accounts)
{
var accountProto = _prototypeManager.Index(account);
var accountNameLabel = new RichTextLabel
{
Modulate = accountProto.Color,
Margin = new Thickness(0, 0, 10, 0)
};
accountNameLabel.SetMarkup($"[bold]{Loc.GetString(accountProto.Name)}[/bold]");
EntriesContainer.AddChild(accountNameLabel);
var codeLabel = new RichTextLabel
{
Text = $"[font=\"Monospace\"]{Loc.GetString(accountProto.Code)}[/font]",
HorizontalAlignment = HAlignment.Center,
Margin = new Thickness(5, 0),
};
EntriesContainer.AddChild(codeLabel);
var balanceLabel = new RichTextLabel
{
Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", balance)),
HorizontalExpand = true,
HorizontalAlignment = HAlignment.Center,
Margin = new Thickness(5, 0),
};
EntriesContainer.AddChild(balanceLabel);
var box = new SpinBox
{
HorizontalAlignment = HAlignment.Center,
HorizontalExpand = true,
Value = (int) (bank.RevenueDistribution[account] * 100),
IsValid = val => val is >= 0 and <= 100,
};
box.ValueChanged += _ => UpdateButtonDisabled();
EntriesContainer.AddChild(box);
_spinBoxes.Add(box);
_balanceLabels.Add(account, balanceLabel);
_addedControls.Add(accountNameLabel);
_addedControls.Add(codeLabel);
_addedControls.Add(balanceLabel);
_addedControls.Add(box);
}
}
private void UpdateButtonDisabled()
{
if (!_entityManager.TryGetComponent<StationBankAccountComponent>(_station, out var bank))
return;
var sum = _spinBoxes.Sum(s => s.Value);
var incorrectSum = sum != 100;
var differs = false;
var accounts = EditableAccounts(bank).OrderBy(p => p.Key).Select(p => p.Key).ToList();
for (var i = 0; i < accounts.Count; i++)
{
var percent = _spinBoxes[i].Value;
if (percent != (int) Math.Round(bank.RevenueDistribution[accounts[i]] * 100))
{
differs = true;
break;
}
}
differs = differs || _primaryCut != bank.PrimaryCut || _lockboxCut != bank.LockboxCut;
SaveButton.Disabled = !differs || incorrectSum;
var diff = sum - 100;
SaveAlertLabel.Visible = incorrectSum;
SaveAlertLabel.SetMarkup(Loc.GetString("cargo-funding-alloc-console-label-save-fail",
("pos", Math.Sign(diff)),
("val", Math.Abs(diff))));
}
public void Update(FundingAllocationConsoleBuiState state)
{
_station = _entityManager.GetEntity(state.Station);
BuildEntries();
UpdateButtonDisabled();
}
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);
if (!_bankQuery.TryComp(_station, out var bank))
return;
foreach (var (account, label) in _balanceLabels)
{
label.Text = Loc.GetString("cargo-console-menu-points-amount", ("amount", bank.Accounts[account]));
}
}
}

View File

@@ -0,0 +1,5 @@
using Content.Shared.CartridgeLoader.Cartridges;
namespace Content.Client.CartridgeLoader.Cartridges;
public sealed class NanoTaskCartridgeSystem : SharedNanoTaskCartridgeSystem;

View File

@@ -0,0 +1,32 @@
<Control xmlns="https://spacestation14.io" xmlns:system="clr-namespace:System;assembly=System.Runtime">
<BoxContainer Name="MainContainer"
Orientation="Horizontal"
SetWidth="250">
<Button Name="MainButton"
HorizontalExpand="True"
VerticalExpand="True"
StyleClasses="ButtonSquare"
Margin="-1 0 0 0">
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<BoxContainer Orientation="Vertical"
VerticalExpand="True"
HorizontalExpand="True"
Margin="-5 0 0 0">
<Label Name="TaskLabel"
StyleClasses="LabelSubText" />
<Label Name="TaskForLabel"
StyleClasses="LabelSubText"
Margin="0 -5 0 0" />
</BoxContainer>
</BoxContainer>
</Button>
<Button Name="DoneButton"
VerticalExpand="True"
Text="{Loc 'nano-task-ui-done'}">
<Button.StyleClasses>
<system:String>ButtonSmall</system:String>
<system:String>OpenLeft</system:String>
</Button.StyleClasses>
</Button>
</BoxContainer>
</Control>

View File

@@ -0,0 +1,33 @@
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Maths;
using Content.Shared.CartridgeLoader.Cartridges;
namespace Content.Client.CartridgeLoader.Cartridges;
/// <summary>
/// Represents a single control for a single NanoTask item
/// </summary>
[GenerateTypedNameReferences]
public sealed partial class NanoTaskItemControl : Control
{
public Action<int>? OnMainPressed;
public Action<int>? OnDonePressed;
public NanoTaskItemControl(NanoTaskItemAndId item)
{
RobustXamlLoader.Load(this);
TaskLabel.Text = item.Data.Description;
TaskLabel.FontColorOverride = Color.White;
TaskForLabel.Text = item.Data.TaskIsFor;
MainButton.OnPressed += _ => OnMainPressed?.Invoke(item.Id);
DoneButton.OnPressed += _ => OnDonePressed?.Invoke(item.Id);
MainButton.Disabled = item.Data.IsTaskDone;
DoneButton.Text = item.Data.IsTaskDone ? Loc.GetString("nano-task-ui-revert-done") : Loc.GetString("nano-task-ui-done");
}
}

View File

@@ -0,0 +1,67 @@
<DefaultWindow xmlns="https://spacestation14.io"
Title="{Loc nano-task-ui-item-title}"
MinSize="300 300">
<PanelContainer StyleClasses="AngleRect">
<BoxContainer Orientation="Vertical" Margin="4">
<!-- Task Description Input -->
<BoxContainer Orientation="Vertical" Margin="0 4">
<Label Text="{Loc nano-task-ui-description-label}"
StyleClasses="LabelHeading" />
<PanelContainer StyleClasses="ButtonSquare">
<LineEdit Name="DescriptionInput"
PlaceHolder="{Loc nano-task-ui-description-placeholder}" />
</PanelContainer>
</BoxContainer>
<!-- Task Requester Input -->
<BoxContainer Orientation="Vertical" Margin="0 4">
<Label Text="{Loc nano-task-ui-requester-label}"
StyleClasses="LabelHeading" />
<PanelContainer StyleClasses="ButtonSquare">
<LineEdit Name="RequesterInput"
PlaceHolder="{Loc nano-task-ui-requester-placeholder}" />
</PanelContainer>
</BoxContainer>
<!-- Severity Buttons -->
<BoxContainer Orientation="Horizontal"
HorizontalAlignment="Center"
Margin="0 8 0 0">
<Button Name="LowButton"
Text="{Loc nano-task-ui-priority-low}"
StyleClasses="OpenRight"
MinSize="60 0" />
<Button Name="MediumButton"
Text="{Loc nano-task-ui-priority-medium}"
StyleClasses="ButtonSquare"
MinSize="60 0" />
<Button Name="HighButton"
Text="{Loc nano-task-ui-priority-high}"
StyleClasses="OpenLeft"
MinSize="60 0" />
</BoxContainer>
<!-- Verb Buttons -->
<BoxContainer Orientation="Horizontal"
HorizontalAlignment="Right"
Margin="0 8 0 0">
<Button Name="CancelButton"
Text="{Loc nano-task-ui-cancel}"
StyleClasses="OpenRight"
MinSize="60 0" />
<Button Name="DeleteButton"
Text="{Loc nano-task-ui-delete}"
StyleClasses="ButtonSquare"
MinSize="60 0" />
<Button Name="PrintButton"
Text="{Loc nano-task-ui-print}"
StyleClasses="ButtonSquare"
MinSize="60 0" />
<Button Name="SaveButton"
Text="{Loc nano-task-ui-save}"
StyleClasses="OpenLeft"
MinSize="60 0" />
</BoxContainer>
</BoxContainer>
</PanelContainer>
</DefaultWindow>

View File

@@ -0,0 +1,111 @@
using System.Linq;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.UserInterface.Controls;
using Content.Shared.CartridgeLoader.Cartridges;
namespace Content.Client.CartridgeLoader.Cartridges;
/// <summary>
/// Popup displayed to edit a NanoTask item
/// </summary>
[GenerateTypedNameReferences]
public sealed partial class NanoTaskItemPopup : DefaultWindow
{
private readonly ButtonGroup _priorityGroup = new();
private int? _editingTaskId = null;
public Action<int, NanoTaskItem>? TaskSaved;
public Action<int>? TaskDeleted;
public Action<NanoTaskItem>? TaskCreated;
public Action<NanoTaskItem>? TaskPrinted;
private NanoTaskItem MakeItem()
{
return new(
description: DescriptionInput.Text,
taskIsFor: RequesterInput.Text,
isTaskDone: false,
priority: _priorityGroup.Pressed switch {
var item when item == LowButton => NanoTaskPriority.Low,
var item when item == MediumButton => NanoTaskPriority.Medium,
var item when item == HighButton => NanoTaskPriority.High,
_ => NanoTaskPriority.Medium,
}
);
}
public NanoTaskItemPopup()
{
RobustXamlLoader.Load(this);
LowButton.Group = _priorityGroup;
MediumButton.Group = _priorityGroup;
HighButton.Group = _priorityGroup;
CancelButton.OnPressed += _ => Close();
DeleteButton.OnPressed += _ =>
{
if (_editingTaskId is int id)
{
TaskDeleted?.Invoke(id);
}
};
PrintButton.OnPressed += _ =>
{
TaskPrinted?.Invoke(MakeItem());
};
SaveButton.OnPressed += _ =>
{
if (_editingTaskId is int id)
{
TaskSaved?.Invoke(id, MakeItem());
}
else
{
TaskCreated?.Invoke(MakeItem());
}
};
DescriptionInput.OnTextChanged += args =>
{
if (args.Text.Length > NanoTaskItem.MaximumStringLength)
DescriptionInput.Text = args.Text[..NanoTaskItem.MaximumStringLength];
};
RequesterInput.OnTextChanged += args =>
{
if (args.Text.Length > NanoTaskItem.MaximumStringLength)
RequesterInput.Text = args.Text[..NanoTaskItem.MaximumStringLength];
};
}
public void SetEditingTaskId(int? id)
{
_editingTaskId = id;
DeleteButton.Visible = id is not null;
}
public void ResetInputs(NanoTaskItem? item)
{
if (item is NanoTaskItem task)
{
var button = task.Priority switch
{
NanoTaskPriority.High => HighButton,
NanoTaskPriority.Medium => MediumButton,
NanoTaskPriority.Low => LowButton,
_ => throw new ArgumentException("Invalid priority"),
};
button.Pressed = true;
DescriptionInput.Text = task.Description;
RequesterInput.Text = task.TaskIsFor;
}
else
{
MediumButton.Pressed = true;
DescriptionInput.Text = "";
RequesterInput.Text = "";
}
}
}

View File

@@ -0,0 +1,82 @@
using System.Linq;
using Content.Client.UserInterface.Fragments;
using Content.Shared.CartridgeLoader;
using Content.Shared.CartridgeLoader.Cartridges;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.CartridgeLoader.Cartridges;
/// <summary>
/// UI fragment responsible for displaying NanoTask controls in a PDA and coordinating with the NanoTaskCartridgeSystem for state
/// </summary>
public sealed partial class NanoTaskUi : UIFragment
{
private NanoTaskUiFragment? _fragment;
private NanoTaskItemPopup? _popup;
public override Control GetUIFragmentRoot()
{
return _fragment!;
}
public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner)
{
_fragment = new NanoTaskUiFragment();
_popup = new NanoTaskItemPopup();
_fragment.NewTask += () =>
{
_popup.ResetInputs(null);
_popup.SetEditingTaskId(null);
_popup.OpenCentered();
};
_fragment.OpenTask += id =>
{
if (_fragment.Tasks.Find(task => task.Id == id) is not NanoTaskItemAndId task)
return;
_popup.ResetInputs(task.Data);
_popup.SetEditingTaskId(task.Id);
_popup.OpenCentered();
};
_fragment.ToggleTaskCompletion += id =>
{
if (_fragment.Tasks.Find(task => task.Id == id) is not NanoTaskItemAndId task)
return;
userInterface.SendMessage(new CartridgeUiMessage(new NanoTaskUiMessageEvent(new NanoTaskUpdateTask(new(id, new(
description: task.Data.Description,
taskIsFor: task.Data.TaskIsFor,
isTaskDone: !task.Data.IsTaskDone,
priority: task.Data.Priority
))))));
};
_popup.TaskSaved += (id, data) =>
{
userInterface.SendMessage(new CartridgeUiMessage(new NanoTaskUiMessageEvent(new NanoTaskUpdateTask(new(id, data)))));
_popup.Close();
};
_popup.TaskDeleted += id =>
{
userInterface.SendMessage(new CartridgeUiMessage(new NanoTaskUiMessageEvent(new NanoTaskDeleteTask(id))));
_popup.Close();
};
_popup.TaskCreated += data =>
{
userInterface.SendMessage(new CartridgeUiMessage(new NanoTaskUiMessageEvent(new NanoTaskAddTask(data))));
_popup.Close();
};
_popup.TaskPrinted += data =>
{
userInterface.SendMessage(new CartridgeUiMessage(new NanoTaskUiMessageEvent(new NanoTaskPrintTask(data))));
};
}
public override void UpdateState(BoundUserInterfaceState state)
{
if (state is not NanoTaskUiState nanoTaskState)
return;
_fragment?.UpdateState(nanoTaskState.Tasks);
}
}

View File

@@ -0,0 +1,58 @@
<cartridges:NanoTaskUiFragment xmlns:cartridges="clr-namespace:Content.Client.CartridgeLoader.Cartridges"
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
xmlns="https://spacestation14.io" Margin="1 0 2 0">
<PanelContainer StyleClasses="BackgroundDark"></PanelContainer>
<BoxContainer Orientation="Vertical" HorizontalExpand="True" VerticalExpand="True">
<ScrollContainer HorizontalExpand="True" VerticalExpand="True">
<BoxContainer HorizontalExpand="True" VerticalExpand="True" Orientation="Vertical" Margin="8" SeparationOverride="8">
<!-- Heading for High Priority Items -->
<BoxContainer Orientation="Horizontal">
<PanelContainer SetWidth="7" Margin="0 0 8 0">
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BackgroundColor="#e93d58"/>
</PanelContainer.PanelOverride>
</PanelContainer>
<Label Name="HighPriority" StyleClasses="LabelHeading"/>
</BoxContainer>
<!-- Location for High Priority Items -->
<GridContainer Name="HighContainer"
HorizontalExpand="True"
Access="Public"
Columns="2" />
<!-- Heading for Medium Priority Items -->
<BoxContainer Orientation="Horizontal">
<PanelContainer SetWidth="7" Margin="0 0 8 0">
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BackgroundColor="#ef973c"/>
</PanelContainer.PanelOverride>
</PanelContainer>
<Label Name="MediumPriority" StyleClasses="LabelHeading"/>
</BoxContainer>
<!-- Location for Medium Priority Items -->
<GridContainer Name="MediumContainer"
HorizontalExpand="True"
Access="Public"
Columns="2" />
<!-- Location for Low Priority Items -->
<BoxContainer Orientation="Horizontal">
<PanelContainer SetWidth="7" Margin="0 0 8 0">
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BackgroundColor="#3dd425"/>
</PanelContainer.PanelOverride>
</PanelContainer>
<Label Name="LowPriority" StyleClasses="LabelHeading"/>
</BoxContainer>
<!-- Location for Low Priority Items -->
<GridContainer Name="LowContainer"
HorizontalExpand="True"
Access="Public"
Columns="2" />
<Button Name="NewTaskButton" Text="{Loc 'nano-task-ui-new-task'}" HorizontalAlignment="Right"/>
</BoxContainer>
</ScrollContainer>
</BoxContainer>
</cartridges:NanoTaskUiFragment>

View File

@@ -0,0 +1,54 @@
using System.Linq;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Content.Shared.CartridgeLoader.Cartridges;
namespace Content.Client.CartridgeLoader.Cartridges;
/// <summary>
/// Class displaying the main UI of NanoTask
/// </summary>
[GenerateTypedNameReferences]
public sealed partial class NanoTaskUiFragment : BoxContainer
{
public Action<int>? OpenTask;
public Action<int>? ToggleTaskCompletion;
public Action? NewTask;
public List<NanoTaskItemAndId> Tasks = new();
public NanoTaskUiFragment()
{
RobustXamlLoader.Load(this);
Orientation = LayoutOrientation.Vertical;
HorizontalExpand = true;
VerticalExpand = true;
NewTaskButton.OnPressed += _ => NewTask?.Invoke();
}
public void UpdateState(List<NanoTaskItemAndId> tasks)
{
Tasks = tasks;
HighContainer.RemoveAllChildren();
MediumContainer.RemoveAllChildren();
LowContainer.RemoveAllChildren();
HighPriority.Text = Loc.GetString("nano-task-ui-heading-high-priority-tasks", ("amount", tasks.Count(task => task.Data.Priority == NanoTaskPriority.High)));
MediumPriority.Text = Loc.GetString("nano-task-ui-heading-medium-priority-tasks", ("amount", tasks.Count(task => task.Data.Priority == NanoTaskPriority.Medium)));
LowPriority.Text = Loc.GetString("nano-task-ui-heading-low-priority-tasks", ("amount", tasks.Count(task => task.Data.Priority == NanoTaskPriority.Low)));
foreach (var task in tasks)
{
var container = task.Data.Priority switch
{
NanoTaskPriority.High => HighContainer,
NanoTaskPriority.Medium => MediumContainer,
NanoTaskPriority.Low => LowContainer,
_ => throw new ArgumentException("Invalid priority"),
};
var control = new NanoTaskItemControl(task);
container.AddChild(control);
control.OnMainPressed += id => OpenTask?.Invoke(id);
control.OnDonePressed += id => ToggleTaskCompletion?.Invoke(id);
}
}
}

View File

@@ -131,13 +131,13 @@ public sealed partial class ChangelogTab : Control
Margin = new Thickness(6, 0, 0, 0),
};
authorLabel.SetMessage(
FormattedMessage.FromMarkupOrThrow(Loc.GetString("changelog-author-changed", ("author", author))));
FormattedMessage.FromMarkupOrThrow(Loc.GetString("changelog-author-changed", ("author", FormattedMessage.EscapeText(author)))));
ChangelogBody.AddChild(authorLabel);
foreach (var change in groupedEntry.SelectMany(c => c.Changes))
{
var text = new RichTextLabel();
text.SetMessage(FormattedMessage.FromMarkupOrThrow(change.Message));
text.SetMessage(FormattedMessage.FromUnformatted(change.Message));
ChangelogBody.AddChild(new BoxContainer
{
Orientation = LayoutOrientation.Horizontal,

View File

@@ -8,8 +8,6 @@ using JetBrains.Annotations;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
using Robust.Shared;
using Robust.Shared.Configuration;
using Robust.Shared.Console;
namespace Content.Client.Changelog
@@ -19,7 +17,6 @@ namespace Content.Client.Changelog
{
[Dependency] private readonly ChangelogManager _changelog = default!;
[Dependency] private readonly IClientAdminManager _adminManager = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;
public ChangelogWindow()
{

View File

@@ -0,0 +1,52 @@
using Content.Client.Actions;
using Content.Shared.Actions;
using Content.Shared.Charges.Components;
using Content.Shared.Charges.Systems;
namespace Content.Client.Charges;
public sealed class ChargesSystem : SharedChargesSystem
{
[Dependency] private readonly ActionsSystem _actions = default!;
private Dictionary<EntityUid, int> _lastCharges = new();
private Dictionary<EntityUid, int> _tempLastCharges = new();
public override void Update(float frameTime)
{
// Technically this should probably be in frameupdate but no one will ever notice a tick of delay on this.
base.Update(frameTime);
if (!_timing.IsFirstTimePredicted)
return;
// Update recharging actions. Server doesn't actually care about this and it's a waste of performance, actions are immediate.
var query = AllEntityQuery<AutoRechargeComponent, LimitedChargesComponent>();
while (query.MoveNext(out var uid, out var recharge, out var charges))
{
BaseActionComponent? actionComp = null;
if (!_actions.ResolveActionData(uid, ref actionComp, logError: false))
continue;
var current = GetCurrentCharges((uid, charges, recharge));
if (!_lastCharges.TryGetValue(uid, out var last) || current != last)
{
_actions.UpdateAction(uid, actionComp);
}
_tempLastCharges[uid] = current;
}
_lastCharges.Clear();
foreach (var (uid, value) in _tempLastCharges)
{
_lastCharges[uid] = value;
}
_tempLastCharges.Clear();
}
}

View File

@@ -1,5 +0,0 @@
using Content.Shared.Charges.Systems;
namespace Content.Client.Charges.Systems;
public sealed class ChargesSystem : SharedChargesSystem { }

View File

@@ -1,4 +1,4 @@
using Content.Shared.Chasm;
using Content.Shared.Chasm;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
using Robust.Shared.Animations;
@@ -32,7 +32,9 @@ public sealed class ChasmFallingVisualsSystem : EntitySystem
component.OriginalScale = sprite.Scale;
var player = EnsureComp<AnimationPlayerComponent>(uid);
if (!TryComp<AnimationPlayerComponent>(uid, out var player))
return;
if (_anim.HasRunningAnimation(player, _chasmFallAnimationKey))
return;
@@ -44,11 +46,13 @@ public sealed class ChasmFallingVisualsSystem : EntitySystem
if (!TryComp<SpriteComponent>(uid, out var sprite))
return;
var player = EnsureComp<AnimationPlayerComponent>(uid);
if (_anim.HasRunningAnimation(player, _chasmFallAnimationKey))
_anim.Stop(player, _chasmFallAnimationKey);
sprite.Scale = component.OriginalScale;
if (!TryComp<AnimationPlayerComponent>(uid, out var player))
return;
if (_anim.HasRunningAnimation(player, _chasmFallAnimationKey))
_anim.Stop((uid, player), _chasmFallAnimationKey);
}
private Animation GetFallingAnimation(ChasmFallingComponent component)

View File

@@ -16,6 +16,7 @@ public sealed class TypingIndicatorSystem : SharedTypingIndicatorSystem
private readonly TimeSpan _typingTimeout = TimeSpan.FromSeconds(2);
private TimeSpan _lastTextChange;
private bool _isClientTyping;
private bool _isClientChatFocused;
public override void Initialize()
{
@@ -31,7 +32,8 @@ public sealed class TypingIndicatorSystem : SharedTypingIndicatorSystem
return;
// client typed something - show typing indicator
ClientUpdateTyping(true);
_isClientTyping = true;
ClientUpdateTyping();
_lastTextChange = _time.CurTime;
}
@@ -42,7 +44,19 @@ public sealed class TypingIndicatorSystem : SharedTypingIndicatorSystem
return;
// client submitted text - hide typing indicator
ClientUpdateTyping(false);
_isClientTyping = false;
ClientUpdateTyping();
}
public void ClientChangedChatFocus(bool isFocused)
{
// don't update it if player don't want to show typing
if (!_cfg.GetCVar(CCVars.ChatShowTypingIndicator))
return;
// client submitted text - hide typing indicator
_isClientChatFocused = isFocused;
ClientUpdateTyping();
}
public override void Update(float frameTime)
@@ -55,23 +69,25 @@ public sealed class TypingIndicatorSystem : SharedTypingIndicatorSystem
var dif = _time.CurTime - _lastTextChange;
if (dif > _typingTimeout)
{
// client didn't typed anything for a long time - hide indicator
ClientUpdateTyping(false);
// client didn't typed anything for a long time - change indicator
_isClientTyping = false;
ClientUpdateTyping();
}
}
}
private void ClientUpdateTyping(bool isClientTyping)
private void ClientUpdateTyping()
{
if (_isClientTyping == isClientTyping)
return;
// check if player controls any entity.
// check if player controls any pawn
if (_playerManager.LocalEntity == null)
return;
_isClientTyping = isClientTyping;
RaisePredictiveEvent(new TypingChangedEvent(isClientTyping));
var state = TypingIndicatorState.None;
if (_isClientChatFocused)
state = _isClientTyping ? TypingIndicatorState.Typing : TypingIndicatorState.Idle;
// send a networked event to server
RaisePredictiveEvent(new TypingChangedEvent(state));
}
private void OnShowTypingChanged(bool showTyping)
@@ -79,7 +95,8 @@ public sealed class TypingIndicatorSystem : SharedTypingIndicatorSystem
// hide typing indicator immediately if player don't want to show it anymore
if (!showTyping)
{
ClientUpdateTyping(false);
_isClientTyping = false;
ClientUpdateTyping();
}
}
}

View File

@@ -35,7 +35,6 @@ public sealed class TypingIndicatorVisualizerSystem : VisualizerSystem<TypingInd
return;
}
AppearanceSystem.TryGetData<bool>(uid, TypingIndicatorVisuals.IsTyping, out var isTyping, args.Component);
var layerExists = args.Sprite.LayerMapTryGet(TypingIndicatorLayers.Base, out var layer);
if (!layerExists)
layer = args.Sprite.LayerMapReserveBlank(TypingIndicatorLayers.Base);
@@ -44,6 +43,17 @@ public sealed class TypingIndicatorVisualizerSystem : VisualizerSystem<TypingInd
args.Sprite.LayerSetState(layer, proto.TypingState);
args.Sprite.LayerSetShader(layer, proto.Shader);
args.Sprite.LayerSetOffset(layer, proto.Offset);
args.Sprite.LayerSetVisible(layer, isTyping);
AppearanceSystem.TryGetData<TypingIndicatorState>(uid, TypingIndicatorVisuals.State, out var state);
args.Sprite.LayerSetVisible(layer, state != TypingIndicatorState.None);
switch (state)
{
case TypingIndicatorState.Idle:
args.Sprite.LayerSetState(layer, proto.IdleState);
break;
case TypingIndicatorState.Typing:
args.Sprite.LayerSetState(layer, proto.TypingState);
break;
}
}
}

View File

@@ -1,31 +0,0 @@
<ui:RadialMenu xmlns="https://spacestation14.io"
xmlns:ui="clr-namespace:Content.Client.UserInterface.Controls"
BackButtonStyleClass="RadialMenuBackButton"
CloseButtonStyleClass="RadialMenuCloseButton"
VerticalExpand="True"
HorizontalExpand="True"
MinSize="450 450">
<!-- Main -->
<ui:RadialContainer Name="Main" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100" ReserveSpaceForHiddenChildren="False">
<ui:RadialMenuTextureButtonWithSector SetSize="64 64" ToolTip="{Loc 'emote-menu-category-general'}" TargetLayer="General" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Clothing/Head/Soft/mimesoft.rsi/icon.png"/>
</ui:RadialMenuTextureButtonWithSector>
<ui:RadialMenuTextureButtonWithSector SetSize="64 64" ToolTip="{Loc 'emote-menu-category-vocal'}" TargetLayer="Vocal" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Interface/Emotes/vocal.png"/>
</ui:RadialMenuTextureButtonWithSector>
<ui:RadialMenuTextureButtonWithSector SetSize="64 64" ToolTip="{Loc 'emote-menu-category-hands'}" TargetLayer="Hands" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Clothing/Hands/Gloves/latex.rsi/icon.png"/>
</ui:RadialMenuTextureButtonWithSector>
</ui:RadialContainer>
<!-- General -->
<ui:RadialContainer Name="General" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100"/>
<!-- Vocal -->
<ui:RadialContainer Name="Vocal" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100"/>
<!-- Hands -->
<ui:RadialContainer Name="Hands" VerticalExpand="True" HorizontalExpand="True" InitialRadius="100"/>
</ui:RadialMenu>

View File

@@ -1,111 +0,0 @@
using System.Numerics;
using Content.Client.UserInterface.Controls;
using Content.Shared.Chat.Prototypes;
using Content.Shared.Speech;
using Content.Shared.Whitelist;
using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Client.Chat.UI;
[GenerateTypedNameReferences]
public sealed partial class EmotesMenu : RadialMenu
{
[Dependency] private readonly EntityManager _entManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly ISharedPlayerManager _playerManager = default!;
public event Action<ProtoId<EmotePrototype>>? OnPlayEmote;
public EmotesMenu()
{
IoCManager.InjectDependencies(this);
RobustXamlLoader.Load(this);
var spriteSystem = _entManager.System<SpriteSystem>();
var whitelistSystem = _entManager.System<EntityWhitelistSystem>();
var main = FindControl<RadialContainer>("Main");
var emotes = _prototypeManager.EnumeratePrototypes<EmotePrototype>();
foreach (var emote in emotes)
{
var player = _playerManager.LocalSession?.AttachedEntity;
if (emote.Category == EmoteCategory.Invalid ||
emote.ChatTriggers.Count == 0 ||
!(player.HasValue && whitelistSystem.IsWhitelistPassOrNull(emote.Whitelist, player.Value)) ||
whitelistSystem.IsBlacklistPass(emote.Blacklist, player.Value))
continue;
if (!emote.Available &&
_entManager.TryGetComponent<SpeechComponent>(player.Value, out var speech) &&
!speech.AllowedEmotes.Contains(emote.ID))
continue;
var parent = FindControl<RadialContainer>(emote.Category.ToString());
var button = new EmoteMenuButton
{
SetSize = new Vector2(64f, 64f),
ToolTip = Loc.GetString(emote.Name),
ProtoId = emote.ID,
};
var tex = new TextureRect
{
VerticalAlignment = VAlignment.Center,
HorizontalAlignment = HAlignment.Center,
Texture = spriteSystem.Frame0(emote.Icon),
TextureScale = new Vector2(2f, 2f),
};
button.AddChild(tex);
parent.AddChild(button);
foreach (var child in main.Children)
{
if (child is not RadialMenuTextureButton castChild)
continue;
if (castChild.TargetLayer == emote.Category.ToString())
{
castChild.Visible = true;
break;
}
}
}
// Set up menu actions
foreach (var child in Children)
{
if (child is not RadialContainer container)
continue;
AddEmoteClickAction(container);
}
}
private void AddEmoteClickAction(RadialContainer container)
{
foreach (var child in container.Children)
{
if (child is not EmoteMenuButton castChild)
continue;
castChild.OnButtonUp += _ =>
{
OnPlayEmote?.Invoke(castChild.ProtoId);
Close();
};
}
}
}
public sealed class EmoteMenuButton : RadialMenuTextureButtonWithSector
{
public ProtoId<EmotePrototype> ProtoId { get; set; }
}

View File

@@ -125,7 +125,7 @@ namespace Content.Client.Chat.UI
_verticalOffsetAchieved = MathHelper.Lerp(_verticalOffsetAchieved, VerticalOffset, 10 * args.DeltaSeconds);
}
if (!_entityManager.TryGetComponent<TransformComponent>(_senderEntity, out var xform) || xform.MapID != _eyeManager.CurrentMap)
if (!_entityManager.TryGetComponent<TransformComponent>(_senderEntity, out var xform) || xform.MapID != _eyeManager.CurrentEye.Position.MapId)
{
Modulate = Color.White.WithAlpha(0);
return;

View File

@@ -6,7 +6,6 @@ using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.Utility;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility;
using System.Linq;
@@ -14,6 +13,7 @@ using System.Numerics;
using Content.Shared.FixedPoint;
using Robust.Client.Graphics;
using static Robust.Client.UserInterface.Controls.BoxContainer;
using Robust.Client.GameObjects;
namespace Content.Client.Chemistry.UI
{
@@ -24,6 +24,10 @@ namespace Content.Client.Chemistry.UI
public sealed partial class ChemMasterWindow : FancyWindow
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
private readonly SpriteSystem _sprite;
public event Action<BaseButton.ButtonEventArgs, ReagentButton>? OnReagentButtonPressed;
public readonly Button[] PillTypeButtons;
@@ -38,6 +42,8 @@ namespace Content.Client.Chemistry.UI
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_sprite = _entityManager.System<SpriteSystem>();
// Pill type selection buttons, in total there are 20 pills.
// Pill rsi file should have states named as pill1, pill2, and so on.
var resourcePath = new ResPath(PillsRsiPath);
@@ -69,7 +75,7 @@ namespace Content.Client.Chemistry.UI
var specifier = new SpriteSpecifier.Rsi(resourcePath, "pill" + (i + 1));
TextureRect pillTypeTexture = new TextureRect
{
Texture = specifier.Frame0(),
Texture = _sprite.Frame0(specifier),
TextureScale = new Vector2(1.75f, 1.75f),
Stretch = TextureRect.StretchMode.KeepCentered,
};
@@ -110,7 +116,10 @@ namespace Content.Client.Chemistry.UI
("1", ChemMasterReagentAmount.U1, StyleBase.ButtonOpenBoth),
("5", ChemMasterReagentAmount.U5, StyleBase.ButtonOpenBoth),
("10", ChemMasterReagentAmount.U10, StyleBase.ButtonOpenBoth),
("15", ChemMasterReagentAmount.U15, StyleBase.ButtonOpenBoth),
("20", ChemMasterReagentAmount.U20, StyleBase.ButtonOpenBoth),
("25", ChemMasterReagentAmount.U25, StyleBase.ButtonOpenBoth),
("30", ChemMasterReagentAmount.U30, StyleBase.ButtonOpenBoth),
("50", ChemMasterReagentAmount.U50, StyleBase.ButtonOpenBoth),
("100", ChemMasterReagentAmount.U100, StyleBase.ButtonOpenBoth),
(Loc.GetString("chem-master-window-buffer-all-amount"), ChemMasterReagentAmount.All, StyleBase.ButtonOpenLeft),

View File

@@ -44,7 +44,7 @@ public sealed class HyposprayStatusControl : Control
PrevMaxVolume = solution.MaxVolume;
PrevOnlyAffectsMobs = _parent.Comp.OnlyAffectsMobs;
var modeStringLocalized = Loc.GetString(_parent.Comp.OnlyAffectsMobs switch
var modeStringLocalized = Loc.GetString((_parent.Comp.OnlyAffectsMobs && _parent.Comp.CanContainerDraw) switch
{
false => "hypospray-all-mode-text",
true => "hypospray-mobs-only-mode-text",

View File

@@ -1,4 +1,5 @@
using Content.Client.Guidebook.Components;
using Content.Client.UserInterface.Controls;
using Content.Shared.Chemistry;
using Content.Shared.Containers.ItemSlots;
using JetBrains.Annotations;
@@ -31,8 +32,7 @@ namespace Content.Client.Chemistry.UI
// Setup window layout/elements
_window = this.CreateWindow<ReagentDispenserWindow>();
_window.Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName;
_window.HelpGuidebookIds = EntMan.GetComponent<GuideHelpComponent>(Owner).Guides;
_window.SetInfoFromEntity(EntMan, Owner);
// Setup static button actions.
_window.EjectButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(SharedReagentDispenser.OutputSlotName));

View File

@@ -1,4 +1,4 @@
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Components;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
using Robust.Shared.Timing;
@@ -37,7 +37,7 @@ public sealed class FoamVisualizerSystem : VisualizerSystem<FoamVisualsComponent
if (TryComp(uid, out AnimationPlayerComponent? animPlayer)
&& !AnimationSystem.HasRunningAnimation(uid, animPlayer, FoamVisualsComponent.AnimationKey))
{
AnimationSystem.Play(uid, animPlayer, comp.Animation, FoamVisualsComponent.AnimationKey);
AnimationSystem.Play((uid, animPlayer), comp.Animation, FoamVisualsComponent.AnimationKey);
}
}
}

View File

@@ -28,7 +28,6 @@ public sealed class SolutionContainerVisualsSystem : VisualizerSystem<SolutionCo
private void OnMapInit(EntityUid uid, SolutionContainerVisualsComponent component, MapInitEvent args)
{
var meta = MetaData(uid);
component.InitialName = meta.EntityName;
component.InitialDescription = meta.EntityDescription;
}

View File

@@ -1,4 +1,4 @@
using Content.Shared.Vapor;
using Content.Shared.Vapor;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
@@ -41,7 +41,7 @@ public sealed class VaporVisualizerSystem : VisualizerSystem<VaporVisualsCompone
TryComp<AnimationPlayerComponent>(uid, out var animPlayer) &&
!AnimationSystem.HasRunningAnimation(uid, animPlayer, VaporVisualsComponent.AnimationKey))
{
AnimationSystem.Play(uid, animPlayer, comp.VaporFlick, VaporVisualsComponent.AnimationKey);
AnimationSystem.Play((uid, animPlayer), comp.VaporFlick, VaporVisualsComponent.AnimationKey);
}
}

View File

@@ -1,4 +1,5 @@
using System.Numerics;
using Content.Client.Sprite;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
using Robust.Client.Utility;
@@ -17,12 +18,14 @@ public sealed class ClickableSystem : EntitySystem
private EntityQuery<ClickableComponent> _clickableQuery;
private EntityQuery<TransformComponent> _xformQuery;
private EntityQuery<FadingSpriteComponent> _fadingSpriteQuery;
public override void Initialize()
{
base.Initialize();
_clickableQuery = GetEntityQuery<ClickableComponent>();
_xformQuery = GetEntityQuery<TransformComponent>();
_fadingSpriteQuery = GetEntityQuery<FadingSpriteComponent>();
}
/// <summary>
@@ -34,7 +37,7 @@ public sealed class ClickableSystem : EntitySystem
/// The draw depth for the sprite that captured the click.
/// </param>
/// <returns>True if the click worked, false otherwise.</returns>
public bool CheckClick(Entity<ClickableComponent?, SpriteComponent, TransformComponent?> entity, Vector2 worldPos, IEye eye, out int drawDepth, out uint renderOrder, out float bottom)
public bool CheckClick(Entity<ClickableComponent?, SpriteComponent, TransformComponent?, FadingSpriteComponent?> entity, Vector2 worldPos, IEye eye, bool excludeFaded, out int drawDepth, out uint renderOrder, out float bottom)
{
if (!_clickableQuery.Resolve(entity.Owner, ref entity.Comp1, false))
{
@@ -52,6 +55,14 @@ public sealed class ClickableSystem : EntitySystem
return false;
}
if (excludeFaded && _fadingSpriteQuery.Resolve(entity.Owner, ref entity.Comp4, false))
{
drawDepth = default;
renderOrder = default;
bottom = default;
return false;
}
var sprite = entity.Comp2;
var transform = entity.Comp3;

View File

@@ -169,7 +169,7 @@ public sealed class ClientClothingSystem : ClothingSystem
var state = $"equipped-{correctedSlot}";
if (clothing.EquippedPrefix != null)
if (!string.IsNullOrEmpty(clothing.EquippedPrefix))
state = $"{clothing.EquippedPrefix}-equipped-{correctedSlot}";
if (clothing.EquippedState != null)
@@ -341,8 +341,11 @@ public sealed class ClientClothingSystem : ClothingSystem
if (layerData.State is not null && inventory.SpeciesId is not null && layerData.State.EndsWith(inventory.SpeciesId))
continue;
if (_displacement.TryAddDisplacement(displacementData, sprite, index, key, revealedLayers))
if (_displacement.TryAddDisplacement(displacementData, sprite, index, key, out var displacementKey))
{
revealedLayers.Add(displacementKey);
index++;
}
}
}

View File

@@ -36,29 +36,6 @@ internal sealed class ShowSubFloor : LocalizedCommands
}
}
internal sealed class ShowSubFloorForever : LocalizedCommands
{
[Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;
public const string CommandName = "showsubfloorforever";
public override string Command => CommandName;
public override string Help => LocalizationManager.GetString($"cmd-{Command}-help", ("command", Command));
public override void Execute(IConsoleShell shell, string argStr, string[] args)
{
_entitySystemManager.GetEntitySystem<SubFloorHideSystem>().ShowAll = true;
var entMan = IoCManager.Resolve<IEntityManager>();
var components = entMan.EntityQuery<SubFloorHideComponent, SpriteComponent>(true);
foreach (var (_, sprite) in components)
{
sprite.DrawDepth = (int) DrawDepth.Overlays;
}
}
}
internal sealed class NotifyCommand : LocalizedCommands
{
[Dependency] private readonly IEntitySystemManager _entitySystemManager = default!;

View File

@@ -24,7 +24,7 @@ internal sealed class MappingClientSideSetupCommand : LocalizedCommands
{
_entitySystemManager.GetEntitySystem<MarkerSystem>().MarkersVisible = true;
_lightManager.Enabled = false;
shell.ExecuteCommand("showsubfloorforever");
shell.ExecuteCommand("showsubfloor");
_entitySystemManager.GetEntitySystem<ActionsSystem>().LoadActionAssignments("/mapping_actions.yml", false);
}
}

Some files were not shown because too many files have changed in this diff Show More