package guilds

// Guild rank constants
const (
	RankLeader        = 0
	RankSeniorOfficer = 1
	RankOfficer       = 2
	RankSeniorMember  = 3
	RankMember        = 4
	RankJuniorMember  = 5
	RankInitiate      = 6
	RankRecruit       = 7
)

// Guild permission constants
const (
	PermissionInvite                  = 0
	PermissionRemoveMember            = 1
	PermissionPromoteMember           = 2
	PermissionDemoteMember            = 3
	PermissionChangeMOTD              = 6
	PermissionChangePermissions       = 7
	PermissionChangeRankNames         = 8
	PermissionSeeOfficerNotes         = 9
	PermissionEditOfficerNotes        = 10
	PermissionSeeOfficerChat          = 11
	PermissionSpeakInOfficerChat      = 12
	PermissionSeeGuildChat            = 13
	PermissionSpeakInGuildChat        = 14
	PermissionEditPersonalNotes       = 15
	PermissionEditPersonalNotesOthers = 16
	PermissionEditEventFilters        = 17
	PermissionEditEvents              = 18
	PermissionPurchaseStatusItems     = 19
	PermissionDisplayGuildName        = 20
	PermissionSendEmailToGuild        = 21
	PermissionBank1SeeContents        = 22
	PermissionBank2SeeContents        = 23
	PermissionBank3SeeContents        = 24
	PermissionBank4SeeContents        = 25
	PermissionBank1Deposit            = 26
	PermissionBank2Deposit            = 27
	PermissionBank3Deposit            = 28
	PermissionBank4Deposit            = 29
	PermissionBank1Withdrawal         = 30
	PermissionBank2Withdrawal         = 31
	PermissionBank3Withdrawal         = 32
	PermissionBank4Withdrawal         = 33
	PermissionEditRecruitingSettings  = 35
	PermissionMakeOthersRecruiters    = 36
	PermissionSeeRecruitingSettings   = 37
	PermissionAssignPoints            = 43
	PermissionReceivePoints           = 44
)

// Event filter categories
const (
	EventFilterCategoryRetainHistory = 0
	EventFilterCategoryBroadcast     = 1
)

// Guild event types
const (
	EventGuildLevelUp           = 0
	EventGuildLevelDown         = 1
	EventDiscoversItem          = 2
	EventGainsAdvLevel1To10     = 3
	EventGainsAdvLevel11To20    = 4
	EventGainsAdvLevel21To30    = 5
	EventGainsAdvLevel31To40    = 6
	EventGainsAdvLevel41To50    = 7
	EventGainsTSLevel1To10      = 8
	EventGainsTSLevel11To20     = 9
	EventGainsTSLevel21To30     = 10
	EventGainsTSLevel31To40     = 11
	EventGainsTSLevel41To50     = 12
	EventMemberJoins            = 13
	EventMemberLeaves           = 14
	EventMemberPromoted         = 15
	EventMemberDemoted          = 16
	EventCompletesHeritageQuest = 19
	EventKillsEpicMonster       = 20
	EventLootsArtifact          = 21
	EventLootsFabeledItem       = 22
	EventLootsLegendaryItem     = 23
	EventCompletesWrit          = 24
	EventLootsMythicalItem      = 25
	EventGainsAdvLevel10        = 26
	EventGainsAdvLevel20        = 27
	EventGainsAdvLevel30        = 28
	EventGainsAdvLevel40        = 29
	EventGainsAdvLevel50        = 30
	EventGainsTSLevel10         = 31
	EventGainsTSLevel20         = 32
	EventGainsTSLevel30         = 33
	EventGainsTSLevel40         = 34
	EventGainsTSLevel50         = 35
	EventGainsAdvLevel51To60    = 37
	EventGainsTSLevel51To60     = 38
	EventGainsAdvLevel60        = 39
	EventGainsTSLevel60         = 40
	EventGainsAdvLevel61To70    = 41
	EventGainsTSLevel61To70     = 42
	EventGainsAdvLevel70        = 43
	EventGainsTSLevel70         = 44
	EventGainsAA10              = 45
	EventGainsAA20              = 46
	EventGainsAA30              = 47
	EventGainsAA40              = 48
	EventGainsAA50              = 49
	EventGainsAA1To10           = 50
	EventGainsAA11To20          = 51
	EventGainsAA21To30          = 52
	EventGainsAA31To40          = 53
	EventGainsAA41To50          = 54
	EventBecomesRecruiter       = 55
	EventNoLongerRecruiter      = 56
	EventHeraldyChange          = 57
	EventGainsAA60              = 58
	EventGainsAA70              = 59
	EventGainsAA80              = 60
	EventGainsAA90              = 61
	EventGainsAA100             = 62
	EventGainsAA51To60          = 63
	EventGainsAA61To70          = 64
	EventGainsAA71To80          = 65
	EventGainsAA81To90          = 66
	EventGainsAA91To100         = 67
	EventGainsAdvLevel80        = 68
	EventGainsTSLevel80         = 69
	EventGainsAdvLevel71To80    = 70
	EventGainsTSLevel71To80     = 71
	EventGainsAA110             = 72
	EventGainsAA120             = 73
	EventGainsAA130             = 74
	EventGainsAA140             = 75
	EventGainsAA101To110        = 76
	EventGainsAA111To120        = 77
	EventGainsAA121To130        = 78
	EventGainsAA131To140        = 79
	EventGainsAA150             = 80
	EventGainsAA141To150        = 81
	EventGainsAA160             = 82
	EventGainsAA170             = 83
	EventGainsAA180             = 84
	EventGainsAA190             = 85
	EventGainsAA200             = 86
	EventGainsAA151To160        = 87
	EventGainsAA161To170        = 88
	EventGainsAA171To180        = 89
	EventGainsAA181To190        = 90
	EventGainsAA191To200        = 91
	EventEarnsAchievement       = 92
)

// Recruiting flags
const (
	RecruitingFlagTraining      = 0
	RecruitingFlagFighters      = 1
	RecruitingFlagPriests       = 2
	RecruitingFlagScouts        = 3
	RecruitingFlagMages         = 4
	RecruitingFlagTradeskillers = 5
)

// Recruiting play styles
const (
	RecruitingPlayStyleNone     = 0
	RecruitingPlayStyleCasual   = 1
	RecruitingPlayStyleHardcore = 2
)

// Recruiting description tags
const (
	RecruitingDescTagNone            = 0
	RecruitingDescTagGood            = 1
	RecruitingDescTagEvil            = 2
	RecruitingDescTagChatty          = 3
	RecruitingDescTagOrganized       = 4
	RecruitingDescTagRoleplay        = 5
	RecruitingDescTagEnjoyQuests     = 6
	RecruitingDescTagEnjoyRaids      = 7
	RecruitingDescTagOddHours        = 8
	RecruitingDescTagCrafterOriented = 9
	RecruitingDescTagFamilyFriendly  = 10
	RecruitingDescTagMatureHumor     = 11
	RecruitingDescTagInmatesRun      = 12
	RecruitingDescTagVeryFunny       = 13
	RecruitingDescTagHumorCausesPain = 14
	RecruitingDescTagSerious         = 15
)

// Member flags
const (
	MemberFlagRecruitingForGuild = 1
	MemberFlagNotifyLogins       = 2
	MemberFlagDontGenerateEvents = 4
)

// Event actions
const (
	EventActionLock   = 0
	EventActionUnlock = 1
	EventActionDelete = 2
)

// System limits
const (
	MaxGuildLevel           = 80
	MaxPointHistory         = 50
	MaxEvents               = 500
	MaxLockedEvents         = 200
	MaxGuildNameLength      = 64
	MaxMOTDLength           = 256
	MaxMemberNameLength     = 64
	MaxBankNameLength       = 64
	MaxRecruitingDescLength = 512
)

// Default rank names
var DefaultRankNames = map[int8]string{
	RankLeader:        "Leader",
	RankSeniorOfficer: "Senior Officer",
	RankOfficer:       "Officer",
	RankSeniorMember:  "Senior Member",
	RankMember:        "Member",
	RankJuniorMember:  "Junior Member",
	RankInitiate:      "Initiate",
	RankRecruit:       "Recruit",
}
