import React from "react"; import TeamBox from "./../Players/TeamBox"; import MatchBar from "../MatchBar/MatchBar"; import SeriesBox from "../MatchBar/SeriesBox"; import Observed from "./../Players/Observed"; import { CSGO, Team } from "csgogsi-socket"; import { Match } from "../../api/interfaces"; import RadarMaps from "./../Radar/RadarMaps"; import Trivia from "../Trivia/Trivia"; import SideBox from '../SideBoxes/SideBox'; import { GSI, actions } from "./../../App"; import MoneyBox from '../SideBoxes/Money'; import UtilityLevel from '../SideBoxes/UtilityLevel'; import Killfeed from "../Killfeed/Killfeed"; import MapSeries from "../MapSeries/MapSeries"; import Overview from "../Overview/Overview"; import Tournament from "../Tournament/Tournament"; import Pause from "../PauseTimeout/Pause"; import Timeout from "../PauseTimeout/Timeout"; import PlayerCamera from "../Camera/Camera"; interface Props { game: CSGO, match: Match | null } interface State { winner: Team | null, showWin: boolean, forceHide: boolean } export default class Layout extends React.Component { constructor(props: Props) { super(props); this.state = { winner: null, showWin: false, forceHide: false } } componentDidMount() { GSI.on('roundEnd', score => { this.setState({ winner: score.winner, showWin: true }, () => { setTimeout(() => { this.setState({ showWin: false }) }, 4000) }); }); actions.on("boxesState", (state: string) => { if (state === "show") { this.setState({ forceHide: false }); } else if (state === "hide") { this.setState({ forceHide: true }); } }); } getVeto = () => { const { game, match } = this.props; const { map } = game; if (!match) return null; const mapName = map.name.substring(map.name.lastIndexOf('/') + 1); const veto = match.vetos.find(veto => veto.mapName === mapName); if (!veto) return null; return veto; } render() { const { game, match } = this.props; const left = game.map.team_ct.orientation === "left" ? game.map.team_ct : game.map.team_t; const right = game.map.team_ct.orientation === "left" ? game.map.team_t : game.map.team_ct; const leftPlayers = game.players.filter(player => player.team.side === left.side); const rightPlayers = game.players.filter(player => player.team.side === right.side); const isFreezetime = (game.round && game.round.phase === "freezetime") || game.phase_countdowns.phase === "freezetime"; const { forceHide } = this.state; return (
Players alive
{leftPlayers.filter(player => player.state.health > 0).length}
VS
{rightPlayers.filter(player => player.state.health > 0).length}
player.state.equip_value).reduce((pre, now) => pre + now, 0)} money={leftPlayers.map(player => player.state.money).reduce((pre, now) => pre + now, 0)} show={isFreezetime && !forceHide} />
player.state.equip_value).reduce((pre, now) => pre + now, 0)} money={rightPlayers.map(player => player.state.money).reduce((pre, now) => pre + now, 0)} show={isFreezetime && !forceHide} />
); } }