maps/python/dialog/pre/quest.py

41 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
#quest.py
# This is one of the files that can be called by an npc_dialog,
# The following code runs when a dialog has a pre rule of 'quest'
# The syntax is ["quest", "questname", "queststage"]
# All arguments are required, questname must be a quest that is
# defined by one of the .quests files.
# Queststage can be in one of the following forms:
# 1) A number - eg "20" - The player must be at or past step 20 on questname
# 2) = A number - eg "=20" - The player must be at exactly step 20 on questname
# 3) = A range of numbers - eg "10-30" - The player must be betwen steps 10 and 30 on questname
# To deliver a True verdict, the player must be at the right stage in the quest.
## DIALOGCHECK
## MINARGS 2
## MAXARGS 2
## .*
## (=|)\d+(|-\d+)
## ENDDIALOGCHECK
questname = args[0]
stage = args[1]
if stage == "complete":
# todo: implement this
pass
if stage.find("-") == -1:
if stage[0] == "=":
startstep = int(stage[1:])
endstep = startstep
else:
startstep = int(stage)
endstep = -1
else:
startstep = int(condition.split("-")[0])
endstep= int(condition.split("-")[1])
currentstep = character.QuestGetState(questname)
if currentstep < startstep:
verdict = False
if endstep > -1 and currentstep > endstep:
verdict = False