package npc

// AI Strategy constants
const (
	AIStrategyBalanced  int8 = 1
	AIStrategyOffensive int8 = 2
	AIStrategyDefensive int8 = 3
)

// Randomize Appearances constants
const (
	RandomizeGender         int32 = 1
	RandomizeRace           int32 = 2
	RandomizeModelType      int32 = 4
	RandomizeFacialHairType int32 = 8
	RandomizeHairType       int32 = 16
	RandomizeWingType       int32 = 64
	RandomizeCheekType      int32 = 128
	RandomizeChinType       int32 = 256
	RandomizeEarType        int32 = 512
	RandomizeEyeBrowType    int32 = 1024
	RandomizeEyeType        int32 = 2048
	RandomizeLipType        int32 = 4096
	RandomizeNoseType       int32 = 8192
	RandomizeEyeColor       int32 = 16384
	RandomizeHairColor1     int32 = 32768
	RandomizeHairColor2     int32 = 65536
	RandomizeHairHighlight  int32 = 131072
	RandomizeHairFaceColor  int32 = 262144
	RandomizeHairFaceHigh   int32 = 524288
	RandomizeHairTypeColor  int32 = 1048576
	RandomizeHairTypeHigh   int32 = 2097152
	RandomizeSkinColor      int32 = 4194304
	RandomizeWingColor1     int32 = 8388608
	RandomizeWingColor2     int32 = 16777216
	RandomizeAll            int32 = 33554431
)

// Pet Type constants
const (
	PetTypeCombat   int8 = 1
	PetTypeCharmed  int8 = 2
	PetTypeDeity    int8 = 3
	PetTypeCosmetic int8 = 4
	PetTypeDumbfire int8 = 5
)

// Cast Type constants
const (
	CastOnSpawn  int8 = 0
	CastOnAggro  int8 = 1
	MaxCastTypes int8 = 2
)

// Default values
const (
	DefaultCastPercentage int8    = 25
	DefaultAggroRadius    float32 = 10.0
	DefaultRunbackSpeed   float32 = 2.0
	MaxSkillBonuses       int     = 100
	MaxNPCSpells          int     = 50
	MaxPauseTime          int32   = 300000 // 5 minutes max pause
)

// NPC validation constants
const (
	MinNPCLevel     int8  = 1
	MaxNPCLevel     int8  = 100
	MaxNPCNameLen   int   = 64
	MinAppearanceID int32 = 0
	MaxAppearanceID int32 = 999999
)

// Combat constants
const (
	RunbackDistanceThreshold float32 = 5.0
	HPRatioMin               int8    = -100
	HPRatioMax               int8    = 100
	DefaultMaxPetLevel       int8    = 20
)

// Color randomization constants
const (
	ColorRandomMin int8 = 0
	ColorRandomMax int8 = 255
	ColorVariation int8 = 30
)

// Movement constants
const (
	DefaultPauseCheckMS int32 = 100
	RunbackCheckMS      int32 = 250
)
