import React, { useState } from "react"; const FieldingRunValueCalculator = () => { const [playerData, setPlayerData] = useState({ name: "", team: "", position: "OF", // Default to outfield zr: "", assists: "", errors: "", frm: "", pb: "", wp: "", cs: "", sb: "", eff: "", leagueAvgEff: "1.000", // Default to neutral efficiency }); const handleChange = (e) => { setPlayerData({ ...playerData, [e.target.name]: e.target.value, }); }; // Position Adjustment Factor (OF = 0.9, IF = 0.75) const posFactor = playerData.position === "OF" ? 0.9 : 0.75; // Calculate Fielding Run Value (FRV) const frv = (parseFloat(playerData.zr) || 0) * posFactor + (parseFloat(playerData.assists) || 0) * 0.5 - (parseFloat(playerData.errors) || 0) * 0.5 + (parseFloat(playerData.frm) || 0) * 0.125 - (parseFloat(playerData.pb) || 0) * 0.25 - (parseFloat(playerData.wp) || 0) * 0.1 + (parseFloat(playerData.cs) || 0) * 0.65 - (parseFloat(playerData.sb) || 0) * 0.65 + ((parseFloat(playerData.eff) || 1.0) - (parseFloat(playerData.leagueAvgEff) || 1.0)) * 10; return (

OOTP Fielding Run Value Calculator

Calculated Fielding Run Value (FRV)

{frv.toFixed(2)} Runs

); }; export default FieldingRunValueCalculator;