Ajout de composants Hero Wars

This commit is contained in:
2025-11-27 10:35:38 +01:00
parent 8e3bd16b60
commit 8a1c19e011
66 changed files with 4137 additions and 7 deletions
@@ -0,0 +1,94 @@
import { DatePipe } from '@angular/common';
import { Title } from '@angular/platform-browser';
import { trigger, state, style, animate, transition } from '@angular/animations';
import { Component, DestroyRef, Injectable, inject, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
import { MatCardModule } from '@angular/material/card';
import { MatButtonModule } from '@angular/material/button';
import { MatDividerModule } from '@angular/material/divider';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { MatStepperIntl, MatStepperModule } from '@angular/material/stepper';
import { ListErrorsComponent } from 'src/app/components/shared';
import { Errors } from 'src/app/core/models';
import { HWGuildRaid, HWGuildRaidAttacker, HWGuildRaidAttackers, HWGuildRaidStage, HWMember } from 'src/app/core/models/herowars';
import guildRaids from 'src/files-data/hw-guild-raids.json'; // page Asgard -> Guild Raid -> Log
@Injectable()
export class GuildRaidStepperIntl extends MatStepperIntl {
// the default optional label text, if unspecified is "Optional"
override optionalLabel = 'Optional Label';
}
@Component({
selector: 'app-herowars-guildraid',
standalone: true,
providers: [
{
provide: STEPPER_GLOBAL_OPTIONS,
useValue: { displayDefaultIndicatorType: false },
},
],
imports: [
DatePipe, FormsModule, ListErrorsComponent,
MatButtonModule, MatCardModule, MatDividerModule, MatFormFieldModule,
MatIconModule, MatInputModule, MatStepperModule
],
templateUrl: './herowars-guildraid.component.html',
styleUrl: './herowars-guildraid.component.scss',
animations: [
trigger('flyInOut', [
state('in', style({ transform: 'translateY(0)' })),
transition('void => *', [
style({ transform: 'translateY(-100%)' }),
animate(200)
]),
transition('* => void', [
style({ transform: 'translateY(100%)' }),
animate(200)
])
])
]
})
export class HerowarsGuildraidComponent implements OnInit {
public title = 'Guild Raids';
public subtitle = 'Log';
public description = 'Tools in working progress.';
public errors: Errors = { errors: {} };
public destroyRef = inject(DestroyRef);
public minVarPct = 3;
public minValue = 0;
public now = new Date();
private _guildMembers: HWMember[] = [];
private _matStepperIntl = inject(MatStepperIntl);
private _guildRaids: HWGuildRaid[] = [];
private _raidStages: HWGuildRaidStage[] = [
{ num: 1, name: 'Stage 1', maxPower: 320000, duration: 8, startTime: 0, endTime: 0 },
{ num: 2, name: 'Stage 2', maxPower: 500000, duration: 8, startTime: 0, endTime: 0 },
{ num: 3, name: 'Stage 3', maxPower: 0, duration: 0, startTime: 0, endTime: 0 }
];
constructor(
private _titleService: Title
) { }
ngOnInit() {
this._titleService.setTitle(this.title);
this._guildMembers.map((data) => {
data.raids = [];
data.raidsInfo = {
variationAvg: 0,
variationSum: 0
};
return data;
});
}
getMembers(): HWMember[] {
return this._guildMembers;
}
}