package quests

// Quest step type constants
const (
	StepTypeKill        int8 = 1
	StepTypeChat        int8 = 2
	StepTypeObtainItem  int8 = 3
	StepTypeLocation    int8 = 4
	StepTypeSpell       int8 = 5
	StepTypeNormal      int8 = 6
	StepTypeCraft       int8 = 7
	StepTypeHarvest     int8 = 8
	StepTypeKillRaceReq int8 = 9 // kill using race type requirement instead of npc db id
)

// Quest display status constants
const (
	DisplayStatusHidden       int32 = 0
	DisplayStatusNoCheck      int32 = 1
	DisplayStatusYellow       int32 = 2
	DisplayStatusCompleted    int32 = 4
	DisplayStatusRepeatable   int32 = 8
	DisplayStatusCanShare     int32 = 16
	DisplayStatusCompleteFlag int32 = 32
	DisplayStatusShow         int32 = 64
	DisplayStatusCheck        int32 = 128
)

// Quest shareable flags
const (
	ShareableNone      int32 = 0
	ShareableActive    int32 = 1
	ShareableDuring    int32 = 2
	ShareableCompleted int32 = 4
)

// Default quest values
const (
	DefaultIcon         int16 = 11
	DefaultPrereqLevel  int8  = 1
	DefaultVisible      int8  = 1
	DefaultTaskGroupNum int16 = 1
)

// Quest validation limits
const (
	MaxQuestNameLength        int = 255
	MaxQuestDescriptionLength int = 2048
	MaxStepDescriptionLength  int = 1024
	MaxTaskGroupNameLength    int = 255
	MaxCompleteActionLength   int = 512
)

// Location-based constants
const (
	MinLocationVariation float32 = 0.1
	MaxLocationVariation float32 = 1000.0
)

// Percentage constants
const (
	MinPercentage float32 = 0.0
	MaxPercentage float32 = 100.0
)

// Status constants
const (
	StatusInactive int32 = 0
	StatusActive   int32 = 1
	StatusComplete int32 = 2
	StatusFailed   int32 = 3
)

// Random constants
const (
	DefaultRandomRange float32 = 100.0
)
