* add intrinsic store, replace revenant store with it.
* migrate PAI and also move to shared where possible
* fix typos and clean up... intrinisic
* oops, hopefully fixes test
* Move to StoreSystem and ActionGrant
* documentation and remove thing
* review
---------
Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Adds Action DoAfter Events
* Adds DoAfterArgs fields to DoAfterComp
* Adds a base doafter action
* Adds Attempt action doafter logic
* Adds doafter logic to actions
* Changes Action Attempt Doafter and action doafter to take in Performer and the original use delay. Use delay now triggers when a repeated action is cancelled.
* Readds the TryPerformAction method and readds request perform action into the action doafter events
* Adds a force skip to DoAfter Cancel so we can skip the complete check
* Adds a Delay Reduction field to the comp and to the comp state
* Fixes doafter mispredict, changes doafter comp check to a guard clause, sets delay reduction if it exists.
* Cancels ActionDoAfter if charges is 0
* Serializes Attempt Frequency
* Comment for rework
* Changes todo into a comment
* Moves doafterargs to doafterargscomp
* Adds DoAfterArgs comp to BaseDoAfterAction
* Removes unused trycomp with actionDoAfter
* Replaces DoAfterRepateUseDelay const with timespan.zero
* Removes unused usings
* Makes SharedActionsSystem partial, adds DoAfter partial class to ActionSystem, moves ActionDoAfter logic to the SharedActionsSystem.DoAfter class
* Cleanup and prediction
* Renames OnActionDoAfterAttempt to OnActionDoAfter, moves both to Shared Action DoAfter
* Removes ActionAttemptDoAfterEvent and moves its summaries to ActionDoAfterEvent. Converts OnActionDoAfterAttempt into TryStartActionDoAfter
* Removes Extra check for charges and actiondoafters
* Sloptimization
* Cleanup
* Cleanup
* Adds param descs
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Add the chameleon controller implant
* address the issues (Git please dont kill me)
* Address the review and fix some merge conflicts!
* Cleanup
* Add use delay
* Silly mistakes
* Making a PR at 2 am: Gone wrong
* Predict use delay and disable the buttons until you can choose another
* First phase custom clothing
* Better system, now relays to agent id and mindshield. Chameleon loadouts are a lot better to work with as well
* Address the review! No more evil goto
* Slams way is better I should have read more closely xD
* Some of the jobs
* Add to Cargo, CentComm, Service, Passenger, Ninja, Cluwne, Wizard + Minor changes to existing; Add chameleon to bandanas, medals, jugsuits and HUDs
* Add everything else
* Fix test
* Job name
* This looks better
* Add department organization
* Minor cleanup
* Added some mindshields
* Remove redudent comment and change funcion name to be clearer
* Fix cluwne outfit
* fix merge conflicts
---------
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
* 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>
* Made paramedic void suit into proper hardsuit (was softsuit before)
Added light to the paramedic void suit helmet
Added siren with light to the paramedic void suit
* Changed paramed helmet flashlight icon and textures
* fixed siren action icon
* BigAction
* updated icon-siren.png
* fixed not being able to add it to containers (like when it parented off eva suit)
* changed light to cyan, made it less brighter and reduced siren volume
* changed ambulancesiren.ogg to a different one (hopefully less hard on the ears)
* created ClothingHeadEVAHelmetWithLightBase in base_clothinghead.yml
replaced ambulancesiren.ogg (again, this time with better fading on the audio loop)
credited myself for the siren icon art
reverted parents to original (but kept it in hardsuits yml, since void suits are light hardsuits) - [ the adoption was revoked 😢 ]
fixed indentations
removed un-used sprite and sprite state
* final final siren sound change (for real this time?)
* fixed license type
* final FINAL final (for real this time, please?) ambulancesiren.ogg change
* ContainerContainerContainerContainerContainerContainerContainerContainerContainerContainerContainerContainerContainerContainer
* attributions updated (turns out, i have to give myself credit when i make stuff);
fixed identation;
moved action to Action/types.yml.
* hopefully fixed everything this time
* sync shenanigans
* final final final final final for real final ambulancesiren.ogg change pinky promise this time and if you don't like it, make a new PR yourself and offer a new sound
* typo
* done the suggested changes
* cleaning up some forgotten stuff :p
* oops, cleaned up a bit too much
* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
* Update Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
* Update Resources/Prototypes/Entities/Clothing/Head/eva-helmets.yml
* Update attributions.yml
* evil web edit never again
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
* Fake Mindshield (With some bad sprites)
- Add FakeMindshield System and Component
- Add FakeMindsheildImplantSystem and Component
- modify ShowMindShieldIconsSystem to check for FakeMindshields
- add all supporting yaml for the Implants, action and uplink
- add loc file stuff
- add unfinished sprites
* Cleanup, add to thief toolbox, remove metagame
- Move Implant sameness check to AFTER the implant DoAfter
to prevent instant identification of Deception Implants
- cleanup the systems and components
- add the fake mindshield to the Thief toolbox
* part 1 of fixing the folder problem
* Make the fakemindshield sprite folder lowercase
* CR - Move ImplantCheck into shared, cleanup
- Moved ImplantCheck and eventsubscription into Shared
- Remove Client/Server extensions of FakeMindshieldImplantSystem and
FakeMindShieldSystem and make shared Sealed
- make OnToggleMindshield Private, use the event!
* CR - Cleanup extra lines, fix some Prototype
- cleaned up extra liens in ImplanterSystem and
SharedFakeMindshieldSystem from when i was developing
- Uplink catalog no longer lists the implant in 2 spots,
only implants now, also uses the On state action icon
- added a comment about why it's reraising the action event
rather than directly interacting with the FakeMindshield Component
* Fake Mindshield CR:
- Added a comment about IsEnabled
- moved OnFakeMindShieldToggle to Entity<> from Uid, Comp
- fixed some formatting in uplink_catalog
* CR - Add a bit more comment
* Borg type switching.
This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.
New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.
These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.
The modules that each borg type starts with:
* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning
Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.
Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.
The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.
Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.
The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.
There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.
* Fix sandbox failure due to collection expression.
* Module tweak
Fix salvage borg modules still having research/lathe recipes
Engie borg has regular tool module, not advanced.
* Fix inventory system breakage
* Fix migrations
Some things were missing
* Guidebook rewordings & review
* MinWidth on confirm selection button
* Act
* Adds Jaunt ECS and related prototypes
* Adds jaunt sounds
* Adds enter and exit sound support to polymorphs
* Updates jaunt description
* Adds jaunt action sprite and changes jaunt polymorph to use it
* Adds Jaunt and upgrade to the wizard grimoire
* Makes base mob jaunt parent off of incorporeal and basemob, adds blue ghost sprite for ethereal jaunt
* Update Resources/Locale/en-US/store/spellbook-catalog.ftl
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Polymorph/PolymorphPrototype.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Polymorph/PolymorphPrototype.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* removes meta changes
* removes other meta changes
* adds context menu and a description to basemobjaunt
* comments for jaunt component and adds on component shutdown method
* Update Content.Shared/Jaunt/JauntComponent.cs
* Update Content.Shared/Jaunt/JauntComponent.cs
* Update Content.Shared/Jaunt/JauntComponent.cs
* Update Resources/Prototypes/Catalog/spellbook_catalog.yml
---------
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Updated sprites for AI HUD
* Epic test fail
* Merged AGhost actions and AI actions together again.
* Seperate comms and bugfix. Fixed broadcast.
* Stuffs
* Update station_ai.yml
* Update station_ai.yml
* :|
* Update silicon.yml
* oopsie daisy
* stuff
* further stuff
* oh my god
* Appeasing the gods
* 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>
* Brings over changes from the original magic refactor PR
* Adds Master Spellbook, spellbook categories, WizCoin currency, and locale
* Wiz€oin™
* Adds currency whitelist to Spellbook preset, grants contained actions on action added.
* Adds grant contained action and remove provided action.
* adds a way for actions to be upgraded to the store
* Adds Fireball 3 and fixes action upgrade logic so that it checks if the action can level or if the action can upgrade separately
* Fixes upgrade logic in ActionUpgradeSystem to allow for level ups without an actual upgrade. Fixed action upgrade logic in store system as well
* Removes current action entity from the bought entities list and adds new or old action entity
* Removes Current Entity
* Removes old comments, fixes TransferAllActionsWithNewAttached
* Removes TODO
* Removes Product Action Upgrade Event
* reverts changes to immovablerodrule
* Removes stale event reference
* fixes mind action grant logic
* reverts shared gun system change to projectile anomaly system
* forgor to remove the using
* Reverts unintended changes to action container
* Adds refund button to the store
* Refreshes store back to origin.
* Refund with correct currency
* Init refund
* Check for terminating and update interface
* Disables refund button
* Removes preset allow refund
* dont refund if map changed
* adds refunds to stores
* Adds method to check for starting map
* comments, datafields, some requested changes
* turns event into ref event
* Adds datafields
* Switches to entity terminating event
* Changes store entity to be nullable and checks if store is terminating to remove reference.
* Tryadd instead of containskey
* Adds a refund disable method, disables refund on bought ent container changes if not an action
* Removes duplicate refundcomp
* Removes unintended merges
* Removed another unintended change from merge
* removes extra using statement
* readds using statement
* might as well just remove both usings since it won't leave the PR
* Fixes Action upgrades from stores
* Changes to non obsolete method uses
* Shares spawn code between instant and world
* Adds action entity to action event, adds beforecastspellevent, adds spell requirements to magic component
* puts prereq check in spell methods, sets up template code for before cast event
* checks for required wizard clothes
* Networks Magic Comp and Wizard Clothes Comp. Renames MagicSpawnData to MagicInstantSpawnData.
* Removes posdata from projectiles
* Speech > RequiresSpeech
* Fixes ActionOnInteract
* checks for muted
* popup for missing reqs
* Validate click loc for blink spell
* Checks if doors are in range and not obstructed before opening
* Check ents by map coords
* Adds speak event
* Comments spellbooks
* Removes comments
* Unobsoletes smite spell
* Invert if
* Requirements loc
* Fixes spell reqs
* Inverts an if
* Comment updates
* Starts doafter work
* Removes doafter references
* Balances fireball upgrades to be more reasonable
* Enables refund on master spellbooks
* Spells to do
* update spellbook doafter
* knock toggles bolts
* Touch Spell comments
* Comments for pending spells
* more comments
* adds spider polymorph to spellbook
* TODOs for spells
* reorganizes spellbook categories and adds wands
* fixes spacing and adds limited conditions
* commented owner only for future store PR
* reenables owner only for the grimoire
* fixes grimoire sprite
* Adds wizard rod polymorph
* summon ghosts event
* Moves rod form to offensive category
* Adds charge spell and loc for rod polymorph
* Oops forgor the actual chages
* Item Recall comment
* Fixes UI
* removes extra field for wizard rod
* Cleanup
* New Condition (INCOMPLETE)
* Fix linter
* Fix linter (for real)
* fixed some descriptions
* adds regions to magic
* Adds a non-refund wizard grimoire, fixes blink to deselect after teleporting, reduces force wall despawn time to 12 seconds
* removes limited upgrade condition
---------
Co-authored-by: AJCM <AJCM@tutanota.com>
* General slime improvements
* Finish morphing
* oops 2x2 not 3x3
* actually lets ball - 2x3 inventory
* Last two things on the todo list
* .\RobustToolbox\
* JUST COMPILE
* fix tests 2.0
* fix tests 3.0
* Do reviews
* minor change
* guideboob
* more
---------
Co-authored-by: Kara <lunarautomaton6@gmail.com>
* Fix SCRAM implant not being usable while in cuffs. Also fix freedom implant from working while dead/crit as a side effect
* Move check up to apply to all actions and do thing I forgor to do before
* Change check into an ActionBlocker check that also checks whether the user is sleeping.
* Make checking for Consciousness the default for actions
Went through and chose what I believe to be sensible defaults for actions that had CheckCanInteract.
* Fix typos my beloved
I had an unbelievable skill issue
* Fix major skill issue
* add ActionAttemptEvent
* add ConfirmableAction compsys
* make suicide actions confirmable
* use new trolling techniques
* better query and dirty them
* death
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Porting & implementation
* Fix two stupid errors
* Human not humans
* fix audio path
* Fix test fails & update cooldown
* Work on reviews & test fail
* Rework nymph organ system.
* Make the nymph organs nospawn.
* IsDeadIC