Skip to content
Exodia edited this page Jul 17, 2022 · 41 revisions

( in progress )

Quest

Quest

The Quest class is a set of stages, which follow each other in an orderly fashion.

Add an Quest

(code-snippets: DR_QuestAdd)

define quests = {
    "alice"     :   Quest(id = "alice", title = _("Help [a]"), bg="bg alice terrace talk", 
    stages_id = ["talk alice1", "order products", "take products", "talk alice2"], 
    description = _("To learn more about how the repo works, Talk to [a]. \nGoing when she is there will automatically start an \"Event\" (see routine*.rpy to learn more). \nAfter that an action (action*.rpy) will be added to open the pc, in MC room. \n\n(during the quest you can talk to [a] and you will see her talking during the quests of the same Quest)")),

    "ann"       :   Quest(id = "ann", title = _("Help [an]"), stages_id = ["talk al about ann"], development = True),
}

Start a Quest

quests["alice"].start()
quests["ann"].start()

Next Stage

(only if the Stage has been completed)

quests["alice"].nextStage()

If Quests level

To check which stage number a Quest has arrived at:

if (quests_levels["alice"] == 2):
    # ...

Stage

The Stage() class is the necle of the Quest system. It is mandatory to define idQuestOrTask: it is the id of the quest it belongs to, or it is the id of the Task (explained later). In addition as title, description, description_request and advice the other parameters:

bg: in the information you can see the image inserted in bg

goals = []: the Goals to be passed (explained later)

days_late: days_late must pass since we "reached" the stage to start it

bl_requests = []: the bl_values (explained later) must be set to True to start the quest

quests_levels_requests = {
    "quest id"  :   level,
}

quests_levels_requests: to start the stage: quests_levels[quest] < level

label_start: label which will be started at the beginning of the quest

label_end: label which will be started at the end of the stage

label_check: (has not been implemented yet)

define quest_stages = {
    # Quest "alice"
    "talk alice1"           :   Stage(idQuestOrTask = "alice", title = _("Talk [a]"), 
    description = _("Talk [a] on the terrace."), label_start="stagestart_talkalice"),
    "order products"        :   Stage(idQuestOrTask = "alice", title = _("Order products"), 
    description = _("Order the products with your PC.")),
    "take products"         :   Stage(idQuestOrTask = "alice", title = _("Take products"), 
    description = _("Take products on the Terrace."), 
    description_request = _("Wait for the products you ordered to arrive (2 day)"), 
    days_late = 2, label_start="add_product"),
    "talk alice2"           :   Stage(idQuestOrTask = "alice", title = _("Talk [a]"), description = _("Talk [a].")),
    # Quest "ann"
    "talk al about ann"     :   Stage(idQuestOrTask = "ann", title = _("Talk [a]"), description = _("Talk [a].")),
    "visit ann"             :   Stage(idQuestOrTask = "ann", title = _("Visit [an]"), 
    description = _("Go to the house of [an].")),
}

Task

(in process)

Goal

(in process)

Clone this wiki locally