@@ -58,7 +63,8 @@ export default async function CustomMinefieldPlayPage({
{minefield.name}
- Custom minefields are unranked and do not affect official stats or XP.
+ Custom wins award reduced XP (10% of standard payouts); field authors bank 5% of each
+ payout.
+ Failed runs show mines that touch the swept area. Turn off to reveal none of the
+ remaining charges.
+
+
+
+
{error &&
{error}
}
diff --git a/src/components/frontend/eod/CustomMinefieldArena.tsx b/src/components/frontend/eod/CustomMinefieldArena.tsx
index 65c2ad7..c711532 100644
--- a/src/components/frontend/eod/CustomMinefieldArena.tsx
+++ b/src/components/frontend/eod/CustomMinefieldArena.tsx
@@ -3,6 +3,7 @@
import { useCallback, useState } from "react";
import { CustomMinesweeperBoard, type CustomMinefieldData } from "./CustomMinesweeperBoard";
import { CustomMinefieldLeaderboard } from "./CustomMinefieldLeaderboard";
+import { ExposureRuleToggle } from "./ExposureRuleToggle";
import { useRealtimePresence } from "@/hooks/useRealtimePresence";
import { useSidebar } from "@/components/ui/sidebar";
import { useEffect } from "react";
@@ -10,9 +11,11 @@ import { useEffect } from "react";
export function CustomMinefieldArena({
minefield,
currentUserId,
+ isAuthor,
}: {
minefield: CustomMinefieldData;
currentUserId: number | string;
+ isAuthor: boolean;
}) {
const [refreshKey, setRefreshKey] = useState(0);
const [playing, setPlaying] = useState(false);
@@ -33,6 +36,9 @@ export function CustomMinefieldArena({
onGameRecorded={() => setRefreshKey((key) => key + 1)}
onPhaseChange={onPhaseChange}
/>
+ {isAuthor && (
+
+ )}
- Community minefields. Playing these does not affect your official stats or XP.
+ Community minefields. Wins award reduced XP (10% of standard payouts); field authors
+ bank 5% of each payout.