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

Feature/2212 exobiology enhancements #2649

Open
wants to merge 88 commits into
base: develop
Choose a base branch
from

Conversation

bcthund
Copy link

@bcthund bcthund commented Sep 10, 2024

I've been doing a lot of testing and fixing little things here and there and am starting to feel like there is very little left to do. Not that it is 100% complete, there are still some things that will probably have to be addressed in the future but there is already a large amount of stuff here. Thought it might be a good time to consider implementing things and getting some real testing done. Just my thoughts on it at least.

bcthund and others added 30 commits September 7, 2024 23:26
Added a basic and functioning system for scanning biologicals and keeping track of how many samples and total are left to scan on the planet. Also keeps track of distance from previous samples to assist in not violating previous sample range. Codex information added for biologicals and so the CodexEntry event was also implemented to make use of this data. Descriptions are all currently hardcoded in english.
Created a basic DiscoverMonitor class and did minor testing. Completely reworked the CodexEntry event and associated classes. All codex information moved into resx files for localization. CodexEntry script updated and tested but may still need some touch ups to the codex entries.
Fixed logic so EntryIDs are checked first, if not found then fallback to name. Started a Discovery Manager configuration window but no data implemented yet. Created a preliminary SurfaceSignals class and added to Body. Updated Exobiology class for use in SurfaceSignals class.
Preliminary implementation of biological sample tracking and distance notifications. Update to Astrological EntryIDs, 8 still missing.
General cleanup of code and TODO list. Updated bio list when a planet is mapped to use new system. Added Guardian and Thargoid Codex entries, untested.
Adjustments and fixes to code from issues found while live testing. Added in saving of body and starsystem data. Changed logging messages to Debug. Removed bio predictions in preparation for alternate implementation.
Some modifications to invalid organic data. Added biological predictions including adding barycentre list to the star system allowing lookups of what bodies belong to a barycentre id. Updates to cottle scripts to work better, still in testing. Commented out debugging log messages, to be removed later.
Organics classes restructured to use more standard classes as already present in EDDI, making use of resource manager templates. biostats dump data added and prediction routine added but disabled, tuned existing predictions. Modified the List addon cottle command to give the option of concluding a list with choice of And/Or. Cottle scripts updated.
Added a basic and functioning system for scanning biologicals and keeping track of how many samples and total are left to scan on the planet. Also keeps track of distance from previous samples to assist in not violating previous sample range. Codex information added for biologicals and so the CodexEntry event was also implemented to make use of this data. Descriptions are all currently hardcoded in english.
Created a basic DiscoverMonitor class and did minor testing. Completely reworked the CodexEntry event and associated classes. All codex information moved into resx files for localization. CodexEntry script updated and tested but may still need some touch ups to the codex entries.
Fixed logic so EntryIDs are checked first, if not found then fallback to name. Started a Discovery Manager configuration window but no data implemented yet. Created a preliminary SurfaceSignals class and added to Body. Updated Exobiology class for use in SurfaceSignals class.
Preliminary implementation of biological sample tracking and distance notifications. Update to Astrological EntryIDs, 8 still missing.
General cleanup of code and TODO list. Updated bio list when a planet is mapped to use new system. Added Guardian and Thargoid Codex entries, untested.
Adjustments and fixes to code from issues found while live testing. Added in saving of body and starsystem data. Changed logging messages to Debug. Removed bio predictions in preparation for alternate implementation.
Some modifications to invalid organic data. Added biological predictions including adding barycentre list to the star system allowing lookups of what bodies belong to a barycentre id. Updates to cottle scripts to work better, still in testing. Commented out debugging log messages, to be removed later.
Making everything current and fixing some additional errors from merge conflicts.
Making everything current and fixing some additional errors from merge conflicts.
Lots of adjustments to biological predictions, minor tweaking and temporary debugging log messages adjusted.
Lots of adjustments to biological predictions, minor tweaking and temporary debugging log messages adjusted.
Completed missing codex descriptions for Guardian and Thargoid codex entries. Reworked Astronomical, Geological, Thargoid and Guardian classes to use resource localization template and follow existing classes more closely. Some script corrections.
Rewards for selling exobiology data is now reported. Script can be adjusted to give breakdown on base value and bonus or just the total. Updated scripts, had some previous updates missed from using incorrect personality.
Completed the configuration options for the DiscoveryMonitor and created a ConfigService implementation. Settings have not been integrated into events and scripts yet.
Settings for DiscoveryMonitor tied in to configuration window. Added configuration values to DiscoveryMonitor and made available through GetVariables(). Updated scripts to make use of configuration values. Confirmed saving and loading of values.
Mostly added fixed resources for reciting the conditions for a species to exist. Some adjustments to script to re-enable this and also implemented descipriont on organic scan numbers. Adjusted logging and added checkbox to enable/disable verbose logging for exobiology and codex entries.
Replace it with a new method in the `StarSystem` class called `GetChildBodyIDs` which accomplishes the same purpose.
Refactor `SurfaceSignals.cs` and make sure that it is always initialized, simplify the `StarSystem.PreserveBodyData` method, move some logic from the JournalMonitor to the DiscoveryMonitor. Move some properties from the `Body` class (which is already quite cluttered) to the `SurfaceSignals` class.
… conventions and remove code redundancies. Move exobiology predictions in their own class.
Some changes were not pulled after the initial merge causing some conflicts and naming/case differences.
Lots of script modifications giving some better integration. Predictions changed (again) to variant predictions, added planet pressure and minimum gravity. Modified volcanism predictions to make use of amount, composition and type. Minimum and maximum values added to genus predictions. Scripts only report value range when they are not identical.
Support for special conditions added, testing tuned to check for exact star and materials required for variants. Some updates to scripts (including some temporary changes). Expanded log messages for predicitons temporarily. Updated version for release to squadron for testing.
Predictions updated with tighter requirements using all available sources. Added some new prediction conditions, testing ongoing. Some tweaks mostly to current scripts.
Added Nebulas and Regions for predictions and also added some simple logic to announce when near a new nebula and in a new region in Discovery Monitor. Added an "unknown" genus type for ehen predictions fail to make any matches, rare but causes a null exception. Also added some logic to the min/max predicted values that was probably the cause of the null exception in the first place.
Nebula data fetched from EDSM and recreated, Guardian sectors created and added check for bio predictions for use with Brain Trees. Added the ability to read and write to the clipboard in Utilities.Functions with the intent of making Nebula destinations available. Some minor script tweaks.
This appeared to be causing issues and the logic there shouldn't be run all the time anyway, it was only added as a test and then not removed before the last commit.
Removed redundant clipboard functions, moved Region calculation to FSDJump, added handleLocation to DiscoveryMonitor for Nebula and Region updates for startup and player respawn.
…Removal of old commented code. Prediction data updates.
Fixing to work with changes from rebase, fixed Organic Species names, reworked resx to have only text specific to each (genus/species/variant), fix to SurfaceSignals overrite on relog, added planetary thickness to body and predictions, added guardian sites data, added some tools and bio status to Discovery Monitor tab.
Added a property change monitor to automatically update the current system address. Exobio status tab updated with some more events to refresh the current body.  Separated Guardian Sites and Nearest Nebulae to separate tabs. Added an event to notify when a known Nebula has been entered or left. Made some repaits to the Json serialization of SurfaceSignals so it no longer fails to restore from the database, however some data is still currently lost that needs to be repaired.
Added button to Exobiology tab that allows the current biological surface signals to be erased and predicted again. Might remove this in the future but useful for testing at the moment. Disabled Main Star for predictions for now, barycentre systems do not predict properly as only one of the barycentre stars is checked.
Repaired the species descriptions to use the edname as the rest of the logic uses. Added some extra data to the exobiology tab to show genus and species descriptions when a biological is selected as well as showing previous sample locations. Added some more cases to update the Discovery Monitors contextual body.
Changed from private set to public
Some errors with None and No atmosphere and some issues with case were fixed. Discovery Monitor tabs updated to be more useful and automatically update list of planets with bios and predicted bios on those planets. Predictions tightened up mostly on atmosphere types, removed rare cases from typical predictions.
…ections

When an exobiology contextual body changes the appropriate body is highlighted. Highlight remains when EDDI loses focus. Highlight also added for biology selection. Added logic to retain previously selected bio after an update (still needs testing). Added logic to update planet list with completed bios (still needs testing).
When there are biological updates the bio is automatically selected in the biologicals list. ScanOrganic events now trigger an update to the biologicals list which fixes an unknown biological context after restarting EDDI. A relog of ED before starting EDDI would still cause this issue.
Remember if a Nebula has been visited before allowing filtering of nearby Nebula and easily discovering new locations to visit. Added a button to allow manual toggling of the visited state.
Remove old commented code, remove extra logging messages
Initialization of Nebula data results in a stack overflow when running as a plugin to VA. Spread out initialization of data to prevent memory spike. Added some VA commands for reporting system bios, body bios, mapping candidates and nearest nebula.
Added locaization to all text on the GUI tabs for the Discovery Monitor. Implemented a notifrication of guardian sites (to be tested) when entering a system. Fix check for Nebula visited to properly create new DB entry.Added highlight to Nebula visited status to make it more obvious.
… for Rebase

Moved genus min/max predicted values from the genus class to the organic class and reworked code to put values there during predictions. Added monitoring to update discovery monitor GUI on carrier jump. Removed some old code and simplified some. Preparing for Rebase to apply CarrierJump fixes from master.
Fix error in casting Organic to Exobiology.
Fix logic to check for Guardian Sectors in predictions.
Update to Brain Tree and Bark Mounds prediction conditions.
Add copy to clipboard button for Nebulae and Guardian Sites in GUI.
Update Guardian Site Event script.
Reverted List() custom function to normal, added a ListOr() custom function. Update cottle scripts to use ListOr(). Tweaks to Fumerola predictions.
Predicted Min/Max is now properly set when a new bio is discovered. Max value was ordered backwards giving the lowest of the maximum values possible. Min/Max values are now saved properly with the body.
…serve Min/Max values, Sync Scripts, Allow Multiple Brance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants