PP, EP und Gold werden nun korrekt verbraucht

This commit is contained in:
2025-07-26 15:12:43 +02:00
parent 74faa59193
commit f0350a395e
4 changed files with 434 additions and 15 deletions
+17 -1
View File
@@ -6,7 +6,7 @@
</div>
<!-- Submenu Content -->
<!-- <div class="character-aspect"> -->
<component :is="currentView" :character="character"/>
<component :is="currentView" :character="character" @character-updated="refreshCharacter"/>
<!-- </div> -->
<!-- Submenu -->
@@ -82,6 +82,22 @@ export default {
this.lastView = this.currentView;
this.currentView = view;
},
async refreshCharacter() {
// Lade die Charakterdaten neu nach einer Aktualisierung
try {
const token = localStorage.getItem('token');
const response = await API.get(`/api/characters/${this.id}`, {
headers: { Authorization: `Bearer ${token}` },
});
this.character = response.data;
console.log('Character data refreshed after skill update');
} catch (error) {
console.error('Failed to refresh character data:', error);
// Optional: Zeige eine Fehlermeldung an
alert('Fehler beim Aktualisieren der Charakterdaten: ' + (error.response?.data?.error || error.message));
}
},
},
};
</script>
@@ -9,7 +9,7 @@
<span class="resource-icon"></span>
<div class="resource-info">
<div class="resource-label">Erfahrungspunkte</div>
<div class="resource-amount">{{ character.erfahrungsschatz?.value || 0 }} EP</div>
<div class="resource-amount">{{ character.erfahrungsschatz?.ep || 0 }} EP</div>
<div class="resource-remaining">
<small :class="{ 'text-warning': remainingEP < 50, 'text-danger': remainingEP <= 0 }">
Verbleibend: {{ remainingEP }} EP
@@ -496,7 +496,7 @@ export default {
return this.selectedLevels.every(levelNum => {
const level = this.availableLevels.find(l => l.targetLevel === levelNum);
return level && level.canAfford;
}) && this.totalCost <= (this.character.erfahrungsschatz?.value || 0) &&
}) && this.totalCost <= (this.character.erfahrungsschatz?.ep || 0) &&
this.totalGoldCost <= (this.character.vermoegen?.goldstücke || 0) &&
this.totalPPCost <= (this.skill?.pp || 0);
},
@@ -550,7 +550,7 @@ export default {
},
remainingEP() {
const current = this.character.erfahrungsschatz?.value || 0;
const current = this.character.erfahrungsschatz?.ep || 0;
return Math.max(0, current - this.totalCost);
},
@@ -757,7 +757,7 @@ export default {
if (response.data && Array.isArray(response.data) && response.data.length > 0) {
// Konvertiere gsmaster.SkillCostResultNew Array zu unserem internen Format
const availableEP = this.character.erfahrungsschatz?.value || 0;
const availableEP = this.character.erfahrungsschatz?.ep || 0;
const availableGold = this.character.vermoegen?.goldstücke || 0;
const availablePP = this.skill?.pp || 0;
@@ -823,7 +823,7 @@ export default {
// Einfache Fallback-Methode für Kostenberechnung (nur für Notfälle)
const currentLevel = this.skill.fertigkeitswert || 0;
const maxLevel = 20;
const availableEP = this.character.erfahrungsschatz?.value || 0;
const availableEP = this.character.erfahrungsschatz?.ep || 0;
const availableGold = this.character.vermoegen?.goldstücke || 0;
const availablePP = this.skill?.pp || 0;