* WantedListCartridge has been added
* WantedListCartridge user interface works
* WantedListCartridge is added as standard in some PDAs
* The CriminalRecordsSystem can now also take into account who created the record
* Added offense history table
* Fix of missing loaderUid for a cartridge without installing the program
* Added personalized information about the target
* The crime history has been finalized
* Added StatusList
* The officer's name has been added to the automatic history
* WantedListCartridge has been added to the HOS locker
* WantedListCartridge has been removed from brigmedic's preset programs
* The StealConditionSystem now takes into account whether a cartridge is inserted or installed
* Added target to thief on WantedListCartridge
* Merge fix
* Removing copypaste
* Fix merge 2
* The sprite of WantedListCartridge has been changed
* Update pda.yml
* Fix scrollbar in the history table
* Upstream localization fix
* `StatusList` has been replaced by `ListContainer` with `TextureRect`
* Margin fix
* Move placeable check to PlaceableSurfaceSystem
This check stops entities from being inserted into a storage entity
when it has a PlaceableSurfaceComponent.
The entity is instead placed on top of the entity like a table.
* Move SetPlaceable to PlaceableSurfaceSystem
* Update to transform system and consolidate code
* Fix interaction with storage that has a placeable component
* deadlock
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* clean up solution regen and drain comps
* Tape applied.
* Update Content.Server/Chemistry/Components/SolutionRegenerationComponent.cs
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* remain entity
* That has to be a rogue test fail.
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* move component to shared
* add fake systems
* update server explosion system and remove duplicate transform query
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* let FlashArea be called from shared
* untroll
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Add failing unbuckle InteractHand test
* Skip trybuckle if strap doesn't have space
* Unbuckle others not just user
* Fix test failing due to delay
* Change to raise event instead of calling OnInteractHand
* Add test for buckle and unbuckle on InteractHand
* Add tick delay
* Remove unneeded tick delay and clean up
* Comment code
* Cleanup
* Swap to fastest checks first
* Fix reading empty sequence when there are no buckled entities
* Localization of steal targets
* Correction of localization of theft objects
* The second correction of the localization of theft targets
* Update steal-target-groups.ftl
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* Revision of the localization method
* Choosing a simple option for localization
* Fix TechnologyDisk name
* Corrections based on feedback received
* correction of declension
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Instead of each mutation being a flag that gets checked at some unique point in BotanySystem somewhere, they're now EntityEffects that get applied when the mutation occurs and when produce is harvested. One new list was added to SeedData so that multiple other fields could be removed.
All the non-stat-change mutations that have been rolled are added to the Mutations list, and get applied to the plant when the mutation occurs or when a seed with the mutation is planted. Produce get mutations applied at harvest if they apply to the produce, and carry all of the plant's mutations over as a seed. This gets rid of the one-off checks for things like Slippery, Bioluminescent, Sentient, etc.
The base odds of a mutation applying should be equal to the odds of the original mutation check. It pretended to have 1 bit flip (on averge) per mutation power, and odds of each mutation was the odds of one of its bit being flipped (1 /275 * bits). The 'thermometer code' applied for numbers will be replaced with simple random rolls, as both average out to the middle value. The new checks are much easier to understand and don't obfuscate the actual changes of something happening behind 3 layers of math. The biggest player-facing change is that Potency will be able to get over 65 significantly more often than it did in the previous system, but it will be just as common to get low values as high ones.
Mutation definitions have been moved to a .yml file. These include the odds per tick per mutagen strength of that mutation applying that tick, the effect applied, if it applies to the plant and/or its produce. This makes mutations simpler to add and edit.
This PR is limited specifically to the mutation logic. Improving other aspects of the system will be done in other PRs per the design document. Mutations was chosen first because its got the largest amount of one-off checks scattered all over that could be consolidated. Once this is merged, mutations could be contributed to the codebase with minimal extra work for later botany refactor PRs.
* Localize RenameCommand and delegate most of the process to MetaDataSystem.SetEntityName()
* Make renaming rely on the EntityRenamedEvent. Fix issue where renaming would keep old Examine text
Requires engine change
* Fix localisation strings
* Make PDA search be based on a renamed entity's Uid instead of its old name
To do this the pda component now has an PdaOwner field which gets
assigned when it is given as a loadout to a player
* Fix bad merge???
huh
* Use AllEntityQuery
Joints were created with pivots at object origin, causing unintuitive behaviour when an object was not centered on the origin. Now puts the pivots at the COM.
Joint limits were set based on fractions of the union of the AABB of objects, which did not make geometric sense. Now uses the pivot length with an additional [arbitrary] length.
Joints were created with a very low spring stiffness, which had a negligible effect most of the time but caused very unintuitive behaviour when the pulled object had a low mass (#28028) - disable the spring limit, and just use the hard min/max limits.
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* First clumsy implementation of guidebook protodata
* Support for Properties, format strings
* Better null
* Rename file
* Documentation and some cleanup
* Handle errors better
* Added note about client-side components
* A couple of examples
* DataFields
* Use attributes like a sane person
* Outdated doc
* string.Empty
* No IComponent?
* No casting
* Use EntityManager.ComponentFactory
* Use FrozenDictionary
* Cache tagged component fields
* Iterate components and check if they're tagged
* Extend shuttle dock time if the shuttle doesn't dock at evac.
If the shuttle can't dock at evac for *some reason*, it will instead try to dock at another port on the station. And if that fails it goes somewhere random on the station.
Because of the chaos and confusion caused by this, many people will frequently not get to the shuttle in time under these circumstances. This sucks for everybody.
To alleviate this, the shuttle launch timer will now be extended if the station doesn't dock at its ideal spot. The default values (controlled via CVar) are 1.667x and 2x respectively for "wrong dock" and "no dock at all" scenarios.
The code around here was a mess, so I fixed that too. "CallEmergencyShuttle" has been renamed to "DockEmergencyShuttle", the overload that did the actual docking has been renamed to DockSingleEmergencyShuttle. Code has been split into separate dock -> announce methods so we can calculate shuttle delay in between the case of multiple stations.
Also made the "shuttle couldn't find a dock" text announce the time until it launches and fix the shuttle timers not triggering for it.
* Minor review
---------
* Returned functionality to industrial reagent grinders without un-nerfing recyclers
* Limited industrial reagent grinder to only extractable solutions
* feat: #26107 uplink discounts for traitors and nukies
* refactor: #26107 extracted discount label from price of StoreListingControl
* refactor: minor renaming
* refactor: parametrized adding discounts to uplink store
* fix: #26107 prevent exception on empty discountOptions
* feat: uplink now have 'Discounted' category which contains all discounted items on this session.
* after merge fixups
* rename discount categories according to common sense
* refactor: DiscountOptions is now optional (nullable) on ListingData
* add nullability check ignore for already checked listingData.DiscountOptions
* fix after merge store menu ui
* remove unused using
* final fix after merge conflicts
* [refactor]: #26107 fix variables naming in UplinkSystem
* fix: #26107 fix after merge
* refactor: #26107 now supports discountDownUntil on ListingItem, instead of % of discount
* feat: #26107 support multiple currency discount in store on side of discount message label
* refactor: #26107 extracted discounts initialization to separate system. StoreDiscountData are spread as array and not list now
* refactor: #26107 move more code from storesystem to StoreDiscountComponent
* refactor: #26107 separated StoreSystem and StoreDiscountSystem using events
* fix: #26107 placed not-nullable variable initialization in ListingData for tests
* refactor: #26107 minor renaming, xml-docs
* fix: #26107 changed most of discounts to be down to half price for balance purposes
* ids used in with discounts are now ProtoIds, dicountCategories are now prototypes, code with weights simplified
* decoupled storesystem and store discount system
* xml-docs
* refactor: #26107 xml-doc for StoreDiscountSystem
* is now a thing (tmp)
* fix: compilation errors + StoreDiscountData.DiscountCategoryId
* refactor: rename ListingDataWithCostModifiers, fix all cost related code, enpittyfy performance, uglify uplink_catalog
* refactor: removed unused code, more StoreDiscountSystem docs, simplify code
* refactor: moved discount category logic to respective system, now creating ListingData c-tor clones all mutable fields as expected
* refactor: rename back (its not prototype)
* refactor: move ListingItemsInitializingEvent to file with handling logic
* refactor: comments for StoreBuyFinishedEvent handling, more logging
* refactor: moved StoreInitializedEvent, xml-doc
* refactor: simplify StoreDiscountSystem code (reduce nesting) + xml-doc
* refactor: restore old listing data cost field name
* refactor: fix linter in uplink_catalog.yml
* refactor: xml-doc for ListingDataWithCostModifiers
* refactor: limit usage of ListingData in favour of ListingDataWithCostModifiers
* refactor: purged linq, removed custom datafield names, minor cleanup
* refactor: removed double-allocation on getting available listings
* refactor: StoreSystem.OnBuyRequest now uses component.FullListingsCatalog as reference point (as it was in original code)
* fix: minor discount categories on uplink items changes following design overview
* refactor: StoreBuyListingMessage now uses protoId and not whole object
* refactor: store refund and discount integration test, RefreshAllListings now translates previous cost modifiers to refreshed list, if state previous to refresh had any listing items
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* Atmospheric alerts computer
* Moved components, restricted access to them
* Minor tweaks
* The screen will now turn off when the computer is not powered
* Bug fix
* Adjusted label
* Updated to latest master version
* Station AI has their name displayed in announcements now.
* I'm so sorry
* Corrections
* part 2
* part 3 :|
* part 4
* Whitespace
* Fixing whitespace part 1
* No more whitespace
* PLEASE NO MORE WHITESPACE
* feat: now when research is unlocked in console, approver of reasearch is radio-ed too
* refactor: now most of events that require actor name to be radio-ed or logged use TryGetIdentityShortInfoEvent which is subscibed by id-card system and borg system (to work for both carbon and synthetic life-forms)
* refactor: moved TryGetIdentityShortInfoEvent on id card system to shared, fixed cargo cent-com-originated orders
* remove unused check
* refactor: decoupled systems from IdCardSystem (those that are not dependent on it anymore)
* refactor: removed unuseed usings
* feat: emagged cargo/research consoles wont radio messages on buy/research confirm anymore
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* add snails
* scuffix
* migrate
* mo-grate
* oopsied the ftls
* Revert "oopsied the ftls"
This reverts commit 0d3c6c17f31ec904679d6a48799cea71e77c1f99.
* the curse of staging the wrong file, resolved.
* Snoth
* fix my dumbs
* reviews 1
* anti space technology
* salt hurty
* spelling
* Its a slotherhouse out here
* sequencing
* cooked snail
* volfix
* speed reversal
* Add special microwave board to Combat Bakery Kit
* use event instead of trycomp
* make the board sus
* add instructions note
* embarrassing typo
* Add functionality to Donk Co. microwave instead
* update note