Scheiß Line Separator
Dieser Commit ist enthalten in:
Ursprung
3996376381
Commit
2abe554059
@ -1,15 +1,15 @@
|
|||||||
import { defineAstroI18nConfig } from "astro-i18n"
|
import { defineAstroI18nConfig } from "astro-i18n"
|
||||||
|
|
||||||
export default defineAstroI18nConfig({
|
export default defineAstroI18nConfig({
|
||||||
primaryLocale: "en", // default app locale
|
primaryLocale: "en",
|
||||||
secondaryLocales: ["de"], // other supported locales
|
secondaryLocales: ["de"],
|
||||||
fallbackLocale: "en", // fallback locale (on missing translation)
|
fallbackLocale: "en",
|
||||||
trailingSlash: "never", // "never" or "always"
|
trailingSlash: "never",
|
||||||
run: "client+server", //"client+server" or "server"
|
run: "client+server",
|
||||||
showPrimaryLocale: false, // "/en/about" vs "/about"
|
showPrimaryLocale: false,
|
||||||
translationLoadingRules: [], // per page group loading
|
translationLoadingRules: [],
|
||||||
translationDirectory: {}, // translation directory names
|
translationDirectory: {},
|
||||||
translations: {}, // { [translation_group1]: { [locale1]: {}, ... } }
|
translations: {},
|
||||||
routes: {
|
routes: {
|
||||||
de: {
|
de: {
|
||||||
about: "ueber-uns",
|
about: "ueber-uns",
|
||||||
@ -17,6 +17,7 @@ export default defineAstroI18nConfig({
|
|||||||
imprint: "impressum",
|
imprint: "impressum",
|
||||||
"code-of-conduct": "verhaltensrichtlinien",
|
"code-of-conduct": "verhaltensrichtlinien",
|
||||||
rules: "regeln",
|
rules: "regeln",
|
||||||
|
ranked: "rangliste",
|
||||||
}
|
}
|
||||||
}, // { [secondary_locale1]: { about: "about-translated", ... } }
|
},
|
||||||
})
|
})
|
15
package.json
15
package.json
@ -15,24 +15,25 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@astrojs/prefetch": "^0.4.1",
|
"@astrojs/prefetch": "^0.4.1",
|
||||||
"@astrojs/svelte": "^4.0.3",
|
"@astrojs/svelte": "^4.0.4",
|
||||||
"@astrojs/tailwind": "^5.0.2",
|
"@astrojs/tailwind": "^5.0.2",
|
||||||
"@astropub/icons": "^0.2.0",
|
"@astropub/icons": "^0.2.0",
|
||||||
"@types/color": "^3.0.5",
|
"@types/color": "^3.0.6",
|
||||||
"@types/crypto-js": "^4.1.3",
|
"@types/crypto-js": "^4.2.1",
|
||||||
"@types/node": "^20.8.10",
|
"@types/node": "^20.9.3",
|
||||||
"cssnano": "^6.0.1",
|
"cssnano": "^6.0.1",
|
||||||
"esbuild": "^0.19.5",
|
"esbuild": "^0.19.7",
|
||||||
"postcss-nesting": "^12.0.1",
|
"postcss-nesting": "^12.0.1",
|
||||||
"sass": "^1.69.5",
|
"sass": "^1.69.5",
|
||||||
"svelte": "^4.2.2",
|
"svelte": "^4.2.7",
|
||||||
"tailwind-merge": "^2.0.0",
|
"tailwind-merge": "^2.0.0",
|
||||||
"tailwindcss": "^3.3.5"
|
"tailwindcss": "^3.3.5"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@codemirror/lang-json": "^6.0.1",
|
||||||
"@codemirror/lang-markdown": "^6.2.2",
|
"@codemirror/lang-markdown": "^6.2.2",
|
||||||
"@ddietr/codemirror-themes": "^1.4.2",
|
"@ddietr/codemirror-themes": "^1.4.2",
|
||||||
"astro": "^3.4.3",
|
"astro": "^3.5.6",
|
||||||
"astro-i18n": "^2.1.18",
|
"astro-i18n": "^2.1.18",
|
||||||
"color": "^4.2.3",
|
"color": "^4.2.3",
|
||||||
"crypto-js": "^4.2.0",
|
"crypto-js": "^4.2.0",
|
||||||
|
888
pnpm-lock.yaml
888
pnpm-lock.yaml
Datei-Diff unterdrückt, da er zu groß ist
Diff laden
@ -1,12 +1,12 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import {Spinner, Toolbar, ToolbarButton, ToolbarGroup, Tooltip} from "flowbite-svelte";
|
import {Spinner, Toolbar, ToolbarButton, ToolbarGroup, Tooltip} from "flowbite-svelte";
|
||||||
import {markdown} from "@codemirror/lang-markdown";
|
import {markdown} from "@codemirror/lang-markdown";
|
||||||
|
import {json} from "@codemirror/lang-json";
|
||||||
import CodeMirror from "svelte-codemirror-editor";
|
import CodeMirror from "svelte-codemirror-editor";
|
||||||
import {pageRepo} from "../../../repo/repo.ts";
|
import {pageRepo} from "../../../repo/repo.ts";
|
||||||
import {base64ToBytes} from "../../util.ts";
|
import {base64ToBytes} from "../../util.ts";
|
||||||
import type {Page} from "../../../types/page.ts";
|
import type {Page} from "../../../types/page.ts";
|
||||||
import {materialDark} from '@ddietr/codemirror-themes/material-dark.js'
|
import {materialDark} from '@ddietr/codemirror-themes/material-dark.js'
|
||||||
import {EditOutline} from "flowbite-svelte-icons";
|
|
||||||
import {createEventDispatcher} from "svelte";
|
import {createEventDispatcher} from "svelte";
|
||||||
|
|
||||||
export let pageId: number;
|
export let pageId: number;
|
||||||
@ -56,7 +56,7 @@
|
|||||||
</ToolbarGroup>
|
</ToolbarGroup>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
</div>
|
</div>
|
||||||
<CodeMirror bind:value={pageContent} lang={markdown()} theme={materialDark} />
|
<CodeMirror bind:value={pageContent} lang={page?.name.endsWith("md") ? markdown() : json()} theme={materialDark} />
|
||||||
</div>
|
</div>
|
||||||
{:catch error}
|
{:catch error}
|
||||||
<p>{error.message}</p>
|
<p>{error.message}</p>
|
||||||
|
@ -4,7 +4,7 @@ import type {ListPage, PageList} from "../types/page.ts";
|
|||||||
|
|
||||||
export const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);
|
export const capitalize = (str: string) => str.charAt(0).toUpperCase() + str.slice(1);
|
||||||
|
|
||||||
export const nameRegex = new RegExp("(?!.*\/).+(?=\\.md)");
|
export const nameRegex = new RegExp("(?!.*\/).+(?=\\.(md|json))");
|
||||||
|
|
||||||
export function mapToMap(pages: PageList): Map<string, ListPage[]> {
|
export function mapToMap(pages: PageList): Map<string, ListPage[]> {
|
||||||
const map = new Map();
|
const map = new Map();
|
||||||
|
@ -52,10 +52,18 @@ export const downloads = defineCollection({
|
|||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
export const rules = defineCollection({
|
||||||
|
type: "content",
|
||||||
|
schema: z.object({
|
||||||
|
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
export const collections = {
|
export const collections = {
|
||||||
'pages': pages,
|
'pages': pages,
|
||||||
'help': help,
|
'help': help,
|
||||||
'event': event,
|
'event': event,
|
||||||
'modes': modes,
|
'modes': modes,
|
||||||
|
'rules': rules,
|
||||||
'downloads': downloads
|
'downloads': downloads
|
||||||
}
|
}
|
||||||
|
109
src/content/rules/de/airship.md
Normale Datei
109
src/content/rules/de/airship.md
Normale Datei
@ -0,0 +1,109 @@
|
|||||||
|
# AirShip-Regelwerk
|
||||||
|
|
||||||
|
## Definitionen
|
||||||
|
|
||||||
|
Ein AirShip ist eine beidseitig bewaffnete Struktur in Minecraft 1.19 und sieht flugfähig aus.
|
||||||
|
|
||||||
|
## Maße
|
||||||
|
|
||||||
|
![Picture](../../../images/Screenshot_2023-08-30_at_21.43.56-1536x714.png)
|
||||||
|
|
||||||
|
**Technikbereich**:
|
||||||
|
- 70 lang
|
||||||
|
- 35 breit
|
||||||
|
- 24 hoch
|
||||||
|
|
||||||
|
**Designbereich**:
|
||||||
|
- 130 lang
|
||||||
|
- 51 breit
|
||||||
|
- 32 hoch
|
||||||
|
|
||||||
|
Entfernung von Mitte zu Mitte des Gegners: 100 Block
|
||||||
|
|
||||||
|
Technik darf sich 4 Blöcke über die Maße hinaus ausfahren – unabhängige Flugmaschinen ausgenommen. Kanonen, Schilde, Flugmaschinen und Panzerung dürfen nur im Technikbereich verbaut werden.
|
||||||
|
|
||||||
|
## Projektile
|
||||||
|
|
||||||
|
Ein Projektil ist ein gezündetes TNT, welches in die gegnerische Hälfte wechselt. Eine Kanone ist eine Vorrichtung zum Beschleunigen von Projektilen. Es ist verboten, mehrere Kanonen als eine Einzige auszugeben.
|
||||||
|
|
||||||
|
Jeder Seite stehen bis zu 30 Projektile zur Verfügung. Sie müssen auf der dem Gegner zugewandten Seite oder, wenn beidseitig, in der Mitte gezündet werden
|
||||||
|
|
||||||
|
## Kampfablauf
|
||||||
|
|
||||||
|
- 5 min Vorbereitungszeit
|
||||||
|
- 45 s zum Starten von Flugmaschinen
|
||||||
|
- ab 5 min Kampfzeit ist Entern erlaubt
|
||||||
|
- 10 min Kampf
|
||||||
|
|
||||||
|
## Siegesbedingung
|
||||||
|
|
||||||
|
- Ein AirShip wird zu 60% (nach prozentualer Redstonekomponenten) zerstört.
|
||||||
|
- Alle Kämpfer eines AirShips sind tot.
|
||||||
|
- Nach 10 Minuten wird ein Unentschieden eingeleitet.
|
||||||
|
- Der Kampfleiter entscheidet.
|
||||||
|
|
||||||
|
## Blöcke
|
||||||
|
|
||||||
|
Es dürfen maximal je 30 TNT/slime/honey und 32 Werfer verbaut werden. Verbaute Blöcke dürfen einen TNT-Widerstand von maximal 6 haben. Ausgenommen davon ist Wasser mit dem einzigen Zweck, die Kanone vor selbstverursachtem Schaden zu bewahren.
|
||||||
|
|
||||||
|
Inventar-Blöcke dürfen nur mit Blumen, Honigflaschen und Pferderüstungen gefüllt sein. Zusätzlich dürfen sich in Kisten und Fässern TNT sowie in Werfern 2·64 Feuerbälle, 2·64 reguläre Pfeile oder 1 Eimer zum Aufheben von powdered Snow befinden.
|
||||||
|
|
||||||
|
Zusätzlich verboten: Monster Spawner, Eis, Nether Portal, Silberfischsteine, Leuchtfeuer, unsichtbare Blöcke (Ausnahme: structure_void) Das Duplizieren von Blöcken und Entities ist verboten.
|
||||||
|
Blöcke aus dem eigenen AS dürfen nicht in großer Menge entfernt werden.
|
||||||
|
Bug-Using ist nicht erwünscht.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
# Versteckte Blöcke (Ersetzt durch Stein)
|
||||||
|
|
||||||
|
- WATER
|
||||||
|
- NOTE_BLOCK
|
||||||
|
- POWERED_RAIL
|
||||||
|
- DETECTOR_RAIL
|
||||||
|
- PISTON
|
||||||
|
- PISTON_HEAD
|
||||||
|
- STICKY_PISTON
|
||||||
|
- TNT
|
||||||
|
- CHEST
|
||||||
|
- TRAPPED_CHEST
|
||||||
|
- REDSTONE_WIRE
|
||||||
|
- STONE_PRESSURE_PLATE
|
||||||
|
- IRON_DOOR
|
||||||
|
- OAK_PRESSURE_PLATE
|
||||||
|
- SPRUCE_PRESSURE_PLATE
|
||||||
|
- BIRCH_PRESSURE_PLATE
|
||||||
|
- JUNGLE_PRESSURE_PLATE
|
||||||
|
- ACACIA_PRESSURE_PLATE
|
||||||
|
- DARK_OAK_PRESSURE_PLATE
|
||||||
|
- REDSTONE_TORCH
|
||||||
|
- REDSTONE_WALL_TORCH
|
||||||
|
- REPEATER
|
||||||
|
- BREWING_STAND
|
||||||
|
- TRIPWIRE_HOOK
|
||||||
|
- TRIPWIRE
|
||||||
|
- HEAVY_WEIGHTED_PRESSURE_PLATE
|
||||||
|
- LIGHT_WEIGHTED_PRESSURE_PLATE
|
||||||
|
- COMPARATOR
|
||||||
|
- REDSTONE_BLOCK
|
||||||
|
- HOPPER
|
||||||
|
- ACTIVATOR_RAIL
|
||||||
|
- DROPPER
|
||||||
|
- SLIME_BLOCK
|
||||||
|
- OBSERVER
|
||||||
|
- HONEY_BLOCK
|
||||||
|
- LEVER
|
||||||
|
|
||||||
|
# Zusatzinhalte folgender Blöcke (z.B. Text, Inhalt von Inventaren) werden mit versteckt:
|
||||||
|
|
||||||
|
- SIGN
|
||||||
|
- DISPENSER
|
||||||
|
- CHEST
|
||||||
|
- TRAPPED_CHEST
|
||||||
|
- FURNACE
|
||||||
|
- BREWING_STAND
|
||||||
|
- HOPPER
|
||||||
|
- DROPPER
|
||||||
|
- SHULKER_BOX
|
||||||
|
- JUKEBOX
|
||||||
|
- COMPARATOR
|
||||||
|
|
161
src/content/rules/de/miniwargear.md
Normale Datei
161
src/content/rules/de/miniwargear.md
Normale Datei
@ -0,0 +1,161 @@
|
|||||||
|
# MiniWarGear-Regelwerk
|
||||||
|
|
||||||
|
MiniWargears werden in der 1.19 gebaut.
|
||||||
|
|
||||||
|
## Maße
|
||||||
|
|
||||||
|
- Max. 20 Block tief (+ 1 Block Design pro Seite) (22)
|
||||||
|
- Max. 35 Block breit (+ 1 Block Design pro Seite) (37)
|
||||||
|
- Max. 26 Block hoch
|
||||||
|
|
||||||
|
Ein MiniWarGear darf sich maximal 7 Blöcke in alle Richtungen ausfahren. Alle ausfahrbare Schild- Komponenten dürfen nur von der Brücke aus aktivierbar sein.
|
||||||
|
|
||||||
|
## Materialien
|
||||||
|
|
||||||
|
Alle Blöcke im MiniWarGear dürfen maximal einen TNT-Widerstand von 9 aufweisen. Es
|
||||||
|
dürfen maximal 120 TNT verbaut werden. Inventarblöcke dürfen ausschließlich Blumen,
|
||||||
|
Honigflaschen und Pferderüstungen beherbergen. In Truhen und Fässer darf TNT gelagert
|
||||||
|
werden. In Werfern dürfen sich nur 1*64 Feuerbälle oder 1*64 Pfeile (ohne Effekte) befinden.
|
||||||
|
Es dürfen maximal 16 Werfer verbaut werden.
|
||||||
|
|
||||||
|
Folgende Materialien dürfen zusätzlich nicht verbaut werden: Alle Sprösslinge (6), Eis (79),
|
||||||
|
Nether Portal (90), Waterlogged Leaves und Waterlogged Roots
|
||||||
|
Wasser darf nur und ausschließlich in Kanonen verwendet werden, um Schaden beim eigenen
|
||||||
|
Schuss zu verhindern.
|
||||||
|
|
||||||
|
## Kanonen
|
||||||
|
|
||||||
|
Eine Kanone ist eine durchgehende Redstonekonstruktion, welche in der Lage ist,
|
||||||
|
gezündetes TNT in die gegnerische Hälfte zu befördern. Eine TNT-Kanone ist der einzige Ort
|
||||||
|
in einem MWG an dem Wasser verbaut werden darf, wenn es die Kanone nicht verlässt und
|
||||||
|
/oder im intakten Zustand Wasserschilde bildet. Außerdem darf sich die Kanone nicht gezielt
|
||||||
|
selbst beschädigen. Eine TNT-Kanone darf maximal 8 Projektile pro Schuss abfeuern.
|
||||||
|
Zusätzlich ist eine Hauptkanone mit 12 Projektilen erlaubt. Die Hauptkanone darf nur eine
|
||||||
|
manuelle Kanone sein.
|
||||||
|
|
||||||
|
Ein MiniWarGear darf insgesamt 9 Kanonen besitzen. Es ist
|
||||||
|
verboten, eine Vielzahl von Kanonen als eine einzige Kanone auszugeben. Es ist ebenfalls
|
||||||
|
Verboten eine einzige Kanone als mehrere auszugeben. Ob dies der Fall ist, entscheidet der
|
||||||
|
Prüfer des MiniWarGears oder der / die Kampfleiter.
|
||||||
|
|
||||||
|
Manuelle Kanonen sind TNT-Kanonen, welche manuell beladen werden müssen. Diese
|
||||||
|
dürfen vor dem Kampf nicht beladen sein. Des Weiteren müssen manuelle Kanonen am
|
||||||
|
Gegner Schaden anrichten können. Eine manuelle Kanone darf bis zu 3 Schüsse ohne
|
||||||
|
Nachladen abschießen.
|
||||||
|
Eine manuelle Kanone, welche ohne weiteres Nachladen mehrere
|
||||||
|
Schüsse hintereinander abgeben kann, muss die Projektile der einzelnen Schüsse von
|
||||||
|
denselben Abschusspunkt(en) aus abschießen. Der Ort wird vom ersten Schuss definiert.
|
||||||
|
|
||||||
|
Automatische Kanonen sind Kanonen welche ohne manuelles beladen mindestens 5
|
||||||
|
Schüsse abgeben können und vor Fightbeginn beladen sein müssen. Damit eine automaische
|
||||||
|
Kanone vorbeladen sein darf, muss diese mindestens 5 Schüsse abgeben. Alle Schüsse
|
||||||
|
müssen von den selben Abschusspunkt/en abgeschossen werden und die ersten 5 Schüsse
|
||||||
|
müssen gleich viele Projektile verschießen. Ab dem 6. Schuss darf die Projektilanzahl
|
||||||
|
abnehmen, jedoch nicht zunehmen. Eine Automatische Kanone darf max. alle 4 Sekunden
|
||||||
|
(40 Redstoneticks) schießen. Es sind max. 2 Automatische Kanonen erlaubt.
|
||||||
|
|
||||||
|
## Brücke
|
||||||
|
|
||||||
|
Ein MiniWargear benötigt eine Brück welche als klar erkennbarer Raum vom Rest des Miniwargears durch Türen oder Kolben abtrennbar ist.
|
||||||
|
|
||||||
|
Die Brücke muss folgende Voraussetzungen erfüllen:
|
||||||
|
|
||||||
|
- Min. 25 begehbare Blöcke
|
||||||
|
- Einen periodisch akustischen (Notenblock/Glocke) und optischen Schadenssensor
|
||||||
|
- Sichtfenster auf das gegnerische MiniWarGear
|
||||||
|
- Die Ansteuerung für min. 4 vom Gegner aus Sichtbare Frontscheinwerfer
|
||||||
|
- Die Ansteuerung für ggf. vorhandene automatische Kanonen
|
||||||
|
- Die einzige Ansteuerung für ggf. vorhandene Werfer, die mit Pfeilen oder Feuerbällen den Gegner beschießen
|
||||||
|
- Die Ansteuerung für ggf. vorhandene Schildtechniken
|
||||||
|
|
||||||
|
## Design
|
||||||
|
|
||||||
|
Ein MiniWarGear benötigt (neben mindestens einer Kanone) ein Design. Die äußere Schicht
|
||||||
|
des MiniWarGears darf maximal einen TNT-Widerstand von 6 besitzen. Es wird eine
|
||||||
|
durchgängige Struktur über die gesamte Front des MiniWarGears erwartet. Es müssen
|
||||||
|
mindestens 2 verschiedene Blöcke im Design eingebaut werden. (Werfer und
|
||||||
|
Redstonelampen werden nicht mitgezählt).
|
||||||
|
|
||||||
|
Eine durchgängige Struktur bedeutet, dass keine größeren Flächen keine Variation in der
|
||||||
|
Tiefe besitzen. Eine Variation in der Tiefe kann teilweise auch durch Mauern oder
|
||||||
|
Treppenstufen erreicht werden, darf aber nicht überwiegend dadurch erzeugt werden. Ob dies
|
||||||
|
der Fall ist, liegt im Ermessen des Prüfers.
|
||||||
|
|
||||||
|
## Bug-Using
|
||||||
|
|
||||||
|
Das erschaffen von TNT im MWG ist verboten
|
||||||
|
|
||||||
|
Exzessives verwenden von Blöcken die vom Techhider replacet werden ist verboten
|
||||||
|
|
||||||
|
## Definitionen
|
||||||
|
|
||||||
|
### Projektil
|
||||||
|
|
||||||
|
Ein Projektil ist ein TNT, welches im gezündeten Zustand von den Treibladungen
|
||||||
|
beschleunigt wird. Ein Projektil ist auch ein TNT, welches die maximalen Maße eines
|
||||||
|
MiniWarGears in Richtung des Gegners verlässt.
|
||||||
|
|
||||||
|
### Treibladung
|
||||||
|
|
||||||
|
Eine Treibladung ist ein TNT, das im gezündeten Zustand Projektile in die gegnerische
|
||||||
|
Hälfte beschleunigt. Die Treibladungen einer Kanone (manuelle und automatische Kanonen)
|
||||||
|
dürfen nur die eigenen Projektile beeinflussen.
|
||||||
|
|
||||||
|
## Versteckte Blöcke (Ersetzt durch Endstein)
|
||||||
|
|
||||||
|
- WATER
|
||||||
|
- NOTE_BLOCK
|
||||||
|
- POWERED_RAIL
|
||||||
|
- DETECTOR_RAIL
|
||||||
|
- PISTON
|
||||||
|
- PISTON_HEAD
|
||||||
|
- STICKY_PISTON
|
||||||
|
- TNT
|
||||||
|
- CHEST
|
||||||
|
- TRAPPED_CHEST
|
||||||
|
- REDSTONE_WIRE
|
||||||
|
- STONE_PRESSURE_PLATE
|
||||||
|
- IRON_DOOR
|
||||||
|
- OAK_PRESSURE_PLATE
|
||||||
|
- SPRUCE_PRESSURE_PLATE
|
||||||
|
- BIRCH_PRESSURE_PLATE
|
||||||
|
- JUNGLE_PRESSURE_PLATE
|
||||||
|
- ACACIA_PRESSURE_PLATE
|
||||||
|
- DARK_OAK_PRESSURE_PLATE
|
||||||
|
- REDSTONE_TORCH
|
||||||
|
- REDSTONE_WALL_TORCH
|
||||||
|
- REPEATER
|
||||||
|
- BREWING_STAND
|
||||||
|
- TRIPWIRE_HOOK
|
||||||
|
- TRIPWIRE
|
||||||
|
- HEAVY_WEIGHTED_PRESSURE_PLATE
|
||||||
|
- LIGHT_WEIGHTED_PRESSURE_PLATE
|
||||||
|
- COMPARATOR
|
||||||
|
- REDSTONE_BLOCK
|
||||||
|
- HOPPER
|
||||||
|
- ACTIVATOR_RAIL
|
||||||
|
- DROPPER
|
||||||
|
- SLIME_BLOCK
|
||||||
|
- OBSERVER
|
||||||
|
- HONEY_BLOCK
|
||||||
|
- LEVER
|
||||||
|
- SCULK_SENSOR
|
||||||
|
- POLISHED_BLACKSTONE_PRESSURE_PLATE
|
||||||
|
- MANGROVE_PRESSURE_PLATE
|
||||||
|
- CRIMSON_PRESSURE_PLATE
|
||||||
|
- WARPED_PRESSURE_PLATE
|
||||||
|
|
||||||
|
## Zusatzinhalte folgender Blöcke (z.B. Text, Inhalt von Inventaren) werden mit versteckt:
|
||||||
|
|
||||||
|
- SIGN
|
||||||
|
- DISPENSER
|
||||||
|
- CHEST
|
||||||
|
- TRAPPED_CHEST
|
||||||
|
- FURNACE
|
||||||
|
- BREWING_STAND
|
||||||
|
- HOPPER
|
||||||
|
- DROPPER
|
||||||
|
- SHULKER_BOX
|
||||||
|
- JUKEBOX
|
||||||
|
- COMPARATOR
|
||||||
|
|
200
src/content/rules/de/wargear.md
Normale Datei
200
src/content/rules/de/wargear.md
Normale Datei
@ -0,0 +1,200 @@
|
|||||||
|
# WarGear-Regelwerk
|
||||||
|
|
||||||
|
## Definitionen
|
||||||
|
|
||||||
|
Ein **WarGear** ist eine Redstone-Kampfmaschine in Minecraft. Es ist mit einer Vielzahl von
|
||||||
|
Redstonetechniken und TNT-Kanonen ausgestattet. Es ist gebaut, um anderen WarGears
|
||||||
|
Schaden zuzufügen und die eigene Besatzung zu schützen. Ein WarGear muss sowohl im
|
||||||
|
eingesendeten als auch im kampfbereiten Zustand Regelkonform sein.
|
||||||
|
|
||||||
|
Eine **TNT-Kanone** ist eine durchgehende Redstoneschaltung, in welche Projektile abschießt.
|
||||||
|
Diese sind die einzigen Orte, an denen Wasser verbaut werden darf, wenn es die Kanone nicht
|
||||||
|
verlässt und /oder im intakten Zustand Wasserschilde bildet. Wasser darf nur verbaut werden, sofern es den Zweck erfüllt, Beschädigungen des eigenen WarGears durch die Treibladungen der Kanone zu verhindern. Wasserquellen dürfen nicht verbaut werden, um den Platz anderer Wasserquellen einzunehmen oder diese zu ersetzen. TNT-Kanonen müssen am Gegner Schaden anrichten können und dürfen sich nicht gezielt selbst durch TNT-Explosionen zerstören.
|
||||||
|
|
||||||
|
Ein **Projektil** ist ein gezündetes TNT, welches die maximalen Ausfahrmaße eines WarGears
|
||||||
|
in Richtung Gegner verlässt.
|
||||||
|
|
||||||
|
Eine **Treibladung** ist ein TNT, das durch seine Explosion Projektile beschleunigt. Die Treibladungen einer TNT-Kanone dürfen nur die Projektile und Treibladungen eines einzelnen Schusses beeinflussen.
|
||||||
|
|
||||||
|
Alle **Clocks** müssen nach Vollendung ihrer Aufgabe sich selbst ausschalten.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Maße
|
||||||
|
|
||||||
|
Höhe: 41
|
||||||
|
Block Tiefe: 47
|
||||||
|
Block Breite: 67 Block
|
||||||
|
Ein WarGear darf sich bis zu 16 Blöcke in jede Richtung ausfahren
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Blöcke
|
||||||
|
|
||||||
|
Es dürfen alle Blöcke verbaut werden, die einen TNT-Widerstand von max. 9 haben.
|
||||||
|
Folgende Blöcke sind nicht erlaubt:
|
||||||
|
|
||||||
|
Alle Sprösslinge (6), jegliche Spawnerarten (52), Eis
|
||||||
|
(79), Nether-Portal (90) und Lava (10, 11)
|
||||||
|
|
||||||
|
Es darf ein **Bedrock (7)** in der Nähe der Kommandozentrale zum Zwecke eines Autostarters verbaut werden (Dieser wird zum Zeitpunkt der Kitvergabe zu einem **Slime Block (165)** replaced).
|
||||||
|
|
||||||
|
Inventarblöcke dürfen ausschließlich Blumen, Honigflaschen und Pferderüstungen beinhalten. Truhen und Fässer dürfen TNT beinhalten
|
||||||
|
|
||||||
|
Werfer dürfen nur mit je **264 Pfeilen (ohne Effekte) oder 264 Feuerbällen oder einem
|
||||||
|
leeren Eimer bestückt sein**. Dieser darf ausschließlich dazu verwendet werden, Pulverschnee
|
||||||
|
vor dem Werfer aufzunehmen und zu platzieren
|
||||||
|
Insgesamt dürfen sich von beiden Typen nur je 2048 Items (32 Stacks) in Werfern befinden.
|
||||||
|
|
||||||
|
Es dürfen max. **600 TNT** verbaut werden.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Kanonen
|
||||||
|
|
||||||
|
**Manuelle Kanonen** sind TNT-Kanonen, welche manuell beladen werden müssen. Diese
|
||||||
|
dürfen vor dem Kampf nicht beladen sein. Manuelle Kanonen dürfen nach einem Beladen
|
||||||
|
auch mehrere Schüsse abgeben ohne neu beladen werden zu müssen.
|
||||||
|
|
||||||
|
**Automatische Kanonen** sind TNT-Kanonen, welche ohne nachzuladen mehrere Schüsse
|
||||||
|
abgeben können. Damit eine automatische Kanone vor dem Kampf beladen sein darf, muss
|
||||||
|
sie mindestens 8 Schüsse aufeinanderfolgend abgeben.
|
||||||
|
Alle 8 Schüsse müssen dieselbe Projektilanzahl verschießen. Bei jedem weiteren Schuss darf
|
||||||
|
die Projektilanzahl abnehmen. Zu beachten ist, dass die Projektile aller Schüsse immer von
|
||||||
|
dem / den exakt gleichen Punkt- /en aus gezündet und abgeschossen werden müssen. Vor
|
||||||
|
Fightbeginn darf diese vollständig leergeschossen werden.
|
||||||
|
|
||||||
|
Ein WarGear darf insgesamt 14 Kanonen besitzen. Es ist verboten, eine Vielzahl von Kanonen als eine einzige Kanone auszugeben. Ob dies der Fall ist, entscheidet der Prüfer des Wargears oder der / die Kampfleiter.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Schilde
|
||||||
|
|
||||||
|
Alles außerhalb der Standardmaße zählt als Schild. Ausgenommen davon sind einzelne ausfahrende Blöcke und Abschussvorrichtungen von Kanonen. Automatisch aktivierte ausfahrende Schildtechniken müssen nicht aus der Kommandozentrale explizit ansteuerbar sein. Alle Schilde müssen vor dem austeilen der Kits ausgefahren sein. Durch das Ausfahren der Schilde müssen Blöcke in der Design-Schicht (s.u.) nicht mehr den Design-Vorschriften entsprechen. Scheinwerfer und Ausgucke dürfen durch ausfahrende Schilde verdeckt werden.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Kommandozentrale
|
||||||
|
|
||||||
|
Jedes WarGear braucht eine Kommandozentrale. Diese muss ein zentraler Ort sein, welcher nicht abriegelbar sein muss. Des Weiteren darf diese auch einfach in einem Gang sein. Die Ansteuerungslemente müssen nah beieinander sein. Die Kommandozentrale muss aus folgenden Elementen bestehen:
|
||||||
|
|
||||||
|
- Ansteuerung für **min. 8 Frontscheinwerfern**
|
||||||
|
- Die Frontscheinwerfer müssen frontal vom Gegner direkt, im angeschalteten/aufgedeckten Zustand, erkennbar sein
|
||||||
|
- Ein Ausguck muss nicht zwingen in der Kommandozentrale sein
|
||||||
|
|
||||||
|
Ggf. vorhandene automatisch ausfahrende Schildtechnik, muss nicht von der Kommandozentrale aus ansteuerbar sein.
|
||||||
|
|
||||||
|
Ggf. vorhandene **manuelle Schildtechnik** muss vollständig aus der Kommandozentrale ausgefahren werden können. Bei mehreren Interaktionen, um Schilde auszufahren muss die Reihenfolge gekennzeichnet werden. Wenn dies gegeben ist, dürfen auch weitere Aktivierungspunkte verbaut werden.
|
||||||
|
|
||||||
|
Ggf. vorhandene **automatische Kanonen** müssen mindestens aus der Kommandozentrale vollständig und manuell ansteuerbar sein. Falls ein Autostarter verbaut ist, muss weiterhin eine manuelle Aktivierung in der Kommandozentrale gegeben sein.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Design
|
||||||
|
|
||||||
|
Ein WarGear benötigt (neben mindestens einer Kanone) ein Design. Die äußere Schicht
|
||||||
|
des WarGears darf maximal einen TNT-Widerstand von 6 besitzen. Es wird eine
|
||||||
|
durchgängige Struktur über die gesamte Front des WarGears erwartet. Es müssen
|
||||||
|
mindestens 2 verschiedene Blöcke im Design eingebaut werden. (Werfer und
|
||||||
|
Redstonelampen werden nicht mitgezählt).
|
||||||
|
|
||||||
|
Eine durchgängige Struktur bedeutet, dass keine größeren Flächen keine Variation in der
|
||||||
|
Tiefe besitzen. Eine Variation in der Tiefe kann teilweise auch durch Mauern oder
|
||||||
|
Treppenstufen erreicht werden, darf aber nicht überwiegend dadurch erzeugt werden. Ob dies
|
||||||
|
der Fall ist, liegt im Ermessen des Prüfers.
|
||||||
|
|
||||||
|
Jedes WarGear benötigt mindestens 1 Ausguck. Insgesamt müssen alle Ausgucke eine auf den Gegner weisende Oberfläche von mindestens 6 durchsichtige Blöcke aufweisen. Ein Ausguck zählt nicht als dieser, wenn er den Lauf einer Kanone darstellt.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Bug-Using
|
||||||
|
|
||||||
|
Bis auf das direkte Zünden von TNT ist das Erzeugen von jeglicher anderen Entität in den
|
||||||
|
Ausfahrmaßen des eigenen WarGears verboten.
|
||||||
|
Das Erzeugen von Sand-, Gravel-, Concrete-Powder-, DragonEgg- und Scaffolding-Entities ist
|
||||||
|
in den
|
||||||
|
Ausfahrmaßen des eigenen WarGears erlaubt, genauso ist das Erzeugen von Items, durch
|
||||||
|
Dispenser oder Droppern erlaubt. Feuerball-Entities, sowie Pfeil-Entities dürfen auch von
|
||||||
|
Dispensern erzeugt werden.
|
||||||
|
|
||||||
|
Beacons dürfen als Block in WarGears vorhanden sein, jedoch nicht im aktiven Zustand.
|
||||||
|
Diese dürfen auch während eines Fights nicht aktiviert werden.
|
||||||
|
|
||||||
|
Versteckte Blöcke (Ersetzt durch Endstein)
|
||||||
|
|
||||||
|
Der Techhider darf nicht missbraucht werden, um dadurch jegliche Läufe, auch Fake-Läufe
|
||||||
|
unkenntlich und unersichtlich zu machen. Außerdem darf die Designschicht keine
|
||||||
|
Techhiderblöcke, welche Läufe oder ähnliches verbergen, enthalten. Das Benutzen des
|
||||||
|
Techhiders um damit Gänge unkenntlich zu machen ist ebenfalls verboten. Im Zweifelsfall
|
||||||
|
obliegt die Entscheidung, ob es sich um Ausnutzung des Techhiders handelt, dem Prüfer des WGs.
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
## Versteckte Blöcke (Ersetzt durch Endstein)
|
||||||
|
|
||||||
|
- WATER
|
||||||
|
- NOTE_BLOCK
|
||||||
|
- POWERED_RAIL
|
||||||
|
- DETECTOR_RAIL
|
||||||
|
- PISTON
|
||||||
|
- PISTON_HEAD
|
||||||
|
- STICKY_PISTON
|
||||||
|
- TNT
|
||||||
|
- CHEST
|
||||||
|
- TRAPPED_CHEST
|
||||||
|
- REDSTONE_WIRE
|
||||||
|
- STONE_PRESSURE_PLATE
|
||||||
|
- IRON_DOOR
|
||||||
|
- OAK_PRESSURE_PLATE
|
||||||
|
- SPRUCE_PRESSURE_PLATE
|
||||||
|
- BIRCH_PRESSURE_PLATE
|
||||||
|
- JUNGLE_PRESSURE_PLATE
|
||||||
|
- ACACIA_PRESSURE_PLATE
|
||||||
|
- DARK_OAK_PRESSURE_PLATE
|
||||||
|
- REDSTONE_TORCH
|
||||||
|
- REDSTONE_WALL_TORCH
|
||||||
|
- REPEATER
|
||||||
|
- BREWING_STAND
|
||||||
|
- TRIPWIRE_HOOK
|
||||||
|
- TRIPWIRE
|
||||||
|
- HEAVY_WEIGHTED_PRESSURE_PLATE
|
||||||
|
- LIGHT_WEIGHTED_PRESSURE_PLATE
|
||||||
|
- COMPARATOR
|
||||||
|
- REDSTONE_BLOCK
|
||||||
|
- HOPPER
|
||||||
|
- ACTIVATOR_RAIL
|
||||||
|
- DROPPER
|
||||||
|
- SLIME_BLOCK
|
||||||
|
- OBSERVER
|
||||||
|
- HONEY_BLOCK
|
||||||
|
- LEVER
|
||||||
|
- SCULK_SENSOR
|
||||||
|
- TARGET
|
||||||
|
- POLISHED_BLACKSTONE_PERSSURE_PLATE
|
||||||
|
- MANGROVE_PRESSURE_PLATE
|
||||||
|
- CRIMSON_PRESSURE_PLATE
|
||||||
|
- WARPED_PRESSURE_PLATE
|
||||||
|
- JUNGLE_FENCE_GATE
|
||||||
|
- ACACIA_FENCE_GATE
|
||||||
|
- BIRCH_FENCE_GATE
|
||||||
|
- DARK_OAK_FENCE_GATE
|
||||||
|
- OAK_FENCE_GATE
|
||||||
|
- SPRUCE_FENCE_GATE
|
||||||
|
- CRIMSON_FENCE_GATE
|
||||||
|
- WARPED_FENCE_GATE
|
||||||
|
- MANGROVE_FENCE_GATE
|
||||||
|
|
||||||
|
## Zusatzinhalte folgender Blöcke (z.B. Text, Inhalt von Inventaren) werden mit versteckt:
|
||||||
|
|
||||||
|
- SIGN
|
||||||
|
- DISPENSER
|
||||||
|
- CHEST
|
||||||
|
- TRAPPED_CHEST
|
||||||
|
- FURNACE
|
||||||
|
- BREWING_STAND
|
||||||
|
- HOPPER
|
||||||
|
- DROPPER
|
||||||
|
- SHULKER_BOX
|
||||||
|
- JUKEBOX
|
||||||
|
- COMPARATOR
|
||||||
|
|
74
src/content/rules/de/warship.md
Normale Datei
74
src/content/rules/de/warship.md
Normale Datei
@ -0,0 +1,74 @@
|
|||||||
|
# WarShip-Regelwerk
|
||||||
|
|
||||||
|
## Definitionen
|
||||||
|
|
||||||
|
### WarShip
|
||||||
|
|
||||||
|
Ein WarShip ist eine bewaffnete, schwimmende Struktur in Minecraft mit der optischen Erscheinung eines Schiffes. Der Schwimmkörper muss dabei einen Großteil des WarShips ausmachen. Ein WarShip kann optional ein Design aufweisen, das andere im Wasser schwimmende/befindliche Dinge oder Tiere repräsentiert, sofern das gewählte Design gänzlich implementiert wird. Jedes WarShip muss beidseitig gleich bewaffnet sein.
|
||||||
|
|
||||||
|
### Projektil
|
||||||
|
|
||||||
|
Ein Projektil ist ein TNT, welches im gezündeten Zustand in die gegnerische Hälfte wechselt. Projektile müssen auf der dem Gegner zugewandten Schiffsseite gezündet werden. Unter Wasser gezündete Projektile müssen innerhalb des Technikbereiches, oberhalb der Wasserlinie gezündete Projektile innerhalb des Ausfahrbereichs gezündet werden.
|
||||||
|
|
||||||
|
### Kanone
|
||||||
|
|
||||||
|
Eine Kanone ist eine Vorrichtung zum Beschleunigen von Projektilen. Eine Kanone darf maximal 2 Projektile verschießen. Eine Kanone muss manuell beladen werden. Eine Kanone darf maximal alle 2s schießen. Es dürfen maximal 32 Kanonen pro Seite verbaut werden. Kanonen sind der einzige Ort, an dem Wasser verbaut werden darf, wenn es keinen anderen Zweck hat, als diese vor selbst verursachten Schaden zu bewahren und TNT zu transportieren.
|
||||||
|
|
||||||
|
## Maße
|
||||||
|
|
||||||
|
- Länge: 230 Block
|
||||||
|
- Breite: 35 Block (+ 4 Block Design pro Seite)
|
||||||
|
- Höhe: 30 Block + 20 Block Design
|
||||||
|
- Tiefe: Bis zu 8 Block unter dem Meeresspiegel
|
||||||
|
|
||||||
|
Bei jedem WarShip müssen sich mindestens 10% der absoluten Blöcke (45.000 Blöcke) über der Wasserlinie befinden.
|
||||||
|
|
||||||
|
Im Designbereich dürfen sich keine kampfrelevanten (Kanonen, Schleim/Honigfahrzeuge, Schilde) Techniken befinden. Eine Durchpanzerung des Designbereiches ist nicht zulässig. Der Designbereich ist ausschließlich für einzelne überstehende Designobjekte wie beispielsweise Kanonenrohre, Segel, Banner oder Bullaugen da.
|
||||||
|
|
||||||
|
## Blöcke
|
||||||
|
|
||||||
|
Es dürfen nur Blöcke mit einem TNT-Widerstand von maximal 6 verbaut werden. Vor und im Kampf dürfen sich in allen Blöcken mit Inventar nur Blumen, Honigflaschen und Pferderüstungen befinden, in Kisten und Fässer darf auch TNT sein. Es dürfen maximal 32 Werfer pro Seite verbaut werden. In Werfern dürfen sich 2×64 Feuerbälle oder 2×64 Pfeile (ohne Effekte) befinden.
|
||||||
|
|
||||||
|
Das Verbauen von unsichtbaren Mauern oder anderen unsichtbaren Blöcken mit Hitbox ist verboten.
|
||||||
|
Ebenso verboten sind: Monsterspawner, Eis, Netherportalblock, Alle Silberfischsteine.
|
||||||
|
|
||||||
|
Das Missbrauchen von unverschiebbaren Blöcken als Panzerung ist verboten.
|
||||||
|
Wasser darf nicht zum Schutz des eigenen WarShips missbraucht werden.
|
||||||
|
|
||||||
|
## Design
|
||||||
|
|
||||||
|
Größere Hohlräume im Rumpf zum Ausweichen feindlicher Schüsse sind nicht gestattet, auch nicht während des Kampfes. Jedes WarShip braucht eine Flagge.
|
||||||
|
|
||||||
|
Ein WarShip benötigt einen fortbewegungsfähigen Rumpf mit entsprechendem Antrieb (z.B. Segel, Schiffsschrauben).
|
||||||
|
Der Rumpf muss mindestens einen Block tief unter Wasser sowie mindestens 5 Block über dem Meeresspiegel sein (dies gilt auch während des Kampfes relativ zur Wasseroberfläche). Der Rumpf darf max. 16 Block hoch sein.
|
||||||
|
|
||||||
|
Jedes WarShip benötigt eine Brücke, welche die folgenden Kriterien erfüllt:
|
||||||
|
|
||||||
|
- Min. 50 begehbare Blöcke
|
||||||
|
- Min. 2 Block hoch im gesamten Brückenraum
|
||||||
|
- Ansteuerung von min. zwei zum Gegner gewandten Scheinwerfer
|
||||||
|
- Optische Brückeneinrichtung
|
||||||
|
|
||||||
|
## Anti-Lag-Regeln
|
||||||
|
|
||||||
|
Clocks müssen sich mit Ende ihres Einsatzzweckes selbst abschalten.
|
||||||
|
Sämtliche Redstonetechnik zum Schutz des eigenen WarShips muss ihre Aktivität vor dem Verteilen der Kits eingestellt haben.
|
||||||
|
Raketen und Flugmaschinen
|
||||||
|
|
||||||
|
Ein WarShip darf sich maximal 12 Block vom Technikbereich an weit ausfahren, davon ausgenommen sind Raketen und Flugmaschinen. Raketen und Flugmaschinen dürfen sich im Flug nicht in mehrere Schleim/Honigfahrzeuge aufteilen.
|
||||||
|
|
||||||
|
Flugmaschinen sind Schleim/Honigfahrzeuge, welche die Ausfahrmaße des WarShips verlassen und kein TNT zum Gegner transportieren. Flugmaschinen, welche TNT von Raketen zünden oder Flugmaschinen und/oder Raketen stoppen werden bei der Bestimmung der Anzahl nicht gezählt. Es dürfen maximal 8 Flugmaschinen pro Seite verbaut werden.
|
||||||
|
|
||||||
|
Eine Rakete ist ein Schleim/Honigfahrzeug, das TNT zum Gegner transportiert. Es dürfen maximal 12 Raketen pro Seite verbaut werden. Ein Raketenmagazin ist in der Lage, mehrere Raketen auf der nahezu gleichen Flugbahn zum Gegner zu schicken. Ein Raketenmagazin wird wie 2 Raketen gewertet.
|
||||||
|
|
||||||
|
Es dürften maximal 1000 der vorverbauten Slime- + Honig- + TNT-Blöcke das WarShip in Flugmaschinen und Raketen verlassen.
|
||||||
|
|
||||||
|
## Kampfablauf
|
||||||
|
|
||||||
|
60 Sekunden vor Kampfbeginn können Flugmaschinen und Raketen das eigene WarShip verlassen. Mit Kampfbeginn dürfen Blöcke abgebaut und platziert werden; TNT-Schaden wird aktiviert. 10 Minuten nach Kampfbeginn wird das Entern des feindlichen WarShips erlaubt. Spieler mit einem Kit, welches TNT beladen kann und nicht dem Kapitän zugeordnet ist, dürfen erst 15 Minuten nach Kampfbeginn entern.
|
||||||
|
|
||||||
|
Der Kampf endet, wenn:
|
||||||
|
|
||||||
|
- Der Kampf länger als 20 Minuten dauert
|
||||||
|
- Der Anführer eines Teams tot ist
|
||||||
|
- Ein WarShip zu 7% beschädigt wurde
|
2
src/env.d.ts
vendored
2
src/env.d.ts
vendored
@ -10,7 +10,7 @@
|
|||||||
type PrimaryLocale = "en"
|
type PrimaryLocale = "en"
|
||||||
type SecondaryLocale = "de"
|
type SecondaryLocale = "de"
|
||||||
type Locale = PrimaryLocale | SecondaryLocale
|
type Locale = PrimaryLocale | SecondaryLocale
|
||||||
type RouteParameters = {"/dashboard":undefined;"/downloads":undefined;"/":undefined;"/login":undefined;"/rules":undefined;"/[...slug]":{"slug":unknown;};"/admin":undefined;"/help":undefined;"/help/[...slug]":{"slug":unknown;};}
|
type RouteParameters = {"/dashboard":undefined;"/downloads":undefined;"/":undefined;"/login":undefined;"/[...slug]":{"slug":unknown;};"/admin":undefined;"/help":undefined;"/help/[...slug]":{"slug":unknown;};"/ranked/[...gamemode]":{"gamemode":unknown;};"/rules":undefined;"/rules/[...slug]":{"slug":unknown;};}
|
||||||
type Route = keyof RouteParameters
|
type Route = keyof RouteParameters
|
||||||
type TranslationVariables = {"dashboard.page":object|undefined;"dashboard.title":{"name"?:unknown;}|undefined;"dashboard.rank":{"rank"?:unknown;}|undefined;"dashboard.permissions":object|undefined;"dashboard.buttons.logout":object|undefined;"dashboard.buttons.admin":object|undefined;"dashboard.schematic.upload":object|undefined;"dashboard.schematic.home":object|undefined;"dashboard.schematic.dir":object|undefined;"dashboard.schematic.head.type":object|undefined;"dashboard.schematic.head.name":object|undefined;"dashboard.schematic.head.owner":object|undefined;"dashboard.schematic.head.updated":object|undefined;"dashboard.schematic.head.replaceColor":object|undefined;"dashboard.schematic.head.allowReplay":object|undefined;"dashboard.schematic.info.path":{"path"?:unknown;}|undefined;"dashboard.schematic.info.replaceColor":object|undefined;"dashboard.schematic.info.allowReplay":object|undefined;"dashboard.schematic.info.type":{"type"?:unknown;}|undefined;"dashboard.schematic.info.updated":{"updated"?:unknown;}|undefined;"dashboard.schematic.info.item":{"item"?:unknown;}|undefined;"dashboard.schematic.info.members":{"members"?:unknown;}|undefined;"dashboard.schematic.info.btn.download":object|undefined;"dashboard.schematic.info.btn.close":object|undefined;"login.page":object|undefined;"login.title":object|undefined;"login.placeholder.username":object|undefined;"login.placeholder.token":object|undefined;"login.label.username":object|undefined;"login.label.token":object|undefined;"login.generateToken":object|undefined;"login.submit":object|undefined;"login.error":object|undefined;"page":object|undefined;"wg.title":object|undefined;"wg.description":object|undefined;"as.title":object|undefined;"as.description":object|undefined;"ws.title":object|undefined;"ws.description":object|undefined;"mwg.title":object|undefined;"mwg.description":object|undefined;"rules":object|undefined;"council":object|undefined;"ranking":object|undefined;"navbar.title":object|undefined;"navbar.logo.alt":object|undefined;"navbar.links.home.title":object|undefined;"navbar.links.home.announcements":object|undefined;"navbar.links.home.about":object|undefined;"navbar.links.home.downloads":object|undefined;"navbar.links.home.faq":object|undefined;"navbar.links.rules.title":object|undefined;"navbar.links.rules.gamemode":object|undefined;"navbar.links.rules.wg":object|undefined;"navbar.links.rules.mwg":object|undefined;"navbar.links.rules.ws":object|undefined;"navbar.links.rules.as":object|undefined;"navbar.links.rules.rotating":object|undefined;"navbar.links.rules.megawg":object|undefined;"navbar.links.rules.micro":object|undefined;"navbar.links.rules.sf":object|undefined;"navbar.links.rules.general":object|undefined;"navbar.links.rules.coc":object|undefined;"navbar.links.help.title":object|undefined;"navbar.links.help.center":object|undefined;"navbar.links.help.docs":object|undefined;"navbar.links.account":object|undefined;"status.loading":object|undefined;"status.status":object|undefined;"status.online":object|undefined;"status.offline":object|undefined;"status.players":{"count"?:unknown;}|undefined;"status.version":{"version"?:unknown;}|undefined;"home.page":object|undefined;"home.title.first":object|undefined;"home.title.second":object|undefined;"home.subtitle.1":object|undefined;"home.subtitle.2":object|undefined;"home.subtitle.3":object|undefined;"home.join":object|undefined;"home.benefits.historic.title":object|undefined;"home.benefits.historic.description.1":object|undefined;"home.benefits.historic.description.2":object|undefined;"home.benefits.server.title":object|undefined;"home.benefits.server.description":object|undefined;"home.benefits.events.title":object|undefined;"home.benefits.events.description.1":object|undefined;"home.benefits.events.description.2":object|undefined;"home.prefix.Admin":object|undefined;"home.prefix.Dev":object|undefined;"home.prefix.Mod":object|undefined;"home.prefix.Sup":object|undefined;"home.prefix.Arch":object|undefined;"footer.imprint":object|undefined;"footer.privacy":object|undefined;"footer.coc":object|undefined;"footer.stats":object|undefined;"footer.gamemodes":object|undefined;"footer.announcements":object|undefined;"footer.join":object|undefined;}
|
type TranslationVariables = {"dashboard.page":object|undefined;"dashboard.title":{"name"?:unknown;}|undefined;"dashboard.rank":{"rank"?:unknown;}|undefined;"dashboard.permissions":object|undefined;"dashboard.buttons.logout":object|undefined;"dashboard.buttons.admin":object|undefined;"dashboard.schematic.upload":object|undefined;"dashboard.schematic.home":object|undefined;"dashboard.schematic.dir":object|undefined;"dashboard.schematic.head.type":object|undefined;"dashboard.schematic.head.name":object|undefined;"dashboard.schematic.head.owner":object|undefined;"dashboard.schematic.head.updated":object|undefined;"dashboard.schematic.head.replaceColor":object|undefined;"dashboard.schematic.head.allowReplay":object|undefined;"dashboard.schematic.info.path":{"path"?:unknown;}|undefined;"dashboard.schematic.info.replaceColor":object|undefined;"dashboard.schematic.info.allowReplay":object|undefined;"dashboard.schematic.info.type":{"type"?:unknown;}|undefined;"dashboard.schematic.info.updated":{"updated"?:unknown;}|undefined;"dashboard.schematic.info.item":{"item"?:unknown;}|undefined;"dashboard.schematic.info.members":{"members"?:unknown;}|undefined;"dashboard.schematic.info.btn.download":object|undefined;"dashboard.schematic.info.btn.close":object|undefined;"login.page":object|undefined;"login.title":object|undefined;"login.placeholder.username":object|undefined;"login.placeholder.token":object|undefined;"login.label.username":object|undefined;"login.label.token":object|undefined;"login.generateToken":object|undefined;"login.submit":object|undefined;"login.error":object|undefined;"page":object|undefined;"wg.title":object|undefined;"wg.description":object|undefined;"as.title":object|undefined;"as.description":object|undefined;"ws.title":object|undefined;"ws.description":object|undefined;"mwg.title":object|undefined;"mwg.description":object|undefined;"rules":object|undefined;"council":object|undefined;"ranking":object|undefined;"navbar.title":object|undefined;"navbar.logo.alt":object|undefined;"navbar.links.home.title":object|undefined;"navbar.links.home.announcements":object|undefined;"navbar.links.home.about":object|undefined;"navbar.links.home.downloads":object|undefined;"navbar.links.home.faq":object|undefined;"navbar.links.rules.title":object|undefined;"navbar.links.rules.gamemode":object|undefined;"navbar.links.rules.wg":object|undefined;"navbar.links.rules.mwg":object|undefined;"navbar.links.rules.ws":object|undefined;"navbar.links.rules.as":object|undefined;"navbar.links.rules.rotating":object|undefined;"navbar.links.rules.megawg":object|undefined;"navbar.links.rules.micro":object|undefined;"navbar.links.rules.sf":object|undefined;"navbar.links.rules.general":object|undefined;"navbar.links.rules.coc":object|undefined;"navbar.links.help.title":object|undefined;"navbar.links.help.center":object|undefined;"navbar.links.help.docs":object|undefined;"navbar.links.account":object|undefined;"status.loading":object|undefined;"status.status":object|undefined;"status.online":object|undefined;"status.offline":object|undefined;"status.players":{"count"?:unknown;}|undefined;"status.version":{"version"?:unknown;}|undefined;"home.page":object|undefined;"home.title.first":object|undefined;"home.title.second":object|undefined;"home.subtitle.1":object|undefined;"home.subtitle.2":object|undefined;"home.subtitle.3":object|undefined;"home.join":object|undefined;"home.benefits.historic.title":object|undefined;"home.benefits.historic.description.1":object|undefined;"home.benefits.historic.description.2":object|undefined;"home.benefits.server.title":object|undefined;"home.benefits.server.description":object|undefined;"home.benefits.events.title":object|undefined;"home.benefits.events.description.1":object|undefined;"home.benefits.events.description.2":object|undefined;"home.prefix.Admin":object|undefined;"home.prefix.Dev":object|undefined;"home.prefix.Mod":object|undefined;"home.prefix.Sup":object|undefined;"home.prefix.Arch":object|undefined;"footer.imprint":object|undefined;"footer.privacy":object|undefined;"footer.coc":object|undefined;"footer.stats":object|undefined;"footer.gamemodes":object|undefined;"footer.announcements":object|undefined;"footer.join":object|undefined;}
|
||||||
type Translation = keyof TranslationVariables
|
type Translation = keyof TranslationVariables
|
||||||
|
BIN
src/images/Screenshot_2023-08-30_at_21.43.56-1536x714.png
Normale Datei
BIN
src/images/Screenshot_2023-08-30_at_21.43.56-1536x714.png
Normale Datei
Binäre Datei nicht angezeigt.
Nachher Breite: | Höhe: | Größe: 272 KiB |
@ -1,9 +1,6 @@
|
|||||||
---
|
---
|
||||||
import {getCollection} from 'astro:content'
|
import {getCollection} from 'astro:content'
|
||||||
import NavbarLayout from "../layouts/NavbarLayout.astro";
|
|
||||||
import {astroI18n, createGetStaticPaths} from "astro-i18n";
|
import {astroI18n, createGetStaticPaths} from "astro-i18n";
|
||||||
import localBau from "../images/2023-10-08_20.43.43.png";
|
|
||||||
import {Image} from "astro:assets";
|
|
||||||
import PageLayout from "../layouts/PageLayout.astro";
|
import PageLayout from "../layouts/PageLayout.astro";
|
||||||
|
|
||||||
export const getStaticPaths = createGetStaticPaths(async () => {
|
export const getStaticPaths = createGetStaticPaths(async () => {
|
||||||
|
3
src/pages/ranked/[...gamemode].astro
Normale Datei
3
src/pages/ranked/[...gamemode].astro
Normale Datei
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
---
|
71
src/pages/rules/[...slug].astro
Normale Datei
71
src/pages/rules/[...slug].astro
Normale Datei
@ -0,0 +1,71 @@
|
|||||||
|
---
|
||||||
|
import {getCollection} from 'astro:content'
|
||||||
|
import {astroI18n, createGetStaticPaths} from "astro-i18n";
|
||||||
|
import PageLayout from "../layouts/PageLayout.astro";
|
||||||
|
|
||||||
|
export const getStaticPaths = createGetStaticPaths(async () => {
|
||||||
|
let posts = await getCollection("rules");
|
||||||
|
|
||||||
|
return posts.filter(value => value.id.split("/")[0] === astroI18n.locale).map((page) => ({
|
||||||
|
props: { page }, params: { slug: page.slug }
|
||||||
|
}) )
|
||||||
|
})
|
||||||
|
|
||||||
|
const { page } = Astro.props;
|
||||||
|
const { Content } = await page.render();
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
<PageLayout title={page.data.title}>
|
||||||
|
<article>
|
||||||
|
<Content />
|
||||||
|
</article>
|
||||||
|
</PageLayout>
|
||||||
|
|
||||||
|
<style is:global>
|
||||||
|
article {
|
||||||
|
p {
|
||||||
|
@apply my-4 leading-7;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
@apply text-4xl font-bold mt-4 text-center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
@apply text-3xl font-bold mt-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
@apply text-2xl font-bold mt-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
@apply text-xl font-bold mt-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
@apply text-blue-500 hover:text-blue-700;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol>li, ul>li {
|
||||||
|
@apply ml-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol {
|
||||||
|
@apply list-decimal;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
@apply list-disc;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
@apply dark:text-neutral-400 text-neutral-800;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.astro-code {
|
||||||
|
@apply w-fit p-4 rounded-md border-2 border-gray-600 my-4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -1,12 +1,12 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
import wg from "../images/WarGears.png"
|
import wg from "../../images/WarGears.png"
|
||||||
import mwg from "../images/MiniWarGears.png"
|
import mwg from "../../images/MiniWarGears.png"
|
||||||
import as from "../images/AirShips.png"
|
import as from "../../images/AirShips.png"
|
||||||
import ws from "../images/WarShips.png"
|
import ws from "../../images/WarShips.png"
|
||||||
import {t} from "astro-i18n";
|
import {t} from "astro-i18n";
|
||||||
import {getCollection} from "astro:content";
|
import {getCollection} from "astro:content";
|
||||||
import PageLayout from "../layouts/PageLayout.astro";
|
import PageLayout from "../../layouts/PageLayout.astro";
|
||||||
import {Image} from "astro:assets";
|
import {Image} from "astro:assets";
|
||||||
|
|
||||||
const imageMap = {
|
const imageMap = {
|
||||||
@ -28,9 +28,9 @@ const modes = await getCollection("modes", entry => entry.data.main)
|
|||||||
<h1 class="text-2xl font-bold">{t(value.data.translationKey + ".title")}</h1>
|
<h1 class="text-2xl font-bold">{t(value.data.translationKey + ".title")}</h1>
|
||||||
<div>{t(value.data.translationKey + ".description")}</div>
|
<div>{t(value.data.translationKey + ".description")}</div>
|
||||||
<div class="mt-2 flex flex-col">
|
<div class="mt-2 flex flex-col">
|
||||||
<a href="/" class="text-yellow-300 hover:underline w-fit">{t("rules")}</a>
|
<a href="/public" class="text-yellow-300 hover:underline w-fit">{t("rules")}</a>
|
||||||
<a href="/" class="text-yellow-300 hover:underline w-fit">{t("council")}</a>
|
<a href="/public" class="text-yellow-300 hover:underline w-fit">{t("council")}</a>
|
||||||
{value.data.ranked ? <a href="/" class="text-yellow-300 hover:underline w-fit">{t("ranking")}</a> : null}
|
{value.data.ranked ? <a href="/public" class="text-yellow-300 hover:underline w-fit">{t("ranking")}</a> : null}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>))}
|
</div>))}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren