* 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>
* Added codeword highlighting
* Updated to support more codeword roles, color is set serverside
* Review feedback
* Change to a Component-based system using SessionSpecific
* Tidied up CanGetState, set Access restrictions on component
* Clean-up
* Makes the injection ignore brackets, restore some codewords, remove "Taste/Touch" from adjectives
* I dunno, break shit I guess.
* Actually fix some shit for once.
* test flakey or me flakey?
* Test were not flakey, they just didnt make any sense anymore.
* more stationy tests
* undo abuncha shit I can set in yml instead
* forgor an assert
* unneeded usings
* 1984
* I made github angy
* yoink
* the end is never the end is never the end is never the end is never the end is never the end is never the
* Im going to commit sudoku
* item toggle refactoring and some new systems
* add ToggleClothing component/system
* unhardcode magboots gravity logic
* make magboots and speedboots use ItemToggle and stuff
* remove now useless clothing components
* update client/server magboots systems
* add note to use ItemToggledEvent in ToggleActionEvent doc
* refactor PowerCellDraw to use ItemToggle for ui open/close control
* add TryUseCharges, refactor charges system
* update magboot trigger code
* make borg use ItemToggle, network SelectedModule instead of now removed Activated
* add AccessToggle for borg
* the giga ninja refactor
* update ninja yml
* update ItemToggle usage for some stuff
* fix activatableui requires power
* random fixing
* yaml fixing
* nuke ItemToggleDisarmMalus
* make defib use ItemToggle
* make things that use power not turn on if missing use charge
* pro
* fix sound prediction
* bruh
* proximity detector use ItemToggle
* oop
* big idiot syndrome
* fix ninja spawn rule and make it generic
* fix ninja spawn rule yml
* move loading profiles into AntagLoadProfileRule
* more ninja refactor
* ninja yml fixes
* the dreaded copy paste ops
* remove useless NinjaRuleComponent and ue AntagSelection for greeting
* fix invisibility
* move IsCompleted to SharedObjectivesSystem
* ability fixes
* oop fix powercell instantly draining itself
* sentient speedboots gaming
* make reflect use ItemToggle
* fix other test
* loadprofilerule moved into its own pr
* remove conflict with dragon refactor
* remove all GenericAntag code from ninja
* )
* probably
* remove old enabled
* great language bravo vince
* GREAT LANGUAGE
* who made this language
* because it stinks
* reparent blood-red magboots to magboots probbbly works
* most of the review stuff
* hasGrav doesnt mean what i thought it did
* make health analyzer use itemtoggle, not fail test
* fix mag/speed boots being wacky
* UNTROLL
* add ItemToggle to the random health analyzers
* a
* remove unused obsolete borg func
* untrolling
* :trollface:
* fix test
* fix
* g
* untroll
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Revert "Make all Nukies humans (#29693)"
This reverts commit 3e3e050aaf.
* Implemented species blacklist
* Re-enabled all species as Nukies except for Vox because loadouts don't support breathing alternative gases yet.
* move MinMax to shared
* cleanup MinMax
* move other ticking components to shared just because
* remove unused prototype file
* update everything to use shared components
* test
* test 2
* test 3
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* A comprehensive rule list for joining admins and mid round command to get rule list added
* Fix up for when a rule is added vs started and some logging
* fix command help localization, fix admin flags and spam anouncement.
* Send admin message only to the joining player not all admins.
* Bit better formatting in chat box
* move profile loading out of nukeops rule
* make BaseNukeopsRule and use AntagLoadProfileRule
* untroll
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* add AntagObjectives from GenericAntag
* add AntagRandomObjectives that traitor and thief can use
* make ObjectivesSystem use initial character name which AntagSelection passes
* make thief and traitor use AntagRandomObjectives
* remove now unused locale
* make sleeper agents rule use baseTraitorRule
* restore dragon rule oop
* bandaid for genericantag
* real
* typo
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Mega Antag Refactor
* last minute delta save
* more workshopping
* more shit
* ok tested this for once
* okkkkk sure
* generic delays for starting rules
* well darn
* nukies partially
* ouagh
* ballin' faded and smonkin wed
* obliterated the diff
* Spread my arms and soak up congratulations
* I've got plenty of love, but nothing to show for it
* but there’s too much sunlight
Shining on my laptop monitor, so I
Can’t see anything with any amount of clarity
* ok this junk
* OOK!
* fubar
* most of sloth's review
* oh boy
* eek
* hell yea!
* ASDFJASDJFvsakcvjkzjnhhhyh
* Add NukeOps Test
* Update EvacShuttleTest to also check mapinit
* Update RuleMaxTimeRestartTest
* Fix cvar cleanup
* A
* Revert some changes
* comments
* Add MappingTests
* Finally fix the test
* A
* move faction prototype to shared
* move faction exception and member stuff to shared
* fix breaking changes for random stuff
* move pettable friend stuff to shared
* mostly fix
* final fixy
* dragonops
* final fixy II
* use querys and fix warpspeed fish (probably)
* fixer
* Rrrr!
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* add SubGamemodes comp/sys
* remove RuleChance from thief rule
* use SubGamemodes for adding thief rule instead of adding ThiefRule component to random gamemodes
* clean up thief rule prototype
* add better logging + end rule if it fails to start
* march 1st incident
* preset ops
* the dreaded
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>