Browse Source

Optimized the way character data is retrieved from localbase

Christopher Giese 8 months ago
parent
commit
3eee952bca
1 changed files with 80 additions and 69 deletions
  1. 80 69
      src/services/data/data.service.ts

+ 80 - 69
src/services/data/data.service.ts

@@ -41,99 +41,110 @@ export class DataService {
   }
 
   public async selectCharacter(character: string) {
-    // die durch character definierten daten in einer varibale laden
     const characterData = await this.getCollectionWithKeys(character);
-    this.character = this.buildNewCharacter(characterData);
-    // this.Router.navigate(['journal']);
-    console.log('navigation zu journal');
+    this.character = this.getcurrentCharacterData(characterData);
+    this.Router.navigate(['journal']);
   }
 
-  private buildNewCharacter(currentCharacterData: any) {
-    console.log(currentCharacterData[0]);
-    console.log(currentCharacterData[0].data);
+  private getcurrentCharacterData(currentCharacterData: any) {
+    // let [appearanceData, attributesData, characterData, combatStatsData, personalityData, skillsData, weaponsData];
+
+    const [
+      appearanceData,
+      attributesData,
+      characterData,
+      combatStatsData,
+      personalityData,
+      skillsData,
+      weaponsData,
+    ] = currentCharacterData.map((entry: any) => entry.data);
+
     const appearance = {
-      age: currentCharacterData[0].data.age,
-      height: currentCharacterData[0].data.height,
-      weight: currentCharacterData[0].data.weight,
-      eyes: currentCharacterData[0].data.eyes,
-      skin: currentCharacterData[0].data.skin,
-      hair: currentCharacterData[0].data.hair,
+      age: appearanceData.age,
+      height: appearanceData.height,
+      weight: appearanceData.weight,
+      eyes: appearanceData.eyes,
+      skin: appearanceData.skin,
+      hair: appearanceData.hair,
     };
+
     const attributes = {
-      strength: currentCharacterData[1].data.strength,
-      dexterity: currentCharacterData[1].data.dexterity,
-      constitution: currentCharacterData[1].data.constitution,
-      intelligence: currentCharacterData[1].data.intelligence,
-      wisdom: currentCharacterData[1].data.wisdom,
-      charisma: currentCharacterData[1].data.charisma,
+      strength: attributesData.strength,
+      dexterity: attributesData.dexterity,
+      constitution: attributesData.constitution,
+      intelligence: attributesData.intelligence,
+      wisdom: attributesData.wisdom,
+      charisma: attributesData.charisma,
     };
-    const characterData = {
-      name: currentCharacterData[2].data.name,
-      race: currentCharacterData[2].data.race,
-      class: currentCharacterData[2].data.class,
-      subclass: currentCharacterData[2].data.subclass,
-      level: currentCharacterData[2].data.level,
-      background: currentCharacterData[2].data.background,
-      experience: currentCharacterData[2].data.experience,
-      inspiration: currentCharacterData[2].data.inspiration,
-      proficiencyBonus: currentCharacterData[2].data.proficiencyBonus,
+
+    const character = {
+      name: characterData.name,
+      race: characterData.race,
+      class: characterData.class,
+      subclass: characterData.subclass,
+      level: characterData.level,
+      background: characterData.background,
+      experience: characterData.experience,
+      inspiration: characterData.inspiration,
+      proficiencyBonus: characterData.proficiencyBonus,
     };
+
     const combatStats = {
-      armorClass: currentCharacterData[3].data.armorClass,
-      initiative: currentCharacterData[3].data.initiative,
-      speed: currentCharacterData[3].data.speed,
-      hitPointMaximum: currentCharacterData[3].data.hitPointMaximum,
-      currentHitPoints: currentCharacterData[3].data.currentHitPoints,
-      temporaryHitPoints: currentCharacterData[3].data.temporaryHitPoints,
-      hitDice: currentCharacterData[3].data.hitDice,
-      deathSaveSuccesses: currentCharacterData[3].data.deathSaveSuccesses,
-      deathSaveFailures: currentCharacterData[3].data.deathSaveFailures,
+      armorClass: combatStatsData.armorClass,
+      initiative: combatStatsData.initiative,
+      speed: combatStatsData.speed,
+      hitPointMaximum: combatStatsData.hitPointMaximum,
+      currentHitPoints: combatStatsData.currentHitPoints,
+      temporaryHitPoints: combatStatsData.temporaryHitPoints,
+      hitDice: combatStatsData.hitDice,
+      deathSaveSuccesses: combatStatsData.deathSaveSuccesses,
+      deathSaveFailures: combatStatsData.deathSaveFailures,
     };
+
     const personality = {
-      personalityTraits: currentCharacterData[4].data.personalityTraits,
-      ideals: currentCharacterData[4].data.ideals,
-      bonds: currentCharacterData[4].data.bonds,
-      flaws: currentCharacterData[4].data.flaws,
+      personalityTraits: personalityData.personalityTraits,
+      ideals: personalityData.ideals,
+      bonds: personalityData.bonds,
+      flaws: personalityData.flaws,
     };
+
     const skills = {
-      acrobatics: currentCharacterData[5].data.acrobatics,
-      animalHandling: currentCharacterData[5].data.animalHandling,
-      arcana: currentCharacterData[5].data.arcana,
-      athletics: currentCharacterData[5].data.athletics,
-      deception: currentCharacterData[5].data.deception,
-      history: currentCharacterData[5].data.history,
-      insight: currentCharacterData[5].data.insight,
-      intimidation: currentCharacterData[5].data.intimidation,
-      investigation: currentCharacterData[5].data.investigation,
-      medicine: currentCharacterData[5].data.medicine,
-      nature: currentCharacterData[5].data.nature,
-      perception: currentCharacterData[5].data.perception,
-      performance: currentCharacterData[5].data.performance,
-      persuasion: currentCharacterData[5].data.persuasion,
-      religion: currentCharacterData[5].data.religion,
-      sleightOfHand: currentCharacterData[5].data.sleightOfHand,
-      stealth: currentCharacterData[5].data.stealth,
-      survival: currentCharacterData[5].data.survival,
+      acrobatics: skillsData.acrobatics,
+      animalHandling: skillsData.animalHandling,
+      arcana: skillsData.arcana,
+      athletics: skillsData.athletics,
+      deception: skillsData.deception,
+      history: skillsData.history,
+      insight: skillsData.insight,
+      intimidation: skillsData.intimidation,
+      investigation: skillsData.investigation,
+      medicine: skillsData.medicine,
+      nature: skillsData.nature,
+      perception: skillsData.perception,
+      performance: skillsData.performance,
+      persuasion: skillsData.persuasion,
+      religion: skillsData.religion,
+      sleightOfHand: skillsData.sleightOfHand,
+      stealth: skillsData.stealth,
+      survival: skillsData.survival,
     };
     const weapons = {
-      name: currentCharacterData[6].data.name,
-      attackBonus: currentCharacterData[6].data.attackBonus,
-      damage: currentCharacterData[6].data.damage,
-      damageType: currentCharacterData[6].data.damageType,
-      range: currentCharacterData[6].data.range,
-      description: currentCharacterData[6].data.damageDice,
+      name: weaponsData.name,
+      attackBonus: weaponsData.attackBonus,
+      damage: weaponsData.damage,
+      damageType: weaponsData.damageType,
+      range: weaponsData.range,
+      description: weaponsData.damageDice,
     };
     const newCharacter: Character = {
       appearance: appearance,
       attributes: attributes,
-      characterData: characterData,
+      characterData: character,
       combatStats: combatStats,
       personality: personality,
       skills: skills,
       weapons: weapons,
     };
     this.character = newCharacter;
-    console.log(this.character);
-    console.log(typeof this.character);
   }
 }