105 lines
2.8 KiB
TypeScript
105 lines
2.8 KiB
TypeScript
import type { PageServerLoad } from './$types';
|
|
import type PlayerCellDto from '$lib/DTOs/PlayerCellDto';
|
|
import type { PlayerSet } from '$lib/DTOs/PlayerCellDto';
|
|
|
|
export const load: PageServerLoad = async ({ params }) => {
|
|
const characterClasses = [
|
|
"Warrior",
|
|
"Mage",
|
|
"Archer",
|
|
"Rogue",
|
|
"Paladin",
|
|
"Sorcerer",
|
|
"Druid",
|
|
"Monk",
|
|
"Necromancer",
|
|
"Bard",
|
|
"Knight",
|
|
"Assassin",
|
|
"Barbarian",
|
|
"Cleric",
|
|
"Wizard",
|
|
"Ranger",
|
|
"Enchanter",
|
|
"Samurai",
|
|
"Alchemist",
|
|
"Summoner",
|
|
"Beastmaster",
|
|
"Elementalist",
|
|
"Dark Knight",
|
|
"Guardian",
|
|
"Illusionist",
|
|
"Pirate",
|
|
"Shadowblade",
|
|
"Berserker",
|
|
"Healer",
|
|
"Sorceress",
|
|
"Tempest",
|
|
"Sage",
|
|
"Priestess",
|
|
"Gladiator",
|
|
"Mystic",
|
|
"Elemental",
|
|
"Arcane",
|
|
"Swordsman",
|
|
"Invoker",
|
|
"Warlock",
|
|
"Dancer",
|
|
"Enforcer",
|
|
"Runemaster",
|
|
"Shaman",
|
|
"Spiritbinder",
|
|
"Templar",
|
|
"Mystic",
|
|
"Sorcerer",
|
|
"Valkyrie",
|
|
"Paladin",
|
|
"Warrior",
|
|
"Bard",
|
|
"Monk",
|
|
"Assassin",
|
|
"Cleric",
|
|
"Ranger",
|
|
"Druid",
|
|
];
|
|
|
|
const names = [
|
|
"Alice", "Bob", "Charlie", "Diana", "Ethan", "Fiona", "George", "Hannah",
|
|
"Ian", "Julia", "Kevin", "Laura", "Michael", "Nina", "Oscar", "Paula",
|
|
"Quentin", "Rachel", "Steven", "Tina", "Uma", "Victor", "Wendy", "Xander",
|
|
"Yvonne", "Zach", "Aaron", "Bella", "Caleb", "Daisy", "Eli", "Faith",
|
|
"Gavin", "Hazel", "Isaac", "Jasmine", "Kyle", "Lily", "Mason", "Nora",
|
|
"Owen", "Piper", "Quincy", "Riley", "Sean", "Tara", "Ulysses", "Valerie",
|
|
"Walter", "Xenia", "Yusuf", "Zara", "Adam", "Bianca", "Connor", "Delilah",
|
|
"Evan", "Faye", "Grant", "Hailey", "Ivan", "Jenna", "Kevin", "Lara"
|
|
];
|
|
|
|
const prefixes = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
|
|
const generatePlayerCell = (index: number): PlayerCellDto => {
|
|
const prefix = prefixes[index % prefixes.length];
|
|
return {
|
|
name: names[index],
|
|
playerId: `p${String(index + 1).padStart(3, "0")}`,
|
|
prefix: prefix,
|
|
character: characterClasses[index % characterClasses.length],
|
|
seed: index + 1, // Ensures unique seed
|
|
};
|
|
};
|
|
|
|
const round1: Array<PlayerSet> = new Array<PlayerSet>();
|
|
for (let i = 0; i < 32; i++) {
|
|
const player1 = generatePlayerCell(i * 2);
|
|
const set: PlayerSet = {
|
|
player1,
|
|
player2: generatePlayerCell(i * 2 + 1),
|
|
winner: player1,
|
|
matchId: `A${i + 1}`,
|
|
}
|
|
round1.push(set);
|
|
}
|
|
|
|
return { rounds: [round1,] };
|
|
};
|
|
|