Merge remote-tracking branch 'origin/main' into development

# Conflicts:
#	src/data/timetable.ts
This commit is contained in:
SwagMuffin88
2025-10-07 10:25:24 +03:00
15 changed files with 155 additions and 45 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 860 KiB

BIN
public/messiala/fc26.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 842 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

BIN
public/messiala/tekken8.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

BIN
public/messiala/wrc.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@@ -230,10 +230,10 @@ export default async function Home({
className="object-contain" className="object-contain"
/> />
</NextLink> </NextLink>
<NextLink href="https://www.arvutimuuseum.ee" target="_blank"> <NextLink href="https://www.linkedin.com/company/gamedev-guild/" target="_blank">
<Image <Image
src="/sponsors/arvutimuuseum.svg" src="/sponsors/estonian_gamedev_guild.png"
alt="Arvutimuuseum" alt=""
width={200} width={200}
height={200} height={200}
className="object-contain not-dark:invert" className="object-contain not-dark:invert"

View File

@@ -13,6 +13,71 @@ export default async function Tourney({
const t = await getTranslations({ locale }); const t = await getTranslations({ locale });
const headingStyle = `text-3xl md:text-5xl lg:text-5xl ${vipnagorgialla.className} font-bold uppercase text-[#2A2C3F] dark:text-[#EEE5E5] -skew-x-2 md:-skew-x-5`; const headingStyle = `text-3xl md:text-5xl lg:text-5xl ${vipnagorgialla.className} font-bold uppercase text-[#2A2C3F] dark:text-[#EEE5E5] -skew-x-2 md:-skew-x-5`;
const miniTournaments: {
name: string;
prize: string;
image: string;
objectPosition?: string;
bgClass?: string;
}[] = [
{
name: "Tekken 8",
prize: "350€",
image: "/messiala/tekken8.jpg",
objectPosition: "object-center",
},
{
name: "WRC",
prize: "350€",
image: "/messiala/wrc.jpg",
objectPosition: "object-center",
},
{
name: "Street Fighter 6",
prize: "200€",
image: "/messiala/street_fighter.jpg",
objectPosition: "object-right",
},
{
name: "Gran Turismo",
prize: "200€",
image: "/messiala/gran_turismo.jpg",
objectPosition: "object-center",
},
{
name: "FC 26",
prize: "100€",
image: "/messiala/fc26.jpg",
objectPosition: "object-center",
},
{
name: "Dwarf Escape",
prize: "50€",
image: "/messiala/dwarf_escape.png",
objectPosition: "object-center",
bgClass: "bg-black",
},
{
name: "Buckshot Roulette",
prize: "Merch",
image: "/messiala/buckshot_tournament.png",
objectPosition: "object-center",
bgClass: "bg-black",
},
{
name: "Granblue Fantasy: Versus Rising",
prize: "50€",
image: "/messiala/grandblue_fantasy.jpg",
objectPosition: "object-top",
},
{
name: "Super Smash Bros. Ultimate",
prize: "50€",
image: "/messiala/super_smash_bros.jpg",
objectPosition: "object-top",
},
];
return ( return (
<div className="flex flex-col min-h-[90vh] mt-16"> <div className="flex flex-col min-h-[90vh] mt-16">
<h1 <h1
@@ -135,8 +200,8 @@ export default async function Tourney({
{/* Mini-turniirid */} {/* Mini-turniirid */}
<div className="hover:bg-[#007CAB] py-8 md:py-16 border-t-[3px] border-b-[3px] border-[#1F5673] transition group"> <div className="hover:bg-[#007CAB] py-8 md:py-16 border-t-[3px] border-b-[3px] border-[#1F5673] transition group">
<div className="grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-16 items-center mx-8 md:mx-16 lg:mx-32 xl:mx-48"> <div className="mx-8 md:mx-16 lg:mx-32 xl:mx-48">
<div className="-skew-x-2 md:-skew-x-5"> <div className="-skew-x-2 md:-skew-x-5 mb-8">
<h2 className={`${headingStyle}`}> <h2 className={`${headingStyle}`}>
{t("tournaments.mini.title")} {t("tournaments.mini.title")}
</h2> </h2>
@@ -151,10 +216,6 @@ export default async function Tourney({
{t("tournaments.mini.description1")} {t("tournaments.mini.description1")}
</p> </p>
<br /> <br />
<p className="text-balance">
{t("tournaments.mini.description2")}
</p>
<br />
<div className="flex flex-row flex-wrap gap-4 md:gap-8"> <div className="flex flex-row flex-wrap gap-4 md:gap-8">
<Link href="/kodukord" target="_blank"> <Link href="/kodukord" target="_blank">
<button <button
@@ -172,16 +233,25 @@ export default async function Tourney({
</a> </a>
</div> </div>
</div> </div>
<div className="hidden md:block"> <div className="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-8">
<div> {miniTournaments.map((tournament) => (
{/* Outside div needs to remain so that overflow won't occur*/} <div key={tournament.name} className="text-center">
<div className={`border-2 border-[#007CAB] p-1 rounded-md ${tournament.bgClass || ''}`}>
<Image <Image
src="/images/minitournament_logo.png" src={tournament.image}
alt="mini tournaments" alt={tournament.name}
width={600} width={400}
height={400} height={300}
className={`object-cover w-full h-48 ${
tournament.objectPosition || "object-center"
}`}
/> />
</div> </div>
<div className="-skew-x-2 md:-skew-x-5">
<p className="mt-2 font-semibold">{tournament.name} - {tournament.prize}</p>
</div>
</div>
))}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -13,12 +13,12 @@ export const scheduleData: Record<string, ScheduleItem[]> = {
time: "17:00", time: "17:00",
}, },
{ {
titleKey: "schedule.events.miniTournamentsKickoff", titleKey: "schedule.events.preTournamentWarmup",
locationKey: "schedule.locations.studentHouse", locationKey: "schedule.locations.auditoriumAndStudentHouse",
time: "18:00", time: "18:00",
}, },
{ {
titleKey: "schedule.events.fightingGamesStart", titleKey: "schedule.events.killerInstinct",
locationKey: "schedule.locations.studentHouse", locationKey: "schedule.locations.studentHouse",
time: "18:30", time: "18:30",
}, },
@@ -40,22 +40,27 @@ export const scheduleData: Record<string, ScheduleItem[]> = {
time: "10:00", time: "10:00",
}, },
{ {
titleKey: "schedule.events.miniTournamentsStart", titleKey: "schedule.events.warmup",
locationKey: "schedule.locations.studentHouse", locationKey: "schedule.locations.auditoriumAndStudentHouse",
time: "11:00", time: "10:30",
}, },
{ {
titleKey: "schedule.events.granblue", titleKey: "schedule.events.mainTournamentsContinue",
locationKey: "schedule.locations.studentHouse",
time: "11:30",
},
{
titleKey: "schedule.events.mainTournamentsStart",
locationKey: "schedule.locations.auditorium", locationKey: "schedule.locations.auditorium",
time: "12:00", time: "12:00",
}, },
{ {
titleKey: "schedule.events.granTurismo", titleKey: "schedule.events.miniTournamentsStart",
locationKey: "schedule.locations.studentHouse",
time: "13:00",
},
{
titleKey: "schedule.events.granblue",
locationKey: "schedule.locations.studentHouse",
time: "13:30",
},
{
titleKey: "schedule.events.granTurismoFinal",
locationKey: "schedule.locations.studentHouse", locationKey: "schedule.locations.studentHouse",
time: "20:00", time: "20:00",
}, },
@@ -65,4 +70,26 @@ export const scheduleData: Record<string, ScheduleItem[]> = {
time: "*01:00", time: "*01:00",
}, },
], ],
oct26: [
{
titleKey: "schedule.events.expoClosed",
locationKey: "schedule.locations.studentHouse",
time: "all day",
},
{
titleKey: "schedule.events.cs2FinalStart",
locationKey: "schedule.locations.auditorium",
time: "10:00",
},
{
titleKey: "schedule.events.cs2Final",
locationKey: "schedule.locations.auditorium",
time: "18:00",
},
{
titleKey: "schedule.events.awardCeremony",
locationKey: "schedule.locations.auditorium",
time: "18:30",
},
],
}; };

View File

@@ -119,10 +119,10 @@
"buyTicket": "BUY TICKETS" "buyTicket": "BUY TICKETS"
}, },
"mini": { "mini": {
"titleSingular": "Mini-tournament",
"title": "Mini-tournaments", "title": "Mini-tournaments",
"timing": "24th-25th October", "timing": "24th-25th October",
"description1": "TipiLAN hosts various fun and competitive mini-tournaments. Mini-tournaments take place in the following games: SimRacing, Tekken, FIFA, Buckshot Roulette, LostGamer and many more.", "description1": "TipiLAN hosts a variety of fun and competitive mini-tournaments. The prize pool for each tournament is displayed.",
"description2": "The total prize pool for all tournaments is €1,250 and typically the mini-tournament winner receives a cash prize.",
"readRules": "READ RULES", "readRules": "READ RULES",
"buyTicket": "BUY TICKETS" "buyTicket": "BUY TICKETS"
} }
@@ -135,15 +135,22 @@
"location": "Location", "location": "Location",
"oct24": "October 24th", "oct24": "October 24th",
"oct25": "October 25th", "oct25": "October 25th",
"oct26": "October 26th",
"events": { "events": {
"doorsOpen": "Doors open", "doorsOpen": "Doors open",
"mainTournamentsStart": "Main tournaments begin", "preTournamentWarmup": "Pre-tournament warmup and start of mini tournaments",
"miniTournamentsKickoff": "Mini-tournaments kick-off", "killerInstinct": "Killer Instinct tournament",
"fightingGamesStart": "Fighting game tournaments start", "mainTournamentsStart": "CS2 and LoL tournaments begin",
"doorsClose": "Doors close", "doorsClose": "Doors close",
"warmup": "Warmup",
"mainTournamentsContinue": "LoL/CS2 tournaments continue",
"miniTournamentsStart": "Mini-tournaments begin", "miniTournamentsStart": "Mini-tournaments begin",
"granblue": "Granblue tournament", "granblue": "Granblue tournament",
"granTurismo": "Gran Turismo tournament" "granTurismoFinal": "Gran Turismo final",
"cs2FinalStart": "CS2 final begins",
"cs2Final": "CS2 final",
"awardCeremony": "Award ceremony",
"expoClosed": "Expo area is closed"
}, },
"locations": { "locations": {
"registrationSetup": "Registration and setup in auditorium", "registrationSetup": "Registration and setup in auditorium",

View File

@@ -123,8 +123,7 @@
"titleSingular": "Miniturniiride", "titleSingular": "Miniturniiride",
"title": "Miniturniirid", "title": "Miniturniirid",
"timing": "24.-25. oktoober", "timing": "24.-25. oktoober",
"description1": "TipiLANil toimub mitmeid erinevaid lõbusaid ja võistlushimu tekitavaid miniturniire. Miniturniirid toimuvad järgnevates mängudes: SimRacing, Tekken, FIFA, Buckshot Roulette, LostGamer ja palju muud.", "description1": "TipiLANil toimub mitmeid erinevaid lõbusaid ja võistlushimu tekitavaid miniturniire. Iga turniiri juures on välja toodud terve turniiri auhinnafond",
"description2": "Auhinnafond on kõigi turniiride peale 1250€ ja reeglina saab rahalise auhinna miniturniiri võitja.",
"readRules": "LOE REEGLEID", "readRules": "LOE REEGLEID",
"buyTicket": "OSTA PILET" "buyTicket": "OSTA PILET"
} }
@@ -137,15 +136,22 @@
"location": "Asukoht", "location": "Asukoht",
"oct24": "24. oktoober", "oct24": "24. oktoober",
"oct25": "25. oktoober", "oct25": "25. oktoober",
"oct26": "26. oktoober",
"events": { "events": {
"doorsOpen": "Uksed avatakse", "doorsOpen": "Uksed avatakse",
"mainTournamentsStart": "Põhiturniirid algavad", "preTournamentWarmup": "Eelturniiri soojendus ja miniturniiride algus",
"miniTournamentsKickoff": "Miniturniiride kick-off", "killerInstinct": "Killer Instinct turniir",
"fightingGamesStart": "Fighting games turniiride algus", "mainTournamentsStart": "CS2 ja LoL turniirid algavad",
"doorsClose": "Uksed suletakse", "doorsClose": "Uksed suletakse",
"warmup": "Soojendus",
"mainTournamentsContinue": "LoL/CS2 turniirid jätkuvad",
"miniTournamentsStart": "Miniturniirid algavad", "miniTournamentsStart": "Miniturniirid algavad",
"granblue": "Granblue turniir", "granblue": "Granblue turniir",
"granTurismo": "Gran Turismo turniir" "granTurismoFinal": "Gran Turismo finaal",
"cs2FinalStart": "CS2 finaali algus",
"cs2Final": "CS2 finaal",
"awardCeremony": "Auhinnatseremoonia",
"expoClosed": "Messiala on suletud"
}, },
"locations": { "locations": {
"registrationSetup": "Registreerimine ja setup aulas", "registrationSetup": "Registreerimine ja setup aulas",