1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import { Component } from '@angular/core';
- import { ClassService } from 'src/services/class/class.service';
- import { DataService } from 'src/services/data/data.service';
- import { ModalService } from 'src/services/modal/modal.service';
- import { AbilityModalComponent } from '../../journal-stats/ability-panel/ability-table/ability-modal/ability-modal.component';
- import { Ability } from 'src/interfaces/ability';
- import { TraitModalComponent } from '../../journal-stats/ability-panel/trait-table/trait-modal/trait-modal.component';
- import { Trait } from 'src/interfaces/traits';
- @Component({
- selector: 'class',
- templateUrl: './class.component.html',
- styleUrl: './class.component.scss',
- })
- export class ClassComponent {
- public className: string = '';
- public class: any;
- public constructor(
- private classAccessor: ClassService,
- private dataAccessor: DataService,
- private modalAccessor: ModalService
- ) {}
- public ngOnInit(): void {
- this.className = this.dataAccessor.characterData.class;
- this.class = this.classAccessor.getClassDetails(this.className);
- console.log(this.class);
- }
- public addFeature(feature: any) {
- if ('ability' in feature) {
- this.addAbility(feature);
- } else {
- this.addTrait(feature);
- }
- }
- private addAbility(feature: any) {
- let index = feature.name.indexOf('Optional');
- if (index > -1) {
- feature.name = feature.name.slice(index, 8);
- }
- let ability: Ability = {
- name: feature.name,
- shortDescription: '',
- longDescription: feature.description,
- cost: '',
- charges: 0,
- currentlyUsedCharges: 0,
- };
- this.modalAccessor.openModal(AbilityModalComponent, {
- ability: ability,
- isUpdate: true,
- isAddedFromCharacter: true,
- });
- const resultSubscription = this.modalAccessor.result$.subscribe(
- (result) => {
- if (result.state === 'update' || result.state === 'add') {
- let ability = this.dataAccessor.abilities;
- ability.push(result.data);
- this.dataAccessor.abilities = ability;
- }
- resultSubscription.unsubscribe();
- }
- );
- }
- private addTrait(feature: any) {
- let index = feature.name.indexOf('Optional');
- if (index > -1) {
- feature.name = feature.name.slice(index, 8);
- }
- let trait: Trait = {
- name: feature.name,
- shortDescription: '',
- longDescription: feature.description,
- origin: 'Class',
- };
- this.modalAccessor.openModal(TraitModalComponent, {
- trait: trait,
- isUpdate: true,
- isAddedFromCharacter: true,
- });
- const resultSubscription = this.modalAccessor.result$.subscribe(
- (result) => {
- if (result.state === 'update' || result.state === 'add') {
- let traits = this.dataAccessor.traits;
- traits.push(result.data);
- this.dataAccessor.traits = traits;
- }
- resultSubscription.unsubscribe();
- }
- );
- }
- }
|