* fix vent critters spawning off station
* I polish the code
* add utility to get entities ONLY on the station. use in vent critters rule.
* fix station events affecting outside grids
* better argument names for GetEntitiesWithComponentOnStation
* BreakerFlipRule
* \n
* fix doc in GetEntitiesWithComponentOnStation
* keep the comments
* remove BreakerFlipRuleComponent Blacklist
* minor cleanup
* review
* format
---------
Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
* SpaceSpawnRule: generate around grid center, N try
* handle non-positive MaxAttempts
it'll just spawn on the arc at a random position, like it does now!
* comment
* fix use of indices in spawn point index list
you absolute boob
* MaxAttempts, clear before FindGridsIntersecting
Co-authored-by: Pok27 <113675512+Pok27@users.noreply.github.com>
* formattt
---------
Co-authored-by: Pok27 <113675512+Pok27@users.noreply.github.com>
* Scope creep my ass
* why was this shit not pushed????
* gone...
* fix that
* review plus buildd
* asfsafsafsafsafas
* grug
* burber
* I'll fix this later
* shrimply die
* also this
* it's snerf or snuthin
* assaads
* round snend
* aaaa
* fix this shit for real
* actually, don't start GameRules until MapInit now that I think aboot it.
* forgot u
* don't actually need this part nullable
* Deffer comp removal
* one liner
* do that too
* chungus
* Honestly makes more sense here, plus WHY are we doing all that shit on "GameRuleAdded" rather than GameRuleStarted(?)
* deferred removal :V
* aaaaaaaaaaaaaaa
* whhop
* Whoop
* better
* landmine that I placed for myself then forgot about lmao
* cleanup
* FUCKING `!`
* gotovo
* amogus
* please don't check by metadata I beg
* waawsasfdfsasfa
* sfafsasfafsas
* fdsaasffsasfa
* code
* fix
* fasasffasfasfsad
* chungaas
* I may be stupid
* gra
* graaaaaaaaaaaaaaaaa
* comment
* gra
* clearing is not predicted and would require major refactors, so don't cache on client.
* lame shit :P
* last holes
* nukeopsfsafsasafsfafsa
* why was that shit public bruh
* bubrbgwahrghfaka
* dynamic
* revert change that did nothing lmao
* Make every EntitySystem partial
* Oobs thats for a diff PR
* Also oops on that one
* Test systems
* git are we fr
* Update file templates
* cleanup empty classes while we are here
* forgor
---------
Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
* Logging fixed + minor clean-up of ApcToggleBreaker method
* ATS is no longer targeted by BreakFlipRule
* Fixed typo
* Now uses Uid
* Now uses Uid
* Fixed look-up
* Added blacklist to BreakerFlipComponent to specify which entities shouldn't trigger the game rule
* small fix
* Cancel if APC is in unpowered list
* Also prevent re-power via re-construction
* Revert useless dependency
* Reduced event time by 10-20 seconds
* Move to ApcSystem
* Also verify game rule is active
* Empty commit
* Move station and affected checking
* Check for main station grid
* Fix format warnings
* Somehow this got duplicated
* Make GetRuleAffectingEntity() also check for BecomesStationComponent
* Make APCSystem also check for ActivegameRuleComponent
* Removed redundant checks and duplicate logic
* Add GridEventEligibleComponent with flag for PowerGridChecks
* Propagate GridEventEligibleComponent.
* Revert GridEventEligible
* Use GetLargestGrid
* radiosystem is funny
* review
Co-authored-by: slarticodefast <slarticodefast@users.noreply.github.com>
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
* dont forget your tests
* dont forget your loc
* networking
Co-authored-by: Tayrtahn <Tayrtahn@users.noreply.github.com>
* dont return because its breaks
* uh
* review
Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
* more predictions and cleanup
* refactor: just me, being picky about whitespaces and commetns formatting
---------
Co-authored-by: slarticodefast <slarticodefast@users.noreply.github.com>
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
Co-authored-by: Tayrtahn <Tayrtahn@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: Pok245 <113675512+Pok27@users.noreply.github.com>
Co-authored-by: Fildrance <fildrance@gmail.com>
* redundant members
* catch IonLawSystem instances
* return the ion law sawmill, fix LogMan instances
* SalvageSystem LogManager inst
* IonLawSystem: public Sawmill
* what even is initialization order?
* Remove all IPrototypeManager instances
* Remove redundant IComponentFactory instances too
* Found some stragglers
* DestructibleSystem.PrototypeManager: no dependency
* not based
* - rework a bunch of cargo orders to not send a crate with just one thing
- instead sends the item, wrapped
- add ability for cargo orders to wrap the item ordered in parcel wrap
- cargo order name and descriptions are now localization strings, but still 99.99% of the time just get that info from the entity they're spawning
- small refactor to how cargo orders move around in cargo code so that the actual order proto is kept around longer
- small rework to certain restock cargo orders to halve the cost and number of items received in one order
* oop
* Suffering
* Arbitrary containers for cargo products
* I ran the tests locally and they passed, github please rerun :)
* massage Slarti's work into this.
Mainly by taking the API wrapping ability out back with the rifle q-q
* testfail fake
* wow `_applyingState` is useful, I wonder where I should've been using that in other PRs before :^)
* pr comments
* tfw the hook doesn't update the submodule
* Update Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs
Co-authored-by: āda <ss.adasts@gmail.com>
* PR comments
* fixies
* Update Content.Client/Cargo/UI/CargoConsoleMenu.xaml.cs
* Update Content.Shared/ParcelWrap/Systems/ParcelWrappingSystem.WrappedParcel.cs
* fix wrapped parcel entity name + audio
* Actually read PR comments
* Apply suggestions from code review
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
---------
Co-authored-by: āda <ss.adasts@gmail.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
* init
* port hostiles to hordes, fakeout horde
* cleaning, docs
* i may be blind sometimes
* i may be even blinder
* remove friendly announcements
* fuck it
* i love microbalancing
* review
* review
* review p2
* Update Resources/Prototypes/GameRules/pests.yml
Co-authored-by: SnappingOpossum <snappingopossum@outlook.com>
* review + powercreep
* lower the times to account for the gamerule delay
* review
* review
* fuck this return actually
* fial
---------
Co-authored-by: SnappingOpossum <snappingopossum@outlook.com>
* initial visual nubody
* oops overlay
* im so pheeming rn
* conversion...
* tests
* comeback of the underwear
* oops eyes
* blabbl
* zeds
* yaml linted
* search and visible count constraints
* reordering
* preserve previously selected markings colors
* fix test
* some ui niceties
* ordering
* make DB changes backwards-compatible/downgrade-friendly
* fix things again
* fix migration
* vulpkanin markings limit increase
* wrapping
* code cleanup and more code cleanup and more code cleanup and more code cleanup and
* fix slop ports
* better sampling API
* make filter work + use the method i made for its intended purpose
* fix test fails real quick
* magic mirror cleanup, remove TODO
* don't 0-init the organ profile data
* remove deltastates
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Fix usages of TryIndex()
Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)
This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)
This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.
Fixes#39115
Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.
* fix tests
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Replace usages of customTypeSerializer PrototypeIdListSerializer with something that doesn't take 20 separate words to type out
* Missed one
* Missed another
* Fix data field ids
* DAG Adjacency Matrix & Tests
* Fix sandbox type errors
* First pass on procgen
* Procgen adjustments
* Networking
* Cruft and god and beauty and analysis console
* convert to data types that dont make me want to kill myself
* starting work on console UI
* drawing nodes n shit
* damn that ui FUCKS
* XAT
* Add a bunch of basic triggers
* Fix trigger gen
* Add node info into the analysis console UI
* Add node unlocking
* more trigger cuz thats pretty cool
* final triggers + incorporate gnostic faith
* some ui changes, mostly
* Fix orphaned procgen segments
* its not random dipshit
* yeah... this one will make pjb happy....
* we call it a day for the UI
* imagine... shared power code...
* extraction WIP but we gotta sidequest momentarily
* oh hey would you look at that its the actual functionality
* distrotrased
* Small departure for randomness.
* ok yep yep indeed that is an effect very cool.
* thanos snap oldcode
* fuck it we ball
* feat: node scanner now displays triggered nodes. Removed unused old artifact systems and related code (most of it). xml-doc and minor fixups.
* refactor: most of preparations, cleanup and groundwork. also segment-related tests
* feature: all basic effects returning
* feat: finished effects lits, created weight lists for struct and handheld artifacts, fixed throw trigger and music ApplyComponent artifact effects not working
* feat: prevent non-first-time-predicted calls in shared artifact effect systems
* fix: remove gun effect from artifact effects - as it interferes with 'activate artefact' action
* fix: foam reagent selection, neat ApplyComponents art effect scenarios, handheld art is RadiationReceiver again
* fix: moved spawn/ pry&throw effect systems back to server part of code - entity duplication bugs were not quite fun
* refactor: fix protos
* refactor: fix linter
* fix: fix old artifact component names in yml
* fix: no more throwing error on artifact spawn with empty XAEFoamComponent.Reagents
* fix: removed old component usage in maps
* fix: remove more deleted components from map
* fix: ContainerContainer is now part of initial artifact entity, it won't be affecting UninitializedSaveTest
* refactor: fix tests, add loc description to toolshed commands
* Changed node scanner to tell the whole story about current artifact state
* refactor: remove excessive get of EntityCoordinates in XAE systems, removed Value access in NodeScannerDisplay
* fix: turned off TriggerInteraction, removed XAESpawn usage and system, EmpSystem now can use EntityCoordinates,
* fix: moved SharedXenoArtifactSystem.CancelUnlockingOnGraphStructureChange into RebuildXenoArtifactMetaData to lessen code coupling
* fix: XenoArtifactEffectJunkSpawn moved invalid rolls declaration
* refactor: set default value for XenoArtifactComponent.EffectsTable for tests
* fix: now explosions XAE can be activated for effect
* refactor: added some usedelay so artifactuse would'nt be spammed
* refactor: artifact-related hints improvements
* fix: artifact no longer spawns fauna into itself
* refactor: xml-doc and minor refactoring
* refactor: xml-doc for Xeno Artifact systems, renaming of questionable XAT systems
* map for playtest, TODO REVERT THIS
* fix: magboots trigger art from a mile
* refactor: bind artifact animation to unlocking state
* feat: radiation dmg now have reference to source (and artifacts won't irradiate themselves)
* fix: random artifact node durability now is rolled for max and not current value
* refactor: gas effects are more rare, hand-held artifact effects are filtered properly now, rad dmg trigger now requires only 20 dmg for activation
* feat: animations and sound effects for artifact force-use and failed finish of unlocking phase
* use only 1 file with art use animation
* refactor: minor artifact dmg triggers tuning
* feat: now nodes that CAN be unlocked are displayed with specific color in console.
* feat: now unlocking stage time is dynamic and it depends on amount of triggers player activated correctly. Failed one stops incrementing
* feat: now non-active unlocked nodes return more points if durability was not wasted
* feat: now puddle/foam effects change description of node
* fix: fix test failure
* refactor: renamed phasing effect, fixed failing test for elkridge
* minor balance changes
* refactor: split rare materials into separate effects
* feat: unlocked nodes without successor wont listen to unlocks, node unlock is not activating node
* fix: removed OnIrradiatedEvent duplicate c-tor
* revert changes of reach for playtest
* revert last row empty line removal on reach.yml
* fix: fix PVS bug, born from attempt to relay event to art nodes that were not synced yet to the client
* fix: fix elkridge for tests (again)
* refactor: xml-doc, more stuff predicted, allocation optimization in XAE/XAT systems
* refactor: naming
* refactor: extract variable refactor for XAEApplyComponentsSystem.OnActivated insides
* fix: duplicate xeno artifact unlocking sound fixed
* feat: CreatePuddle xeno artifact effect now can have min and max borders for chamicals to be drafted, minor XAECreatePuddleSystem refactor
* feat: networking for shared XAE components + xml-doc leftovers
* refactor: more xml-doc, fix XAEApplyComponentsComponent.Components not being serializable but trying to be
* refactor: xml-docs and XAEThrowThingsAroundSystem now uses circle and not box for prying tiles
* refactor: xml-docs, minor refactors
* revert XenoArtifactCommand.ArtifactPrototype being PrototId
* refactor: simplify the way ExtractionResearchLabel works
---------
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>