import React from "react"; import { useRecoilState, useSetRecoilState } from "recoil"; import { gameCurrentState } from "../states/gameCurrentState"; import ReplayIcon from "./ReplayIcon"; import ExitIcon from "./ExitIcon"; import { scoreState } from "../states/scoreState"; import { Controls } from "../Controls"; import WinIcon from "./WinIcon"; import { competitionResultState } from "../states/competitionResultState"; import { gameDataState } from "../states/gameDataState"; import VTonIcon from "./VTonIcon"; import XPIcon from "./XPIcon"; import LoadingSpinner from "./LoadingSpinner"; import { Competition } from "../Competition"; import { competitionDataState } from "../states/competitionDataState"; import { Check } from "../Check"; import { adsShowingState } from "../states/adsShowingState"; import { adsCurrentPlaceState } from "../states/adsCurrentPlaceState"; export default function EndScreen() { const controls = Controls.getInstance(); const competition = Competition.getInstance(); const [gameCurrent] = useRecoilState(gameCurrentState); const [gameData] = useRecoilState(gameDataState); const [competitionResult] = useRecoilState(competitionResultState); const [score] = useRecoilState(scoreState); const [competitionData] = useRecoilState(competitionDataState); const setAdsShowing = useSetRecoilState(adsShowingState); const setAdsCurrentPlace = useSetRecoilState(adsCurrentPlaceState); const check = Check.getInstance(); const replay = () => { setAdsCurrentPlace("before-replay-game"); setAdsShowing(true); replayAfterAdsWatched(); }; const replayAfterAdsWatched = () => { let interval = setInterval(async () => { if (await check.isViewedAds()) { setAdsShowing(false); controls.replay(); clearInterval(interval); } }, 1000); return interval; }; const rematch = () => { window.location.href = `https://games.vit-rin.com/games/${gameData.slug}/pvp`; }; const exit = () => { window.location.href = `https://games.vit-rin.com/games/${gameData.slug}`; }; return ( <> {gameCurrent === "ended" && competitionResult && (
{competitionResult.result === "win" && (
)} {competitionResult.result !== "unknown" ? ( <>
You{" "} {competitionResult.result === "loss" ? "lose" : competitionResult.result} {competitionResult.result === "win" && "!"}
{score} {competitionResult.result === "win" ? ">" : competitionResult.result === "tie" ? "=" : "<"} {competition.getType() == "solo" && gameData.metadata .min_score_to_reward} {competition.getType() == "pvp" && competitionData.target_score}
{competitionResult.transaction && (
{competitionResult.transaction.data .wallet.data.slug === "v-ton" && } + { competitionResult .transaction.data.amount }
)} {competitionResult.rewards && (
+{competitionResult.rewards.xp}
)} ) : (
)} {competition.getType() == "solo" && ( )} {competition.getType() == "pvp" && ( )}
)} ); }