Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implements additional procs for datum/plant_gene_strain and enables seeds to spawn with active gene strains #14616

Merged
merged 3 commits into from
Jul 19, 2023

Conversation

M-Earthfire
Copy link
Contributor

@M-Earthfire M-Earthfire commented Jun 17, 2023

[hydroponics][balance]

About the PR

This PR changes a few procs associated with /datum/plant_gene_strain and implements additional ones which enable additional plant gene strains to have more special behaviour. Also, this PR changes some internal stuff sorrounding gene strains and apply slight modifications to make gene strains work more intuitive.

firstly, this removes the passing of a datum/plant to proc/HYPaddCommut. This passed variable was unused in the proc at all and could even lead to problems if the proc is used before a proper planttype was assigned. In general, it now only gets passed the plantgenes it actually manipulates

proc/HYPremoveCommut was added to be able to forcefully remove gene strains from plants.

4 new procs were implemented to /datum/plant_gene_strain:

proc/on_addition now enables to make changes to the respectable plantgenes whenever the gene was added to a fresh generation of plant. It won't be called when a proc gets passed along a splice chain (e.g. splicing, seeds from harvesting)

proc/on_passing enables changes when gene strains get passed along the generational chain (e.g. splicing or harvesting)

proc/on_removal enables changes when a gene strain is removed by HYPremoveCommut

proc/changes_after_splicing enables changes when a seed containing this gene strain gets spliced.

To show these procs, 3 gene strains are added that are not implemented in any plant yet. "Overpowering Genome" and "Accepting Genome" make all plant genes of the seed dominant/recessive. "Temporary Spliceability" removes itself once the seed containing it gets spliced and replace itself with "Splice Disabler".

Additionally, var/list/innate_commut was added to datum/plant. This enables seeds to be granted these commuts in that list whenever generic_seed_setup is called with the new variable "has parent" set to FALSE. This is always the case when a seed is set up without a parent it could receive stats from (e.g. from the vendor).

Using this new variable, any plant that can receive the "splice disabler" plant strain with a 100% chance now gains this strain directly when vendored. The chance for splice disabler was set to the standard 10%.

Also, superior and inferior quality now work with negative potency now how you would expect it. e.g. superior quality makes negative potency 20% less bad.

Why's this needed?

This PR adds additional flexibility to add more gene strains to plants. Also, it enables to diversify the use of gene strains for certain plants by making them be able to spawn on the seeds directly.

Changelog

(u)Lord_Earthfire
(+)Seeds of hydrangea, birds of paradise and gardenia plants now start with the splice disabler gene strain rather than gaining these directly after planting/mutating.
(+)Superior and inferior quality gene strains now work with negative potency values, e.g. superior quality making negative potency less bad.

@github-actions github-actions bot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Jun 17, 2023
@keywordlabeler keywordlabeler bot added A-Hydroponics Deals with plants, hydro, etc. C-Balance Balance changes, buffs and nerfs labels Jun 17, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Jul 2, 2023

This PR has been inactive for two weeks, and has been automatically marked as stale. This means it is at risk of being auto closed in another week. Please address any outstanding review items and ensure your PR is finished. If you are auto-staled anyway, ask developers if your PR will be merged. Once you have done any of the previous actions then you should request a developer remove the stale label on your PR, to reset the stale timer. If you feel no developer will respond in that time, you may wish to close this PR youself, while you seek developer comment, as you will then be able to reopen the PR yourself.

@github-actions github-actions bot added the S-Stale An inactive PR that has had no updates in the past two weeks label Jul 2, 2023
@github-actions
Copy link
Contributor

This PR has been inactive for two weeks, and has been automatically marked as stale. This means it is at risk of being auto closed in another week. Please address any outstanding review items and ensure your PR is finished. If you are auto-staled anyway, ask developers if your PR will be merged. Once you have done any of the previous actions then you should request a developer remove the stale label on your PR, to reset the stale timer. If you feel no developer will respond in that time, you may wish to close this PR youself, while you seek developer comment, as you will then be able to reopen the PR yourself.

@github-actions github-actions bot added the S-Stale An inactive PR that has had no updates in the past two weeks label Jul 19, 2023
@ZeWaka ZeWaka merged commit 5aeeb9a into goonstation:master Jul 19, 2023
21 checks passed
@M-Earthfire M-Earthfire deleted the genestrain_utilities branch July 19, 2023 06:10
github-actions bot pushed a commit that referenced this pull request Jul 19, 2023
@Studenterhue Studenterhue added the E-Add-To-Wiki A PR that will require changes to the wiki label Jul 20, 2023
@Studenterhue Studenterhue removed the E-Add-To-Wiki A PR that will require changes to the wiki label Sep 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Hydroponics Deals with plants, hydro, etc. C-Balance Balance changes, buffs and nerfs S-Stale An inactive PR that has had no updates in the past two weeks size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants