mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 04:57:57 +01:00
7f2c1af3ae
## About The Pull Request Played around with fishing and aquariums the other day. While it has come a long way, aquariums are still a pain in the ass in many ways and there are still things that don't work as intended as well as some pet peeves. This PR: - removes code that didn't work to begin with (rotating the fish when mounted on for fish trophy wallmounts) - fixes the predator and necrophage traits triggering when the fish is NOT hungry and on fishes that are bigger than the not-so-hungry fish, rather than smaller. - Add an examine line to fish tanks when full. - Fixes evolution probability for self-reproducing fishes (purple sludgefish should be 1 in 20, not 1 in 40) - Fixes fish analyzers not being usable on equipped/held items. - Nit with examine lines for fishing rods. - Experiments handler devices won't announce when an experiment that they cannot perform is completed. The big exception is the generic experi-scanner. This means fish analyzers and operating computers will no longer bug you about material scan experiments being completed. - the ping sound from using lures should be a smidge louder and can be heard from more than 1 tile away. ## Why It's Good For The Game Issues with fishing and aquariums mainly, also a smidge of a code improvement for experiment handlers. ## Changelog 🆑 fix: Fixed some fishes trying to eat other (bigger) fish while not hungry. Also a nit with purple sludgefish being a bit too rare. fix: Fixes fish analyzers not working with held or equipped fish or aquariums (not in your backpack). balance: Fish analyzers and operating computers no longer announce completed experiments that they aren't compatible with. balance: the ping sound from using fishing lures should be a smidge louder and can be heard from more than 1 tile away. qol: Examining fish tanks (the item) when they're almost full will warn you about it. /🆑
44 lines
2.5 KiB
Plaintext
44 lines
2.5 KiB
Plaintext
#define EXPERIMENT_CONFIG_ATTACKSELF "experiment_config_attackself"
|
|
#define EXPERIMENT_CONFIG_ALTCLICK "experiment_config_altclick"
|
|
#define EXPERIMENT_CONFIG_CLICK "experiment_config_click"
|
|
#define EXPERIMENT_CONFIG_UI "experiment_config_ui"
|
|
|
|
/// Boolean stage, complete/incomplete. No specific progress to report.
|
|
#define EXPERIMENT_BOOL_STAGE "bool"
|
|
/// Integer stages, should be whole numbers with total being included
|
|
/// to support rendering ``value of total``, or something akin to it.
|
|
#define EXPERIMENT_INT_STAGE "integer"
|
|
/// Float stages, the value should be between 0 and 1 representing percent completion
|
|
#define EXPERIMENT_FLOAT_STAGE "float"
|
|
/// Detail stages, only provide more textual information and have no inherent progress
|
|
#define EXPERIMENT_DETAIL_STAGE "detail"
|
|
|
|
/// Macro for defining a progress stage
|
|
#define EXPERIMENT_PROGRESS(type, desc, values...) list(list(type, desc, values))
|
|
/// Macro for boolean stages
|
|
#define EXPERIMENT_PROG_BOOL(desc, complete) EXPERIMENT_PROGRESS(EXPERIMENT_BOOL_STAGE, desc, complete)
|
|
/// Macro for integer stages
|
|
#define EXPERIMENT_PROG_INT(desc, complete, total) EXPERIMENT_PROGRESS(EXPERIMENT_INT_STAGE, desc, complete, total)
|
|
/// Macro for float stages
|
|
#define EXPERIMENT_PROG_FLOAT(desc, complete) EXPERIMENT_PROGRESS(EXPERIMENT_FLOAT_STAGE, desc, complete)
|
|
/// Macro for non-valued stages, details for exp stages
|
|
#define EXPERIMENT_PROG_DETAIL(desc, complete) EXPERIMENT_PROGRESS(EXPERIMENT_DETAIL_STAGE, desc, complete)
|
|
|
|
/// Destructive experiments which will destroy the sample
|
|
#define EXPERIMENT_TRAIT_DESTRUCTIVE (1 << 0)
|
|
/// Used by scanning experiments: instead of storing refs or be a number, the list for scanned atoms is used as typecache
|
|
#define EXPERIMENT_TRAIT_TYPECACHE (1 << 1)
|
|
|
|
/// Will always attempt to action every experiment eligible with a single input,
|
|
/// no experiment selection required
|
|
#define EXPERIMENT_CONFIG_ALWAYS_ACTIVE (1 << 0)
|
|
/// Experiment handlers with this flag will not automatically connect to the first techweb they find
|
|
/// on initialization
|
|
#define EXPERIMENT_CONFIG_NO_AUTOCONNECT (1 << 1)
|
|
/// Experiment handlers with this flag won't pester the user of objects not pertinent to the test or if no experiment is selected
|
|
#define EXPERIMENT_CONFIG_SILENT_FAIL (1 << 2)
|
|
/// Experiment handlers with this flag will bypass any delay when trying to scan something
|
|
#define EXPERIMENT_CONFIG_IMMEDIATE_ACTION (1 << 3)
|
|
/// Experiment handlers with this flag will announce when an experiment is completed even if it isn't compatible with them.
|
|
#define EXPERIMENT_CONFIG_ALWAYS_ANNOUNCE (1 << 4)
|