msarilar / EDEngineer

An overlay to track Elite Dangerous blueprints progress in real time
MIT License
504 stars 173 forks source link

Odyssey New Ingredients #589

Closed msarilar closed 3 years ago

msarilar commented 3 years ago

New ingredients:

https://elite-dangerous.fandom.com/wiki/Data https://elite-dangerous.fandom.com/wiki/Components https://elite-dangerous.fandom.com/wiki/Goods

The ingredient file will need to be updated:

https://github.com/msarilar/EDEngineer/blob/master/EDEngineer/Resources/Data/entryData.json

Example ingredient:

  {
    "Name": "Aberrant Shield Pattern Analysis",
    "Rarity": "Rare",
    "FormattedName": "aberrantshieldpatternanalysis",
    "Kind": "Data",
    "OriginDetails": [
      "Ship scanning (combat ships)",
      "Mission reward",
      "Needed for The Sarge (50)"
    ],
    "Group": "ShieldData"
  }
OzDruiD commented 3 years ago

Howdy all devs for this wonderful app.

I am keen to help out here, but not a regular user of GitHub or developer apart from soem basic scripting, not sure I want to step on any toes or add updates to the master - but happy to check specific things or testing to confrim wiki data for final json update and make this Odyssey compatible asap.

Let me know if i can be of help in that regard - or anything to help you out here. DruiD

Gimi1967 commented 3 years ago

Looked around a little. I have found a way of generating the JSON code from an excel sheet using this site: https://www.convertcsv.com/csv-to-json.htm Had to make a template to get the array right. Now I need lists containing data for the new stuff.

INARA has made the following categories for odyssey stuff: ITEMS (No rarity) DATA (No rarity) CHEMICALS (Each individual type has a value) CIRCUITS (Each individual type has a value) TECH (Each individual type has a value)

INARA does not contain FormattedName though.

Question: Do we add the "value" where rarity should be or do we need an additional field? INARA has Planetary Settlement as Origin details for all as a place holder it seems. De we use that? INARA has also mapped usage for a few of the items.

I also see that ED Discovery has lists of what seem to be Name and FormattedName.

Neither INARA or EDD seem to have complete lists though, so main issue is lack of data right now. EDD might have, but I haven't found it in their code.

Also, there does not seem to be any groupings for the new stuff.

msarilar commented 3 years ago

INARA does not contain FormattedName though

formatted name is used by edengineer to figure out the "code name" that appears in the game logs to be able to pick up cargo updates - some of them are just the label seen by the player but in lowercase while some others have a completely different name

a good start is to format the label seen by the player by default - maybe then we'll see issues such as "that ingredient isn't tracked by edengineer" which means we'll need to update the FormattedName

Do we add the "value" where rarity should be or do we need an additional field?

cost / barter / unit should be added as new fields (replacing rarity for these) for https://inara.cz/component/179/ for instance:

},
{
    // ...
    "CostUnit": "Chemicals",
    "BarterCost": 9,
    "BarterValue": 5,
    // ...
},
{

INARA has Planetary Settlement as Origin details for all as a place holder it seems. De we use that?

OriginDetails is used for these icons: image

We can add more origins / icons if new location types have been added although I think "planerary settlement" or something similar already exists

Gimi1967 commented 3 years ago

Thank you. I have started sorting data based on what I have (mainly INARA and some from EDD and journals).

Do we separate OdysseyData and OdysseyItems that do not have barter values into different files with a different setup, or do we just leave barter values blank.

msarilar commented 3 years ago

I checked a bit more the update, I think for these new items, we should have: Kind = [Odyssey something - let's find a name] Group = Chemicals/Circuits/Techs/Item BarterCost/Value = some value or nothing

This will make EDEngineer show all these new ingredients in a new dedicated tab (the Kind - Similarly to Materials/Data/Loadout) and group them by their unit (chemicals / circuits / etc.. similarly to current Alloys / Capacitors / etc...)

for reference, current gui:

image

Gimi1967 commented 3 years ago

I currently have something like this for components:

[ { "Name": "Aerogel", "CostUnit": "Chemicals", "BarterCost": 9, "BarterValue": 5, "FormattedName": "aerogel", "Kind": "OdysseyComponent", "OriginDetails": ["Planetary Settlement" ] "Group": "" } ]

All components with values are in my spreadsheet. Working on Data.

I have used "OdysseyComponent", "OdysseyData" and "OdysseyItem". Basically I'm using INARA categories.

My main challenge is generating the array in there. I'm not a programmer, and the online tools are limited. But if we leave it blank or with just one value, it's fine.

msarilar commented 3 years ago

that looks great

you can actually remove the CostUnit field and put it in the Group instead:

[
    {
        "Name": "Aerogel",
        "BarterCost": 9,
        "BarterValue": 5,
        "FormattedName": "aerogel",
        "Kind": "OdysseyComponent",
        "OriginDetails": [ "Planetary Settlement" ],
        "Group": "Chemicals"
    }
]
Gimi1967 commented 3 years ago

I'm not comfortable making Pull Requests yet. First file, OdysseyComponents.txt OdysseyComponent.txt

Gimi1967 commented 3 years ago

For Items and Data there is no rarity or value information. Do I take value fields out but leave rarity in or take them all out?

msarilar commented 3 years ago

I'm not comfortable making Pull Requests yet. First file, OdysseyComponents.txt OdysseyComponent.txt

like that is perfect

for items & data I believe you could put them as the same Kind as the components but with dedicated group ("Group": "Items" / "Group": "Data")

if they don't have rarity in game, you can omit the rarity in the json

Gimi1967 commented 3 years ago

So I have a complete list of data and items based on the sources I have available (INARA, ED Wiki, my journals and EDD) I'm still uncertain about how to set this up. They have an in-game value. (Listed on the Wiki for some of them) I have found no indication of rarity in game, but I haven't played enough to really say for sure. The wiki typically provides this:

Classification: Data Value: 4,000 CR Settlement Type: ? Building Type: LAB, PROC, PWR, AGRI Container Type: Agricultural Data Port, Data Port, Industrial Data Port, Laboratory Data Port, Power Data Port

So how much should be included? To me this looks like arrays for settlement type, building type and container type, but it's still early days and I suspect this may change when we have more experience.

msarilar commented 3 years ago

the additional data can be added to the json to maybe be integrated in the gui at some point later

if it's too much trouble then it's all right to begin with minimal info : EDEngineer will track the new ingredients and we'll be able to add the related blueprints to report progress

thanks a lot 👍

Gimi1967 commented 3 years ago

I have been playing a bit with the tools I found. I can now "generate" this from my spreadsheet.

{ "Name": "Aerogel", "ValueCr": 500, "BarterCost": 9, "BarterValue": 5, "FormattedName": "aerogel", "Kind": "OdysseyComponent", "OriginDetails": ["Planetary Settlement"], "Group": "Chemicals", "SettlementType": [""], "BuildingType": ["LAB", "PROC"], "ContainerType": ["Industrial Locker (S)", "Research Locker (L)"], "OdysseyRecipes": ["Artimis Suit upgrades"] },

Doing it this way means we can leave out Origin Details, but I thought it might be an idea to keep it, as you have used it for various stuff.

I have all the data entered for Chemicals/Circuits/tech Data and items is a bigger beast and might take me a few days.

Additional data from INARA and the ED Wiki The names for engineer upgrades have been retrieved from the Wiki. I'm happy to do this, just say what information you want in the JSON file

Bonus is: I'm starting to learn how powerful VS Code is :)

msarilar commented 3 years ago

that looks great

"OdysseyRecipes": ["Artimis Suit upgrades"]

edengineer works a bit differently for recipes (file here - beware it's big and can take a while to lead) : blueprints reference the ingredients and not the other way around

so for now you can drop this field I think

example recipe in blueprints.json file (to avoid loading the file):

  {
    "Type": "Plasma Accelerator",
    "Name": "Short Range Blaster",
    "Engineers": [
      "Etienne Dorn",
      "Zacariah Nemo",
      "Bill Turner"
    ],
    "Ingredients": [
      {
        "Name": "Nickel",
        "Size": 1
      }
    ],
    "Effects": [
      {
        "Effect": "+27%",
        "Property": "Damage",
        "IsGood": true
      },
      {
        "Effect": "-10%",
        "Property": "Maximum Range",
        "IsGood": false
      }
    ],
    "Grade": 1,
    "CoriolisGuid": "81dca970-1fbf-4017-af46-0c6285c3a728"
  },
Gimi1967 commented 3 years ago

Great Ah, in that case this should be done today. Recipes was the only thing left to enter into excel.

Do you want this as one file where I leave in BarterCost and BarterValue in for "Item" and "Data" objects, or as two files?

Gimi1967 commented 3 years ago

I have made a single file for all Odyssey Material. If it needs tweaking or separating into different files, please shout out. Source for data: INARA, ED Wiki, EDD. FormattedName: Not sufficiently verified. Where I did not know, I have used truncated display name in lower case. SettlementType, BuildingType, ContainerType data from ED Wiki. There were some conflicts between Wiki and INARA. File is generated from spreadsheet using: https://www.convertcsv.com/csv-to-json.htm Then further tweaking (search and replace) in VS Code editor. Spreadsheet included (not sure it is intelligible) OdysseyMaterials-v2.txt ED Odyssey data2.xlsx

msarilar commented 3 years ago

brilliant - you can append the content of the array to the entryData.json file and open a review

i'll start working on exploiting that data soon

Gimi1967 commented 3 years ago

So I made a draft pull request with Odyssey materials #597 Never done that before, so hopefully I did this right.

msarilar commented 3 years ago

brilliant, we're soon there

in game, have you got some of the new ingredients? would you mind uploading your logs (including the new backpack.json file described in these docs http://hosting.zaonce.net/community/journal/v31/Journal_Manual_v31.pdf)

Gimi1967 commented 3 years ago

I have a few, not many though. Backpack.txt My backpack.jason file is empty though. I think it's dynamic and empties when you enter the ship. 2 journal files. Journal.210601201323.01.txt Journal.210602215229.01.txt

msarilar commented 3 years ago

cheers

I have this kind of gui for now using the data you provided:

image

I'll integrate the Settlement/Building/Container type as well as the prices and barter properties soon

once it's there, I'll probably deploy a temporary version until I get the log parsing working with the new events

Gimi1967 commented 3 years ago

That was fast. Looks good. I'll keep an eye out for updates to the list. Do you intend to track the backpack as well. It can contain consumables, as well as the Odyssey micro-resources.

These plus E-breach are all currently known consumables. I don't have an E-Breach yet. Updated with info from OzDruiD :)


 {
    "Consumables":
           [        { "Name":"healthpack", "Name_Localised":"Medkit", "OwnerID":0, "Count":10 }, 
                    { "Name":"energycell", "Name_Localised":"Energy Cell", "OwnerID":0, "Count":11 }, 
                    { "Name":"amm_grenade_emp", "Name_Localised":"Shield Disruptor", "OwnerID":0, "Count":10 }, 
                    { "Name":"amm_grenade_frag", "Name_Localised":"Frag Grenade", "OwnerID":0, "Count":10 }, 
                    { "Name":"amm_grenade_shield", "Name_Localised":"Shield Projector", "OwnerID":0, "Count":10 }
                    { "Name":"bypass", "Name_Localised":"E-Breach", "OwnerID":0, "Count":96 }
           ]
  }
OzDruiD commented 3 years ago

@Gimi1967 ddoes this help? { "Name":"bypass", "Name_Localised":"E-Breach", "OwnerID":0, "Count":96 } This is from my journals - anything else your looking for ? or ?

OzDruiD commented 3 years ago

So .. I lost ALL my "Goods" and "Data" from all things odyssey. I dont think it was due to mucking around with log files, but be caeful, nearly 1000 goods, 800 odd data- just gone. Ticket with fdev, but that may take weeks.

I was stuck, so logged into Horizons, back to Odyssey, those two catagories are reset to 0/1000, whereas "consumables" and the "Assets" are still fine.

OzDruiD commented 3 years ago

Btw - the e-breech count I guess can be adjusted back to 10 or whatever. thats just the count i had in my bag :P

msarilar commented 3 years ago

I think we have most of it now

thanks a lot for the contributions @Gimi1967 and @jpacelli62

upcoming steps:

jpacelli62 commented 3 years ago

I'm working on events, TradeMicroResources works now for me. I'll send new pull request soon.

OzDruiD commented 3 years ago

You guys are awesome .. if need logs or testing anything - shout out.