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

Engineer Progressed not working as intended? #1629

Closed
Darkcyde13 opened this issue Dec 15, 2019 · 7 comments · Fixed by #1630
Closed

Engineer Progressed not working as intended? #1629

Darkcyde13 opened this issue Dec 15, 2019 · 7 comments · Fixed by #1630
Assignees
Labels
6. not up to spec The expected behaviour per the spec doesn’t match the observed behaviour.

Comments

@Darkcyde13
Copy link

Darkcyde13 commented Dec 15, 2019

EDDI version in which issue is found

V3.5.1

VoiceAttack version in which issue is found (as applicable)

N/A

Steps to reproduce

Provide whatever an engineer requires to complete unlocking them.

Expected

The 'Engineer progressed' event script to say "(engineer) has granted you access to workshop facilities."

Observed

The event script says "(engineer) has given you access to grade 1 blueprints."

Investigation

After arriving in Colonia I wanted to open up all the engineers. I had already been invited to all of them due to completing all the engineers in the bubble. I never got any of the initial messages as this was all before the script included those (I believe).

When completing the initial contracts for each Colonia Engineer, I simply got the message from the '|elif event.engineer' section, instead of the 'Unlocked' message from the progresstype = "Stage" section.

These are the Journal entries for the last one I completed:

{ "timestamp":"2019-12-15T15:51:40Z", "event":"EngineerContribution", "Engineer":"Petra Olmanova", "EngineerID":300130, "Type":"Commodity", "Commodity":"progenitorcells", "Commodity_Localised":"Progenitor Cells", "Quantity":64, "TotalQuantity":200 }
{ "timestamp":"2019-12-15T15:51:41Z", "event":"EngineerProgress", "Engineer":"Petra Olmanova", "EngineerID":300130, "Progress":"Unlocked", "Rank":1 }

It seems like unlocking them isn't considered a 'Stage' maybe? Is it possible that what was once listed as a stage in the Journal, is now just listed under 'progress'?

Obviously I'm just guessing here, as I have no idea what it used to say, due to me unlocking all the other engineers as soon as they were available a long time ago.

@Darkcyde13
Copy link
Author

Darkcyde13 commented Dec 15, 2019

I've also just realised that, when applying engineering and opening up new levels with the engineer, nothing is spoken at all. Looking at the journal, there are no entries for upgrading an engineer. Here is an example of going from grade 4 to grade 5 that I just opened up:

{ "timestamp":"2019-12-15T18:39:30Z", "event":"EngineerCraft", "Slot":"Slot08_Size2", "Module":"int_hullreinforcement_size2_class1", "Ingredients":[ { "Name":"vanadium", "Count":1 }, { "Name":"shieldingsensors", "Name_Localised":"Shielding Sensors", "Count":1 }, { "Name":"fedproprietarycomposites", "Name_Localised":"Proprietary Composites", "Count":1 } ], "Engineer":"Petra Olmanova", "EngineerID":300130, "BlueprintID":128673718, "BlueprintName":"HullReinforcement_HeavyDuty", "Level":4, "Quality":0.863300, "Modifiers":[ { "Label":"Mass", "Value":5.280000, "OriginalValue":4.000000, "LessIsGood":1 }, { "Label":"DefenceModifierHealthAddition", "Value":239.264984, "OriginalValue":150.000000, "LessIsGood":0 }, { "Label":"KineticResistance", "Value":12.474096, "OriginalValue":0.999999, "LessIsGood":0 }, { "Label":"ThermicResistance", "Value":12.474096, "OriginalValue":0.999999, "LessIsGood":0 }, { "Label":"ExplosiveResistance", "Value":12.474096, "OriginalValue":0.999999, "LessIsGood":0 } ] }
{ "timestamp":"2019-12-15T18:39:46Z", "event":"NpcCrewPaidWage", "NpcCrewName":"Kaley Rasmussen", "NpcCrewId":209598272, "Amount":0 }
{ "timestamp":"2019-12-15T18:39:47Z", "event":"EngineerCraft", "Slot":"Slot08_Size2", "Module":"int_hullreinforcement_size2_class1", "Ingredients":[ { "Name":"tungsten", "Count":1 }, { "Name":"compoundshielding", "Name_Localised":"Compound Shielding", "Count":1 }, { "Name":"fedcorecomposites", "Name_Localised":"Core Dynamics Composites", "Count":1 } ], "Engineer":"Petra Olmanova", "EngineerID":300130, "BlueprintID":128673719, "BlueprintName":"HullReinforcement_HeavyDuty", "Level":5, "Quality":0.296700, "Modifiers":[ { "Label":"Mass", "Value":5.600000, "OriginalValue":4.000000, "LessIsGood":1 }, { "Label":"DefenceModifierHealthAddition", "Value":246.044998, "OriginalValue":150.000000, "LessIsGood":0 }, { "Label":"KineticResistance", "Value":13.761097, "OriginalValue":0.999999, "LessIsGood":0 }, { "Label":"ThermicResistance", "Value":13.761097, "OriginalValue":0.999999, "LessIsGood":0 }, { "Label":"ExplosiveResistance", "Value":13.761097, "OriginalValue":0.999999, "LessIsGood":0 } ] }

That's the last entry in my journal, and the engineer now says max level reached, but nothing was spoken by EDDI.

I'll go out on a limb here, and hazard a guess that things have changed a bit since the 'Engineer progressed' event was last updated.

@Tkael
Copy link
Member

Tkael commented Dec 15, 2019

Likewise, I unlocked engineers long ago. :-)

Looking at the code... we currently look for a change in rank first then we look for a change in stage if the rank is unchanged. We ought to change that so that we look for changes in stage and changes in rank separately (so that each can trigger separately when appropriate).

That should resolve the first issue with EDDI reporting the change in rank rather than the change in stage.

@Tkael
Copy link
Member

Tkael commented Dec 15, 2019

The second issue with EngineerProgress for changes in other ranks not being written (nor indeed for changes in percent rank progress) goes contrary to the documented journal manual description and is really FDev's bug.

8.15	EngineerProgress
When Written: when a player increases their access to an engineer
Also a summary of progress for all engineers at startup
Parameters (summary at startup)
•	Engineers: array
o	Engineer: name
o	EngineerID
o	Rank: rank reached (when unlocked)
o	Progress: progress stage (Invited/Acquainted/Unlocked/Barred)
o	RankProgress: percentage towards next rank

Parameters (update for one engineer)
•	Engineer: name
•	EngineerID
•	Rank: rank reached (when unlocked)
•	Progress: progress stage (Invited/Acquainted/Unlocked/Barred)
•	RankProgress: percentage towards next rank

Example (update)
{ "timestamp":"2018-01-16T09:34:36Z", "event":"EngineerProgress", "Engineer":"Zacariah Nemo", "EngineerID":300050, "Rank":4, “RankProgress”:0 }

Example (startup):
{ "timestamp":"2018-05-04T13:58:22Z", "event":"EngineerProgress", "Engineers":[ { "Engineer":"Zacariah Nemo", "EngineerID":300050, "Progress":"Unlocked", "RankProgress":0, "Rank":5 }, { "Engineer":"Marco Qwent", "EngineerID":300200, "Progress":"Unlocked", "RankProgress":37, "Rank":4 }, { "Engineer":"Hera Tani", "EngineerID":300090, "Progress":"Unlocked", "RankProgress":0, "Rank":3 }, { "Engineer":"Tod 'The Blaster' McQuinn", "EngineerID":300260, "Progress":"Unlocked", "RankProgress":97, "Rank":3 }, { "Engineer":"Selene Jean", "EngineerID":300210, "Progress":"Known" }, { "Engineer":"Lei Cheung", "EngineerID":300120, "Progress":"Known" }, { "Engineer":"Juri Ishmaak", "EngineerID":300250, "Progress":"Known" }, { "Engineer":"Felicity Farseer", "EngineerID":300100, "Progress":"Unlocked", "RankProgress":0, "Rank":5 }, { "Engineer":"Professor Palin", "EngineerID":300220, "Progress":"Invited" }, { "Engineer":"Elvira Martuuk", "EngineerID":300160, "Progress":"Unlocked", "RankProgress":0, "Rank":5 }, { "Engineer":"Lori Jameson", "EngineerID":300230, "Progress":"Known" }, { "Engineer":"The Dweller", "EngineerID":300180, "Progress":"Unlocked", "RankProgress":0, "Rank":5 }, { "Engineer":"Liz Ryder", "EngineerID":300080, "Progress":"Unlocked", "RankProgress":93, "Rank":3 }, { "Engineer":"Ram Tah", "EngineerID":300110, "Progress":"Unlocked", "RankProgress":31, "Rank":3 } ] }

Here's an example of how it used to be written (note that RankProgress has never been written for anything except startup entries, as near as I've been able to determine from my personal journals):

{ "timestamp":"2016-11-27T03:27:43Z", "event":"EngineerCraft", "Engineer":"Ram Tah", "Blueprint":"HeatSinkLauncher_Reinforced", "Level":1, "Ingredients":{"nickel":1 } }
{ "timestamp":"2016-11-27T03:27:45Z", "event":"EngineerProgress", "Engineer":"Ram Tah", "Rank":2 }
{ "timestamp":"2016-11-27T03:28:16Z", "event":"EngineerCraft", "Engineer":"Ram Tah", "Blueprint":"HeatSinkLauncher_LightWeight", "Level":2, "Ingredients":{"cmmcomposite":1, "salvagedalloys":1, "manganese":1 } }

We can work around it by monitoring the level of blueprints crafted during the EngineerCraft event.

@Darkcyde13
Copy link
Author

I see what you mean. I don't have any of those individual progress updates in my Journal at all. The only ones I can find are the ones from unlocking, and the initial startup.

While a workaround may help, it does mean having to remove it if/when FDev ever get around to fixing it. Like I said, things have changed, albeit FDev breaking things rather than a change EDDI has missed. ;)

To be honest, if no-one else has noticed it, it's probably not worth implementing a patch for that second part. I mean, I only fully realised it was missing after four engineers! For the first part though, if you think you can make that better, then great. I won't be able to make much use of it anymore, as I've only got that new engineer in the Witch Head Nebula to do, and that probably won't be for a while now.

Thank you for your time on it so far though, very informative! :)

@Tkael
Copy link
Member

Tkael commented Dec 15, 2019

Unfortunately, reacting on EngineerCraft means that EDDI will only announce that you've progressed ranks once you've begun crafting a blueprint from the next grade.

In other words the flow would look like this:

  • I complete a modification at rank 4. In Elite, I can see that rank 5 is now unlocked. EDDI is silent.
  • I complete a modification at rank 5. EDDI immediately discovers and announces (late) that rank 5 is unlocked and then resolves the Modification crafted event script.
    This flow is not acceptable... there is no point to this event if it not timely and it isn't timely at that point.

I'll plan to submit a fix for only the first issue. I would recommend opening a bug report with FDev if you'd like them to fix the EngineerProgress event so that it triggers when the journal monitor says it should trigger.

@Tkael Tkael self-assigned this Dec 15, 2019
@Tkael Tkael added the 6. not up to spec The expected behaviour per the spec doesn’t match the observed behaviour. label Dec 15, 2019
@Tkael
Copy link
Member

Tkael commented Dec 16, 2019

This bothered me a bit, so I submitted a bug report myself. https://issues.frontierstore.net/issue-detail/11171

@Tkael Tkael added the PR submitted A PR has been submitted, but not accepted yet. label Dec 16, 2019
@Darkcyde13
Copy link
Author

Oh I totally agree with what you said about the flow. That's almost how I had imagined it, but thought maybe you had some other internal way of getting around that.

And thank you for submitting a bug report. I've added my 2 cents as well, and also added my Journal file for the same entries I mentioned above. Hopefully something will get done about it. :)

@richardbuckle richardbuckle removed the PR submitted A PR has been submitted, but not accepted yet. label Jan 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6. not up to spec The expected behaviour per the spec doesn’t match the observed behaviour.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants