neuer Endpunkt available-skills-new verwenden
Nun als POST mit requestData = {
char_id: this.character.id,
name: '', // Wird für jede Fertigkeit einzeln gesetzt
current_level: 0,
target_level: 1,
type: 'skill',
action: 'learn',
use_pp: 0,
use_gold: 0,
reward: this.rewardType || 'default'
}
This commit is contained in:
@@ -1319,10 +1319,16 @@ func GetRewardTypes(c *gin.Context) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAvailableSkills gibt alle verfügbaren Fertigkeiten mit Lernkosten zurück
|
// GetAvailableSkillsNewSystem gibt alle verfügbaren Fertigkeiten mit Lernkosten zurück (POST mit LernCostRequest)
|
||||||
func GetAvailableSkills(c *gin.Context) {
|
func GetAvailableSkillsNewSystem(c *gin.Context) {
|
||||||
characterID := c.Param("id")
|
characterID := c.Param("id")
|
||||||
//rewardType := c.Query("reward_type")
|
|
||||||
|
// Parse LernCostRequest aus POST body
|
||||||
|
var baseRequest gsmaster.LernCostRequest
|
||||||
|
if err := c.ShouldBindJSON(&baseRequest); err != nil {
|
||||||
|
respondWithError(c, http.StatusBadRequest, "Ungültige Anfrageparameter: "+err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var character models.Char
|
var character models.Char
|
||||||
if err := database.DB.Preload("Fertigkeiten").Preload("Erfahrungsschatz").Preload("Vermoegen").First(&character, characterID).Error; err != nil {
|
if err := database.DB.Preload("Fertigkeiten").Preload("Erfahrungsschatz").Preload("Vermoegen").First(&character, characterID).Error; err != nil {
|
||||||
@@ -1362,26 +1368,32 @@ func GetAvailableSkills(c *gin.Context) {
|
|||||||
if skill.Name == "Placeholder" {
|
if skill.Name == "Placeholder" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
request := gsmaster.LernCostRequest{
|
|
||||||
CharId: character.ID,
|
// Erstelle LernCostRequest für diese Fertigkeit basierend auf der Basis-Anfrage
|
||||||
Name: skill.Name,
|
request := baseRequest
|
||||||
CurrentLevel: 0, // Nicht gelernt
|
request.CharId = character.ID
|
||||||
TargetLevel: 1, // Auf Level 1 lernen
|
request.Name = skill.Name
|
||||||
Type: "skill",
|
request.CurrentLevel = 0 // Nicht gelernt
|
||||||
Action: "learn",
|
request.TargetLevel = 1 // Auf Level 1 lernen
|
||||||
UsePP: 0, // Keine PP für neue Fertigkeiten
|
request.Type = "skill"
|
||||||
UseGold: 0, // Keine Gold für neue Fertigkeiten
|
request.Action = "learn"
|
||||||
Reward: &[]string{"default"}[0], // Belohnungstyp aus Query-Parameter
|
|
||||||
|
// Erstelle SkillCostResultNew
|
||||||
|
levelResult := gsmaster.SkillCostResultNew{
|
||||||
|
CharacterID: fmt.Sprintf("%d", character.ID),
|
||||||
|
CharacterClass: getCharacterClass(&character),
|
||||||
|
SkillName: skill.Name,
|
||||||
|
TargetLevel: 1,
|
||||||
}
|
}
|
||||||
levelResult := &gsmaster.SkillCostResultNew{}
|
|
||||||
remainingPP := request.UsePP
|
remainingPP := request.UsePP
|
||||||
remainingGold := request.UseGold
|
remainingGold := request.UseGold
|
||||||
spellInfo := &models.SkillLearningInfo{}
|
spellInfo := &models.SkillLearningInfo{}
|
||||||
// Berechne Lernkosten mit GetLernCostNextLevel
|
|
||||||
//epCost, goldCost := calculateSkillLearningCosts(skill, character, rewardType)
|
// Berechne Lernkosten mit calculateSkillLearnCostNewSystem
|
||||||
err := calculateSkillLearnCostNewSystem(&request, levelResult, &remainingPP, &remainingGold, spellInfo)
|
err := calculateSkillLearnCostNewSystem(&request, &levelResult, &remainingPP, &remainingGold, spellInfo)
|
||||||
epCost := 10000
|
epCost := 10000 // Fallback-Wert
|
||||||
goldCost := 50000
|
goldCost := 50000 // Fallback-Wert
|
||||||
if err == nil {
|
if err == nil {
|
||||||
epCost = levelResult.EP
|
epCost = levelResult.EP
|
||||||
goldCost = levelResult.GoldCost
|
goldCost = levelResult.GoldCost
|
||||||
@@ -1407,7 +1419,7 @@ func GetAvailableSkills(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetAvailableSkills gibt alle verfügbaren Fertigkeiten mit Lernkosten zurück
|
// GetAvailableSkills gibt alle verfügbaren Fertigkeiten mit Lernkosten zurück
|
||||||
func GetAvailableSkillsNewSystem(c *gin.Context) {
|
func GetAvailableSkills(c *gin.Context) {
|
||||||
characterID := c.Param("id")
|
characterID := c.Param("id")
|
||||||
rewardType := c.Query("reward_type")
|
rewardType := c.Query("reward_type")
|
||||||
|
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ func RegisterRoutes(r *gin.RouterGroup) {
|
|||||||
charGrp.POST("/:id/learn-spell", LearnSpell) // Zauber lernen
|
charGrp.POST("/:id/learn-spell", LearnSpell) // Zauber lernen
|
||||||
|
|
||||||
// Fertigkeiten-Information
|
// Fertigkeiten-Information
|
||||||
charGrp.GET("/:id/available-skills", GetAvailableSkills) // Verfügbare Fertigkeiten mit Kosten (bereits gelernte ausgeschlossen)
|
charGrp.GET("/:id/available-skills", GetAvailableSkills) // Verfügbare Fertigkeiten mit Kosten (bereits gelernte ausgeschlossen)
|
||||||
charGrp.GET("/:id/available-skills-new", GetAvailableSkillsNewSystem) // Verfügbare Fertigkeiten mit Kosten (bereits gelernte ausgeschlossen)
|
charGrp.POST("/available-skills-new", GetAvailableSkillsNewSystem) // Verfügbare Fertigkeiten mit Kosten (bereits gelernte ausgeschlossen)
|
||||||
|
|
||||||
// Belohnungsarten für verschiedene Lernszenarien
|
// Belohnungsarten für verschiedene Lernszenarien
|
||||||
charGrp.GET("/:id/reward-types", GetRewardTypes) // Verfügbare Belohnungsarten je nach Kontext
|
charGrp.GET("/:id/reward-types", GetRewardTypes) // Verfügbare Belohnungsarten je nach Kontext
|
||||||
|
|||||||
@@ -515,11 +515,19 @@ export default {
|
|||||||
await this.loadAvailableCategories()
|
await this.loadAvailableCategories()
|
||||||
|
|
||||||
// Lade alle verfügbaren Fertigkeiten mit Kosten (bereits ohne gelernte gefiltert)
|
// Lade alle verfügbaren Fertigkeiten mit Kosten (bereits ohne gelernte gefiltert)
|
||||||
const response = await this.$api.get(`/api/characters/${this.character.id}/available-skills`, {
|
const requestData = {
|
||||||
params: {
|
char_id: this.character.id,
|
||||||
reward_type: this.rewardType
|
name: '', // Wird für jede Fertigkeit einzeln gesetzt
|
||||||
}
|
current_level: 0,
|
||||||
})
|
target_level: 1,
|
||||||
|
type: 'skill',
|
||||||
|
action: 'learn',
|
||||||
|
use_pp: 0,
|
||||||
|
use_gold: 0,
|
||||||
|
reward: this.rewardType || 'default'
|
||||||
|
}
|
||||||
|
|
||||||
|
const response = await this.$api.post('/api/characters/available-skills-new', requestData)
|
||||||
|
|
||||||
if (response.data && response.data.skills_by_category) {
|
if (response.data && response.data.skills_by_category) {
|
||||||
this.availableSkillsByCategory = response.data.skills_by_category
|
this.availableSkillsByCategory = response.data.skills_by_category
|
||||||
|
|||||||
Reference in New Issue
Block a user