Skip to content

Commit

Permalink
The Fremennik Exiles: Minor polish (#1910)
Browse files Browse the repository at this point in the history
* Prioritize "Pick up the letter" assuming the letter is nearby and the basilisk youngling has been killed

* Remove duplicate "Search the sand pit" sidebar step

* Add the "Search the boxes" step to the sidebar

* Add missing dialog step when talking to Brundt about the investigation

* Re-implement shield asking help
  • Loading branch information
pajlada authored Jan 2, 2025
1 parent 9fa0d09 commit 36c0e6d
Showing 1 changed file with 15 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
import com.questhelper.questhelpers.BasicQuestHelper;
import com.questhelper.steps.NpcStep;
import com.questhelper.steps.QuestStep;
import static com.questhelper.requirements.util.LogicHelper.and;
import static com.questhelper.requirements.util.LogicHelper.not;

public class TheFremennikExiles extends BasicQuestHelper
{
Expand Down Expand Up @@ -113,6 +115,7 @@ public class TheFremennikExiles extends BasicQuestHelper

//Zones
Zone lunarMine, yagaHouse, isleOfStone, typhorRoom;
private ConditionalStep talkToBrundtSouthEastOfRellekkaCond;

@Override
public Map<Integer, QuestStep> loadSteps()
Expand All @@ -132,17 +135,17 @@ public Map<Integer, QuestStep> loadSteps()
investigate.addStep(new Conditions(hasReadLetter, fang), searchBoxes);
investigate.addStep(hasReadLetter, searchRockslide);
investigate.addStep(letter, readLetter);
investigate.addStep(and(killedYoungling, letterNearby), pickupLetter);
investigate.addStep(killedYoungling, searchSandpitForLetter);
investigate.addStep(letterNearby, pickupLetter);
investigate.addStep(younglingNearby, killYoungling);
steps.put(15, investigate);

steps.put(20, talkToBrundtAgain);
steps.put(25, talkToBrundtAgain);
steps.put(30, talkToBrundtAgain);

steps.put(35, talkToBrundtSouthEastOfRellekka);
steps.put(40, talkToBrundtSouthEastOfRellekka);
steps.put(35, talkToBrundtSouthEastOfRellekkaCond);
steps.put(40, talkToBrundtSouthEastOfRellekkaCond);

goMakeGlass = new ConditionalStep(this, enterYagaHouse);
goMakeGlass.addStep(moltenGlassI, makeLunarGlass);
Expand All @@ -167,7 +170,7 @@ public Map<Integer, QuestStep> loadSteps()
goGetShield = new ConditionalStep(this, getFremennikShield);
goGetShield.setLockingCondition(fremennikShield);

ConditionalStep goMakeShield = new ConditionalStep(this, talkToBrundtSouthEastOfRellekka);
ConditionalStep goMakeShield = new ConditionalStep(this, talkToBrundtSouthEastOfRellekkaCond);
goMakeShield.addStep(vShield, talkToBrundtWithShield);
goMakeShield.addStep(new Conditions(askedAboutAllShieldParts, fremennikShield, lunarGlass, sigilE, polishedRock), createShield);
goMakeShield.addStep(new Conditions(askedAboutAllShieldParts, fremennikShield, lunarGlass, sigilE), goMakeRock);
Expand Down Expand Up @@ -355,6 +358,7 @@ public void setupSteps()
talkToBrundtAgain = new NpcStep(this, NpcID.BRUNDT_THE_CHIEFTAIN_9263, new WorldPoint(2658, 3669, 0),
"Return to Brundt in Rellekka's longhall.");
talkToBrundtAgain.addDialogStep("Ask about the investigation.");
talkToBrundtAgain.addDialogStep("Ask about the Jormungand.");

talkToBrundtSouthEastOfRellekka = new NpcStep(this, NpcID.BRUNDT_THE_CHIEFTAIN_9266, new WorldPoint(2705, 3634, 0),
"Talk to Brundt south east of Rellekka, asking him all available questions.");
Expand All @@ -373,6 +377,12 @@ public void setupSteps()
askAboutSigil.addDialogSteps("How do I make V's Sigil?");
talkToBrundtSouthEastOfRellekka.addSubSteps(askAboutShield, askAboutGlass, askAboutRock, askAboutSigil);

talkToBrundtSouthEastOfRellekkaCond = new ConditionalStep(this, talkToBrundtSouthEastOfRellekka);
talkToBrundtSouthEastOfRellekkaCond.addStep(not(askedAboutShield), askAboutShield);
talkToBrundtSouthEastOfRellekkaCond.addStep(not(askedAboutGlass), askAboutGlass);
talkToBrundtSouthEastOfRellekkaCond.addStep(not(askedAboutRock), askAboutRock);
talkToBrundtSouthEastOfRellekkaCond.addStep(not(askedAboutSigil), askAboutSigil);

enterYagaHouse = new NpcStep(this, NpcID.HOUSE, new WorldPoint(2085, 3931, 0),
"Talk to Baba Yaga in the chicken-legged house in the north of Lunar Isle's town.", sealOfPassage, moltenGlass);
talkToYaga = new NpcStep(this, NpcID.BABA_YAGA, new WorldPoint(2451, 4646, 0), "Talk to Baba Yaga.",
Expand Down Expand Up @@ -536,7 +546,7 @@ public List<PanelDetails> getPanels()
{
List<PanelDetails> allSteps = new ArrayList<>();
allSteps.add(new PanelDetails("Investigating", Arrays.asList(buyKegs, talkToBrundt, talkToFreygerd,
searchSandpit, killYoungling, pickupLetter, readLetter, searchRockslide, searchSandpit,
searchSandpit, killYoungling, pickupLetter, readLetter, searchRockslide, searchBoxes,
talkToFreygardWithItems, talkToBrundtAgain, talkToBrundtSouthEastOfRellekka), combatGear, mirrorShield));

PanelDetails shieldPanel = new PanelDetails("A Fremennik Shield", Collections.singletonList(getFremennikShield),
Expand Down

0 comments on commit 36c0e6d

Please sign in to comment.