|
@@ -11,10 +11,10 @@ export class DataService {
|
|
|
|
|
|
constructor(private Router: Router) {
|
|
|
this.db = new Localbase('myDatabase');
|
|
|
+ // TODO: Fetch all data from database and write it to a character object
|
|
|
}
|
|
|
|
|
|
- public character: Character = { name: '' };
|
|
|
- public characterData: any = {};
|
|
|
+ public character: any;
|
|
|
|
|
|
public addData(collection: string, data: any, key?: string): void {
|
|
|
if (key) {
|
|
@@ -24,24 +24,116 @@ export class DataService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- getData(collection: string, key: string) {
|
|
|
+ public getData(collection: string, key: string) {
|
|
|
return this.db.collection(collection).doc(key).get();
|
|
|
}
|
|
|
|
|
|
- getCollection(collection: string) {
|
|
|
+ public getCollection(collection: string) {
|
|
|
return this.db.collection(collection).get();
|
|
|
}
|
|
|
|
|
|
- public async selectCharacter(character: any) {
|
|
|
- this.character = character;
|
|
|
- await this.getCharacterData(character.name);
|
|
|
- this.Router.navigate(['journal']);
|
|
|
+ public getCollectionWithKeys(collection: string) {
|
|
|
+ return this.db.collection(collection).get({ keys: true });
|
|
|
}
|
|
|
|
|
|
- public getCharacterData(characterName: string) {
|
|
|
- this.getCollection(characterName).then((characterData: any) => {
|
|
|
- this.characterData = characterData;
|
|
|
- console.log(this.characterData);
|
|
|
- });
|
|
|
+ public deleteCollection(collection: string) {
|
|
|
+ this.db.collection(collection).delete();
|
|
|
+ }
|
|
|
+
|
|
|
+ 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');
|
|
|
+ }
|
|
|
+
|
|
|
+ private buildNewCharacter(currentCharacterData: any) {
|
|
|
+ console.log(currentCharacterData[0]);
|
|
|
+ console.log(currentCharacterData[0].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,
|
|
|
+ };
|
|
|
+ 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,
|
|
|
+ };
|
|
|
+ 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 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,
|
|
|
+ };
|
|
|
+ const personality = {
|
|
|
+ personalityTraits: currentCharacterData[4].data.personalityTraits,
|
|
|
+ ideals: currentCharacterData[4].data.ideals,
|
|
|
+ bonds: currentCharacterData[4].data.bonds,
|
|
|
+ flaws: currentCharacterData[4].data.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,
|
|
|
+ };
|
|
|
+ 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,
|
|
|
+ };
|
|
|
+ const newCharacter: Character = {
|
|
|
+ appearance: appearance,
|
|
|
+ attributes: attributes,
|
|
|
+ characterData: characterData,
|
|
|
+ combatStats: combatStats,
|
|
|
+ personality: personality,
|
|
|
+ skills: skills,
|
|
|
+ weapons: weapons,
|
|
|
+ };
|
|
|
+ this.character = newCharacter;
|
|
|
+ console.log(this.character);
|
|
|
+ console.log(typeof this.character);
|
|
|
}
|
|
|
}
|