@Override
    public int pulse() {
        if (widgets.get(297) == null && !players.getLocalPlayer().isInteracting()) {
            npc.interact("Talk-to");
            Utils.sleep(1500, 2000);
        } else if (widgets.get(297) == null && players.getLocalPlayer().isInteracting()) {
            widgets.clickContinue();
            Utils.sleep(1500, 2000);
        } else {
            String whatSandwich = widgets.get(297, 8).getText();
            Widget sandwich = getSandwichComponent(Sandwiches.getObject(whatSandwich).getId());
            if (sandwich != null) {
                sandwich.click();
                Utils.sleep(1500, 2000);
            }
        }
        if (npcs.getNearest(NPC_ID) == null) {
            requestExit();
            Utils.sleep(1500, 2000);
        }
        if (widgets.canContinue()) {
            widgets.clickContinue();
            Utils.sleep(1000, 1500);
        }
        return random(150, 200);
    }