implement classes tests and fix package
This commit is contained in:
parent
f4ace393d3
commit
249bb4f3c1
1714
internal/classes/classes_test.go
Normal file
1714
internal/classes/classes_test.go
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,94 +3,94 @@ package classes
|
||||
// Adventure class ID constants converted from C++ classes.h
|
||||
const (
|
||||
// Base classes
|
||||
ClassCommoner = 0
|
||||
ClassFighter = 1
|
||||
ClassPriest = 11
|
||||
ClassMage = 21
|
||||
ClassScout = 31
|
||||
ClassCommoner = int8(0)
|
||||
ClassFighter = int8(1)
|
||||
ClassPriest = int8(11)
|
||||
ClassMage = int8(21)
|
||||
ClassScout = int8(31)
|
||||
|
||||
// Fighter subclasses
|
||||
ClassWarrior = 2
|
||||
ClassGuardian = 3
|
||||
ClassBerserker = 4
|
||||
ClassBrawler = 5
|
||||
ClassMonk = 6
|
||||
ClassBruiser = 7
|
||||
ClassCrusader = 8
|
||||
ClassShadowknight = 9
|
||||
ClassPaladin = 10
|
||||
ClassWarrior = int8(2)
|
||||
ClassGuardian = int8(3)
|
||||
ClassBerserker = int8(4)
|
||||
ClassBrawler = int8(5)
|
||||
ClassMonk = int8(6)
|
||||
ClassBruiser = int8(7)
|
||||
ClassCrusader = int8(8)
|
||||
ClassShadowknight = int8(9)
|
||||
ClassPaladin = int8(10)
|
||||
|
||||
// Priest subclasses
|
||||
ClassCleric = 12
|
||||
ClassTemplar = 13
|
||||
ClassInquisitor = 14
|
||||
ClassDruid = 15
|
||||
ClassWarden = 16
|
||||
ClassFury = 17
|
||||
ClassShaman = 18
|
||||
ClassMystic = 19
|
||||
ClassDefiler = 20
|
||||
ClassCleric = int8(12)
|
||||
ClassTemplar = int8(13)
|
||||
ClassInquisitor = int8(14)
|
||||
ClassDruid = int8(15)
|
||||
ClassWarden = int8(16)
|
||||
ClassFury = int8(17)
|
||||
ClassShaman = int8(18)
|
||||
ClassMystic = int8(19)
|
||||
ClassDefiler = int8(20)
|
||||
|
||||
// Mage subclasses
|
||||
ClassSorcerer = 22
|
||||
ClassWizard = 23
|
||||
ClassWarlock = 24
|
||||
ClassEnchanter = 25
|
||||
ClassIllusionist = 26
|
||||
ClassCoercer = 27
|
||||
ClassSummoner = 28
|
||||
ClassConjuror = 29
|
||||
ClassNecromancer = 30
|
||||
ClassSorcerer = int8(22)
|
||||
ClassWizard = int8(23)
|
||||
ClassWarlock = int8(24)
|
||||
ClassEnchanter = int8(25)
|
||||
ClassIllusionist = int8(26)
|
||||
ClassCoercer = int8(27)
|
||||
ClassSummoner = int8(28)
|
||||
ClassConjuror = int8(29)
|
||||
ClassNecromancer = int8(30)
|
||||
|
||||
// Scout subclasses
|
||||
ClassRogue = 32
|
||||
ClassSwashbuckler = 33
|
||||
ClassBrigand = 34
|
||||
ClassBard = 35
|
||||
ClassTroubador = 36
|
||||
ClassDirge = 37
|
||||
ClassPredator = 38
|
||||
ClassRanger = 39
|
||||
ClassAssassin = 40
|
||||
ClassAnimalist = 41
|
||||
ClassBeastlord = 42
|
||||
ClassRogue = int8(32)
|
||||
ClassSwashbuckler = int8(33)
|
||||
ClassBrigand = int8(34)
|
||||
ClassBard = int8(35)
|
||||
ClassTroubador = int8(36)
|
||||
ClassDirge = int8(37)
|
||||
ClassPredator = int8(38)
|
||||
ClassRanger = int8(39)
|
||||
ClassAssassin = int8(40)
|
||||
ClassAnimalist = int8(41)
|
||||
ClassBeastlord = int8(42)
|
||||
|
||||
// Special classes
|
||||
ClassShaper = 43
|
||||
ClassChanneler = 44
|
||||
ClassShaper = int8(43)
|
||||
ClassChanneler = int8(44)
|
||||
)
|
||||
|
||||
// Tradeskill class ID constants
|
||||
const (
|
||||
// Base tradeskill classes
|
||||
ClassArtisan = 45
|
||||
ClassCraftsman = 46
|
||||
ClassOutfitter = 50
|
||||
ClassScholar = 54
|
||||
ClassArtisan = int8(45)
|
||||
ClassCraftsman = int8(46)
|
||||
ClassOutfitter = int8(50)
|
||||
ClassScholar = int8(54)
|
||||
|
||||
// Craftsman subclasses
|
||||
ClassProvisioner = 47
|
||||
ClassWoodworker = 48
|
||||
ClassCarpenter = 49
|
||||
ClassProvisioner = int8(47)
|
||||
ClassWoodworker = int8(48)
|
||||
ClassCarpenter = int8(49)
|
||||
|
||||
// Outfitter subclasses
|
||||
ClassArmorer = 51
|
||||
ClassWeaponsmith = 52
|
||||
ClassTailor = 53
|
||||
ClassArmorer = int8(51)
|
||||
ClassWeaponsmith = int8(52)
|
||||
ClassTailor = int8(53)
|
||||
|
||||
// Scholar subclasses
|
||||
ClassJeweler = 55
|
||||
ClassSage = 56
|
||||
ClassAlchemist = 57
|
||||
ClassJeweler = int8(55)
|
||||
ClassSage = int8(56)
|
||||
ClassAlchemist = int8(57)
|
||||
)
|
||||
|
||||
// Class validation constants
|
||||
const (
|
||||
MaxClassID = 57
|
||||
MinClassID = 0
|
||||
MaxClassID = int8(57)
|
||||
MinClassID = int8(0)
|
||||
DefaultClassID = ClassCommoner
|
||||
ClassicMaxAdventureClass = 40 // Classic adventure classes (0-40)
|
||||
ClassicMaxTradeskillClass = 13 // Classic tradeskill progression (0-13)
|
||||
ClassicMaxAdventureClass = int8(40) // Classic adventure classes (0-40)
|
||||
ClassicMaxTradeskillClass = int8(13) // Classic tradeskill progression (0-13)
|
||||
MaxClasses = 58 // Total number of classes
|
||||
)
|
||||
|
||||
|
@ -108,8 +108,8 @@ func (ci *ClassIntegration) CheckClassCompatibility(entity1, entity2 ClassAware)
|
||||
}
|
||||
|
||||
// Check if they share the same base class (good for grouping)
|
||||
base1 := ci.classes.GetBaseClass(class1)
|
||||
base2 := ci.classes.GetBaseClass(class2)
|
||||
// base1 := ci.classes.GetBaseClass(class1)
|
||||
// base2 := ci.classes.GetBaseClass(class2)
|
||||
|
||||
// Different base classes can group together (provides diversity)
|
||||
// Same base class provides synergy
|
||||
|
@ -172,7 +172,7 @@ func (cm *ClassManager) handleInfoCommand(args []string) (string, error) {
|
||||
return fmt.Sprintf("Invalid class ID: %d", classID), nil
|
||||
}
|
||||
|
||||
result := fmt.Sprintf("Class Information:\n")
|
||||
result := "Class Information:\n"
|
||||
result += fmt.Sprintf("ID: %d\n", classID)
|
||||
result += fmt.Sprintf("Name: %s\n", classInfo["display_name"])
|
||||
result += fmt.Sprintf("Type: %s\n", classInfo["type"])
|
||||
@ -390,7 +390,7 @@ func (cm *ClassManager) GetClassRecommendations(preferences map[string]interface
|
||||
// Check for base class preference
|
||||
if baseClass, exists := preferences["base_class"]; exists {
|
||||
if baseClassID, ok := baseClass.(int8); ok {
|
||||
subClasses := cm.utils.GetClassesByBaseClass(baseClassID)
|
||||
subClasses := cm.utils.GetClassesForBaseClass(baseClassID)
|
||||
recommendations = append(recommendations, subClasses...)
|
||||
}
|
||||
}
|
||||
|
@ -259,8 +259,8 @@ func (cu *ClassUtils) GetClassProgression(classID int8) []int8 {
|
||||
return progression
|
||||
}
|
||||
|
||||
// GetClasssByBaseClass returns all classes that belong to a base class
|
||||
func (cu *ClassUtils) GetClasssByBaseClass(baseClassID int8) []int8 {
|
||||
// GetClassesForBaseClass returns all classes that belong to a base class
|
||||
func (cu *ClassUtils) GetClassesForBaseClass(baseClassID int8) []int8 {
|
||||
result := make([]int8, 0)
|
||||
allClasses := cu.classes.GetAllClasses()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user