* Conveyor optimisations
- Optimise movement for moving stuff. Better flags + less resolves + slapped parallelrobustjob on it.
- Sleeping for entities getting conveyed into walls.
* Blocker version
* Finish
* Final
* Fix conveyor power mispredict
* Bagel save
* Revert "Bagel save"
This reverts commit 1b93fda81fb852d89b89b0beae0b80f8a61165f2.
* Conveyor resave
* 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
* Fix prediction
* Mob movement rewrite
* Bandaid
* Working version
* Tentatively working
* Friction to fix cornering
* More fixes
* Refactor mob movement
Trying to cleanup relay ordering / tryupdaterelative being cooked, purge ToParent, and fix all the eye rotation shenanigans.
* Building
* Re-implement jetpacks
* Reorganise weightless movement
* More work
* Fix camera
* reh
* Revert bagel
* Revert this
* Revert held move buttons
* Puddles work but are unpredicted and unoptimized
* Fixes
* Puddle code...
* Actually dirty the slipComp for real
* Sliding component done plus an extra suggestion from ArtisticRoomba
* Atomized Commit
* Added Friction field to Reagent Prototype per design discussion
* Cleaned up Working Commit
* a
* Delete stinkers
* Fix this code smell
* Reviewed
* Funky re-save
* Our conveyance
* Better conveyor sleeping
* Remove this
* Revert "Better conveyor sleeping"
This reverts commit f5281f64bbae95b7b9feb56295c5cf931f9fb2e1.
* Revert that
Way too janky
* Also this
* a
* Working Commit - Still a lot to do
* Acceleration refactor
* Minor jetpack cleanup
* frictionnomovement no longer nullable
* Shared Mover Feels 99% done
* OffGrid/Weightless/Throwing Friction saved
* Fix merge conflicts
* Fix a debug assert
* Final Commit for today
* Some fixes
* Actually use those CCVars Properly
* Need to fix throwing
* Second to last Commit for real
* Jetpack bug fixed
* Jetpack bug fixed
* Test fail patch
* Small patch
* Skates Component cleanup + Bring Accel back to 5 (oops)
* Fix test fail oops
* yaml cleanup make dragons not fat
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add stamina damage resistance
* Probably starting a civil war within the community.
* Tweak some values, my chart was outdated.
* Tone down the values
* Allow a way to bypass the resistances, which forks downstream can use.
* Apply suggestions from code review
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Comment out the changes to non-deathsquad suits.
* minor text fix e
* review
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: Milon <milonpl.git@proton.me>
* Fire extinguishers now put out candles
This did not actually require any changes to flammable or extinguishers directly, the only necessary changes were to make the collision actually work.
Vapor entities (also used for fire extinguishers) now have a collision layer, so they can hit items.
Added a new FlammableSetCollisionWake component to actually enable collision on candles while they are lit, because otherwise CollisionWake on entities gets in the way too.
* Extinguishing items is now relayed to held/worn items
This means held candles get extinguished too.
Involved moving the core logic of ExtinguishReaction into an event so that it can be relayed via the existing hand/inventory relay logic.
* Add helper functions for subscribing to relayed events.
Use these in FlammableSystem
* Make extinguishers work on cigarettes too
A bunch of renaming to make the rest of my code work with SmokableComponent
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* 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
* add notification for dependent wearables being dropped
* fix dropped item popup redundancy
- did a check to see if any item was dropped, instead of making a notification for each item being dropped.
* change popup to client-only variant
* fix redundant messages, add plural locale string
* fix conventions, fix locale input to be more intuitive
---------
Co-authored-by: Justin <justinbrick1@gmail.com>
* Everything but the submodule
* stuff I forgot
* heat
* missed lights
* behonky
* LocId
* I guess it was a skill issue?
* predicted audio
* It works with lights now
* Borg equality
* Gorilla gauntlet grants protection from anomaly returned damage when attacking it
* woops, there we go
* NONE
* Use DamageModifierSets, remove Behonker damage
* Reviews dealt with
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* Add BreakOnDropItem, update do afters, remove unnecessary declarations
* bola
* Changed my mind about the nuke
* gennies too
* Make the comments more clear.
* Sorry for the trailing commas
* Revert "Sorry for the trailing commas"
This reverts commit e60fd9a30977393df3344948e6d5c0ce035723cd.
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* split logic into own system
* add support for different size displacement maps
* some clothes may not use displacement maps
* displacement maps spport hand sprites
* Update DisplacementMapSystem.cs
* rename things
* fuck stencilmask
* fix bugs
* no masks
* Update jumpsuits.yml
* fix species specific sprites
* Update ClothingSystem.cs
* shoes + ears displacement, some bugfix
* Update DisplacementMapSystem.cs
* Make wielding automatically drop the item on your other hand
* Fix docs
* Remove redundant parameter
* Fix not deleting virtuals on fail
* Make count freeable hands method
* Add popup when dropping item
* Hardsuits and softsuits count as having shoes for step triggers
* Add softsuit tag prototype
* Change to suitEVA tag
* Get rid of softsuit tag, found suitEVA tag
* Full pass of ShoesRequiredStepTriggerImmune
* Adds check to outerClothing for ShoesRequiredStepTriggerImmune
* return
* fuck Dionas
* Convert to comp, space dragons immune as well
* Merge conflict
* Merge conflict
* fix leftover tags
* empty spaces
* turns out the dragon didn't need it
* minor optimization
* Add access for system, add comp to baseShoes, check slotflags for every slot besides pockets
* fix
* fuck it we ball
---------
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Requires https://github.com/space-wizards/RobustToolbox/pull/5023
This uses the new engine features (above) to add a displacement map shader. This allows deforming a sprite based on another sprite.
Primary use case is automatically adapting human clothing sprites to different species, something we want to make species like Vox a reality.
A basic example of wiring this up with Vox has been added. The system is however incredibly simple and **will** need more work by a content developer to select and toggle displacement maps when appropriate. I am leaving that to somebody else. For example right now the displacement map is applied even if a species already has custom-fit sprites for a piece of clothing, such as the grey jumpsuit for Vox.
Basic Aseprite plugins to help with authoring displacement maps have also been made.