public static string InfieldShiftTypeToString(InfieldShiftType shift) { switch (shift) { case InfieldShiftType.InfieldIn: return("Infield In"); default: return("None"); } }
private FieldingResult GetGroundoutResult(Random random, InfieldShiftType infieldShiftType) { var randomResult = random.Next(0, 100); if (randomResult < 15) { return(infieldShiftType == InfieldShiftType.None ? FieldingResult.GroundoutAllAdvance : FieldingResult.Single); } if (randomResult < 22) { return(FieldingResult.GroundoutFieldersChoice); } if (randomResult < 42) { return(infieldShiftType == InfieldShiftType.None ? FieldingResult.GroundoutFieldersChoiceForce : FieldingResult.Groundout); } if (randomResult < 65) { return(FieldingResult.GroundoutDoublePlay); } return(FieldingResult.Groundout); }
private FieldingResult GetLineoutResult(Random random, PositionType positionType, InfieldShiftType infieldShiftType) { if (infieldShiftType == InfieldShiftType.InfieldIn && positionType.IsOutFieldPosition() == false) { return(FieldingResult.Lineout); } var randomResult = random.Next(0, 100); if (randomResult < 2) { return(FieldingResult.LineoutMaxOuts); } if (randomResult < 20) { return(FieldingResult.LineoutDoublePlay); } return(FieldingResult.Lineout); }
public FieldingResult GetFieldingResult(FieldingStint fielder, PositionType positionType, InfieldShiftType infieldShiftType, OutfieldShiftType outfieldShiftType) { // update these for shifts // add metrics for range and hits var random = new Random(); var randomResult = random.Next(0, 1001); if (fielder == null) { fielder = FieldingStintHelperFunctions.CreateFieldingStintForPlayerOutOfPosition(positionType); } var successThreshold = ((double)fielder.Errors / (fielder.Putouts + fielder.Errors + fielder.Assists)) * 1000; if (randomResult <= successThreshold) { randomResult = random.Next(0, 100); if (randomResult < 90) { return(FieldingResult.OneBaseError); } else if (randomResult < 98) { return(FieldingResult.TwoBaseError); } return(FieldingResult.ThreeBaseError); } randomResult = random.Next(0, 100); if (randomResult < 65) { if (positionType == PositionType.CenterFielder || positionType == PositionType.LeftFielder || positionType == PositionType.RightFielder || positionType == PositionType.OutFielder) { return(GetFlyoutResult(random, outfieldShiftType)); } return(GetGroundoutResult(random, infieldShiftType)); } if (randomResult < 80) { if (positionType == PositionType.CenterFielder || positionType == PositionType.LeftFielder || positionType == PositionType.RightFielder || positionType == PositionType.OutFielder) { return(GetFlyoutResult(random, outfieldShiftType)); } if (infieldShiftType == InfieldShiftType.InfieldIn) { randomResult = random.Next(0, 5); if (randomResult < 2) { return(FieldingResult.Single); } } return(FieldingResult.Popout); } if (randomResult < 95) { return(GetLineoutResult(random, positionType, infieldShiftType)); } return(FieldingResult.Foulout); }