* The fishing portal generator expansion (plus skill-chip) (#78203)
## About The Pull Request
This is a PR I worked on last month, but had to put on hold while
dealing with some pressing issues with fishing feature, minigame and
other stuff, and because I had to atomize out some of the stuff
previously present here.
I've expanded on the fishing portal generator to do something other than
dispense guppies and goldfishes. It now has multiple settings,
unlockable by performing scanning experiments for fish types, available
from the get go, which also reward a meager amount of techweb points
upon completion. The generator can now be built too. No longer it has to
be ordered from cargo.
It can also be emagged for the syndicate setting, tho right now it only
dispenses donkfish and emulsijack, both otherwise impossible to get
outside of... exodrone adventures.
The advanced fishing rod now comes with an experiment handler component,
specific to the fish scanning experiment, that automatically scans
fished content. The node to get it now requires 2000 points and the
first fish scanning exp to be unock.
A new skillchip has been added, which adds a trait that changes the icon
of the fish shown in the minigame UI, giving some clues on what the
reward will be. The same trait is also gained by reaching the master
(penultimate) level of the fishing skill.
A new fish type has been added, with its own quirks. One of these quirks
included temporarily switching movement direction of the bait.
Currently, it can only be fished in the hyperspace and randomizer
setting of the fishing portal.
Screenshots:


## Why It's Good For The Game
The fishing portal generator is but a stale and underdeveloped prototype
of the fishing feature right now, so much I was thinking of removing it
at first. However, we also have a lot of fishes which are pretty much
unfishable, so I came up with the idea of adding new portal settings
that allow people to actually get them.
As for the skillchip and trait, it's but an extra to both the vending
machine in the library and the fishing skill itself, which has an
overall humble impact on the minigame.
## Changelog
🆑
add: Expanded the fishing portal generator. It now comes with several
portal options that can be unlocked by performing fish scanning
experiments, which also award a modest amount of techweb points.
balance: The fishing portal generator is now buildable and no longer
orderable. The board can be printed from cargo, service and science
lathes.
balance: Advanced fishing tech is no longer a BEPIS design. It now
requires the base fish scanning experiment and 2000 points to be
unlocked.
add: The advanced fishing rod now comes with an incorporated
experiscanner specific for fish scanning.
add: Added a new skillchip that may change the icon of the "fish" shown
in the minigame UI to less generic ones. Reaching master level in
fishing also does that.
qol: The experiment handler UI no longer shows unselectable experiments.
/🆑
* The fishing portal generator expansion (plus skill-chip)
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Machines can now be pried open multiple times and maintain their initial densities (#74163)
## About The Pull Request
These changes fix how machines are pried open with crowbars. Currently,
most machines can be pried open, but many of them have no method for
being closed again. This means they can be pried once, and then never
again (as their internal logic has them stuck in an "open" state).
Additionally, the densities of these machines is also inconsistent, as
density is tied to the procs for opening/closing machines (open =
non-dense, closed = dense). Thus, these new changes allow desired
densities to be passed to `open_machine()` and `close_machine()`, as
well as `default_pry_open()`, meaning that atypical machine densities
can be maintained (e.g. machines that should remain dense when open, or
non-dense when closed).
I've also added a `close_after_pry` boolean parameter to the
`default_pry_open()` proc, which determines whether to immediately close
a machine after opening it. This is useful for machines that don't
really have a use case for remaining open, often lacking a sprite to
represent this state as well.
* Note: Opening and immediately closing machines with this boolean will
still drop their contents onto the floor, but will now immediately
"close" in their logic, allowing for further prying attempts in the
future.
It's worth noting that this implements default density values for these
procs, which match the existing behavior for machines, so as to
(hopefully) not disrupt existing or expected machine behavior.
Two caveats to these changes currently exist:
1. On machines that immediately close after prying, the prying action
can now be spammed to the chat with repeated clicking. I'm uncertain if
this needs some sort of spam protection or if it's fine as is.
2. I've only been able to manually test this code. I'd love to write
unit tests for it, as it affects a lot of different machines, but don't
know where to begin with DM Unit Testing (or which files would be good
examples to reference in the code base).
* Note: I did manually test each and every machine that calls
`default_pry_open()` and they all seem to be working correctly. (Except
for `obj/machinery/plumbing/sender`, but that doesn't seem to need
prying, as it has no contents to drop, only reagents.)
As always, let me know if any improvements/changes should be made.
This closes#26833.
## Why It's Good For The Game
These changes allow crowbar prying to correctly occur multiple times on
any machine, which is intended behavior. It prevents player confusion
that could occur when a machine couldn't be pried open a second time
during a shift, even though it had previously been pried before, forcing
players to question themselves. (Are they missing something? Did they
perform the action a different way last time? Is the machine actually
still powered on instead of off? Etc.)
These changes also maintain the correct density for machines after
prying, preventing scenarios where a machine might behave differently
once it had been pried open. (An example of this was being able to walk
through a smartfridge after prying it open.) Additionally, players are
no longer required to know/use workarounds (such as machine disassembly)
to retrieve a powered-off machine's contents.
Overall, these changes improve consistency around machines, creating
more scenarios where they behave as players would expect.
## Changelog
🆑
fix: machines can now be pried open more than once.
fix: machines now have the correct density when pried open.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Machines can now be pried open multiple times and maintain their initial densities
* wew
---------
Co-authored-by: Antonio Tosti <5588048+atosti@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
Adds Sabrage (#70755)
This PR adds an interaction to champagne bottles that allows the user to
pull off the cork with an edged (for code purposes, sharp) item. The
sharper the item, the better your chance is to pull the stunt off.
Minimum force is 5, which lets you do it with a captain's pen, for
instance. It's slower than just removing the cork by hand, as to
simulate the player removing the foil before taking the swing. Heads of
staff get a +20% chance to succeed due to being officers in some
capacity. A skillchip that can be bought from the Library Play Room
vendor increases the chance by +35%. Failing the stunt will smash the
bottle in your hands, spilling the contents all over you. This will
produce a bottle with the neck broken off, instead of its bottom.
Pulling the stunt off provides a weak mood buff for the user, and a
weaker mood buff for any witnesses. However, if someone else pulls the
sabrage off after you, you will get your success buff removed. Think of
it like pulling any other stunt and challenging someone else to do it,
only for them to succeed as well. Makes you bitter, doesn't it? Failing
the stunt also produces a weak mood debuff to the user.
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
* BCIs are now stored in the manipulation chamber's contents, instead of nullspace (#70350)
Fixes a bug where MMIs would be sent into the nullspace room when in an MMI component inside of a BCI that is inserted into a BCI manipulation chamber.
Stores the BCI in the chamber's contents, instead of nullspace, allowing the MMI to talk, the BCI to still act as it would normally and overall just solves the issue and maybe some others alongside it.
Fixes#70349
* BCIs are now stored in the manipulation chamber's contents, instead of nullspace
Co-authored-by: RikuTheKiller <88713943+RikuTheKiller@users.noreply.github.com>
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Anomaly expansion - part 1 - Hallucination anomaly (#66392)
New anomaly, the hallucination anomaly. It has small bursts of hallucinations while alive followed by a big one in the moment of the end.
More anomalies are fun, i'm planning to add more of these
added the hallucination anomaly, spawnrate similar to the flux one, can spawn from the SM if eer are over 5000, can spawn when the SM delams (higher rate than the grav one), you can make the hallucination reactive armor
* Anomaly expansion - part 1 - Hallucination anomaly
* Update hud.dm
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Adds The Secret Brainwashing Technique-Chip (#62295)
Adds a skillchip found in maint that lets you put brains in washing machines, and scrub em back into good health. Brains now get maximum damage if put in a washing machine OTHERWISE.
VERY heavily inspired by this video:
https://www.youtube.com/watch?v=88po7PY14E8
> I believe having a brain successfully washed should give its brainmob an achievement for exposure of this feature.
can be done in a separate pr
* Adds The Secret Brainwashing Technique-Chip
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* REOPEN: REVERT: Changes faster fireman carrying from a trait on gloves to a skillchip (#58268)
Co-authored-by: SuperNovaa41 <supernovaa41@ protonmail.com>
* REOPEN: REVERT: Changes faster fireman carrying from a trait on gloves to a skillchip
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: SuperNovaa41 <supernovaa41@ protonmail.com>
* Moves chef's CQC area whitelist into the mapping config and better balances chef CQC as a result.
* a
* a
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Removes the Chameleon Skillchip from the game. (#57620)
* Removes the Chameleon Skillchip from the game.
* Update CentCom_skyrat_z2.dmm
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Changes fireman carrying from a trait on gloves to a skillchip (#56593)
* Changes fireman carrying from a trait on gloves to a skillchip
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Move origin of chef CQC to skillchip (#56437)
One more intrinsic property of a job that has been moved to an
extrinsic, that won't likely affect many rounds, but now makes more
aspects "lootable".
* Move origin of chef CQC to skillchip
Co-authored-by: coiax <yellowbounder@gmail.com>
* fixes various grammar issues (#56446)
fixes misspellings of 'permanently'
fixes grammar with bandaging wounds on yourself
* fixes various grammar issues
Co-authored-by: elle <54373583+dermondarble@users.noreply.github.com>
* Rework job food/alchohol benefits into livers (#55721)
By moving the "special behaviour" of something like security officers
eating donuts, or engineers losing radiation by drinking Screwdrivers,
into traits on the liver, this makes the "origin" of that behaviour more
clearly defined, rather than something that's attached to the mind of
the person. (For example, now if a wizard mindswaps into a Security
Officer, they too can now digest donuts good.)
Having this behaviour be partially visible to the more medically
inclined members of the station (like doctors, and the chaplain for
"entrails reading mystic" themes), means that a dismembered liver tells
a story to those who know how to read it.
Some jobs have more "benefits" than others, for example the only thing
that the liver of a Quartermaster gives them is a sense of inadequacy
when consuming royal carpet.
Clowns having livers that honk make them easier to identify, and plays
into the retconned "bike horns are clown livers lore"? Also, why not cut
out a clown's liver then honk them with it? You monster.
* Rework job food/alchohol benefits into livers
Co-authored-by: coiax <jack@billbuddy.co.uk>
* Tweak the RD's suplexing ability into a skillchip (#55870)
Although this doesn't change the power level of the Research Director,
it's important to rework "job title" checks into traits or something
similar.
Moving job title specific behaviour out of checks by job name and into
traits means there's more flexibility to trigger behaviour. If an admin
feels the station really needs the ability, they can var edit it in, or
spawn the chip.
* Tweak the RD's suplexing ability into a skillchip
Co-authored-by: coiax <yellowbounder@gmail.com>
* Move psychologist immunity from mind to skillchip (#55813)
Skillchips are neat, and this is the sort of "job-specific skill" that can remain job specific, but still gainable in the shift through in-universe means.
The logic behind the skillchip is that the supermatter is psychically sensitive, hence the hallucinations and headaches from looking at it and projecting the "correct mental aura" will help it calm down. But that is lore following mechanics.
Refactors skillchips to be able to automatically apply more than one trait.
* Move psychologist immunity from mind to skillchip
Co-authored-by: coiax <yellowbounder@gmail.com>
* Merge pull request #55834 from coiax/k33p-th4t-d15k
Move disk verification into skillchip
* Move disk verification into skillchip
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
* Re-assesses 99% of vending prices through Arconomics to match player resources and round-length. (#54715)
* The Re-pricening
* Rewritten and adjusted for paycheck defines.
* I made the map changes finally.
* And the refills too.
* "OH YEAH REPLACING IT ALL WITH DEFINES AND SCALING IT THE EXCEL DOCUMENT WILL BE EASY, ARCANE!!!"
* And the premium ones too.
* Accidently spoiled a future pr due to dme bleedover
* Re-assesses 99% of vending prices through Arconomics to match player resources and round-length.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* Refactors occupant to use setter (#54373)
This is to make it easier to attach a signal to the setting of the occupant.
* Refactors occupant to use setter
Co-authored-by: nicbn <nicolas.nattis@gmail.com>
* Machines now store their components in their contents. (#52970)
Machine parts are now located in the machine instead of nullspace.
* Machines now store their components in their contents.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Simple skills framework.
* Map changes.
* Adds skillchips to vendor
* Adds skill stations to the map.
* Circuitboards
* Fix typo
* Some minimal instability
* Fixes,tweaks etc
* Suggest better names or we'll end up with these.
* sharpness thing
* tgui build
* Makes wine from booze synthetizer show to wine tasters.
* Makes wine from dispenser have taste for wine tasters.
* Apply suggestions from code review
Co-authored-by: Rohesie <rohesie@gmail.com>
* Swaps to carbon var.
* wordy helper proc
* While i'm at it, other relaymoves
Co-authored-by: Rohesie <rohesie@gmail.com>