diff --git a/client/src/Backend/GameLogic/InitialGameStateDownloader.tsx b/client/src/Backend/GameLogic/InitialGameStateDownloader.tsx index 9e866d5..3e77ee9 100644 --- a/client/src/Backend/GameLogic/InitialGameStateDownloader.tsx +++ b/client/src/Backend/GameLogic/InitialGameStateDownloader.tsx @@ -1,7 +1,6 @@ import { Artifact, ArtifactId, - BlocklistMap, ClaimedCoords, EthAddress, LocationId, @@ -223,7 +222,10 @@ const tips = [ 'Beware of pirates! To capture a planet with pirates, simply send an attack large enough to overcome its current energy.', <> Navigate the Dark Forest with allies (and enemies) - join the{' '} - Dark Forest Discord! + + Dark Forest Discord + + ! , 'There are many different artifact types, each with unique properties... try activating one on a planet!', 'The top 63 players get NFT rewards at the end of each v0.6 round!', @@ -241,7 +243,11 @@ const tips = [ 'You can import and export maps! Be careful importing maps from others, they may contain fabricated map data.', <> If mining the universe is slow on your computer, you can try the Remote Miner plugin. Find that - and other plugins on plugins.zkga.me. + and other plugins on{' '} + + plugins.zkga.me + + . , "A planet can only have 6 artifacts on it at any given time. Sometimes more if you get lucky. It's the blockchain, after all.", 'A foundry must be prospected before you can attempt to find an artifact, but make sure to click "Find" before 256 blocks or it will be lost forever.', @@ -254,11 +260,17 @@ const tips = [ 'Dark Forest exists on the blockchain, so you can play with an entirely different client if you want.', <> Writing plugins? Check out some documentation{' '} - + here {' '} and{' '} - + here . diff --git a/client/src/Frontend/Components/CoreUI.tsx b/client/src/Frontend/Components/CoreUI.tsx index 51ceed3..bd6ef01 100644 --- a/client/src/Frontend/Components/CoreUI.tsx +++ b/client/src/Frontend/Components/CoreUI.tsx @@ -182,14 +182,14 @@ export function Link( props: { to?: string; color?: string; - openInThisTab?: boolean; + newTab?: boolean; children: React.ReactNode; } & React.HtmlHTMLAttributes ) { - const { to, color, openInThisTab, children } = props; + const { to: href, newTab, children } = props; return ( - + {children} ); diff --git a/client/src/Frontend/Components/Labels/Labels.tsx b/client/src/Frontend/Components/Labels/Labels.tsx index 8a235a9..e039b22 100644 --- a/client/src/Frontend/Components/Labels/Labels.tsx +++ b/client/src/Frontend/Components/Labels/Labels.tsx @@ -68,7 +68,7 @@ export function AccountLabel({ */ export function TwitterLink({ twitter, color }: { twitter: string; color?: string }) { return ( - + @{twitter} ); diff --git a/client/src/Frontend/Components/Text.tsx b/client/src/Frontend/Components/Text.tsx index da9657b..45ad1d3 100644 --- a/client/src/Frontend/Components/Text.tsx +++ b/client/src/Frontend/Components/Text.tsx @@ -10,12 +10,12 @@ import { } from '@darkforest_eth/types'; import React, { useEffect, useState } from 'react'; import styled from 'styled-components'; +import { getNetwork } from '../../Backend/Network/Blockchain'; import Viewport from '../Game/Viewport'; import dfstyles from '../Styles/dfstyles'; import { useUIManager } from '../Utils/AppHooks'; import UIEmitter, { UIEmitterEvent } from '../Utils/UIEmitter'; import { Link } from './CoreUI'; -import { getNetwork } from '../../Backend/Network/Blockchain'; export function BlinkCursor() { const [visible, setVisible] = useState(false); @@ -86,7 +86,7 @@ export function TxLink({ tx }: { tx: Transaction }) { return ( <> - window.open(`${getNetwork().blockExplorer}/${tx.hash}`)}> + {tx.hash.substring(0, 7)} @@ -128,7 +128,11 @@ export function ArtifactNameLink({ id }: { id: ArtifactId }) { UIEmitter.getInstance().emit(UIEmitterEvent.ShowArtifact, artifact); }; - return {artifactName(artifact)}; + return ( + + {artifactName(artifact)} + + ); } export function PlanetNameLink({ planet }: { planet: Planet }) { @@ -140,7 +144,11 @@ export function CenterChunkLink({ chunk, children }: { chunk: Chunk; children: R } export function FAQ04Link({ children }: { children: React.ReactNode }) { - return {children} ; + return ( + + {children}{' '} + + ); } export const LongDash = () => ( diff --git a/client/src/Frontend/Pages/UnsubscribePage.tsx b/client/src/Frontend/Pages/UnsubscribePage.tsx index f64f5ca..59c67ce 100644 --- a/client/src/Frontend/Pages/UnsubscribePage.tsx +++ b/client/src/Frontend/Pages/UnsubscribePage.tsx @@ -189,18 +189,6 @@ export default function UnsubscribePage() { - - {/* -
- - Tutorial - - - About - - -
- */} ); } diff --git a/client/src/Frontend/Panes/Game/HatPane.tsx b/client/src/Frontend/Panes/Game/HatPane.tsx index 3b924f0..b247f06 100644 --- a/client/src/Frontend/Panes/Game/HatPane.tsx +++ b/client/src/Frontend/Panes/Game/HatPane.tsx @@ -77,7 +77,9 @@ export function HatPane({ - Get More xDai + + Get More xDai + - Welcome to the help pane! Hopefully you can find answers to your questions here.
Overview Dark Forest is a vast universe, obfuscated by zero-knowledge cryptography. @@ -44,27 +42,41 @@ export function HelpPane({ visible, onClose }: { visible: boolean; onClose: () = buffing their stats.

For more details, check out the{' '} - official Dark Forest Wiki + + official Dark Forest Wiki +
If you want to learn more of the basics: - + Celestial Bodies
- + Planet Stats
- + Space Types
- + Artifacts
- + Spaceships
@@ -73,19 +85,31 @@ export function HelpPane({ visible, onClose }: { visible: boolean; onClose: () = If you want to improve your skills, try reading ClassicJ's Beginner's Guide! - + Part 1: Energy
- + Part 2: Defense
- + Part 3: Range
- + Part 4: Speed
diff --git a/client/src/Frontend/Panes/Game/PluginLibraryPane.tsx b/client/src/Frontend/Panes/Game/PluginLibraryPane.tsx index f69767c..be72d4f 100644 --- a/client/src/Frontend/Panes/Game/PluginLibraryPane.tsx +++ b/client/src/Frontend/Panes/Game/PluginLibraryPane.tsx @@ -28,7 +28,11 @@ function HelpContent() {

Dark Forest maintains a repository to which community members can submit their own plugins. - You can find it here. + You can find it{' '} + + here + + .

Try editing one of the default plugins to see how it works!

diff --git a/client/src/Frontend/Panes/Game/SurveyPane.tsx b/client/src/Frontend/Panes/Game/SurveyPane.tsx index 785c008..7f85998 100644 --- a/client/src/Frontend/Panes/Game/SurveyPane.tsx +++ b/client/src/Frontend/Panes/Game/SurveyPane.tsx @@ -5,9 +5,8 @@ import { getRank, Rank } from '../../../Backend/Utils/Rank'; import { Btn } from '../../Components/Btn'; import { Link } from '../../Components/CoreUI'; import { Row } from '../../Components/Row'; -import { Bronze, Gold, Green, Red, Silver, White } from '../../Components/Text'; -import { useArenaLeaderboard, useEloLeaderboard, useUIManager } from '../../Utils/AppHooks'; -import { bronzeTime, goldTime, silverTime } from '../../Utils/constants'; +import { Bronze, Gold, Green, Silver, White } from '../../Components/Text'; +import { useArenaLeaderboard, useUIManager } from '../../Utils/AppHooks'; import { formatDuration } from '../../Utils/TimeUtils'; import { ModalPane } from '../../Views/Game/ModalPane'; @@ -70,11 +69,7 @@ function SurveyPaneContent({ numSpawnPlanets }: { numSpawnPlanets: number }) { arenaStats = (
- + Race again @@ -101,8 +96,7 @@ function SurveyPaneContent({ numSpawnPlanets }: { numSpawnPlanets: number }) { {arenaStats}
Help us improve Grand Prix by{' '} - - {' '} + giving feedback on this survey {' 😊'} @@ -123,7 +117,10 @@ function SurveyPaneContent({ numSpawnPlanets }: { numSpawnPlanets: number }) { {/* {arenaStats} */}

Help us improve Dark Forest Arena by

- giving feedback on this survey 😊 + + {' '} + giving feedback on this survey 😊 +
{' '}
); diff --git a/client/src/Frontend/Panes/Game/TutorialPane.tsx b/client/src/Frontend/Panes/Game/TutorialPane.tsx index 05589ae..3dff786 100644 --- a/client/src/Frontend/Panes/Game/TutorialPane.tsx +++ b/client/src/Frontend/Panes/Game/TutorialPane.tsx @@ -7,11 +7,10 @@ import TutorialManager, { import { Btn } from '../../Components/Btn'; import { Link } from '../../Components/CoreUI'; import { Icon, IconType } from '../../Components/Icons'; -import { Bronze, Gold, Green, Red, Silver, White } from '../../Components/Text'; -import { TextPreview } from '../../Components/TextPreview'; +import { Gold, Green, Red, White } from '../../Components/Text'; import { useUIManager } from '../../Utils/AppHooks'; -import { tutorialFoundryLocation } from '../../Utils/constants'; import { useBooleanSetting } from '../../Utils/SettingsHooks'; +import { tutorialFoundryLocation } from '../../Utils/constants'; import { StyledTutorialPane } from './StyledTutorialPane'; function TutorialPaneContent({ tutorialState }: { tutorialState: TutorialState }) { @@ -286,11 +285,17 @@ function TutorialPaneContent({ tutorialState }: { tutorialState: TutorialState } Congratulations on completing your first round of Dark Forest Arena!

For in-depth strategy guide,{' '} - + click here . For video tutorials,{' '} - + click here . More information will pop up in the upper-right as you discover more about diff --git a/client/src/Frontend/Panes/Lobby/PlanetListPane.tsx b/client/src/Frontend/Panes/Lobby/PlanetListPane.tsx index 12e7d57..2fcf933 100644 --- a/client/src/Frontend/Panes/Lobby/PlanetListPane.tsx +++ b/client/src/Frontend/Panes/Lobby/PlanetListPane.tsx @@ -1,23 +1,15 @@ -import _, { chunk } from 'lodash'; import React, { useEffect, useMemo, useState } from 'react'; import styled from 'styled-components'; import { - CreatedPlanet, ArenaCreationManager, + CreatedPlanet, } from '../../../Backend/GameLogic/ArenaCreationManager'; +import { getNetwork } from '../../../Backend/Network/Blockchain'; import { Link, Spacer } from '../../Components/CoreUI'; import { Row } from '../../Components/Row'; import { Sub } from '../../Components/Text'; -import { - CloseButton, - CloseButtonStyle, - LobbiesPaneProps, - LobbyPlanet, - mirrorX, - mirrorY, -} from './LobbiesUtils'; -import { InvalidConfigError, LobbyConfigAction, LobbyConfigState, toInitializers } from './Reducer'; -import { getNetwork } from '../../../Backend/Network/Blockchain'; +import { CloseButton, CloseButtonStyle, LobbiesPaneProps, LobbyPlanet } from './LobbiesUtils'; +import { LobbyConfigAction, LobbyConfigState } from './Reducer'; const PLANET_TYPE_NAMES = ['Planet', 'Asteroid Field', 'Foundry', 'Spacetime Rip', 'Quasar']; export function PlanetListPane({ @@ -193,6 +185,7 @@ export function PlanetListPane({ {planet.createTx && ( @@ -201,6 +194,7 @@ export function PlanetListPane({ )} {planet.revealTx && ( diff --git a/client/src/Frontend/Views/Game/ArtifactLink.tsx b/client/src/Frontend/Views/Game/ArtifactLink.tsx index 3e9ac0f..ce64c5c 100644 --- a/client/src/Frontend/Views/Game/ArtifactLink.tsx +++ b/client/src/Frontend/Views/Game/ArtifactLink.tsx @@ -40,6 +40,7 @@ export function ArtifactLink({ return ( { diff --git a/client/src/Frontend/Views/Game/PlanetLink.tsx b/client/src/Frontend/Views/Game/PlanetLink.tsx index 56929d4..4edb3b1 100644 --- a/client/src/Frontend/Views/Game/PlanetLink.tsx +++ b/client/src/Frontend/Views/Game/PlanetLink.tsx @@ -12,6 +12,7 @@ export function PlanetLink({ planet, children }: { planet: Planet; children: Rea return ( { if (isLocatable(planet)) { diff --git a/client/src/Frontend/Views/Leaderboards/ArenaLeaderboard.tsx b/client/src/Frontend/Views/Leaderboards/ArenaLeaderboard.tsx index 91e0c22..13da269 100644 --- a/client/src/Frontend/Views/Leaderboards/ArenaLeaderboard.tsx +++ b/client/src/Frontend/Views/Leaderboards/ArenaLeaderboard.tsx @@ -1,21 +1,19 @@ -import { Leaderboard } from '@darkforest_eth/types'; +import { address } from '@darkforest_eth/serde'; +import { GraphConfigPlayer, Leaderboard } from '@darkforest_eth/types'; import React, { useEffect, useState } from 'react'; import { Link } from 'react-router-dom'; import styled from 'styled-components'; -import { GraphConfigPlayer } from '@darkforest_eth/types'; -import { getRank, Rank } from '../../../Backend/Utils/Rank'; +import { Rank, getRank } from '../../../Backend/Utils/Rank'; import { Gnosis, Star, Twitter } from '../../Components/Icons'; import { Red, Subber } from '../../Components/Text'; -import { TextPreview } from '../../Components/TextPreview'; import dfstyles from '../../Styles/dfstyles'; import { useArenaLeaderboard, useEloLeaderboard, useTwitters } from '../../Utils/AppHooks'; -import { roundEndTimestamp, roundStartTimestamp } from '../../Utils/constants'; import { formatDuration } from '../../Utils/TimeUtils'; +import { roundEndTimestamp, roundStartTimestamp } from '../../Utils/constants'; import { GenericErrorBoundary } from '../GenericErrorBoundary'; +import { scoreToTime, truncateAddress } from '../Portal/PortalUtils'; import { SortableTable } from '../SortableTable'; import { Table } from '../Table'; -import { scoreToTime, truncateAddress } from '../Portal/PortalUtils'; -import { address } from '@darkforest_eth/serde'; const errorMessage = 'Error Loading Leaderboard'; @@ -91,7 +89,6 @@ export function compPlayerToEntry( {playerTwitter ? ( `@${playerTwitter}` diff --git a/client/src/Frontend/Views/Portal/Components/MapGridDetail.tsx b/client/src/Frontend/Views/Portal/Components/MapGridDetail.tsx index 0b9c115..59c89d4 100644 --- a/client/src/Frontend/Views/Portal/Components/MapGridDetail.tsx +++ b/client/src/Frontend/Views/Portal/Components/MapGridDetail.tsx @@ -1,17 +1,16 @@ -import React, { useState, useMemo, useEffect } from 'react'; +import { getConfigName } from '@darkforest_eth/procedural'; import { EthAddress } from '@darkforest_eth/types'; -import { generateMinimapConfig, MinimapConfig } from '../../../Panes/Lobby/MinimapUtils'; +import dfstyles from '@darkforest_eth/ui/dist/styles'; import { debounce } from 'lodash'; -import styled from 'styled-components'; +import React, { useEffect, useMemo, useState } from 'react'; import { Link, useHistory } from 'react-router-dom'; +import styled from 'styled-components'; +import { Spacer } from '../../../Components/CoreUI'; import { LoadingSpinner } from '../../../Components/LoadingSpinner'; import { Minimap } from '../../../Components/Minimap'; -import { getConfigName } from '@darkforest_eth/procedural'; +import { MinimapConfig, generateMinimapConfig } from '../../../Panes/Lobby/MinimapUtils'; +import { useConfigFromHash, useTwitters } from '../../../Utils/AppHooks'; import { truncateAddress } from '../PortalUtils'; -import { Spacer } from '../../../Components/CoreUI'; -import { useConfigFromHash } from '../../../Utils/AppHooks'; -import dfstyles from '@darkforest_eth/ui/dist/styles'; -import { useTwitters } from '../../../Utils/AppHooks'; export const MapGridDetail: React.FC<{ configHash: string; @@ -69,11 +68,7 @@ export const MapGridDetail: React.FC<{ {nGames} game{nGames > 1 && 's'} )} - + )} diff --git a/client/src/Frontend/Views/Portal/Components/PortalHistoryRoundCard.tsx b/client/src/Frontend/Views/Portal/Components/PortalHistoryRoundCard.tsx index 3c79b63..64503e4 100644 --- a/client/src/Frontend/Views/Portal/Components/PortalHistoryRoundCard.tsx +++ b/client/src/Frontend/Views/Portal/Components/PortalHistoryRoundCard.tsx @@ -2,12 +2,12 @@ import { getConfigName } from '@darkforest_eth/procedural'; import { GrandPrixHistory } from '@darkforest_eth/types'; import { debounce } from 'lodash'; import React, { useEffect, useMemo, useState } from 'react'; -import { Link, useHistory } from 'react-router-dom'; +import { Link } from 'react-router-dom'; import styled from 'styled-components'; import { LoadingSpinner } from '../../../Components/LoadingSpinner'; import { Minimap } from '../../../Components/Minimap'; import { LobbyButton } from '../../../Pages/Lobby/LobbyMapEditor'; -import { generateMinimapConfig, MinimapConfig } from '../../../Panes/Lobby/MinimapUtils'; +import { MinimapConfig, generateMinimapConfig } from '../../../Panes/Lobby/MinimapUtils'; import { useConfigFromHash } from '../../../Utils/AppHooks'; import { formatDuration } from '../../../Utils/TimeUtils'; import { theme } from '../styleUtils'; @@ -87,11 +87,7 @@ export const PortalHistoryRoundCard: React.FC<{ round: GrandPrixHistory; index: Badges {round.badges.length} - + Play diff --git a/client/src/Frontend/Views/Portal/FindMatch.tsx b/client/src/Frontend/Views/Portal/FindMatch.tsx index 35e3279..0a152e5 100644 --- a/client/src/Frontend/Views/Portal/FindMatch.tsx +++ b/client/src/Frontend/Views/Portal/FindMatch.tsx @@ -1,18 +1,17 @@ -import { EthAddress, LiveMatch, ExtendedMatchEntry, CleanMatchEntry } from '@darkforest_eth/types'; +import { getConfigName } from '@darkforest_eth/procedural'; +import { CleanMatchEntry, EthAddress, LiveMatch } from '@darkforest_eth/types'; +import _ from 'lodash'; import React, { CSSProperties } from 'react'; import { Link, useHistory } from 'react-router-dom'; import styled from 'styled-components'; +import Button from '../../Components/Button'; +import { Row } from '../../Components/Row'; import { Subber } from '../../Components/Text'; import dfstyles from '../../Styles/dfstyles'; import { useTwitters } from '../../Utils/AppHooks'; import { formatStartTime } from '../../Utils/TimeUtils'; -import { compPlayerToEntry } from '../Leaderboards/ArenaLeaderboard'; import { GenericErrorBoundary } from '../GenericErrorBoundary'; -import { getConfigName } from '@darkforest_eth/procedural'; -import { Btn } from '../../Components/Btn'; -import { Row } from '../../Components/Row'; -import _ from 'lodash'; -import Button from '../../Components/Button'; +import { compPlayerToEntry } from '../Leaderboards/ArenaLeaderboard'; export interface FindMatchProps { game: LiveMatch | undefined; @@ -70,7 +69,7 @@ export const MatchComponent: React.FC = ({ )}
Creation Time: {formatStartTime(startTime)}
- + {totalSpots == spotsTaken ? ( View ) : ( diff --git a/client/src/Frontend/Views/Portal/GPFeed.tsx b/client/src/Frontend/Views/Portal/GPFeed.tsx index 97be2d7..5ab4353 100644 --- a/client/src/Frontend/Views/Portal/GPFeed.tsx +++ b/client/src/Frontend/Views/Portal/GPFeed.tsx @@ -3,16 +3,14 @@ import { CleanMatchEntry, EthAddress } from '@darkforest_eth/types'; import dfstyles from '@darkforest_eth/ui/dist/styles'; import React from 'react'; import { Link } from 'react-router-dom'; -import { Btn } from '../../Components/Btn'; +import styled from 'styled-components'; import { useLiveMatches, useSeasonData, useTwitters } from '../../Utils/AppHooks'; -import { HOUR_IN_SECONDS, DEV_CONFIG_HASH_1, DUMMY } from '../../Utils/constants'; import { formatStartTime } from '../../Utils/TimeUtils'; +import { DUMMY } from '../../Utils/constants'; import { compPlayerToEntry } from '../Leaderboards/ArenaLeaderboard'; import { PaddedRow } from './Components/PaddedRow'; -import styled from 'styled-components'; import { scoreToTime, truncateAddress } from './PortalUtils'; import { theme } from './styleUtils'; -import useSWR from 'swr'; export interface MapDetailsProps { configHash: string | undefined; @@ -82,7 +80,7 @@ export const GPFeed: React.FC = ({ configHash }) => { finished in{' '} {scoreToTime(entry.duration)} - + @@ -98,7 +96,7 @@ export const GPFeed: React.FC = ({ configHash }) => { )}{' '} started to race - + diff --git a/client/src/Frontend/Views/Portal/MapInfoView.tsx b/client/src/Frontend/Views/Portal/MapInfoView.tsx index ea65f21..c2aded0 100644 --- a/client/src/Frontend/Views/Portal/MapInfoView.tsx +++ b/client/src/Frontend/Views/Portal/MapInfoView.tsx @@ -1,20 +1,20 @@ import { getConfigName } from '@darkforest_eth/procedural'; import { EthAddress } from '@darkforest_eth/types'; import _ from 'lodash'; -import React, { useEffect, useState, useMemo } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import { Link, RouteComponentProps } from 'react-router-dom'; import styled from 'styled-components'; import { MythicLabelText } from '../../Components/Labels/MythicLabel'; import { LoadingSpinner } from '../../Components/LoadingSpinner'; import { Minimap } from '../../Components/Minimap'; import { TextPreview } from '../../Components/TextPreview'; -import { generateMinimapConfig, MinimapConfig } from '../../Panes/Lobby/MinimapUtils'; +import { MinimapConfig, generateMinimapConfig } from '../../Panes/Lobby/MinimapUtils'; import { LobbyInitializers } from '../../Panes/Lobby/Reducer'; import { useConfigFromHash } from '../../Utils/AppHooks'; import { competitiveConfig } from '../../Utils/constants'; -import { MapDetails } from './MapDetails'; import { LobbyButton } from '../../Pages/Lobby/LobbyMapEditor'; +import { MapDetails } from './MapDetails'; const NONE = 'No map found'; function MapOverview({ @@ -80,14 +80,10 @@ function MapOverview({ /> )}
- + Play - + Remix Map
diff --git a/client/src/Frontend/Views/Portal/MapOverview.tsx b/client/src/Frontend/Views/Portal/MapOverview.tsx index 872d145..8f79b3f 100644 --- a/client/src/Frontend/Views/Portal/MapOverview.tsx +++ b/client/src/Frontend/Views/Portal/MapOverview.tsx @@ -1,16 +1,15 @@ +import { getConfigName } from '@darkforest_eth/procedural'; +import { EthAddress, GrandPrixMetadata } from '@darkforest_eth/types'; +import { debounce } from 'lodash'; import React, { useEffect, useMemo, useState } from 'react'; +import { Link } from 'react-router-dom'; import styled from 'styled-components'; -import { formatDuration } from '../../Utils/TimeUtils'; import { LoadingSpinner } from '../../Components/LoadingSpinner'; import { Minimap } from '../../Components/Minimap'; -import { generateMinimapConfig, MinimapConfig } from '../../Panes/Lobby/MinimapUtils'; -import { Link } from 'react-router-dom'; -import { debounce } from 'lodash'; -import { LobbyInitializers } from '../../Panes/Lobby/Reducer'; -import { EthAddress, GrandPrixMetadata, RegistryResponse } from '@darkforest_eth/types'; -import { getConfigName } from '@darkforest_eth/procedural'; -import { PortalButton } from '../../Styles/dfstyles'; import { LobbyButton } from '../../Pages/Lobby/LobbyMapEditor'; +import { MinimapConfig, generateMinimapConfig } from '../../Panes/Lobby/MinimapUtils'; +import { LobbyInitializers } from '../../Panes/Lobby/Reducer'; +import { formatDuration } from '../../Utils/TimeUtils'; import { theme } from './styleUtils'; type RoundStatus = 'not started' | 'started' | 'ended'; @@ -116,7 +115,7 @@ export const MapOverview: React.FC<{ {mapName ?? 'Grand Prix Round'} - + Play round diff --git a/client/src/Frontend/Views/Portal/PortalHelpCenter.tsx b/client/src/Frontend/Views/Portal/PortalHelpCenter.tsx index ce3b029..b391d28 100644 --- a/client/src/Frontend/Views/Portal/PortalHelpCenter.tsx +++ b/client/src/Frontend/Views/Portal/PortalHelpCenter.tsx @@ -1,20 +1,20 @@ +import { IconType } from '@darkforest_eth/ui'; import React, { useEffect, useState } from 'react'; -import styled from 'styled-components'; import ReactMarkdown from 'react-markdown'; -import { IconType } from '@darkforest_eth/ui'; +import styled from 'styled-components'; +import { Icon } from '../../Components/Icons'; import { useDisableScroll } from '../../Utils/AppHooks'; +import { CloseButton } from './Account'; import { PortalModal } from './Components/PortalModal'; import { theme } from './styleUtils'; -import { CloseButton } from './Account'; -import { Icon } from '../../Components/Icons'; const HelpContent = ` Welcome to Dark Forest Arena Grand Prix! -Grand Prix: Seasons is a formal competition based on the Dark Forest speedruns we introduced in June. During a season, players compete to get the fastest cumulative time across a new race every week. +Grand Prix is a Dark Forest solo race competition. Players compete to get the fastest time each week. -Here is an overview of the Grand Prix Portal, which you can use to compete and view data about competitions. +# Portal Overview ## Home Page Here you can jump into a new round, watch other live players, and view your ranking on the current round and the entire season. @@ -51,7 +51,7 @@ export const PortalHelpCenter = () => { - Help Center + Portal Help