Chaosy
Tutorial Reviewer
- Joined
- Jun 9, 2011
- Messages
- 13,239
Quest
Heavily based on Mckill's QuestUtilsA little something I wrote while trying to learn Wurst.
Overall pretty pleasant.
Code is divided in 2 files
- Quest
- QuestItems
Wurst:
package Quest
import QuestExtensions
import QuestObjective
public enum questState
FAILED
COMPLETED
UNDISCOVERED
DISCOVERED
public class Quest
quest q
construct(boolean required)
q = CreateQuest()
q.setRequired(required)
function setTitle(string title)
q.setTitle(title)
function setDescription(string title)
q.setDescription(title)
function setIcon(string path)
q.setIcon(path)
function isEnabled() returns boolean
return q.isEnabled()
function isCompleted() returns boolean
return q.isCompleted()
function setState(questState state)
switch state
case state.COMPLETED
q.completed(true)
case state.FAILED
q.failed(true)
case state.UNDISCOVERED
q.discovered(false)
case state.DISCOVERED
q.discovered(true)
function addObjective(string text) returns QuestObjective
return new QuestObjective(q, text)
ondestroy
q.remove()
Wurst:
package QuestObjective
import QuestObjectiveExtensions
public class QuestObjective
questitem qi
quest parent
construct(quest q, string text)
parent = q
qi = QuestCreateItem(parent)
qi.description(text)
function isCompleted() returns boolean
return qi.isCompleted()
function complete(boolean b)
qi.complete(b)
Demo
Wurst:
Quest farmQ
QuestObjective farmObj
init
farmQ = new Quest(true)
..setTitle("Dope Quest")
..setIcon("ReplaceableTextures\\CommandButtons\\BTNDivineIntervention.blp")
..setDescription("A farmer's wife has been missing for a few days")
farmObj = farmQ.addObjective("Find the farmer's wife")
CreateTrigger()
..registerUnitInRange(CreateUnit(players[0], 'nvlw', 300, 300, 0), 250, null)
..addAction(() -> begin
print("Wife found!")
farmObj.complete(true)
farmQ.setState(questState.COMPLETED)
end)
Attachments
Last edited: