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

Presidium Prophet quest can be uncompletable if you don't do it immediately #28

Closed
henbagle opened this issue Jul 18, 2021 · 2 comments
Closed

Comments

@henbagle
Copy link
Owner

Describe the bug
Presidium Prophet quest can be uncompletable if you convince either C-Sec/Hanar and then leave the area without speaking to the other, as they will disappear forever once you leave

Other Considerations
This bug was fixed in ME1Recalibrated, so a fix can probably be ported over

@henbagle henbagle added the bug label Jul 18, 2021
@henbagle
Copy link
Owner Author

henbagle commented Jul 23, 2021

The fix in ME1Recalibrated used a series of PMCheckStates in addition to the vanilla conditionals to trigger the visibility of the C-SEC Officer and the Hanar. A better solution would be to update the conditionals using the PlotManagerUpdate feature.

To the best of my knowledge, here are the three outcomes from leaving the area after persuading/purchasing the license.

  1. Persuade the officer to let the hanar preach. Need to talk to hanar. Leave area, come back, hanar is still there, C-SEC officer is gone. No bugs.
  2. Purchase the license. Hanar goes away, need to talk to officer. Leave area, come back. The hanar is there and talks as if you have convinced the officer to go away. Bug.
  3. Persuade the Hanar to go away, need to talk to officer. Leave area, come back. Nobody is there and you can't complete the mission.

Both outcome 2 and outcome 3 have been fixed by updating two conditionals, the Hanar_Present and the Cop_Present conditionals, to handle the various outcomes correctly. Updated code is below.

public function bool F1269(BioWorldInfo bioWorld, int Argument)
{
    local BioGlobalVariableTable gv;
    
    gv = bioWorld.GetGlobalVariables();
    return (gv.GetBool(4752) == FALSE && gv.GetBool(4751) == FALSE) && gv.GetBool(4398) == TRUE || (gv.GetBool(4752) == FALSE && gv.GetBool(4750) == TRUE);
}
public function bool F1274(BioWorldInfo bioWorld, int Argument)
{
    local BioGlobalVariableTable gv;
    
    gv = bioWorld.GetGlobalVariables();
    return (gv.GetBool(4748) == FALSE && gv.GetBool(4749) == FALSE) && gv.GetBool(4398) == TRUE || (gv.GetBool(4751) == TRUE || (gv.GetBool(4752) == TRUE && gv.GetBool(4750) == TRUE));
}

@henbagle
Copy link
Owner Author

henbagle commented Dec 6, 2021

EDIT: Conditional F1274 has been updated to fix #110. Original comment has been edited with updated conditional text

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant