Skip to content

Commit a69886a

Browse files
committed
Add Magic Arena and Magic Duell support
1 parent 0d72646 commit a69886a

16 files changed

Lines changed: 2284 additions & 9 deletions

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ coverage/
1515
!.env.example
1616
Temp/
1717
artifacts/
18+
.codex-run-logs/
1819
local-games/
1920
.vscode/
2021
.idea/
2122
*.local
23+
.local-games-sync.lock
2224
apps/server/src/game-engine/.generated/
2325
apps/host/src/games/.generated/
2426
apps/controller/src/controller-ui/games/.generated/
@@ -28,6 +30,9 @@ apps/host/public/minions-td/
2830
apps/controller/public/minions-td/
2931
apps/host/public/chaos-kommando/
3032
apps/controller/public/chaos-kommando/
33+
apps/controller/public/magic-arena/
34+
apps/host/public/magic-duell/
35+
apps/controller/public/magic-duell/
3136
npm-debug.log*
3237
yarn-debug.log*
3338
yarn-error.log*

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ The platform is moving toward optional multi-repo games. The host, controller, s
2323

2424
This is a playable local prototype, not a hosted production service. It is designed for devices on the same LAN.
2525

26-
Most included games are alpha versions. Arena Survivor, MinionsTD, Zeichnen & Erraten, and Schaetzorama are the current recommended games: they are already in beta shape and generally good to play locally. Rules, pacing, scoring, content, UI, and especially balancing are still expected to change. Playtesting notes, balance proposals, and small polish improvements are very welcome.
26+
Most included games are alpha versions. Magic Arena, Magic Duell, Arena Survivor, MinionsTD, Zeichnen & Erraten, and Schaetzorama are the current recommended games: they are already in advanced alpha or beta shape and generally good to play locally. Rules, pacing, scoring, content, UI, and especially balancing are still expected to change. Playtesting notes, balance proposals, and small polish improvements are very welcome.
2727

2828
Implemented platform features:
2929

@@ -37,6 +37,8 @@ Implemented platform features:
3737

3838
Recommended optional local game repos:
3939

40+
- Magic Arena (`local-games/magic-arena` when cloned locally) - recommended alpha
41+
- Magic Duell (`local-games/magic-duell` when cloned locally) - recommended alpha
4042
- Arena Survivor (`local-games/arena-survivor` when cloned locally) - beta, recommended
4143
- MinionsTD (`local-games/minions-td` when cloned locally) - beta, recommended
4244
- Zeichnen & Erraten (`local-games/zeichnen-und-erraten` when cloned locally) - beta, recommended
@@ -118,6 +120,8 @@ Open-Party-Lab/
118120
Clone optional games:
119121

120122
```bash
123+
git clone https://github.com/Hartwich/magic-arena.git local-games/magic-arena
124+
git clone https://github.com/Hartwich/magic-duell.git local-games/magic-duell
121125
git clone https://github.com/Hartwich/arena-survivor.git local-games/arena-survivor
122126
git clone https://github.com/Hartwich/minions-td.git local-games/minions-td
123127
git clone https://github.com/Hartwich/zeichnen-und-erraten.git local-games/zeichnen-und-erraten

apps/controller/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
name="viewport"
77
content="width=device-width, initial-scale=1.0, viewport-fit=cover"
88
/>
9+
<link rel="icon" href="data:," />
910
<title>Open Party Lab Controller</title>
1011
</head>
1112
<body>

apps/controller/src/controller-ui/layouts/ControllerLayoutRenderer.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import { DrawingGuessLayout } from "./DrawingGuessLayout.js";
1313
import { RacingControlsLayout } from "./RacingControlsLayout.js";
1414
import { SchaetzoramaLayout } from "./SchaetzoramaLayout.js";
1515
import { WordTilesLayout } from "./WordTilesLayout.js";
16+
import { SpellCastingLayout } from "./SpellCastingLayout.js";
17+
import { MagicArenaLayout } from "./MagicArenaLayout.js";
1618
import type { ControllerLayoutModel } from "./models.js";
1719

1820
interface ControllerLayoutRendererProps {
@@ -35,6 +37,8 @@ export function ControllerLayoutRenderer({ model }: ControllerLayoutRendererProp
3537
return <TowerDefenseLayout model={model} />;
3638
case "twin_stick":
3739
return <TwinStickLayout model={model} />;
40+
case "spell_casting":
41+
return <SpellCastingLayout model={model} />;
3842
case "shop":
3943
return <ShopLayout model={model} />;
4044
case "arena_survivor_modern_shop":
@@ -51,6 +55,8 @@ export function ControllerLayoutRenderer({ model }: ControllerLayoutRendererProp
5155
return <SchaetzoramaLayout model={model} />;
5256
case "word_tiles_board":
5357
return <WordTilesLayout model={model} />;
58+
case "magic_arena":
59+
return <MagicArenaLayout model={model} />;
5460
default:
5561
return null;
5662
}

0 commit comments

Comments
 (0)