|
|
|
|
import { Component, Input } from '@angular/core';
|
|
|
|
|
import { CardInfo } from '../../models/card.model';
|
|
|
|
|
import { SetInfo } from '../../models/setInfo.model';
|
|
|
|
|
|
|
|
|
|
import {MatBadgeModule} from '@angular/material/badge';
|
|
|
|
|
import { FilterService } from '../../services/filter.service';
|
|
|
|
|
|
|
|
|
|
@Component({
|
|
|
|
|
selector: 'app-card-display',
|
|
|
|
|
standalone: true,
|
|
|
|
|
imports: [MatBadgeModule],
|
|
|
|
|
templateUrl: './card-display.component.html',
|
|
|
|
|
styleUrl: './card-display.component.scss'
|
|
|
|
|
})
|
|
|
|
|
export class CardDisplayComponent {
|
|
|
|
|
@Input() card!: CardInfo;
|
|
|
|
|
@Input() set!: SetInfo;
|
|
|
|
|
@Input() displayHyperspace: boolean = false;
|
|
|
|
|
@Input() displayShowcase: boolean = false;
|
|
|
|
|
|
|
|
|
|
constructor(
|
|
|
|
|
private filterService: FilterService
|
|
|
|
|
)
|
|
|
|
|
{}
|
|
|
|
|
|
|
|
|
|
shouldShowCard()
|
|
|
|
|
{
|
|
|
|
|
if(this.displayShowcase)
|
|
|
|
|
{
|
|
|
|
|
if(this.card.setNumber < this.set.showcaseStart)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return this.filterService.cardPassesFilter(this.card, this.displayHyperspace);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(this.card.setNumber >= this.set.showcaseStart)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(this.displayHyperspace)
|
|
|
|
|
{
|
|
|
|
|
if(this.card.hyperspaceSetNumber == undefined)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(this.set.noHypers.includes(this.card.setNumber))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return this.filterService.cardPassesFilter(this.card, this.displayHyperspace);;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
isMissing() {
|
|
|
|
|
let count = this.card.standardQuantity;
|
|
|
|
|
if(this.displayHyperspace)
|
|
|
|
|
{
|
|
|
|
|
count = this.card.hyperspaceQuantity;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(count <= 0) {
|
|
|
|
|
return "missing";
|
|
|
|
|
}
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getSetNumber() {
|
|
|
|
|
let number = this.card.setNumber
|
|
|
|
|
if(this.displayHyperspace)
|
|
|
|
|
{
|
|
|
|
|
number = this.card.hyperspaceSetNumber;
|
|
|
|
|
}
|
|
|
|
|
return number.toString().padStart(3, '0');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
displayOrientation()
|
|
|
|
|
{
|
|
|
|
|
if(this.card.isBase || this.card.isLeader) {
|
|
|
|
|
return "-portrait";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getImagePath() {
|
|
|
|
|
return "assets/"+this.card.setCode+"/"+this.getSetNumber()+"-small"+this.displayOrientation()+".webp"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getStandardCount()
|
|
|
|
|
{
|
|
|
|
|
if(this.displayHyperspace)
|
|
|
|
|
{
|
|
|
|
|
return this.card.hyperspaceQuantity;
|
|
|
|
|
}
|
|
|
|
|
return this.card.standardQuantity;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getFoilCount()
|
|
|
|
|
{
|
|
|
|
|
if(this.displayHyperspace)
|
|
|
|
|
{
|
|
|
|
|
return this.card.hyperspaceFoilQuantity;
|
|
|
|
|
}
|
|
|
|
|
return this.card.foilQuantity;
|
|
|
|
|
}
|
|
|
|
|
}
|