* repeatable healing items
* comments and break
* simplified and improved
* added messages
* improved messages
* stops when bleeding stops and won't give popup when clicking on an unhealable object
* should actually stop when bleeding stops now
* rerun tests please github
* changes made
* rerun tests please github
* remove braces
* fix
* uplink ringtone code + minor cleanup
* show uplink code in character menu
* no log
* rgbee
* no red
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* brigtimer
* ok
* TextScreen w timer implementation
* second commit
* working brig timer
* signal timers near completion
* soon done
* removed licenses, fixes noRotation on screens, minor edits
* no message
* no message
* removed my last todos
* removed csproj.rej??
* missed a thing with .yml and tests
* fix tests
* Update base_structureairlocks.yml
* timespan type serialize
* activation turned into comp
* sloth review
* Update timer.yml
* small changes
---------
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
Co-authored-by: rolfero <45628623+rolfero@users.noreply.github.com>
* limitedcharges stuff from emag
* changes except broken
* fix
* the
* move recharging to server, emag namespace -> charges
* the
* use resolve
* pro
webedit gaming
* the
* the
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* removing drunk scaling with missing blood, drunk will apply until blood restored
* added new drunk function to go with new bloodloss drunk code
* initial tryremovetime code for drunk system. Still need to code it into bloodloss and test.
* initial tryremovetime code for drunk system. Still need to code it into bloodloss and test.
* Drunk status added by low blood level should be removed when healthy
* Everything is working in the dev enviroment. Cleaning up code.
* Dead bodies bleed, do not recover blood, and do not take further bloodloss damage to missing blood
* Last commit
* solution regeneration system
* experimental welding tool regenerates 1u of fuel every second
* pro
* use a solution
* added -> generated
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* start of space ninja midround antag
* suit has powercell, can be upgraded only (not replaced with equal or worse battery)
* add doorjacking to ninja gloves, power cell, doorjack objective (broken), tweaks
* 💀
* add basic suit power display that uses stamina rsi
* add draining apc/sub/smes - no wires yet
* add research downloading
* ninja starts implanted, move some stuff to yaml
* add Automated field to OnUseTimerTrigger
* implement spider charge and objective
* fix client crash when taking suit off, some refactor
* add survive condition and tweak locale
* add comms console icon for objective
* add calling in a threat - currently revenant and dragon
* combine all glove abilities
* locale
* spark sounds when draining, refactoring
* toggle is actually toggle now
* prevent crash if disabling stealth with outline
* add antag ctrl for ninja, hopefully show greentext
* fix greentext and some other things
* disabling gloves if taken off or suit taken off
* basic energy katana, change ninja loadout
* recallable katana, refactoring
* start of dash - not done yet
* katana dashing ability
* merge upstream + compiling, make AutomatedTimer its own component
* docs and stuff
* partial refactor of glove abilities, still need to move handling
* make dooremaggedevent by ref
* move bunch of stuff to shared - broken
* clean ninja antag verb
* doc
* mark rule config fields as required
* fix client crash
* wip systems refactor
* big refactor of systems
* fuck
* make TryDoElectrocution callable from shared
* finish refactoring?
* no guns
* start with internals on
* clean up glove abilities, add range check
* create soap, in place of ninja throwing stars
* add emp suit ability
* able to eat chefs stolen food in space
* stuff, tell client when un/cloaked but there is bug with gloves
* fix prediction breaking gloves on client
* ninja soap despawns after a minute
* ninja spawns outside the station now, with gps + station coords to navigate
* add cooldown to stun ability
* cant use glove abilities in combat mode
* require empty hand to use glove abilities
* use ghost role spawner
* Update Content.Server/Ninja/Systems/NinjaSuitSystem.cs
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
* some review changes
* show powercell charge on examine
* new is needed
* address some reviews
* ninja starts with jetpack, i hope
* partial feedback
* uhh
* pro
* remove pirate from threats list
* use doafter refactor
* pro i gave skeleton jetpack
* some stuff
* use auto gen state
* mr handy
* use EntityQueryEnumerator
* cleanup
* spider charge target anti-troll
* mmmmmm
---------
Co-authored-by: deltanedas <deltanedas@laptop>
Co-authored-by: deltanedas <user@zenith>
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
* petting fish to make him nice to you
* fix fishe, refactor a bit
* fishe
* pro
* feedback, for now
* refactor
* pro
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* add new labels and buttons for records stantion console
* add fingerprint fields for server
* set buttons and updates for fingerPrints filters
* set fingerprints filters
* final set for finger prints filters
* add new trhaslates for station records computer
* some fix for the PR
* refactor server side station record console system
* add message for filters
* add tranlates
* add new ui with several filters
* updetes prints with server side logic
* resolve conflicts with DNA
* resolve conflicts with DNA
* deleted unused variable and rename some fields
* added description for new state
* added select for filter
* set multiplay filters for the console
* added new translates
* add class filters & fixed issue with reset line edit
* fix dublicate with set the selectId for option button
* fixed review notes
* fixed review notes forget changet fix name
* add event TextEntered for better usability
* fixed review notes 3
* fixed formating in xaml
* fixed array with _filterTypes
* fixed ui and made it in minimalistic style
* fixed generalstationRecordFilter class, move method
* delete margin after line edit
* fix placeholder for lineEdit
* fix placeholder for lineEdit, the review note
* Revert "fixed generalstationRecordFilter class, move method"
This reverts commit 1b35c6ac44e7dafe9a1f0560eb177152b822f20b.
* impliment short swith in method IsSkippedRecord
* fixed review notes, remaked method IsSkipped and fix casing
* fixed the review note about check null record name
* pirate content
* pirate content
* merge
* merge
* update launchers
* trying to fix launcher error
* merge
* merge
* merge
* fix for launchers
* update to held cannon sprite
* attempt to fix issue
* first updates in long time
* changes mostly to sprites
* more sprite fixes
* more sprite changes
* json fixes
* small update
* new pirate crate
* update
* updae json
* fix eva
* update accent
* fix accentcomp
* improved pirate chest
* accent localized
* station to docks
* modified the pirate ship
* changed pda spawns for firstmate nad piratecaptain to passenger pdas
* fixes
* pirate accent
* removed spacing in shotgun.yml
* redo accent
* fix
* removed no spawn from helmet hardsuit
* suffix capitalization
* tweaks
* a
* jusdt fixing up the hi and yes which are both replacement and not replacement and replaced.
* pirate accent fixes
* desc fix
---------
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
Co-authored-by: AJCM <AJCM@tutanota.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Material Reclaimer
* Fix this test
* autostack output, tweak volume, add upgrade examine
* whitelist AND blacklist support
why not
* trying so hard to get this fucking test to work
* EmoGarbage delves into MaterialArbitrageTest, never to return
* VV and restore cloth to glory
* make the system more robust
* even more stuff has composition; add blacklist for important items
* fix test fails
* convert recycling
* forgor :sadge:
* lol
* simply a modiCUM of doc commentary
* Removed arbitrary modifier scaling. The bleed amount is now 1-1 in units.
* Added some comments to explain the blood and bleed code
* added some comments
* added some comments
* profusely bleeding message scales with max bleed rate
* Added some comments
* Added some comments (tm)
* Halved the speed bleed rate heals.
* Changed the wording of a comment to make the function of the values more clear
* Changed bleed rate values, made heat heal more bleed rate
* doubled crit chance, since damage types were reduced
* Made iron restore more blood, 2->4u per 1u
* Starting to add the blood pack
* add bloodlevel to healingcomponent
* Created code support in the healing system for restoring blood
* first test of blood pack prototype
* More pack testing, and defining the yml stack
* yml syntax fix
* adds bloodpack tag
* Successfully added the item, but the effect and deletion after using the item is not working yet.
* the blood regen worksgit add -A!
* blood pack is entirely functioning
* Removed bleed rate healing from brute pack
* Comment correction
* I tried
* Removed bleed stats from corrupted corgi, they inherit same stats from basemob
* Removed bleed stats from xeno, they inherit same stats from a base mob
* Removed bleed stats from diona, they inherit same stats from a base mob
* Removed bleed stats from slimes, they inherit same stats from a base mob
* All mobs now heal bloodloss damage at a rate of 1 instead of 0.25 when healthy
* The cautery now closes bleed wounds
* Nerf blood pack bleed rate heal
* Added 2 blood packs to medicine locker
* Added 2 blood packs to wall medicine locker
* Minor YML fix to chemistry locker, no changes in game
* Added tag to medical belt for blood pack, added 2 blood packs to medical belt
* Added 1 gauze to medical belt
* 5 blood packs addded to nanomed plus
* nanomed inventory change
* 2 blood packs added to medical supplies crate from cargo
* Moved 1 gauze from med kit to advanced med kit
* Moved 1 tricord pill from advanced med kit to basic med kit
* added 2 ointment to burn kit
* Moved ina syringe from burn treatment to oxygen kit
* Removed one gauze from brute kit
* Added one bloodpack to brute med kit
* Moved tranex acid syringe from advanced first aid to brute kit
* Poison medipen moved from advanced first aid kit to toxin kit
* Removed health analyzer from advanced first aid kit
* removed one brute pack from advanced aid kit
* added one ointment to advanced aid kit
* Added one blood pack to advanced aid kit
* Added 2 blood packs to combat med kit
* Starting with adding the license for the tg sprite
* Adds the blood pack sprite and meta.json code
* I forgor to actually code the sprite in
* Advanced med kit missing one blood pack
* Replaced tricord pill with emergency medipen in cobat kit
* Removed emergency pen from combat kit, there's no space for it
* Revert "I tried"
This reverts commit 94c2e28df3200993d3f09b72ecabc838ea5ae5c0.
* Trying to fix yml test fail
* Try again
* attempt number 3
* Restock crate price was too low
* fixing merge conflict without making a HUGE mess this time
* ???
* again
* again
* Can I add the newline now maybe???
* Revert "Can I add the newline now maybe???"
This reverts commit 22d26706a65a24633f7da1dea6315012e2d3ac6f.
* Adds the doafter fix code from Keron to the blood level healing
* minor typo fix
* Feedback from Emisse and sloth; Removed chance based feedback on cauterizing
* comment fix
* save work
* Adds Z levels
* a
* ladders + parallax scroll
* zoom out not in
* oops, sandbox
* oops i broke the law
* run ci
* fuck
---------
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* DNA component
* Commit numba 2
* Added DNA into Station Records Computer
* commit numba 3
* commit numba 4
* Vomit also contain DNA component now
* fixed DNA field not clearing after scanning another item
* commit numba 10
Drinking leaves DNA on an object. Breaking glasses, bottles and beakers leave DNA and leave fingerprints/fibers with 40% chance on glass shards. + lotta fixes
* 11
* 12
* 14
* Added DNA guide entry
* FIX
Removed BaseItem price as it was always a placeholder and easier to just change without it.
Ensure staticprice is never used if stackprice is present.
Added StackComponent to the test so the behavior matches expectation.
Server config now provide appeals forum link, game admins won't need to type it out manually anymore.
Add warning about trying to ban evade.
Cleaned up code a bit.
* if a player's profile has an invalid species, station spawning will always try to fallback to the default humanoid species
* validation always ensures that if a species can't be indexed, the species falls back to the default species
* station records fingerprints
* Add UI + Fixes
* now itll display N/A if a mob doesnt have a fingerprint
* ? - 0
* f8
* N/A is a fluent string now
* remove locale string duplicating
* no whitespace
* Marking coloring WIP
* EnsureDefault now supports coloring!
* Now markings have coloring when they get added
* Many things
* yml files
* cleanup
* Some requested changes
* Nullable type and WIP caching
* Time to resolve that thing with deprecated hair fields
* Latest reviews + im still trying to use these hair markings
* FirstOrDefault thing and Tattoo docs
* IDK
* It's now works a bit more properly in preferences GUI
* THEY SYNCING! However preferences GUI still broken and doesn't work properly
* Markings now updating when changing in GUI. However they still don't work properly with bald humanoids
* Forgor...
* Default hair-colored markings will not color to hair if there is no hair
* Fixed default colors for customizable markings
* Fixed bug in prefs GUI that set current hair to null
* Now markings that must match skin color because of limb (e.x. Slimes) - will match skin color
* final tweaks: if hair uses skin color then markings will use skin color as hair color (slimes)
* fix
* fixed dirty. no more funni invis bug
* Mirrors and client profile loading
* default colors soon TM
* review + better coloring
* Hardcode is gone
* diona markings
* oh my god
* fixed CategoryColoring
* cool fallback, clean up and some other tweaks
* code style
* more style
* a
Also put the flip verb in the rotation category.
No credit to give here, i've made the icon from scratch.
<!-- Please read these guidelines before opening your PR: https://docs.spacestation14.io/en/getting-started/pr-guideline -->
<!-- The text between the arrows are comments - they will not be visible on your PR. -->
## About the PR
<!-- What does it change? What other things could this impact? -->
**Media**
<!--
PRs which make ingame changes (adding clothing, items, new features, etc) are required to have media attached that showcase the changes.
Small fixes/refactors are exempt.
Any media may be used in SS14 progress reports, with clear credit given.
If you're unsure whether your PR will require media, ask a maintainer.
Check the box below to confirm that you have in fact seen this (put an X in the brackets, like [X]):
-->
- [x] I have added screenshots/videos to this PR showcasing its changes ingame

**Changelog**
<!--
Here you can fill out a changelog that will automatically be added to the game when your PR is merged.
Only put changes that are visible and important to the player on the changelog.
Don't consider the entry type suffix (e.g. add) to be "part" of the sentence:
bad: - add: a new tool for engineers
good: - add: added a new tool for engineers
Putting a name after the 🆑 symbol will change the name that shows in the changelog (otherwise it takes your GitHub username)
Like so: 🆑 PJB
-->
🆑
- add: The flip verb now has a icon and can be found under the rotation category.
* Add AutoEmote comp/system
* Reduce groan chance so it's the same as before
Old code did 0.2 and then 0.5, now it's just one Prob(0.1)
* Fix typo, curTime var, don't log Resolve
* Maybe fix pausing?
* Fix mistake
* Update NextEmoteTime if an auto emote is removed
* Fix stuff
Get CurTime outside update loop
Use MapInit instead of ComponentInit
Fix a typo in a comment
Debug assert prototype ID in RemoveEmote
Do += PausedTime in OnUnpaused
Add prototype as arg to ResetTimer to avoid an indexing
* MOTD
* Message of the Day
* Pretty sure the tests aren't me. Let's check.
* Update Content.Shared/CCVar/CCVars.cs
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
* command dependencies and moving MOTD to its own system
* Some doc comments
* Let's try those tests again
* More doc comments, most of the github reviews, and aliases for get-motd and set-motd
* Clear test MOTD
* Localized motd commands and completion hints
* Makes set-motd only show up in the alias command if the player has access to it.
---------
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
* add include non-players button to log viewer
* breakout player filter check
* fix sending player logs with no players selected
* fix default not returning player logs, causing test issue
* added cooldown to hypospray
* moved one of the 'using's over a space
* changed all cooldowns to 0.5 seconds
* resolved suggestions
* minor comment change
* The all-in-one hacking solution
The thinking man's lockpick
The iconic EMAG
* emagged medbay's stasis bed
* left med, emagged sec' apc
* went back to chem, emagged the dispenser
* emagged the fax while i was there
* had a donut while waiting for emag to charge
* i broke into the bridge then announced 'mandatory johnson inspection in medical'
* get system instead of dependency
* feedback
* net suggestion
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* use EnsureComp and import NetworkedComponent
---------
Co-authored-by: deltanedas <user@zenith>
Co-authored-by: deltanedas <deltanedas@laptop>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Improves bartending with some tweaks.
- Glasses got resprited and now support fill levels.
-
* New glass type and improve shotglass visuals.
* oobsy
* fixes
* get flasked
* flask
* flask
---------
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
- Fix the direct-path so NPCs. This is most noticeable when moving diagonally on planetmaps (given the current pathfinder is cardinal)
- Reduce static collision avoidance weight and distance. This seems to reduce instances of getting stuck on railings.
* Ore veins
I dislike rocks just providing generic drops and this factors into mining more.
* fixes
* descriptions
* comment
* every flipping time
* Make mining destroy rocks with 1 hit
Having to click 3 times was pretty annoying.
* a
* Fire MeleeHitEvent when there are no targets.
* Prevent certain weapons from activating if they had no hit entities on hit.
* Prevent miss events from firing when target is yourself or was deleted.
* Use .Value as Target is already known not to be null.
* uid changes
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* belt multithreading
* moves away from multithreading and changes setting awake directly to physics system method
* prediction for conveyors
* Fixes missing reference in FaxSystem
* Fixes oddities
* Adds networked to conveyor components
* Some more cleanup.
* reverts power change event
* Removes the event, fixes a file
* Should fix the rest of the weird additions
* More cleanup to fix extra files
* Fixes again
* fix
* fixes fax system
* Adds component state, cleans up the dependencies
* Checks for prediction
* Merge conflicts
* powa
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Planetmap tiles
Biomes etc etc
* a
* oop
* Chunk-based rendering
* funny
* Less allocations
* Fix overdraw
* Content tile edge support
Also updated grass to use it as a POC.
* Kindly revert
* Update for variant edges
* fixes
* Use fastnoise
* Remove redundant group
* a
* refactor a fair bit
* Prototype data instead
* tweaks
* a
* fix maths
* working
* a
* Slightly better empty support
* a
* flowers
* sounds
* lewd
* Networking
* more fixes
* better
* colours
* Some chunk loading
* Proper loading and unloading
* Better loading
* Fix parallax and movement sounds
* Anchoring support + decal setup
* Most of the way to load and unload
* Decal loading kinda werkin
* large trees
* started diffing
* a
* Variant support and deserts
* a
* snow
* agony, even
* working again
* todo
* a
* laba tiles
* aeiou
* a
# Conflicts:
# Resources/Prototypes/Entities/Tiles/planet.yml
# Resources/Prototypes/Tiles/planet.yml
# Resources/Textures/Tiles/Planet/Lava/lava.rsi/meta.json
* laba
* Add lava
* Initial ignition
* triggers
* a
* a
* y
* Add basalt tiles
Did some unconventional things for the animation + rocks.
* fixies
* mergies
* promotion
* lava biome
* Lava planet start
* cleanup and more lava
* laba
* maccas
* biome stuf
* weh
* bongflicts
* aeaeae
* More fixes
* a
* these too
* add solar flare event (only affects headsets)
* add popup
* cleaner impl using RadioReceiveAttemptEvent
* unused import
* handheld radio and intercom work again
* Revert "handheld radio and intercom work again"
This reverts commit 0032e3c0725a19a465daf1ff1d6b4942a5c14fbb.
* add radio source to Radio events
* intercoms and handheld radios work now
* use Elapsed instead of new field
* add configuration
* better not touch Elapsed
* the
* make popup bigger
* xml comments for configuration
* very minor refactoring
* default config is now in yaml
* lights can break
* use RobustRandom
* use file namespace
* use RuleStarted
* store config in field
* a
---------
Co-authored-by: AJCM <AJCM@tutanota.com>
* add types to explosion logs
* make explosions logged by default
* add cause parameter to IThresholdBehavior
* add cause to ExplodeBehaviors
* add cause to power cell explosions
* remove useless log
* add triggerer to triggers
* add logs for damage from explosions
* sneaky power cell update
* Fix some bugs in stations and do a little cleanup.
* Begin backporting the guidebook.
* wow that's a lot of work.
* More work, gives the monkey some more interactions.
* disco monkye.
* monky
* jobs entry.
* more writing.
* disco
* im being harassed
* fix spacing.
* i hate writing.
* Update Resources/Prototypes/Entities/Mobs/NPCs/animals.yml
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* builds again
* a
* pilfer changes from AL
* fix and remove unused code
* pilfer actual guide changes from AL
* localization
* more error logs & safety checks
* replace controls button with command
* add test
* todos
* pidgin parsing
* remove old parser
* Move files and change tree sorting
* add localization and public methods.
* Add help component/verb
* rename ITag to IDocumentTag
* Fix yml and tweak tooltips
* autoclose tooltip
* Split container
* Fancier-tree
* Hover color
* txt to xml
* oops
* Curse you hidden merge conflicts
* Rename parsing manager
* Stricter arg parsing
tag args must now be of the form key="value"
* Change default args
* Moar tests
* nullable enable
* Even fancier tree
* extremely fancy trees
* better indent icons
* stricter xml and subheadings
* tweak embed margin
* Fix parsing bugs
* quick fixes.
* spain.
* ogh
* hn bmvdsyc
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* basic system with portals & linked ents
* hand tele sprites, no impl
* hand tele and teleportation works
* fancy it up
* oog
* special case projectiles
* predict portal-to-portal teleportation
* this stuff
* check nullspace
* sloth
* give to rd instead
* i guess this can probably happen
* docs
- Bump the collision avoidance range, seemed okay compared to last time I tried. Means they shouldn't get caught by thindows
- Removed the steer frequency because I'm pretty sure that lead to dancing in some instances.
* clean up a bunch of R&D code
* don't store components
* brug
* speedrun some sloth review
* technology disks
* expand functionality, begin work on printer
* disk printer ui
* file
* fix the rebase
* disk console is finito
* Update DiskConsoleSystem.cs
* Christmas trees now grant gifts.
* docs
* add holiday requirements, fix sound.
* doc
* remove redundant stuff
* rename GiftPackin to RandomGift.
* a word
* Update Content.Server/Holiday/Christmas/LimitedItemGiverSystem.cs
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* add osay command
* replace obsolete method
* inherit LocalizedCommands instead of IConsoleCommand
* streamline
* make OSay class public to match other commands
* re-scope namespace to file
* everything for mixing aside from yaml changes
* add recipe and canmix to bottles and the holy mixer tag to the bible
* fixes as a result of testing
* remove unused usings
* remove emptylines that are not required
Co-authored-by: 0x6273 <0x40@keemail.me>
* more empty line removal!
Co-authored-by: 0x6273 <0x40@keemail.me>
* add single space between if statement and condition
Co-authored-by: 0x6273 <0x40@keemail.me>
* fixes indentation on TryGetMixableSolution
* raise new AfterMixingEvent after attempting to mix a solution
* before mixing event and attempt get mixable solution event
* update reaction tests to be a beaker that can be mixed, and then pass a mixer component in to simulate mixing
* make two more beaker types mixable, add attribute for mixing feedback
* bible mix message
* mixing feedback on success
* updates test to use SpawnEntity over new as per feedback
Co-authored-by: 0x6273 <0x40@keemail.me>
* add ability to prevent ghosting to MindComponent.cs
* make minds preserve properties in certain transfer scenarios
* Revert "make minds preserve properties in certain transfer scenarios"
This reverts commit 333cae0db0faf4ef81767b93332271d944c90a0e.
* move PreventGhosting to the actual mind
* show modifications in access change logs
* skip logging and updates to name and job when no change was made
* add method to SharedAccessSystem.cs to get access tags
* add ID microwave logs
* split admin chat into new channel
* add ability to play audio when a chat message is received and add audio to admin chat
* give client control of AdminChat sound and volume + suppress sound for senders
* new version
* testy2
* working version
* new GroupExamineSystem
* restructure
* restructure again
* update icon
* adding group examine to prototypes
* change examine group title to a localized string
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
* InitialCommit (Broken)
* Fixes compile errors
* PR comments. More doc comments. Fixes
* Makes a singularity/event horizon without radiation/physics a valid state to be in
* VV 'fake' setters, fixes the visualizer, fixes the singularity trying to eat itself instead of nearby things.
* Removes unused dependency from Content.Client.GravityWellSystem
* Testing containment and fake VV setters for SingularityGeneratorComponent
* Fixes gravity wells (broken due to LookupFlags.None). Adds recursive Event Horizon consumption
* Fix merge skew
* Fixes for the master merge
* Fix engine commit
* Dirty is obsolete
* Switch over dirty
* Fix requested changes
* ambiant -> ambient
* Moves EventHorionComponent to Shared
* Proper container handling
* Fixes master merge. Fixes post insertion assertions for singularities. Extends proper container handling to gravity wells and the distortion shader.
* Better support for admemes throwing singularities.
* Moves update timing from accumulators to target times
* Update doc comments
* Don't stop me now, cuz I'm havin' such a good time (I'm havin' a ball!)
* YEET
* No changes to intended behaviour at this point. Pretty much just a refactor + bugfixes.
* tweaks to RandomizeState, removing an error caused by setting the state after setting the RSI
* Comments cleanup and removed IsSlippery. To re-add soon for this PR.
* test
* We don't actually use this PuddleGeneric anywhere
* cheeky
* Uncheeky, and tweaks based on #8203
* Recheeky
* A small price to pay for `checks passed`
* Beauty, like ice, our footing does betray; Who can tread sure on the smooth, slippery way
* Undo Slippery Checks
* Begin smoothing. Need to fix the animation-not-playing bug again
* Cleanup
* animation bugfix
* IgnoredComponents tests fix
* Spawns a new disk if one was deleted
* Adds tiledef to space checks, also adds a way to randomly check for a respawn point on station
* Removes unused method
* Cuts down on tile checks needed by checking surrounding tiles first
* Fixes up an issue where the coords wouldn't spawn
* Removes disk system, adds special respawning system and comp
* Fixes spelling error
* Fixes linter issue
* Maybe fixes the linter with a ref event?
* Empty commit to rerun tests
* Maybe fix?
* check for deleted grid
* Moves shutdown code to terminating code
* Customtypeseralizer
* changes name of datafield
* Removes owning station references
* Trying the queue event again
* Fix dead mobs sneezing and coughing
* SneezeCough update
* Streamlined Event code, moved dead-check
* cleanup
* I can has merge?
* Shared event for SharedMobStateSystem
* mechs
* interaction relay
* atmos handling
* fuck around with interaction events
SPAGHETTI CODE OH MY GOD
* more sprites and whatever the hell
* more mech shit
* more shit for equipment
* starting equipment (for nukie mechs and such)
* equipment cycling
* starting with some of the ui
* a fat chunk of ui prototyping
* done tinkering with ui
* a bunch of ui stuff and what have yous
* cleaning up grabber and state handling
* make the ui actually functional + watch me port a million icons
I swear i'll prune the sprites later blease
* start on construction
* construction yo mamma
* remove some unused files
* fix a silly
* make the graph sane
* make it actually constructible.
* print the boards as well, bozo
* rebalance part prices
* eject action
also i appease the russians by remembering to localize
* Punch Shit
* make mech integrity and repairs work
* Make the UI more based
STOMP STOMP STOMP STOMP
* make equipment even more based
* batteries and other such delights
* make the ui look pimpin af
* make the construction mega based
* UI but so epic
* equipment
* some sweat tweaks
* damage rebalancing
* restructure tech
* fix some shit
* mechs inherit access
* make icons actually use sprite specifiers
* TRAILING COMMAA!!!!!
* fix a mild indentation sin
* undo this change because it isn't needed
* actually fix this
* secret webeditting shhhh
* place this tech here
* comments
* foo
* Implement NetProbeCartridge
* Add audio and a popup when scanning a device
Add some doc comments
* Set program icon
* Add NetProbe cartridge as rare loot to maintenance loot tool spawner
* Make the maximum amount of saved entries configurable
Add a scrollbar that shows when there are more entries than fit on the screen
* Make device net id names translatable
* Add automatic emergency shuttle call
This adds a cvar shuttle.auto_call_time which is an integer N, that
calls the emergency shuttle automatically without intervention after N
minutes. This can be disabled by setting N to 0.
After a vote to extend, the shuttle will be called automatically every
shuttle.auto_call_extension_time minutes.
* Update Resources/Locale/en-US/round-end/round-end-system.ftl
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
Co-authored-by: Moony <moony@hellomouse.net>
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
* Add missing Dispose method to ForensicScannerBoundUserInterface.
* Remove old code from ForensicScanner.
* Prevent forensic scanner from being used on the floor and allow its window to stay open when active hand is swapped.
* Use more standardized UI code for ForensicScanner.
* Add a delay to ForensicScanner printing.
* Show name of what was scanned on ForensicScanner UI.
* Add a print sound for ForensicScanner.
* Add more error reporting for ForensicScanner.
* Centralize common logic in ForensicScannerSystem.
* Allow ForensicScanner blank printouts.
* Tweak ForensicScanner audio parameters.
Entities with MaterialStorageComponent should not accept materials if
they are supposed to be powered, and are not actually powered.
This fixes being able to insert ores into unpowered or unanchored ore
processors, among other issues.
* add lobby ready count to game ticker info
* Update Resources/Locale/en-US/game-ticking/game-ticker.ftl
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* simplify get info loc
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Work on cartridges
* Work on PDA UI
* Work on PDA UIs program list
* Work on PDA UI borders
* Add DeviceNetworkingComponent to the pda base prototype
* Fix submodule version
* Fix cartridge loader ui key
* Fix pda menu xaml
* Implement relaying ui messages
* Finish implementing the notekeeper cartridge
* Fix submodule version
* Fix errors from merging master
* Fix test failing
* Implement setting preinstalled programs
* Add some documentation to CartridgeLoaderSystem
* Add more doc comments
* Add localization to program names
* Implement review suggestions
* Fix background programs receiving events twice when active
* Xenoarch feedback
print out reports, weight node traversal, dialog for destroy menu, slight effect tweaks
* make the popup not bad
* the popup, jimbo...
* multi-node xeno artifacts
* refactor existing artifact effects
* more tweaks to generation
* more shit plus fix tests
* more generation stuff plus threat levels
* doink
* now make it build
* defer the artifact activation to not cause errors
also pricing
* some changes
* all of the yaml + ui stuff for artifact analyzer
* machine linking and starting to make the ui functional
* artifact analyzer display
* a shit ton of artifact analyzer stuff
* more changes; making destroy work properly; progress bar tweaks
* getting shit going!
ALL RIGHT
* small tweaks that didn't help much
* Komm susser todd: the end of analysis
* recipes and hints and ui, oh my!
* add some in-game sources
gotta prepare for day 1 launch
* node data + ditch random seed in place of id
* bunch of triggers
* finish off the last few triggers
* implement machine examine verb
* knock, flicker, blink, throw
* shatter, foam, shuffle, heat
* fix all the shit i broke
* *some* of these have to be good, no?
25 effects
* callin' it there for effects
* comments + reword some trigger hints
* don't mind this little commit here
* byref event
* fix brokey node entry
* fix low pressure trigger
* mirror review plus fixing 0x40's bug
also the throw artifact threw incorrectly
* randomize the event message a teeny bit
* Refactor ReagentGrinder
- It can now process partial stacks. (Before it would do nothing if the entire stack's solution didn't fit in the output container)
- Get rid of `SharedReagentGrinderComponent`, move shared stuff to `SharedReagentGrinder.cs`.
- Subscribe to events instead of massive switch/case.
- Get rid of update queue thing.
- Change `DoWork` so it's less duplicate code for grinding/juicing.
- Get rid of `ExtractableScalingEvent` and just scale directly based on item stack count.
- Add message for when you try to put something into the reagent grinder that doesn't fit.
- Fix obsolescence warnings.
* Use a timer on component instead of SpawnTimer
* s/StorageCap/StorageMaxEntities
* Don't predict body init
Client doesn't handle predicted entity spawning so the organs hang around.
* Just use init
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
* refactor: Removes FlashLightVisualizer (based on obsolete code) in favor or merging its functionality with HandheldLightComponent
fix: Low power lighting radius animations for lanterns, floodlights and flashlights now properly restore the original light radius when going back to full power
* refactor: Use the LightBehaviour component to animate HandheldLights
refactor: Remove unneeded HandheldLight definitions in some yaml files (already inherited by parents)
fix: Properly change the server side PointLightComponent Enabled property when turning HandheldLights on/off
feat: ReverseWhenFinished property on Fade light behaviours
* Empty commit to rerun CI with the new engine PR
* fix: Restore the correct HandheldLight addPrefix property, whoops
* refactor: blinkingBehaviourID -> blinkingBehaviourId, radiatingBehaviourID -> radiatingBehaviourId
* git mv
* Disable shader while box is open
* Hide entity menu / prevent examine
* fix recursion fix recursion fix recursion fix recursion
* Better visibility checks
* min and max visibility fields
* fix reference point
* adds an API to add station records from StationRecordsSystem
* removes a lingering comment
* adds a comment to AddRecord
* Update Content.Server/StationRecords/Systems/StationRecordsSystem.cs
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
* deregister sensors upon device list update and re-register after clearing devices
* fire alarms, too
* adds the last set of known devices to the device list update event
* update UI upon clearing everything out
* addresses reviews
* start work
* blindness actually works now
* doc
* doc you too.
* i desire to sneeze my lungs out
* no punchie
* s
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* humanoid sexmorph sprite restoration
can't believe i broke sex/gender AGAIN
* fixes default species appearances with no profile, tweaks randomization to no longer randomize species
* A
* fixes an oops
#11494
* user feedback for when you miss throwing something in disposals
* Update missed message
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
* Update Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* missing nullable check
Co-authored-by: theashtronaut <112137107+theashtronaut@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* restores species/age on examine
* makes the default human skin tone a little less green
* ensures human skin tone verification is rounded to the nearest integer value, adds tests for ensuring all human skin tones are valid and that the default skin tone is valid
* initial commit
- species prototype modifications
- markings points as its own file
- shared humanoid component
* adds a tool to convert sprite accessories to markings (in go)
* removes a fmt call
* converts sprite accessory to markings
* adds hair and facial hair to marking categories
* multiple changes
- humanoid visualizer system
- markings modifications for visualizer
- modifications to shared humanoid component
- lays out a base for humanoid system
* hidden layers, ports some properties from appearance component, shrinks DefaultMarkings a little
* squishes the initialize event calls into one function
adds stuff to set species/skin color externally from a server message - currently laid out as if it a dirty call to a networked component, may be subject to change (server-side has not been implemented yet)
* makes the sprite pipeline more obvious
* apply all markings, hidden layer set replacement
* ensures that markings are cleared when the new set is applied
* starts refactoring markingsset (unfinished)
* more additions to the markingset api
* adds constructor logic to markingset
* adds a method to filter out markings in a set based on a given species
* fixes enumerators in markingset
* adds validator into MarkingSet, fixes ForwardMarkingEnumerator
* modifications to the humanoid visual system
* ensuredefault in markingset
* oop
* fixes up data keys, populates OnAppearanceChange in visualizer
* changes to humanoid component, markings
marking equality is now more strict, humanoidcomponent is now implemented for client as a child of sharedhumanoidcomponent
* markings are now applied the visualizer by diffing them
* base sprites are now applied to humanoids from humanoidvisualizer
* passes along base sprite settings to the marking application so that markings know to follow skin color/alpha or not (see: slimes)
* custom base layers on humanoids
* merges all data keys into one data class for humanoid visualizers
* setappearance in sharedhumanoidsystem, removes custombaselayercolors
* humanoidcomponent, system (empty) in server
* adds some basic public API functions to HumanoidSystem
* add marking, remove marking
* changes appearance MarkingsSet to a List<Marking>, adds listener for PlayerSpawnCompleteEvent in HumanoidSystem
* ensuredefaultmarkings, oninit for humanoids
* markingmanager API changes
* removes MarkingsSet
* LoadProfile, adjusts randomization in humanoid appearance to account for species
* base layer settings in humanoidsystem, eye color from profile
* rearranges files to centralize under Humanoid namespace
* more reorganization, deletes some stuff
gotta break stuff to make other things work, right?
goodbye SpriteAccessory...
* fixes a good chunk of server-side issues
still does not compile, yet
* singlemarkingpicker xaml layout
* singlemarkingpicker logic
* magic mirror window (varying pieces of it, mostly client-oriented)
* removes some imports, gives MagicMirror a BUI class (not filled in yet)
* populates magic mirror BUI functionality / window callbacks
* fixes up some errors in humanoidprofileeditor
* changes to SingleMarkingPicker
SingleMarkingPicker now accepts a List<Marking>, species, and total possible markings available in that marking category
* fixes up hair pickers on humanoid profile editor
* fixes the errors in markingpicker
* markingsystem is now gone
* fixes a bunch of build errors
* so that's why i did it like that
* namespace issues, adds robustxamlloader to singlemarkingpicker
* another robustxamlloader
* human, lizard sprites/points
* prototype fixes, deletion of old spriteaccessory
* component registration, fixes dwarf skin toning
no, 'ReptilianToned' does not exist
* removes component registration from abstract humanoid component
* visualizer data now cloneable
* serialize for visualizer key
* zero-count edge case
* missing semi-colon moment
* setspecies in humanoidsystem
* ensures that default markings, if empty, will cause ensuredefault to skip over that given category
* tryadd instead of add
* whoops
* diff and apply should properly apply markings now
* always ensure default, fixes double load for player spawning
* apply skin color now sets the skin color property in humanoidcomponent
* removes sprite from a few species prototypes
* sprite changes for specific base layers based on humanoid sex
* layer ordering fix, and a missing base layer should now disallow markings on that layer
* anymarking base layer, adds the right leg/foot for humans
* loading a profile will now clear all markings on that humanoid
* adds missing layers for humans
* separates species.yml into respective species prototype files
* ensures that if layer visibility was changed, all markings have to be reapplied
* server-side enforcement of hiding hair (and other head-related markings) when equipping things that hide hair
* slime fix, clothingsystem now dictates layer visibility server side
* sussy
* layer settings should now ensure a marking should match the skin tone
* whoops
* skincolor static class and functions in UI
* skin color validation in humanoidcharacterappearance
* markingpicker now shows only the markings for the selected category in used
* getter for slot in singlemarkingpicker now ensures slot is 0 if markings exists
* FilterSpecies no longer attempts to do removal while iterating
* expands for SingleMarkingPicker
* humanoid base dummy has blank layers now (and snout/tail/headside/headtop)
* fixes an issue with visualizer system if the marking count was different but the markings themselves were (somewhat) the same
* whoops
* adds edge case handlers for count differences in humanoid markings
* preview now loads profile instead of directly setting appearance
* moves marking set loading to update controls
* clones a marking set in markingpicker by using the deep clone constructor
* whoops (deep cloning a marking now copies the marking id)
* adds replace function for markingset
* points should now update after the markings are remove/added
* merging base layer sprites into a humanoid should now clear them before merging
* sets dirty range start to count only if the dirty range start was never set above 0
* fixes up some issues with singlemarkingpicker
* color selector sliders in single marking picker should now expand
* hair from hair pickers should now apply in profile loading (client-side)
* category in singlemarkingpicker now sets the private category variable
* slot selector should now populate
* single marking picker buttons now have text, also shows the category name over all user-clickable elements
* removes a comment
* removing hair slots now sets it to bald, defaults to zero used slots if current hair is bald on hair/facial hair
* random skin color, eye color
* populate colors now checks if the marking count is greater than zero in singlemarkingpicker
* hair/facial hair pickers now just get the first possible hair from the respective species list
* different approach to random skin color
* oh, that's why it wasn't working
* randomize everything now just updates every single control
* selecting a new marking in SingleMarkingPicker should attempt to copy over old colors, populate list now uses cache,
* markingmanager now uses OnlyWhitelisted to populate by category and species
* filterspecies now uses onlyWhitelist to filter markings based on whitelist or not
* oops
* ui fix for singlemarkingpicker, ensures that cache is not null if it is null when populatelist is called
* order of operations for the horizontal expand for add/remove
* hair pickers should now update when you add/remove the hair slot
* fixes variable naming error in character appearance
* loc string fix in singlemarkingpicker
* lizards, vox now have onlyWhitelist, vox restriction for hair/facialhairs
* having zero possible hairs should no longer cause an exception in randomization
* setting species should now update hair pickers
* ignore categories for marking picker
* and a clear as well for the category button
* places that functionality in its own function instead
* adds eye base sprite, vox now also have their own custom eye sprites
* loading a profile client-side should do FilterSpecies for markings now
* client-side load profile does filter species after adding in the hairs now
* magic mirror
* callbacks now call the callback instead of adding it on construct
* whoops
* in removemarking too
* adds missing synchronize calls
* comments out an updateinterface call in magic mirror
* magic mirror window title, minimum sizing
* fixes minsize, adds warning for players who try to set their hair for species that have no hair
* removes spaces in xaml
* namespace changes/organization
* whoopsie (merge conflicts)
* re-enables identity from humanoid component
* damagevisuals now uses the enum given to it instead of the layerstate given on that layer tied to the enum
* removes commas from json
* changes to visuals system so the change is consistent
* chest
* reptilian
* visualizer system now handles body sprite setting/coloration, similar to how characterappearance did it
not a big fan of this
* adds a check in applybasesprites
* adding/removing parts should now make them invisible on a humanoid
* body part removal/adding now enumerates over sublayers instead
* synchro now runs in bodycomponent startup
* parts instead of slots
* humanoidcompnent check
* switches from rsi to actualrsi
* removes all the body stuff (too slow)
* cleans up resolves from humanoid visualizer system
* merging sprites now checks if the base sprites have been modified or not (through things like species changes, or custom base sprite changes)
* not forgetting that one again
* merging now returns an actual dirty value
* replaces the sequenceequal with a more accurate solution
* permanent layers, layer visibility on add/remove part in body
* should send all hidden layers over now
* isdirty in visualizer system for base layers
* isdirty checks count as well
* ok, IsDirty should now set the base layers if the merged sprites are different
* equals override in HumanoidSpritePrototypes.cs
temporary until record prototypes :heck:
* makes fields readonly, equates IDs instead
* adds forced markings through marking picker
* forced in humanoidsystem api, ignorespecies in markingpicker
* marking bui
* makes that serializable as well
* ignore species/forced toggles now work
* adds icon to modifier verb, interface and keys to humanoid bases
* needs the actual enum value to open, no?
* makes the key the actual key
* actions now propagate upwards
* ignore species when set now repopulates markingpicker
* modifiable base layers in the markings window
* oops!
* layout changes
* info box should now appear
* adds ignorespecies for marking picker, collapsible for base layer section of appearance modification window
* collapsible layout moment
* if base layers have changed, all markings are now dirty (and if a base layer is missing, the marking is still 'applied' but it's now just invisible
* small change to marking visibility
* small changes to modifier UI
* markings now match skin on zombification
* zombie stuff
* makes the line edit in marking modifier window more obvious
* disables vox on round start
* horizontal expand on the single label in base layer modifiers
* humanoid profiles in prototypes
* randomhumanoidappearance won't work if the humanoid has a profile already stored
* removes unused code
* documentation in humanoidsystem server-side
* documentation in shared/client
* whoops
* converts accessory into marking in locale files (also adds marking loc string into single marking picker)
* be gone, shared humanoid appearance system from the last upstream merge
* species ignore on randomization (defaults to no ignored species)
* more upstream merge parts that bypassed any errors before merge
* addresses review (also just adds typeserializers in some places)
* submodule moment
* upstream merge issues
* firelocks when alarmed will now use tryclose instead of emergencypressurestop
* just adds a power check to OnAtmosAlarm, instead
* restores emergencypressurestop usage, adds a newline to an if
* lathe and material storage refactor
* materialStorage ECS
it kinda sus tho
* beginning the lathe shitcode dive
* couple lathe visuals and lathe system
* lathe changes and such
* dynamic lathe databases
* rewrote internal logic
on to ui
* da newI
* material display clientside
* misc ui changes
* component state handling and various other things
* moar
* Update Content.Shared/Lathe/LatheComponent.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* first volley of sloth review
* more fixes
* losin' my mind
* all da changes
* test fix and other review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
The issue is that both bodies go to sleep on the server-side so it mispredicts like crazy on the client then when you unbuckle it snaps.
This is just a bandaid until buckling + vehicles get some more love in future.
* Fix doc comment on FitsInDispenserComponent
It's clearly intended to be a doc comment, but wasn't.
* Allow the ChemMaster to accept canisters and bottles
* Give the ChemMaster an output container slot
* Tweak ChemMaster UI layout
* Make more ChemMaster UI tweaks
* Update ChemMaster SpinBox max handling
* Rework the ChemMaster
* Apply suggestions from code review
Co-authored-by: Flipp Syder <76629141+vulppine@users.noreply.github.com>
* Implement PR feedback
* Switch ChemMaster to a tabbed UI layout
* Rename Amount to Dosage for clarity
* Replace Amount with Dosage in messages
* Clarify dose in UI
Co-authored-by: Flipp Syder <76629141+vulppine@users.noreply.github.com>
* Add RemoveVolume()
RemoveVolume(vol) captures the common pattern of:
air.RemoveRatio(vol / air.Volume)
Change existing code to use this method where appropriate.
* Add gas recyclers
Gas recyclers catalyze the conversion of CO2 and N2O to O2 and N2. The
gas recycler component takes waste gas from the input net and releases
the result into the output net.
To make things more fun, the input net must be pressurized to 3 MPa and
heated to at least 300 C; otherwise, no reaction will occur.
Game-mechanic wise, gas recyclers contain the catalyst for the
conversion reaction, and therefore, requires no external power. However,
the external pumps and heaters required to make the reaction happen
still do.
* Fix gas recyclers
Fix negative sqrt, fix pressure check after remove.
* Add charcoal
Flush chemicals that are not the charcoal out of the chemical stream
* Add into EN localization to get chem dispenser to display correctly
* Remove method that wasn't needed
* Remove charcoal from dispenser
Charcoal is made by combing ash and carbon
* Place ash in elements prototype
* APC construction and deconstruction
Construction action GivePrototype
* APC needs screwing + sprites
* apc framework, working construction recipe
* Energy swords hot
* APC changes
* APC construction/deconstruction
* removed comments
* Revert "Energy swords hot"
This reverts commit 75228483abb3cc6252118b319bc8949d5198362d.
* Renamed function for clarity
* Fixed the last step not showing in the construction menu
* Some fixes
* Update Content.Server/Power/EntitySystems/ApcSystem.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Content.Server/Construction/Completions/GivePrototype.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Structures/Power/apc.yml
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Structures/Power/apc.yml
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Content.Server/Power/Components/ApcElectronicsComponent.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* Update Content.Client/Power/APC/ApcVisualizer.cs
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
Co-authored-by: Jacob Tong <10494922+ShadowCommander@users.noreply.github.com>
* flavor profiles
TODO: every single flavor! yeah!!!
* adds basic localization, and flavors/lastFlavor values for when you get the flavor profile message
* multiple and single flavor messages
* start on flavor localization, multiple flavors in localized flavors
* flavor prototypes
* a few more flavors, descriptions on what each section of the flavor file should be doing
* localization for flavor profiles in drink/food system
* adds an event that allows a flavor profile list to be transformed base on the user entity
* raises it on the food entity too
* changes a field in flavor, adds some more flavors, starts adding flavor prototypes
* adds basic flavors to several entities, and consumable drinks, renames flavor field to 'flavors'
* changes call ordering in flavorprofile, adds flavor to ignored components server-side
flavor is really just a popup message, and those are all processed server-side
* fixes where food tried to get the flavor of the user instead of the food
* single flavors will now get the localized string
* getting the flavor message now ensures that flavors are deduplicated
* makes flavor processing more strictly unique bu making everything hashsets
* yeah, that could just not have distinctby now
* adds flavorprofile directly to food base instead for generic food taste
* FlavorProfileModificationEvent now passes a hashset of strings and not flavorprototypes
* flavorprofilesystem now broadcasts the flavor profile modification event
* adds more flavors to the flavor profile loc file
* skips a flavor, if the flavor string is null/empty
* adds some more flavors, adds generic medicine flavor to medicinal chemicals
* more food flavors, adds flavors to swallowing
* adds some cocktails to the set of flavor profiles
* regenerates flavor prototypes
* adds flavor type to all flavors, adds whitespace between variants
* adds more flavors, adds flavors to several chemicals and food items
this is the part that took the longest
* changes backup flavor message
* spelling mistake
* more flavors, and flavors on food
* readds all the type fields, whoops
* fixes localization strings for forcefeeding food/drink
* fixes multiple flavor profile
* adds flavor limit for flavors
* makes that fetch the cvardef instead
* Add examines for damage values
Even immersive sims still give you values.
We should also do this for armour so people don't have to yml dive and so the general public actually know the balance of things.
* Slightly better
* Cleanup
* threshold balancing, restores none mode on atmos alarm
dear lord, panic mode with unbalanced thresholds was a nightmare
* that was 10%, not 1%
* adds widenet mode for scrubbers
* adds the vents to wide filter as well
* adds a check for if a firelock is powered before auto-opening
* fixes issue where resets would not propagate properly
* adds cvar bound for fire alarm access (defaults to all access)
* shuffles devicelist to shared, adds an overlay for devicelist
* adds space property to overlay
* moves networkconfigurator to shared, makes devicelistsystem clientside check activedevicelist
* dirties components upon change, adds networkedcomponent to sharednetworkconfigurator
* state handlers for networked components
* whoops
* lots of shuffling, renaming, and access changes
* randomizes color for every new entity added to the overlay
* adds a client-side action to clear all network overlays if they're active
* clones action (oops)
* localization, adds a command for clearing network link overlays (in case the action disappears)
* moves the entity manager up into the bui fields
* makes that a dependency
* attempts to just directly get the color from the dict when drawing, now
* fixes up a few comments
* adds dirty on init to devicelistcomponent
* hacky solution related to mapping with a networkconfigurator
* more stricter bound on that hacky solution
* just checks if the life stage is initialized instead of if the entity was initialized
* moves getalldevices to shared
* readds linq import
* tries to ensure that the show button is toggled on if the device we're trying to configure is currently being tracked by the overlay
* some reorganization
* C# half of Outer Rim commit 5081906bd17e715ecae422dd7a003d9f103e6884 "autolink gaming."
Ported from Outer Rim with permission.
* YAML half of Outer Rim commit 5081906bd17e715ecae422dd7a003d9f103e6884 "autolink gaming."
Ported from Outer Rim with permission.
* commit fixed AL summary
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* NewLinkEvent.User & LinkAttemptEvent.User now nullable, fix possible AccessReaderSystem AutoLink bug
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Add a new InfoSystem that sends SharedInfo from the server to client
when requested. Currently, only the rule header and rule text is sent.
Previously, the rule header and rule text was bundled in the client,
which means that the client would only display rules that it was built
with, even if the server has different rules.
This allows servers all running the same build to send different rules.
This could be useful, for example, for servers running the official
builds to send different rulesets without a client rebuild.
* Material
* good prototype
* Fix material storage
* You can insert biomass into the cloner
* ok, basic biomass subtraction works
* amogus
* ok chance works
* Alright, the biomass and genetic stuff works
* feedback for cloning
* more reclaimer polish
* ship it
* starting biomass + fix lathes
* I changed my mind on rat mass and these guys are definitely getting ground up
* Doafter
* clean up, sync the two
* fix naming, fix mass
* technology + construction
* additional logging, stop unanchoring when active
* fix event / logs
* dont gib dead salvage
* auto eject
* fix deconstruction behavior
* make warning message better, temporarily disable cancer scanner
* fix biomass stacks
* add easy mode CVAR
* stack cleanup, make biomass 2x as fast
* bugfix
* new sprite from hyenh
* fix tests
* hello? :smilethink:
* :smilethink:
* medical scanner gets antirotting
* fix cloner and medical scanner
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Fix a bunch of warnings
Also made ensnareable not broadcast as they're only used directed.
Mainly just Get<T> and AppearanceSystem
* buckle too
* fix tests
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Add pneumatic valves
Pneumatic valves permit bidirectional flow between the inlet and outlet
if the pressure at the control port is high enough.
* Add construction recipe
* give more info in examine for rotting
* remove line
* Update MiasmaSystem.cs
* Update MiasmaSystem.cs
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
* changed the description of thieving gloves
* fixed the strip/place popups not being hidden
* moved the ev.Stealth check
* Revert "changed the description of thieving gloves"
This reverts commit e0d242ddb8902873fbcd095a58e49641588414f5.
* Refactor/format
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* fix mouse now cant insert other mobs on disposal, but still can jump inside
* Apply suggestions from code review
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* using popupSystem depedency and better fluent use
* change where the message You don't have hands are
* Caution popup
Co-authored-by: zero <ribeirolucasdev@gmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Converted PlantHolderVisualizer to component and system.
* Cleaned up Botany folder.
* Converted initialization of HydroTrayVisualizer under PlantHolderVisualizerSystem to it's own GenericVisualizer.
* Cleaned up hydro_tray.yml.
* stuff i'll have to fix anyway when n2o gets merged
* everything except the finished reactions
* freon coolant reaction but with bad curve
* miasmic subsumation
* freon production
* nitrogen and diff temp scaling
* uhh meant to change that
* #
* hitting that frezon boof
* removed verbs open and unlock for mobs with no hands
* fix the file where check the hands
* fix now using HasComp looking for SharedHandsComponent
* remove blank line
* remove blank line
Co-authored-by: zero <ribeirolucasdev@gmail.com>
* Port medibot + bot spawners from nyano
* Make the injection thresholds constants
* Remove warning
* Check against const in system too
* resolving systems just isn't worth it
* only resolve entity manager once
* Reduceother resolves too
* fix post-merge
* woops
* Per-map parallax support
* Comments for future sloth
* c
* bet
* Fix exception
* VV support
* Fix parallax
* mem
* weightless sounds
* Gravity stuff
* placeholder coz im too lazy to stash don't @ me son
* decent clouds
* sky
* Fast parallax
* Imagine spelling
* Loicense
* perish
* Fix weightless status
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
* Properly dirty changes when calling "SetInstrumentProgram" method
* Allow using swappable instrument verbs even while playing the instrument.
It's funnier this way
* Adds three new smites, headstand, locker stuff, and reptilian species swap.
* Localize all the smites.
* save work
* More smites...
* Final tweaks.
* oops
* !PLEH
* Adds disarm prone and improved hand removal options.
* fix chances.
* take out the trash.
* Add some admin TRICKS instead of more smites.
* oop
* Implements the admin test arena and associated trick.
* Tricks for granting/revoking access.
* e
* mfw
* Implement quick dialogs, for when you don't want to spend 20 minutes writing a simple dialog prompt.
* Forgot the rejuv icon.
* E
* docs
* augh
* Add rename/redescribe buttons.
* Adds objects menu, implements a couple tricks for stations.
* 1984
* Adds a trick for effectively infinite power.
* fixes some icon uggo.
* a
* HALT!
* Pause/unpause buttons.
* Forgor the textures.
* they broke every bone in their body.
* i added more
* more battery actions, touch up battery icon.
* Address reviews.
* Refactor traitor generation code.
* RandomTraitorAlive no longer crashes when 1 traitor. Also cleaner/faster
* Add Antag menu for admins, add Traitor to the list.
* Add zombie to admin-antag menu
* Pirates, lone op, make traitor consistent with the rest.
* Add name strings
* cleaned usings.
* Cleanup.
Co-authored-by: drakewill <drake@drakewill-crl>
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* Change "CentComm" to "CentCom"
* Change "Centcomm" to "CentCom", skipping CVar and changelog
* Change "Centcom" to "CentCom", skipping lots of item IDs
* Change "centcomm" to "CentCom", skipping URLs, some var, IDs
* Change "centcom" to "CentCom", skipping IDs and alike
* Add AMIV disease stages
* remove unused import
* move stages to top for readability
* monkey immunity to amiv
* Update to use time instead of index
* Revert "Update to use time instead of index"
This reverts commit 6bc83b0d48c167fe30437fa94272a00ed1633c5d.
* add comments
* rerun test
* starter API
* network ID cards
* Port more stuff from old identity
* Re-implement identity representation + name updating
* move
* proper name returning for `IdentityName`
* move everything important to server, give in to temptation
* shared / server / client split sadly. move ensure to shared and spawn to server
* identity update queueing + identityblocker
* fixes
* and just like that it's usable for admins
* huge identity pass
* pass dos
* jesus christ
* figs :D
* fuck u
* fix bad merge.
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Convert atmos plaque to generic visualizer
Use generic visualizer for atmos plaque. Also enables zumos plaque to
appear.
* Convert gas canister connecters
* Remove manual layer creation
* Remove gas canister visualizer
* Convert gas analyzers to generic visualizers
* Convert fire visualizer
* Fix layers on plasma and air canisters
* Remove commented out fire visualizer in barricades
* Add documentation for fire visuals component
* Remove redundant visualizer for milkalyzer
* Remove rogue item group
* Refactors the entirety of the AtmosphereSystem public-facing API to allow for multiple atmos backends.
* actually compiles
* Remove commented out code
* funny bracket
* Move archived moles, temperature from GasMixture to TileAtmosphere.
* WIP customizable map default mixture
still VERY buggy
* broken mess
aaaaaaaaaaaaa
* Fix lattice, etc not being considered space
* visualization for "IsSpace"
* help
* Update Content.Client/Atmos/Overlays/AtmosDebugOverlay.cs
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Holy SHIT it compiles AGAIN
* Fix AtmosDeviceSystem crash at shutdown
* Fix immutable tiles on map blueprints not being fixed by fixgridatmos/revalidate.
* Use space instead of gasmixture immutable for heat capacity calculations
* Remove all LINDA-specific code from GasMixture, move it to TileAtmosphere/AtmosphereSystem instead.
* Fix roundstart tiles not processing
* Update Content.Server/Atmos/Commands/SetTemperatureCommand.cs
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Update Content.Server/Atmos/EntitySystems/AtmosphereSystem.API.cs
Changed Files tab is so large I can't commit both suggestions at once mfw
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add action to pull down mask
* Update based on review comments
* fix access
* cleanup
* Update based on review comments
* revert change to ToggleableClothingSystem
* switch to unequip
* Specify the unequip is for togglemaskevent only
* fix issue of activating mask in hands with something else in mask slot
* Update based on review comments
* switch to dependency for ActionSystem for consistency
* whoops other instance too
* review changes
* Adds Reach II
* Updated Reach II to work after refactor
* removing old map
* Adding the Central Command outpost
* Reachii isn't meant to be in here at all.
* updated possible error in .yml
* updating .yml
* Updated CentComm, fixed some issues like lighting.
* Imagine if we also docked at centcomm
* a
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Don't load cargo shuttle by default
Realistically only I am going to care and it wastes a few seconds per test / debugging locally.
* Make it a general cvar instead
* a
* cigars are marked as trash
* alt click added to trashbag disposals interaction
* request changes
* remove redundant check and auto refactor
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
There may be some situations to allow it but in actual combat if you have a big sprite like space dragon it's VERY easy to hit yourself and do sizeable damage.
* Add department-specific radio channels
This commit adds working department-specific radio channels, while
minimizing damage to the current codebase. It is expected that a future
refactor will clean this up a bit.
ChatSystem now has a RadioPrefix() method that recognizes
department-specific channels (e.g. ":e" and ":m") in addition to the
global channel (";"). It strips the prefix from the message and assigns
messages an integer representing the destination channel, if any.
IListen and IRadio now accept optional 'channel' arguments with this
channel in mind.
The ugly is that the integer channel number is hard-coded and also shows
up in chat.
Comms are not modeled at this time. You cannot break comms (yet).
All headsets have channels soldered into them. You cannot change
encryption keys to hop on new channels. Steal a headset instead.
* Remove debugging print
* Convert to prototypes
* Use prototype names in headset prototype
* Adjust list style
* Document prototype fields
* cringe
* some cleanup
* colours
* Remove alphas at least
* cc
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
* Added the stages , time to implelement them
* adjusted the zombie code to fit within the new staged system
* because I forgot it starts at 0
* mmmm Mistaken
* Removed unused comp
* removed DiseaseBuildup comp from IgnoredComponents.cs
* Resolved review
* Delete IgnoredComponents.cs
* Resolved review
* resolved review
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
* Show drink volume on examine
* Approximate measurement unless a beaker
* Changed percentage threshold and added subjectivity
* Update default switch case since it can never be 0 here
* Remove int cast from PercentFull method
* ECS containmentfieldgeneratorcomponent
* Fix tests and clean up one line
* check for anchored in a better way
* Fix dependency exception
I'm not really happy with this solution, it's not very good but I'm not
sure how to do it better without refactoring way more than I want to. Maybe
I'm missing something.
* review
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* lewd
* A
* Realtime
* Sleepy dork
* Draw radar position
* Accurate infiltrator
* experiments
* Better drawing
* Labels
* I need aan adult
* Cleanup
* Show toggles
* display I guess
* A
* fix
* fix
* cleanupsies
* Bit more polish
* Make sure mass scanners actually work
* Remove dummy state
* fren
* opposite
* aghost crash
* comment
* What's in a name
* woops
* Show docking ports
* Dock highlighting
* Drawing dock
* Shitty docks
* Lots of docking drawing
* Autodock working
* dork
* More graceful shutdown
* zoomies
* Lines and distance change
* revert
* Good enough
* cleanup
* Fix default range
* Dock UI and loc update
* Update on undock
* Loc fixes
Now it only plays when the round restarts *after* a regular roundend.
Meaning that if you spam the "restartroundnow" command, it won't play even if you have roundend sounds enabled in the options.
* Allow baton/battery to be inserted into recharger
* Revert "Allow baton/battery to be inserted into recharger"
This reverts commit ccf1f3d1827bf45c49bb6ca4f5c97990d1afba6e.
* Refactor stun batons to use internal batteries
* Implement DeviceList
Implement NetworkConfigurator
I sould really get into the habit of making smaller commits
* Remove ApcNetworkComponent from vents, scrubbers anf firelocks
* Change BeforeBroadcastAttemptEvent#Recepients to readonly IReadonlySet and add a ModifiedRecepients field
* Address revievs in NetworkConfigurationSystem
* Fix red and green button styles
* Change NetworkConfiguratorSystem#UpdateState to remove saved entites that don't exist anymore
* Add AtmosDevices device net id
* Add const strings for style classes
Fix wrong margin for NetworkConfiguratorConfigurationMenu
* Hello? Github?
* Add access check before opening the configuration ui
* Address reviews
* Fix call to access reader
* You shall not live again IgnoreComponent
* Fix interaction verb check
* Fix configuration window not closing when target gets deleted / out of range
* Change device is already saved message to say 'network device: ... is already saves'
* Apply suggestions from code review
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* Fix applied suggestion
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
* save changes
* naming rules
* changes
* changes
* last touches
* e
* use default
* better looping
* better prototype ig
* f
* c
* Revert "changes"
This reverts commit 111a7f36
* fuck i'm bad at git
* changes
* mfw
* e
* e
* Start implementing item pricing.
* Flesh out prices a bit, add the appraisal tool.
* Add prices to more things.
* YARRRRRRR
* gives pirates an appraisal tool in their pocket.
* Makes the various traitor objectives valuable. Also nerfs the price of a living person, so it's easier to bargain for them.
* Address reviews.
* Address reviews.
- Bojevic firerate dropped from 3 to 2
- Pellet damage from 13 to 8 (3 shotting players instead of 2 shot)
- Slightly more spread in line with the design doc. Slug spread I made as accurate as an SMG (so not quite full-screen mob hits but pretty close).
There's still some oddity around MobObserver / AdminObserver where if you move after suicide then aghost you return to your original body, but at least you won't spawn a billion AdminObservers anymore or crash if you controlmob one.
* weh
Multiplies the amount of power used by the battery guns, triple-ish for the laser cannon and a fuckton more for the xray
* Reduces nuke detonation time
* comment
* Update Content.Server/Nuke/NukeComponent.cs
Co-authored-by: wrexbe <81056464+wrexbe@users.noreply.github.com>
* adds prototype reload for AlertLevelSystem, reorganizes selectable alerts a bit
* makes alert levels not necessarily require localization
* oops
* sus
* does the same for announcements as well
* oh, that's not how that works at all
* ok, NOW it works
* fixes localization, adds event for when alerts are reloaded
* addresses review
* Check if the ghost spawn position is in inventory/default/null-space
* attach to grid instead of default spawn point
* Simply attach to grid first before entity is deleted
* cameras but i didn't feel like git stashing them
* Adds more functionality server-side for surveillance cameras
* rider moment
* Adds skeleton for SurveillanceCameraMonitorBoundUi on client
* whoops
* makes surveillance camera monitor UI more defined
* removes tree from SurveillanceCameraMonitorWindow
* surveillance camera active flag, other routing things
* actually sets how SurveillanceCameraMonitorSystem sends camera info to clients
* adds entity yaml, changes field
* adds the camera/monitor entities, makes the UI open
* SurveillanceCameraRouters (not implemented fully)
* subnets for cameras, server-side
* it works!
* fixes rotation in cameras
* whoops
restores surveillance cameras to ignored components
makes it so that switching cameras now lerps the other camera
* makes the UI work
* makes it so that cameras actually refresh now
* cleanup
* adds camera.rsi
* cleans up prototypes a bit
* adds camera subnet frequencies, cameras in subnets
* adds surveillance camera router subnets
* might fix testing errors
* adds the circuit board to the surveillance camera monitor
* fixes up the camera monitor (the detective will get his tv soon)
* adds heartbeat, ensures subnet data is passed into cameras to send
* fixes up a few things
* whoops
* changes to UI internals
* fixes subnet selection issue
* localized strings for UI
* changes 'test' id to 'camera' for cameras
* whoops
* missing s
* camera static!
* adds a delay to camera switching
* adjusts a few things in camera timing
* adds setup for cameras/routers, localization for frequency names
* adds setup ui for routers, makes subnet names in monitor window follow frequency name in prototype
* localization, some cleanup
* ui adjustments
* adds surveillance camera visuals
* fixes a bug when closing the UI for monitors
* adds disconnect message to UI
* adds construction graph to cameras
* adds the camera to the construction menu
* fixes network selection for setup, tweak to assembly
* adds surveillance camera router construction, fixes up surveillance camera wire cutting
* adds disconnect button to monitor UI
* switches around the status text
* tweaks monitor UI
* makes the address actually show
* might make tests pass
* UI adjustments, hard name limit
* ok, that didn't work
* adds wireless cameras
* makes the television work/look nicer
* adds tripod cameras in addition to mobile cameras
* makes wireless cameras constructable
* fixes up those prototypes
* reorganization in C#, small cleanup
* ensures that power changes deactivate some devices
* adds a component to the television, comments out a function
* actually, never mind, i forgot that wireless cameras existed/are creatable for a second
* tweaks to router construction, removes SubnetTest from prototypes
* removes it from frequencies too
* Apply suggestions from code review
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* type serializers into components
* setup window opens centered, enum is now byte
* replaces active monitor list with ActiveSurveillanceCameraMonitorComponent
* adds paused/deleted entity checks, changes how verbs are given
* removes EntitySystem.Get<T>() references
* fixes bug related to selecting network from setup, alphabet-orders network listing in setup
* rider moment
* adds minwidth to surveillance camera setup window
* addresses reviews
* should fix the issue with camera visuals not updating properly
* addresses some reviews
* addresses further review
* addresses reviews related to RSIs
* never needed a key there anyways
* changes a few things with routers to ensure that they're active
* whoops
* ensurecomp over addcomp
* whoops
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add force mode for setting alert level
* Add console command for changing alert level
* Filename typo
* Return delta disableSelection property
* Make locked a component property
* Not lock green level after nuke disarm
* Adds seven new smites, moves the explosion smite to the verb category.
* adds even more smites.
* Even more smites, some messages for specific smites.
* Adds even more smites.
* Removes some junk, adds a smite that angers the pointing arrows.
* get rid of dumb component.
* Remove mistake from verb menu presentation.
* How did that happen?
* whoops
* c
* e
* fuck
* Loading...
* removes the BoM go away
* adds the funny kill sign. Fixes ghost smite.
* Move systems around.
* Adjust organ vomit.
* Adds a smite that turns people into an instrument, and one that removes their gravity.
* oops
* typo
Co-authored-by: Veritius <veritiusgaming@gmail.com>
* Extended access system
Allows jobs to specify "extended" access levels, which will be granted if the round-start crew count is below a certain threshold.
* Extended accesses for jobs
* Spook
* Make nukies usable
- Spawn points that work
- Radar default range bumped up
- Used the infiltrator instead
- Spawning works
I playtested it and it was working so anything new pops up then I'm gonna screm.
* a