Noch mehr Namensanpassungen

This commit is contained in:
2025-08-01 07:19:02 +02:00
parent d40eb44af5
commit 2897e25fe5
12 changed files with 42 additions and 39 deletions
+2 -2
View File
@@ -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()
+1 -1
View File
@@ -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{
+4 -4
View File
@@ -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 {
+10 -7
View File
@@ -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
+9 -9
View File
@@ -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)
}
+4 -4
View File
@@ -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",
+1 -1
View File
@@ -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 {
+3 -3
View File
@@ -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)
}
+1 -1
View File
@@ -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 {
+2 -2
View File
@@ -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(`