mirror of
https://github.com/Lapikud/tipilan.git
synced 2026-09-22 15:22:59 +00:00
Mini-tournaments updated, new sponsors
This commit is contained in:
@@ -254,13 +254,13 @@ export default function Expo() {
|
||||
className={`relative overflow-hidden ${DIVIDER} min-h-[360px] md:min-h-[480px]`}
|
||||
>
|
||||
<Image
|
||||
src="/images/landing/compete_teaser.jpg"
|
||||
src="/images/miniturniirid/minitournaments.jpg"
|
||||
alt=""
|
||||
fill
|
||||
className="object-cover"
|
||||
sizes="100vw"
|
||||
/>
|
||||
<div className="absolute inset-0 bg-gradient-to-r from-[#0E0F19] via-[#0E0F19]/85 to-[#0E0F19]/30" />
|
||||
<div className="absolute inset-0 bg-gradient-to-r from-[#0E0F19] via-[#0E0F19]/50 to-[#0E0F19]/30" />
|
||||
<div
|
||||
className={`relative z-10 flex flex-col justify-center h-full min-h-[360px] md:min-h-[480px] max-w-2xl gap-6 py-10 ${GUTTER}`}
|
||||
>
|
||||
@@ -272,7 +272,7 @@ export default function Expo() {
|
||||
<p className="text-[#EEE5E5] text-base md:text-lg max-w-md">
|
||||
{t("expo.miniTournaments.description")}
|
||||
</p>
|
||||
<Link href="/miniturniirid" className="w-fit">
|
||||
<Link href="/turniirid/miniturniirid" className="w-fit">
|
||||
<button
|
||||
className={`${vipnagorgialla.className} px-4 py-2 border-4 border-transparent bg-[#00A3E0] hover:bg-[#E5E5EE] text-[#0A121F] cursor-pointer font-bold italic leading-none uppercase transition`}
|
||||
>
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
import { vipnagorgialla } from "@/components/Vipnagorgialla";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import { getTranslations, setRequestLocale } from "next-intl/server";
|
||||
import { miniTournaments } from "@/data/miniturniirid";
|
||||
|
||||
/** Horizontal padding used by the page (64px at the design width). */
|
||||
const GUTTER = "px-4 sm:px-8 lg:px-16";
|
||||
|
||||
// TODO: replace with the real mini-tournaments rules URL once it exists.
|
||||
// Placeholder points at the TipiLAN ruleset repo root.
|
||||
const RULES_URL =
|
||||
"https://git.edunaut.ee/slunk/TipiLAN_reeglistik_ruleset";
|
||||
|
||||
/**
|
||||
* One mini-tournament tile: a cyan-bordered cover image above a bold caption
|
||||
* "Title – Prize". Games without artwork yet fall back to a text tile.
|
||||
*/
|
||||
function MiniCard({ title, prize, image }: (typeof miniTournaments)[number]) {
|
||||
return (
|
||||
<div className="flex flex-col gap-3">
|
||||
<div className="relative aspect-video border-[3px] border-[#00A3E0] overflow-hidden bg-[#0E0F19]">
|
||||
{image ? (
|
||||
<Image
|
||||
src={image}
|
||||
alt={title}
|
||||
fill
|
||||
className="object-cover"
|
||||
sizes="(max-width: 768px) 100vw, 33vw"
|
||||
/>
|
||||
) : (
|
||||
<span
|
||||
className={`${vipnagorgialla.className} absolute inset-0 flex items-center justify-center p-4 text-center font-bold italic uppercase text-white/85 leading-tight text-[clamp(1rem,0.8rem+1vw,1.5rem)]`}
|
||||
>
|
||||
{title}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<span className="font-bold text-white leading-tight text-[clamp(1rem,0.85rem+0.8vw,1.5rem)]">
|
||||
{title} – {prize}
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default async function MiniTournaments({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ locale: string }>;
|
||||
}) {
|
||||
const { locale } = await params;
|
||||
setRequestLocale(locale);
|
||||
const t = await getTranslations({ locale });
|
||||
|
||||
return (
|
||||
<div className="bg-[#0E0F19] min-h-screen pt-16 md:pt-20">
|
||||
<div className="mx-auto w-full max-w-[1920px]">
|
||||
{/* Header */}
|
||||
<div className={`${GUTTER} pt-12 md:pt-16`}>
|
||||
<h1
|
||||
className={`${vipnagorgialla.className} font-bold italic uppercase text-[#EEE5E5] leading-none text-[clamp(1.75rem,1.4rem+3vw,3.5rem)]`}
|
||||
>
|
||||
{t("minipage.title")}
|
||||
</h1>
|
||||
<p className="mt-4 text-[#00A3E0] italic text-lg md:text-xl">
|
||||
{t("minipage.date")}
|
||||
</p>
|
||||
<p className="mt-4 text-[#EEE5E5] max-w-2xl text-base md:text-lg">
|
||||
{t("minipage.description")}
|
||||
</p>
|
||||
|
||||
{/* Buttons */}
|
||||
<div className="mt-8 flex flex-wrap gap-4">
|
||||
<Link
|
||||
href={RULES_URL}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className={`${vipnagorgialla.className} font-bold italic leading-none text-lg uppercase px-4 py-3 border-4 border-[#00A3E0] bg-transparent text-[#00A3E0] hover:bg-[#00A3E0] hover:text-[#0A121F] transition`}
|
||||
>
|
||||
{t("minipage.readRules")}
|
||||
</Link>
|
||||
<Link
|
||||
href="/piletid"
|
||||
className={`${vipnagorgialla.className} font-bold italic leading-none text-lg uppercase px-4 py-3 border-4 border-transparent bg-[#00A3E0] hover:bg-[#E5E5EE] text-[#0A121F] transition`}
|
||||
>
|
||||
{t("minipage.buyTicket")}
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Game grid */}
|
||||
<div className={`${GUTTER} py-12 md:py-16`}>
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 lg:gap-8">
|
||||
{miniTournaments.map((game) => (
|
||||
<MiniCard key={game.title} {...game} />
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
191
src/app/[locale]/turniirid/miniturniirid/page.tsx
Normal file
191
src/app/[locale]/turniirid/miniturniirid/page.tsx
Normal file
@@ -0,0 +1,191 @@
|
||||
import { vipnagorgialla } from "@/components/Vipnagorgialla";
|
||||
import Image from "next/image";
|
||||
import Link from "next/link";
|
||||
import { getTranslations, setRequestLocale } from "next-intl/server";
|
||||
import { miniTournaments } from "@/data/miniturniirid";
|
||||
|
||||
/** Horizontal padding used by the page (64px at the design width). */
|
||||
const GUTTER = "px-4 sm:px-8 lg:px-16";
|
||||
|
||||
// TODO: replace with the real mini-tournaments rules URL once it exists.
|
||||
// Placeholder points at the TipiLAN ruleset repo root.
|
||||
const RULES_URL =
|
||||
"https://git.edunaut.ee/slunk/TipiLAN_reeglistik_ruleset";
|
||||
|
||||
/**
|
||||
* One mini-tournament tile: a cyan-bordered cover image above a bold caption
|
||||
* "Title – Prize". Games without artwork yet fall back to a text tile.
|
||||
*/
|
||||
function MiniCard({
|
||||
title,
|
||||
prizePool,
|
||||
format,
|
||||
includesGiftBags,
|
||||
organizer,
|
||||
organizerUrl,
|
||||
image,
|
||||
organizedBy,
|
||||
giftBagsLabel,
|
||||
}: (typeof miniTournaments)[number] & {
|
||||
organizedBy: string;
|
||||
giftBagsLabel: string;
|
||||
}) {
|
||||
return (
|
||||
<div className="flex flex-col gap-3">
|
||||
<div className="relative aspect-video border-[3px] border-[#00A3E0] overflow-hidden bg-[#0E0F19]">
|
||||
{image ? (
|
||||
<Image
|
||||
src={image}
|
||||
alt={title}
|
||||
fill
|
||||
className="object-cover"
|
||||
sizes="(max-width: 768px) 100vw, 33vw"
|
||||
/>
|
||||
) : (
|
||||
<span
|
||||
className={`${vipnagorgialla.className} absolute inset-0 flex items-center justify-center p-4 text-center font-bold italic uppercase text-white/85 leading-tight text-[clamp(1rem,0.8rem+1vw,1.5rem)]`}
|
||||
>
|
||||
{title}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="flex flex-wrap items-center gap-x-2 gap-y-1">
|
||||
<span className="font-bold text-white leading-tight text-[clamp(1rem,0.85rem+0.8vw,1.5rem)]">
|
||||
{title}{format ? `, ${format}` : ""}
|
||||
</span>
|
||||
<span className="text-xl font-bold leading-none text-white md:text-2xl">-</span>
|
||||
{prizePool === "giftBags" ? (
|
||||
<span
|
||||
className="inline-flex items-center gap-1 text-[#EEE5E5]"
|
||||
title={giftBagsLabel}
|
||||
>
|
||||
<span
|
||||
className="material-symbols-outlined text-2xl! leading-none! md:text-3xl!"
|
||||
aria-hidden="true"
|
||||
>
|
||||
redeem
|
||||
</span>
|
||||
<span className="text-xl font-bold leading-tight md:text-2xl">
|
||||
{giftBagsLabel}
|
||||
</span>
|
||||
</span>
|
||||
) : (
|
||||
<span className="text-xl font-bold leading-tight text-[#EEE5E5] md:text-2xl">
|
||||
{prizePool}
|
||||
</span>
|
||||
)}
|
||||
{includesGiftBags && prizePool !== "giftBags" && (
|
||||
<>
|
||||
<span className="text-xl font-bold leading-none text-white md:text-2xl">+</span>
|
||||
<span
|
||||
className="inline-flex items-center gap-1 text-[#EEE5E5]"
|
||||
title={giftBagsLabel}
|
||||
>
|
||||
<span
|
||||
className="material-symbols-outlined text-2xl! leading-none! md:text-3xl!"
|
||||
aria-hidden="true"
|
||||
>
|
||||
redeem
|
||||
</span>
|
||||
<span className="text-xl font-bold leading-tight md:text-2xl">
|
||||
{giftBagsLabel}
|
||||
</span>
|
||||
</span>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
{organizer && (
|
||||
<span className="text-sm italic text-[#EEE5E5]/60">
|
||||
{organizedBy}: {organizerUrl ? (
|
||||
<Link
|
||||
href={organizerUrl}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="text-[#00A3E0] hover:text-[#EEE5EE] transition-colors"
|
||||
>
|
||||
{organizer}
|
||||
</Link>
|
||||
) : (
|
||||
<span className="text-[#00A3E0]">{organizer}</span>
|
||||
)}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default async function MiniTournaments({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ locale: string }>;
|
||||
}) {
|
||||
const { locale } = await params;
|
||||
setRequestLocale(locale);
|
||||
const t = await getTranslations({ locale });
|
||||
|
||||
return (
|
||||
<div className="bg-[#0E0F19] min-h-screen pt-16 md:pt-20">
|
||||
<div className="mx-auto w-full max-w-[1920px]">
|
||||
{/* Header */}
|
||||
<div className={`${GUTTER} pt-12 md:pt-16`}>
|
||||
<h1
|
||||
className={`${vipnagorgialla.className} font-bold italic uppercase text-[#EEE5E5] leading-none text-[clamp(1.75rem,1.4rem+3vw,3.5rem)]`}
|
||||
>
|
||||
{t("minipage.title")}
|
||||
</h1>
|
||||
<p className="mt-4 text-[#EEE5E5]/70 italic text-lg md:text-xl">
|
||||
{t("minipage.date")}
|
||||
</p>
|
||||
<p className="mt-4 text-[#EEE5E5] max-w-2xl text-base md:text-lg">
|
||||
{t("minipage.description")}
|
||||
</p>
|
||||
|
||||
{/* Buttons */}
|
||||
<div className="mt-8 flex flex-wrap gap-4">
|
||||
<Link
|
||||
href={RULES_URL}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className={`${vipnagorgialla.className} font-bold italic leading-none text-lg uppercase px-4 py-3 border-4 border-[#00A3E0] bg-transparent text-[#00A3E0] hover:bg-[#00A3E0] hover:text-[#0A121F] transition`}
|
||||
>
|
||||
{t("minipage.readRules")}
|
||||
</Link>
|
||||
<Link
|
||||
href="/piletid"
|
||||
className={`${vipnagorgialla.className} font-bold italic leading-none text-lg uppercase px-4 py-3 border-4 border-transparent bg-[#00A3E0] hover:bg-[#E5E5EE] text-[#0A121F] transition`}
|
||||
>
|
||||
{t("minipage.buyTicket")}
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Tournament groups */}
|
||||
<div className={`${GUTTER} py-12 md:py-16`}>
|
||||
{["simRacing", "fightingGames", "other"].map((category) => {
|
||||
const games = miniTournaments.filter((game) => game.category === category);
|
||||
|
||||
return (
|
||||
<section key={category} className="mb-14 last:mb-0">
|
||||
<h2
|
||||
className={`${vipnagorgialla.className} mb-6 text-3xl font-bold italic uppercase text-[#00A3E0] md:text-4xl`}
|
||||
>
|
||||
{t(`minipage.categories.${category}`)}
|
||||
</h2>
|
||||
<div className="grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3 lg:gap-8">
|
||||
{games.map((game) => (
|
||||
<MiniCard
|
||||
key={game.title}
|
||||
{...game}
|
||||
organizedBy={t("minipage.organizedBy")}
|
||||
giftBagsLabel={t("minipage.giftBags")}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -77,7 +77,7 @@ export default async function Tourney({
|
||||
<div className="grid grid-cols-1 auto-rows-fr">
|
||||
<TournamentCard
|
||||
title={t("expo.miniTournaments.title").toUpperCase()}
|
||||
buttonHref="/miniturniirid"
|
||||
buttonHref="/turniirid/miniturniirid"
|
||||
backgroundImage="/images/miniturniirid/minitournaments.jpg"
|
||||
className="border-t-[3px] min-h-[50vh]"
|
||||
/>
|
||||
|
||||
@@ -26,7 +26,6 @@ interface NavItem {
|
||||
| "/haldus"
|
||||
| "/kodukord"
|
||||
| "/messiala"
|
||||
| "/miniturniirid"
|
||||
| "/piletid"
|
||||
| "/striim"
|
||||
| "/turniirid";
|
||||
@@ -50,7 +49,6 @@ const Header = ({ navItems }: HeaderProps) => {
|
||||
|
||||
const navIconByHref: Partial<Record<NavItem["href"], string>> = {
|
||||
"/messiala": "festival",
|
||||
"/miniturniirid": "rewarded_ads",
|
||||
"/ajakava": "event_note",
|
||||
"/piletid": "local_activity",
|
||||
"/turniirid": "rewarded_ads",
|
||||
|
||||
@@ -9,7 +9,6 @@ interface NavItem {
|
||||
| "/haldus"
|
||||
| "/kodukord"
|
||||
| "/messiala"
|
||||
| "/miniturniirid"
|
||||
| "/piletid"
|
||||
| "/striim"
|
||||
| "/turniirid";
|
||||
|
||||
@@ -89,6 +89,22 @@ const highlightedSponsors: Sponsor[] = [
|
||||
];
|
||||
|
||||
const sponsors: Sponsor[] = [
|
||||
{
|
||||
href: "https://www.tlu.ee",
|
||||
src: "/sponsors/tlu.svg",
|
||||
alt: "Tallinn Ülikool",
|
||||
width: 292,
|
||||
height: 60,
|
||||
className: "brightness-0 invert scale-115",
|
||||
},
|
||||
{
|
||||
href: "https://www.tlu.ee/dt",
|
||||
src: "/sponsors/tludti.svg",
|
||||
alt: "Tallinn Ülikooli Digitehnoloogiate Instituut",
|
||||
width: 220,
|
||||
height: 65,
|
||||
className: "brightness-0 invert scale-115",
|
||||
},
|
||||
// Gaming and technology
|
||||
{
|
||||
href: "https://k-space.ee/",
|
||||
|
||||
@@ -11,7 +11,7 @@ type Slide = {
|
||||
image: string;
|
||||
imageAlt: string;
|
||||
hero: string;
|
||||
href: "/turniirid" | "/piletid" | "/messiala" | "/miniturniirid";
|
||||
href: "/turniirid" | "/piletid" | "/messiala";
|
||||
flip?: boolean;
|
||||
fullBrightness?: boolean;
|
||||
};
|
||||
|
||||
@@ -5,74 +5,160 @@
|
||||
// convention as src/data/expo.ts). Page headings and button labels are
|
||||
// translated (see the `minipage` block in translations/et.json + en.json).
|
||||
//
|
||||
// Source of truth: the organizers' "MINITURNIIRID" sheet in Google Drive
|
||||
// (TipiLAN 2026 → Messiala, last modified 2026-09-06). Total funded prize pool
|
||||
// is 1600€ across all tournaments. Buckshot Roulette is intentionally NOT here:
|
||||
// per the sheet it is a showcase/side activity, not a funded mini-tournament.
|
||||
//
|
||||
// Cover images live in public/images/miniturniirid/. `image` is optional: games
|
||||
// without artwork yet (Avatar Legends, osu!, Counter-Strike 1.6, Rocket League,
|
||||
// Quake) fall back to a text tile showing the title.
|
||||
// Cover images live in public/images/miniturniirid/. `image` is optional and
|
||||
// games without artwork fall back to a text tile showing the title.
|
||||
|
||||
export type MiniTournamentCategory = "simRacing" | "fightingGames" | "other";
|
||||
export type PrizePool = string | "giftBags";
|
||||
|
||||
export interface MiniTournament {
|
||||
/** Game name (proper noun, shown as-is). */
|
||||
title: string;
|
||||
/** Prize pool for this tournament, e.g. "350€", or a non-cash prize ("Kinkekott"). */
|
||||
prize: string;
|
||||
/** Category used to group tournaments on the page. */
|
||||
category: MiniTournamentCategory;
|
||||
/** Total prize pool, including non-cash prizes where applicable. */
|
||||
prizePool: PrizePool;
|
||||
/** Prizes for first through fourth place. */
|
||||
placements: string[];
|
||||
/** Tournament format, when it is part of the published name. */
|
||||
format?: string;
|
||||
/** Whether the tournament also awards gift bags alongside its cash pool. */
|
||||
includesGiftBags?: boolean;
|
||||
/** Organization running the tournament, when one has been confirmed. */
|
||||
organizer?: string;
|
||||
/** Public organizer page. */
|
||||
organizerUrl?: string;
|
||||
/** Cover image under /public. Rendered object-cover. Optional. */
|
||||
image?: string;
|
||||
}
|
||||
|
||||
export const miniTournaments: MiniTournament[] = [
|
||||
{ title: "WRC", prize: "350€", image: "/images/miniturniirid/wrc.jpg" },
|
||||
{
|
||||
title: "Gran Turismo 7",
|
||||
prize: "200€",
|
||||
title: "GT7",
|
||||
category: "simRacing",
|
||||
organizer: "Red Bull",
|
||||
organizerUrl: "https://www.redbull.com/ee-et/",
|
||||
prizePool: "200€",
|
||||
placements: ["100€", "60€", "40€"],
|
||||
image: "/images/miniturniirid/gran_turismo.jpg",
|
||||
},
|
||||
{
|
||||
title: "Super Smash Bros. Ultimate",
|
||||
prize: "100€",
|
||||
image: "/images/miniturniirid/super_smash_bros.jpg",
|
||||
title: "WRC, Dirt Rally 2",
|
||||
category: "simRacing",
|
||||
organizer: "EVAL",
|
||||
organizerUrl: "https://www.simracing.ee/",
|
||||
prizePool: "350€",
|
||||
placements: ["200€", "100€", "50€", "Kinkekott ainult"],
|
||||
includesGiftBags: true,
|
||||
image: "/images/miniturniirid/wrc.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tekken 8",
|
||||
category: "fightingGames",
|
||||
organizer: "BFGL",
|
||||
organizerUrl: "https://www.instagram.com/baltic_fighting_game_league/",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/tekken8.jpg",
|
||||
},
|
||||
{
|
||||
title: "Street Fighter 6",
|
||||
prize: "100€",
|
||||
category: "fightingGames",
|
||||
organizer: "BFGL",
|
||||
organizerUrl: "https://www.instagram.com/baltic_fighting_game_league/",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/street_fighter.jpg",
|
||||
},
|
||||
{ title: "Tekken 8", prize: "100€", image: "/images/miniturniirid/tekken8.jpg" },
|
||||
{ title: "2XKO", prize: "100€", image: "/images/miniturniirid/2xko.png" },
|
||||
{
|
||||
title: "2XKO",
|
||||
category: "fightingGames",
|
||||
organizer: "BFGL",
|
||||
organizerUrl: "https://www.instagram.com/baltic_fighting_game_league/",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/2xko.png",
|
||||
},
|
||||
{
|
||||
title: "Super Smash Bros. Ultimate",
|
||||
category: "fightingGames",
|
||||
organizer: "BFGL",
|
||||
organizerUrl: "https://www.instagram.com/baltic_fighting_game_league/",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/super_smash_bros.jpg",
|
||||
},
|
||||
{
|
||||
title: "Invincible Vs.",
|
||||
prize: "100€",
|
||||
category: "fightingGames",
|
||||
organizer: "BFGL",
|
||||
organizerUrl: "https://www.instagram.com/baltic_fighting_game_league/",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/invincible_vs.png",
|
||||
},
|
||||
{
|
||||
title: "Marvel Tokon",
|
||||
prize: "100€",
|
||||
title: "Marvel Tokon: Fighting Souls",
|
||||
category: "fightingGames",
|
||||
organizer: "BFGL",
|
||||
organizerUrl: "https://www.instagram.com/baltic_fighting_game_league/",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/marvel_tokon.png",
|
||||
},
|
||||
{ title: "FC 26", prize: "100€", image: "/images/miniturniirid/fc26.jpg" },
|
||||
{
|
||||
title: "Avatar Legends",
|
||||
prize: "100€",
|
||||
title: "Avatar Legends: The Fighting Game",
|
||||
category: "fightingGames",
|
||||
organizer: "BFGL",
|
||||
organizerUrl: "https://www.instagram.com/baltic_fighting_game_league/",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/avatar_legends.jpg",
|
||||
},
|
||||
{ title: "osu!", prize: "100€", image: "/images/miniturniirid/osu.jpg" },
|
||||
{
|
||||
title: "Dwarf Escape",
|
||||
prize: "50€",
|
||||
image: "/images/miniturniirid/dwarf_escape.png",
|
||||
title: "EA FC",
|
||||
category: "other",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/fc26.jpg",
|
||||
},
|
||||
{
|
||||
title: "osu!",
|
||||
category: "other",
|
||||
prizePool: "100€",
|
||||
placements: ["50€", "30€", "20€"],
|
||||
image: "/images/miniturniirid/osu.jpg",
|
||||
},
|
||||
{
|
||||
title: "Counter-Strike 1.6",
|
||||
prize: "50€",
|
||||
category: "other",
|
||||
organizer: "K-space",
|
||||
organizerUrl: "https://k-space.ee/",
|
||||
prizePool: "giftBags",
|
||||
placements: ["Kinkekott", "Kinkekott", "Kinkekott", "Kinkekott"],
|
||||
image: "/images/miniturniirid/cs16.jpg",
|
||||
},
|
||||
{
|
||||
title: "Quake",
|
||||
category: "other",
|
||||
prizePool: "giftBags",
|
||||
placements: ["Kinkekott", "Kinkekott", "Kinkekott", "Kinkekott"],
|
||||
image: "/images/miniturniirid/quake.jpg",
|
||||
},
|
||||
{
|
||||
title: "Rocket League",
|
||||
prize: "50€",
|
||||
category: "other",
|
||||
format: "2v2",
|
||||
prizePool: "50€",
|
||||
placements: ["25€ + 25€", "Kinkekott 2x", "Kinkekott 2x"],
|
||||
includesGiftBags: true,
|
||||
image: "/images/miniturniirid/rocket_league.jpg",
|
||||
},
|
||||
{ title: "Quake", prize: "Kinkekott", image: "/images/miniturniirid/quake.jpg" },
|
||||
{
|
||||
title: "Dwarf Escape",
|
||||
category: "other",
|
||||
prizePool: "50€",
|
||||
placements: ["25€", "15€", "10€"],
|
||||
image: "/images/miniturniirid/dwarf_escape.png",
|
||||
},
|
||||
];
|
||||
|
||||
@@ -120,7 +120,7 @@ export const scheduleData: Record<string, ScheduleItem[]> = {
|
||||
"schedule.locations.studentHouse",
|
||||
"schedule.locations.lobbyAndLanArea"
|
||||
],
|
||||
time: "*01:00",
|
||||
time: "~01:00",
|
||||
},
|
||||
],
|
||||
sep12: [
|
||||
@@ -316,7 +316,7 @@ export const scheduleData: Record<string, ScheduleItem[]> = {
|
||||
{
|
||||
titleKey: "schedule.events.doorsClose",
|
||||
locationKey: "schedule.locations.auditorium",
|
||||
time: "*01:30",
|
||||
time: "~01:30",
|
||||
},
|
||||
],
|
||||
sep13: [
|
||||
@@ -361,17 +361,17 @@ export const scheduleData: Record<string, ScheduleItem[]> = {
|
||||
{
|
||||
titleKey: "schedule.events.awardCeremony",
|
||||
locationKey: "schedule.locations.auditorium",
|
||||
time: "18:30",
|
||||
time: "~18:30",
|
||||
},
|
||||
{
|
||||
titleKey: "schedule.events.closingCeremony",
|
||||
locationKey: "schedule.locations.auditorium",
|
||||
time: "19:00",
|
||||
time: "~19:00",
|
||||
},
|
||||
{
|
||||
titleKey: "schedule.events.doorsClose",
|
||||
locationKey: "schedule.locations.auditorium",
|
||||
time: "19:30",
|
||||
time: "~19:30",
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
@@ -46,9 +46,9 @@ export const routing = defineRouting({
|
||||
et: "/turniirid",
|
||||
en: "/tournaments",
|
||||
},
|
||||
"/miniturniirid": {
|
||||
et: "/miniturniirid",
|
||||
en: "/minitournaments",
|
||||
"/turniirid/miniturniirid": {
|
||||
et: "/turniirid/miniturniirid",
|
||||
en: "/tournaments/minitournaments",
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user