package com.mazebert.builders;

import com.mazebert.entities.Quest;
import com.mazebert.entities.QuestBuilderMethods;

public class QuestBuilder implements QuestBuilderMethods<Quest, QuestBuilder> {
    private Quest quest = new Quest();

    public QuestBuilder daily() {
        return this.withHidden(false);
    }

    public QuestBuilder hidden() {
        return this.withHidden(true);
    }

    public QuestBuilder rollStrikesWithBowlingBall() {
        return this
                .daily()
                .withId(20)
                .withSinceVersion("1.2.0");
    }

    public QuestBuilder headhunter() {
        return this
                .daily()
                .withId(1)
                .withSinceVersion("1.0.0");
    }

    public QuestBuilder completeTwistedPaths() {
        return this
                .hidden()
                .withId(11)
                .withReward(100)
                .withSinceVersion("1.0.0");
    }

    @Override
    public Quest getEntity() {
        return quest;
    }
}
