Conversation
…into spore_reproduction
|
One game design thought applying to this and any other reproduction types that use specific custom cell types: Instead of labelling one of the cell types in the normal list as "the spore", it might eventually make more sense to have the spore cell type be an exclusive type that is shown only on the reproduction tab with its "edit" button located on there as well. Not sure if that would require a different back-end. |
|
It would. And at least backend-wise it would be a lot cleaner to ensure that the species list of cell types must always contain the spore. Though we could add additional restrictions like being unable to place that type in the body plan. And well the GUI would need a lot of duplication and special logic if the spore type would be shown in a very special way so I would like (if that is done) that to be totally separated to its own PR so that its UX merits and code effects can be reviewed in isolation. |
There was a problem hiding this comment.
Is this file change absolutely necessary or? I could also resave this on my computer and see what happens then.
There was a problem hiding this comment.
Not necessary for this PR; it's just that this change fixes the constant warnings that Godot was printing
There was a problem hiding this comment.
I guess I should try saving this on my computer as well (as I make the Thrive releases it's usually best if the UIDs as cached on my computer are used as things sometimes get out of sync). I'll try to remember to do this a bit later once this PR is close to being merged.
|
Reading the way more specialization effects PR that this spore to real cell transformation needs to re-apply the correct specialization bonus for the cell. Edit: and for example this code in the MicrobeStage needs to take into account the main cell after exiting the editor not necessarily being the right one due to spore type, I think I don't remember seeing this code being updated in this PR: environmentalEffects.ApplyEffects(resolvedTolerances,
earlySpeciesType.MulticellularCellType.SpecializationBonus *
earlySpeciesType.Species.GetAdjacencySpecializationBonus(0), ref bioProcesses); |
… in its cell type list
|
One more thing I just noticed when modifying some other code is that I think this needs to modify |
| ReproductionMethod = ((MulticellularSpecies)species).ReproductionMethod; | ||
| UpdateReproductionMethodChoice(); | ||
|
|
||
| SporeCellType = ((MulticellularSpecies)species).ModifiableSporeCellType; | ||
| UpdateSporeCellDropdown(); |
There was a problem hiding this comment.
Wouldn't these two things logically belong into UpdateGUIAfterLoadingSpecies ?
| UpdateCellTypesSecondaryInfo(); | ||
| } | ||
|
|
||
| public void OnReproductionMethodSelected(int selectedOption) |
There was a problem hiding this comment.
I think these two are GUI callbacks? So they should go into CellBodyPlanEditorComponent.GUI.cs rather than this main partial class file.
| } | ||
| } | ||
|
|
||
| private void UpdateReproductionMethodChoice() |
There was a problem hiding this comment.
Also these two seem to be about updating the GUI state again so should go into CellBodyPlanEditorComponent.GUI.cs
|
I think the code is almost perfect now (just some comments about moving code around). I know that this is already a big change but I had one more functionality thought: I assume that AI members of the player species spawn fine (either as spore or a more grown colony), and as a result I think the microbe AI should trigger the germination action under some conditions, right? Though I guess if AI members of the species can spawn in as fully grown colonies it is not absolutely necessary to right away update the microbe AI. |
Brief Description of What This PR Does
Adds a spore reproduction method for the multicellular stage. With it, the player spawns as a spore cell (choosable in the editor) and can turn into a normal cell, capable of growing a colony, by using an ability.
Related Issues
A roadmap item
Progress Checklist
Note: before starting this checklist the PR should be marked as non-draft.
break existing features:
https://wiki.revolutionarygamesstudio.com/wiki/Testing_Checklist
(this is important as to not waste the time of Thrive team
members reviewing this PR). This includes gameplay testing by the PR author.
styleguide.
Before merging all CI jobs should finish on this PR without errors, if
there are automatically detected style issues they should be fixed by
the PR author. Merging must follow our
styleguide.