public static string OutfieldShiftTypeToString(OutfieldShiftType shift) { switch (shift) { case OutfieldShiftType.OutfieldIn: return("Outfield In"); default: return("None"); } }
private FieldingResult GetFlyoutResult(Random random, OutfieldShiftType outfieldShiftType) { var randomResult = random.Next(0, 100); if (randomResult < 8) { return(outfieldShiftType == OutfieldShiftType.None ? FieldingResult.FlyoutAllAdvance : FieldingResult.Double); } if (randomResult < 45) { if (outfieldShiftType == OutfieldShiftType.OutfieldIn) { randomResult = random.Next(0, 2); if (randomResult == 0) { return(FieldingResult.FlyoutSacrifice); } } return(FieldingResult.Flyout); } return(FieldingResult.FlyoutSacrifice); }
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); }