Noch mehr Namensanpassungen
This commit is contained in:
@@ -307,7 +307,7 @@ func TestGetSkillAllLevelCosts(t *testing.T) {
|
||||
assert.NoError(t, err, "Response should be valid JSON for weapon skill")
|
||||
}
|
||||
|
||||
func TestGetAvailableSkillsNew(t *testing.T) {
|
||||
func TestGetAvailableSkillsNewSystem(t *testing.T) {
|
||||
database.SetupTestDB(true) // Setup test database
|
||||
// Initialize a Gin router
|
||||
r := gin.Default()
|
||||
@@ -417,7 +417,7 @@ func TestGetAvailableSkillsNew(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetAvailableSpellsNew(t *testing.T) {
|
||||
func TestGetAvailableSpellsNewSystem(t *testing.T) {
|
||||
database.SetupTestDB(true) // Setup test database
|
||||
// Initialize a Gin router
|
||||
r := gin.Default()
|
||||
|
||||
@@ -1303,7 +1303,7 @@ func GetAvailableSkillsNewSystem(c *gin.Context) {
|
||||
remainingGold := request.UseGold
|
||||
|
||||
// Hole die vollständigen Skill-Informationen für die Kostenberechnung
|
||||
skillLearningInfo, err := models.GetSkillCategoryAndDifficultyNew(skill.Name, getCharacterClassOld(&character))
|
||||
skillLearningInfo, err := models.GetSkillCategoryAndDifficultyNewSystem(skill.Name, getCharacterClassOld(&character))
|
||||
if err != nil {
|
||||
// Fallback für unbekannte Skills
|
||||
skillLearningInfo = &models.SkillLearningInfo{
|
||||
|
||||
@@ -180,7 +180,7 @@ func GetLernCostNewSystem(c *gin.Context) {
|
||||
// Verwende Klassenabkürzung wenn der Typ länger als 3 Zeichen ist
|
||||
var characterClass string
|
||||
if len(character.Typ) > 3 {
|
||||
characterClass = gsmaster.GetClassAbbreviationNew(character.Typ)
|
||||
characterClass = gsmaster.GetClassAbbreviationNewSystem(character.Typ)
|
||||
} else {
|
||||
characterClass = character.Typ
|
||||
}
|
||||
@@ -220,7 +220,7 @@ func GetLernCostNewSystem(c *gin.Context) {
|
||||
response = append(response, levelResult)
|
||||
} else {
|
||||
// Skill learning logic
|
||||
skillInfo, err := models.GetSkillCategoryAndDifficultyNew(skillName, characterClass)
|
||||
skillInfo, err := models.GetSkillCategoryAndDifficultyNewSystem(skillName, characterClass)
|
||||
if err != nil {
|
||||
respondWithError(c, http.StatusBadRequest, fmt.Sprintf("Fertigkeit '%s' nicht gefunden oder nicht für Klasse '%s' verfügbar: %v", skillName, characterClass, err))
|
||||
return
|
||||
@@ -246,7 +246,7 @@ func GetLernCostNewSystem(c *gin.Context) {
|
||||
} else {
|
||||
// Für "improve" Aktion: berechne für jedes Level von current+1 bis 18
|
||||
// Improvement only works on skills, not spells
|
||||
skillInfo, err := models.GetSkillCategoryAndDifficultyNew(skillName, characterClass)
|
||||
skillInfo, err := models.GetSkillCategoryAndDifficultyNewSystem(skillName, characterClass)
|
||||
if err != nil {
|
||||
respondWithError(c, http.StatusBadRequest, fmt.Sprintf("Fertigkeit '%s' nicht gefunden oder nicht für Klasse '%s' verfügbar: %v", skillName, characterClass, err))
|
||||
return
|
||||
@@ -981,7 +981,7 @@ func generateNotes(character *models.Char, request *SkillCostRequest, cost *mode
|
||||
// getPPForSkill ermittelt die verfügbaren Praxispunkte für eine spezifische Fertigkeit
|
||||
func getPPForSkill(character *models.Char, skillName string) int {
|
||||
// Ermittle die tatsächliche Fertigkeit (bei Zaubern die Zaubergruppe)
|
||||
targetSkillName := getSpellCategory(skillName)
|
||||
targetSkillName := getSpellCategoryNewSystem(skillName)
|
||||
|
||||
for _, fertigkeit := range character.Fertigkeiten {
|
||||
if fertigkeit.Name == targetSkillName {
|
||||
|
||||
@@ -71,9 +71,11 @@ func UpdatePracticePoints(c *gin.Context) {
|
||||
}
|
||||
|
||||
// Alle Fertigkeiten durchgehen und Praxispunkte zurücksetzen
|
||||
for i := range character.Fertigkeiten {
|
||||
character.Fertigkeiten[i].Pp = 0
|
||||
}
|
||||
/*
|
||||
for i := range character.Fertigkeiten {
|
||||
character.Fertigkeiten[i].Pp = 0
|
||||
}
|
||||
*/
|
||||
|
||||
// Neue Praxispunkte setzen
|
||||
for _, pp := range practicePoints {
|
||||
@@ -106,6 +108,7 @@ func UpdatePracticePoints(c *gin.Context) {
|
||||
}
|
||||
|
||||
// AddPracticePoint fügt einen Praxispunkt zu einer Fertigkeit hinzu
|
||||
// TODO prüfe speichern der PP für Spells
|
||||
func AddPracticePoint(c *gin.Context) {
|
||||
// Charakter-ID aus der URL abrufen
|
||||
charID := c.Param("id")
|
||||
@@ -136,9 +139,9 @@ func AddPracticePoint(c *gin.Context) {
|
||||
// Prüfen, ob es sich um einen Zauber handelt
|
||||
var targetSkillName string
|
||||
var isSpellFlag bool
|
||||
if isSpell(request.SkillName) {
|
||||
if isSpellNewSystem(request.SkillName) {
|
||||
// Bei Zaubern: PP werden der entsprechenden Zaubergruppe zugeordnet
|
||||
targetSkillName = getSpellCategory(request.SkillName)
|
||||
targetSkillName = getSpellCategoryNewSystem(request.SkillName)
|
||||
isSpellFlag = true
|
||||
} else {
|
||||
// Bei normalen Fertigkeiten: PP werden direkt der Fertigkeit zugeordnet
|
||||
@@ -234,9 +237,9 @@ func UsePracticePoint(c *gin.Context) {
|
||||
// Prüfen, ob es sich um einen Zauber handelt
|
||||
var targetSkillName string
|
||||
var isSpellFlag bool
|
||||
if isSpell(request.SkillName) {
|
||||
if isSpellNewSystem(request.SkillName) {
|
||||
// Bei Zaubern: PP werden von der entsprechenden Zaubergruppe abgezogen
|
||||
targetSkillName = getSpellCategory(request.SkillName)
|
||||
targetSkillName = getSpellCategoryNewSystem(request.SkillName)
|
||||
isSpellFlag = true
|
||||
} else {
|
||||
// Bei normalen Fertigkeiten: PP werden direkt von der Fertigkeit abgezogen
|
||||
|
||||
@@ -13,9 +13,9 @@ func RegisterRoutes(r *gin.RouterGroup) {
|
||||
charGrp.DELETE("/:id", DeleteCharacter)
|
||||
|
||||
// Erfahrung und Vermögen
|
||||
charGrp.GET("/:id/experience-wealth", GetCharacterExperienceAndWealth)
|
||||
charGrp.PUT("/:id/experience", UpdateCharacterExperience)
|
||||
charGrp.PUT("/:id/wealth", UpdateCharacterWealth)
|
||||
charGrp.GET("/:id/experience-wealth", GetCharacterExperienceAndWealth) // NewSystem
|
||||
charGrp.PUT("/:id/experience", UpdateCharacterExperience) // NewSystem
|
||||
charGrp.PUT("/:id/wealth", UpdateCharacterWealth) // NewSystem
|
||||
|
||||
// Audit-Log für Änderungen
|
||||
charGrp.GET("/:id/audit-log", GetCharacterAuditLog) // Alle Änderungen oder gefiltert nach Feld (?field=experience_points)
|
||||
@@ -39,12 +39,12 @@ func RegisterRoutes(r *gin.RouterGroup) {
|
||||
charGrp.GET("/:id/reward-types", GetRewardTypesOld) // Verfügbare Belohnungsarten je nach Kontext
|
||||
|
||||
// Praxispunkte-Verwaltung
|
||||
charGrp.GET("/:id/practice-points", GetPracticePoints)
|
||||
charGrp.PUT("/:id/practice-points", UpdatePracticePoints)
|
||||
charGrp.POST("/:id/practice-points/add", AddPracticePoint)
|
||||
charGrp.POST("/:id/practice-points/use", UsePracticePoint)
|
||||
charGrp.GET("/:id/practice-points", GetPracticePoints) // NewSystem
|
||||
charGrp.PUT("/:id/practice-points", UpdatePracticePoints) // NewSystem
|
||||
charGrp.POST("/:id/practice-points/add", AddPracticePoint) // NewSystem
|
||||
charGrp.POST("/:id/practice-points/use", UsePracticePoint) // NewSystem
|
||||
|
||||
// System-Information
|
||||
charGrp.GET("/character-classes", GetCharacterClassesHandler)
|
||||
charGrp.GET("/skill-categories", GetSkillCategoriesHandler)
|
||||
charGrp.GET("/character-classes", GetCharacterClassesHandlerOld)
|
||||
charGrp.GET("/skill-categories", GetSkillCategoriesHandlerOld)
|
||||
}
|
||||
|
||||
@@ -5,10 +5,10 @@ import (
|
||||
"bamort/models"
|
||||
)
|
||||
|
||||
// getSpellCategory ermittelt die Zaubergruppe für einen gegebenen Zaubernamen
|
||||
// getSpellCategoryNewSystem ermittelt die Zaubergruppe für einen gegebenen Zaubernamen
|
||||
// Wenn es sich um einen Zauber handelt, wird die Kategorie zurückgegeben
|
||||
// Andernfalls wird der ursprüngliche Name zurückgegeben
|
||||
func getSpellCategory(name string) string {
|
||||
func getSpellCategoryNewSystem(name string) string {
|
||||
var spell models.Spell
|
||||
if err := database.DB.Where("name = ?", name).First(&spell).Error; err != nil {
|
||||
// Kein Zauber gefunden, ursprünglichen Namen verwenden
|
||||
@@ -20,8 +20,8 @@ func getSpellCategory(name string) string {
|
||||
return spell.Category
|
||||
}
|
||||
|
||||
// isSpell prüft, ob der gegebene Name ein Zauber ist
|
||||
func isSpell(name string) bool {
|
||||
// isSpellNewSystem prüft, ob der gegebene Name ein Zauber ist
|
||||
func isSpellNewSystem(name string) bool {
|
||||
var spell models.Spell
|
||||
err := database.DB.Where("name = ?", name).First(&spell).Error
|
||||
return err == nil
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// GetCharacterClassesHandler gibt alle verfügbaren Charakterklassen zurück
|
||||
func GetCharacterClassesHandler(c *gin.Context) {
|
||||
// GetCharacterClassesHandlerOld gibt alle verfügbaren Charakterklassen zurück
|
||||
func GetCharacterClassesHandlerOld(c *gin.Context) {
|
||||
// Vereinfachte Antwort mit den drei Hauptklassen
|
||||
classes := map[string]interface{}{
|
||||
"Sp": map[string]interface{}{
|
||||
@@ -30,8 +30,8 @@ func GetCharacterClassesHandler(c *gin.Context) {
|
||||
c.JSON(http.StatusOK, gin.H{"character_classes": classes})
|
||||
}
|
||||
|
||||
// GetSkillCategoriesHandler gibt alle verfügbaren Fertigkeitskategorien zurück
|
||||
func GetSkillCategoriesHandler(c *gin.Context) {
|
||||
// GetSkillCategoriesHandlerOld gibt alle verfügbaren Fertigkeitskategorien zurück
|
||||
func GetSkillCategoriesHandlerOld(c *gin.Context) {
|
||||
categories := map[string]interface{}{
|
||||
"Alltag": map[string]interface{}{
|
||||
"name": "Alltag",
|
||||
|
||||
@@ -852,7 +852,7 @@ func GetClassAbbreviationOld(characterClass string) string {
|
||||
// Fallback: originale Eingabe zurückgeben
|
||||
return characterClass
|
||||
}
|
||||
func GetClassAbbreviationNew(characterClass string) string {
|
||||
func GetClassAbbreviationNewSystem(characterClass string) string {
|
||||
// Try to find by code first (e.g., "Kr" -> "Kr")
|
||||
var charClass models.CharacterClass
|
||||
if err := charClass.FirstByName(characterClass); err == nil {
|
||||
|
||||
@@ -541,8 +541,8 @@ func contains(slice []string, item string) bool {
|
||||
|
||||
//### End of Helper functions ###
|
||||
|
||||
// GetSpellInfoNew returns the school and level of a spell from the database
|
||||
func GetSpellInfoNew(spellName string) (string, int, error) {
|
||||
// GetSpellInfoNewSystem returns the school and level of a spell from the database
|
||||
func GetSpellInfoNewSystem(spellName string) (string, int, error) {
|
||||
// Create a Spell instance to search in the database
|
||||
var spell models.Spell
|
||||
|
||||
@@ -780,7 +780,7 @@ func CalcSpellLernCostOld(costResult *SkillCostResultNew, reward *string) error
|
||||
// Für Zauber verwenden wir eine ähnliche Logik wie für Skills
|
||||
// TODO: Implementiere spezifische Zauber-Kostenlogik wenn verfügbar
|
||||
classKey := costResult.CharacterClass
|
||||
spellCategory, spellLevel, err := GetSpellInfoNew(costResult.SkillName)
|
||||
spellCategory, spellLevel, err := GetSpellInfoNewSystem(costResult.SkillName)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to get spell info: %w", err)
|
||||
}
|
||||
|
||||
@@ -817,7 +817,7 @@ func TestGetSpellInfo(t *testing.T) {
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.spellName, func(t *testing.T) {
|
||||
school, level, err := GetSpellInfoNew(tt.spellName)
|
||||
school, level, err := GetSpellInfoNewSystem(tt.spellName)
|
||||
|
||||
if tt.expectError {
|
||||
if err == nil {
|
||||
|
||||
@@ -55,7 +55,7 @@ func TestGetSpellInfoIntegration(t *testing.T) {
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.spellName, func(t *testing.T) {
|
||||
school, level, err := gsmaster.GetSpellInfoNew(tt.spellName)
|
||||
school, level, err := gsmaster.GetSpellInfoNewSystem(tt.spellName)
|
||||
|
||||
if tt.expectError {
|
||||
if err == nil {
|
||||
|
||||
@@ -288,8 +288,8 @@ func GetEPPerLEForClassAndSpellSchool(classCode string, schoolName string) (int,
|
||||
return result.EPPerLE, nil
|
||||
}
|
||||
|
||||
// GetSkillCategoryAndDifficultyNew findet die beste Kategorie für eine Fertigkeit basierend auf niedrigsten EP-Kosten
|
||||
func GetSkillCategoryAndDifficultyNew(skillName string, classCode string) (*SkillLearningInfo, error) {
|
||||
// GetSkillCategoryAndDifficultyNewSystem findet die beste Kategorie für eine Fertigkeit basierend auf niedrigsten EP-Kosten
|
||||
func GetSkillCategoryAndDifficultyNewSystem(skillName string, classCode string) (*SkillLearningInfo, error) {
|
||||
var results []SkillLearningInfo
|
||||
|
||||
err := database.DB.Raw(`
|
||||
|
||||
Reference in New Issue
Block a user