* 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>
* 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>
* 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.
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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
* 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>
* 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>
* 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>
* 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