50 lines
920 B
Go
50 lines
920 B
Go
package quest
|
|
|
|
type Quest int16
|
|
type Status uint16
|
|
|
|
func (s Status) Completed() bool {
|
|
return s&StatusMaskCompleted != 0
|
|
}
|
|
|
|
func (s Status) NotStarted() bool {
|
|
return s == 0
|
|
}
|
|
|
|
func (s Status) HasStatus(st Status) bool {
|
|
return (s & st) == st
|
|
}
|
|
|
|
// Note that quest order isnt what is represented visually in game
|
|
const (
|
|
Act1DenOfEvil Quest = iota
|
|
Act1SistersBurialGrounds
|
|
Act1ToolsOfTheTrade
|
|
Act1TheSearchForCain
|
|
Act1TheForgottenTower
|
|
Act1SistersToTheSlaughter
|
|
Act2RadamentsLair
|
|
Act2TheHoradricStaff
|
|
Act2TaintedSun
|
|
Act2ArcaneSanctuary
|
|
Act2TheSummoner
|
|
Act2TheSevenTombs
|
|
Act3LamEsensTome
|
|
Act3KhalimsWill
|
|
Act3BladeOfTheOldReligion
|
|
Act3TheGoldenBird
|
|
Act3TheBlackenedTemple
|
|
Act3TheGuardian
|
|
Act4TheFallenAngel
|
|
Act4HellForge
|
|
Act4TerrorsEnd
|
|
Act5SiegeOnHarrogath
|
|
Act5RescueOnMountArreat
|
|
Act5PrisonOfIce
|
|
Act5BetrayalOfHarrogath
|
|
Act5RiteOfPassage
|
|
Act5EveOfDestruction
|
|
)
|
|
|
|
type Quests map[Quest]Status
|