/// <summary> /// 二塁打か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsTwoBaseHit(BattingResultKind result) { return result >= BattingResultKind.RightDouble && result <= BattingResultKind.LeftDouble; }
/// <summary> /// なんらかの成功した打席か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsSuccess(BattingResultKind result) { // 安打か四死球か犠打であればtrue return IsHit(result) || IsFourBollOrDeadBoll(result) || IsSacrifice(result); }
/// <summary> /// 三塁打か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsThreeBaseHit(BattingResultKind result) { return result >= BattingResultKind.RightTriple && result <= BattingResultKind.LeftTriple; }
/// <summary> /// 犠打か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsSacrifice(BattingResultKind result) { return result == BattingResultKind.SacrificeBunt || result == BattingResultKind.SacrificeFly; }
/// <summary> /// 三振か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsStrikeOut(BattingResultKind result) { return result == BattingResultKind.StrikeOut; }
/// <summary> /// 失策か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsError(BattingResultKind result) { return result >= BattingResultKind.PitcherError && result <= BattingResultKind.LeftError; }
/// <summary> /// 外野ゴロか /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsOutFielderGround(BattingResultKind result) { return result == BattingResultKind.RightGround || result == BattingResultKind.CenterGround || result == BattingResultKind.LeftGround || result == BattingResultKind.RightGetTwo || result == BattingResultKind.CenterGetTwo || result == BattingResultKind.LeftGetTwo; }
/// <summary> /// 内野ゴロか /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsInFielderGround(BattingResultKind result) { return result == BattingResultKind.PitcherGround || result == BattingResultKind.CatcherGround || result == BattingResultKind.FirstGround || result == BattingResultKind.SecondGround || result == BattingResultKind.ThirdGround || result == BattingResultKind.ShortGround || result == BattingResultKind.PitcherGetTwo || result == BattingResultKind.CatcherGetTwo || result == BattingResultKind.FirstGetTwo || result == BattingResultKind.SecondGetTwo || result == BattingResultKind.ThirdGetTwo || result == BattingResultKind.ShortGetTwo; }
/// <summary> /// 内野安打か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsInFielderHit(BattingResultKind result) { return result >= BattingResultKind.PitcherHit && result <= BattingResultKind.ShortHit; }
/// <summary> /// 本塁打か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsHomeRun(BattingResultKind result) { return result >= BattingResultKind.RightHomerun && result <= BattingResultKind.LeftHomerun; }
/// <summary> /// 内野フライか /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsInFielderFly(BattingResultKind result) { return result == BattingResultKind.PitcherFly || result == BattingResultKind.CatcherFly || result == BattingResultKind.FirstFly || result == BattingResultKind.SecondFly || result == BattingResultKind.ThirdFly || result == BattingResultKind.ShortFly; }
/// <summary> /// 安打か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsHit(BattingResultKind result) { return result >= BattingResultKind.PitcherHit && result <= BattingResultKind.LeftHomerun; }
/// <summary> /// 併殺か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsGetTwo(BattingResultKind result) { return result == BattingResultKind.PitcherGetTwo || result == BattingResultKind.CatcherGetTwo || result == BattingResultKind.FirstGetTwo || result == BattingResultKind.SecondGetTwo || result == BattingResultKind.ThirdGetTwo || result == BattingResultKind.ShortGetTwo || result == BattingResultKind.RightGetTwo || result == BattingResultKind.CenterGetTwo || result == BattingResultKind.LeftGetTwo; }
/// <summary> /// 四死球か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsFourBollOrDeadBoll(BattingResultKind result) { return result == BattingResultKind.FourBoll || result == BattingResultKind.DeadBoll; }
/// <summary> /// 打撃結果を追加する /// </summary> /// <param name="result"></param> /// <param name="ribby"></param> public void AddBattingResult(BattingResultKind result, int ribby) { // 打撃結果の追加 BattingResults.Add(result); // 打数の加算 if (BattingResultKindHelper.IsBatCount(result)) { BatCount++; Player.BatCount++; } // 安打数の加算 if (BattingResultKindHelper.IsHit(result)) { HitCount++; Player.HitCount++; } // 二塁打数の加算 if (BattingResultKindHelper.IsTwoBaseHit(result)) { TwoBaseHitCount++; Player.TwoBaseHitCount++; } // 三塁打数の加算 if (BattingResultKindHelper.IsThreeBaseHit(result)) { ThreeBaseHitCount++; Player.ThreeBaseHitCount++; } // 本塁打の加算 if (BattingResultKindHelper.IsHomeRun(result)) { HomeRunCount++; Player.HomeRunCount++; } // 打点の加算(失策でなければ加算する) if (!BattingResultKindHelper.IsError(result) && ribby > 0) { Ribby += ribby; Player.Ribby += ribby; } // 四死球の加算 if (BattingResultKindHelper.IsFourBollOrDeadBoll(result)) { FourBollOrDeadBollCount++; Player.FourBollOrDeadBollCount++; } // 犠打の加算 if (BattingResultKindHelper.IsSacrifice(result)) { SacrificeCount++; Player.SacrificeCount++; } // 三振の加算 if (BattingResultKindHelper.IsStrikeOut(result)) { StrikeOutCount++; Player.StrikeOutCount++; } // EXPとスカウト評価の加算 Player.GameExp += EventConstants.AddGameExpByBat; if (BattingResultKindHelper.IsSuccess(result)) { // 成功した打席の場合はさらに経験値を加算 Player.GameExp += EventConstants.AddGameExpByBatSuccess; // スカウト評価の加算 Player.ScoutEvaluation += EventConstants.AddEvaluationByBatSuccess; Player.ScoutEvaluation += ribby * EventConstants.AddEvaluationByRibby; if (BattingResultKindHelper.IsHomeRun(result)) { // 本塁打 Player.ScoutEvaluation += EventConstants.AddEvaluationByHomeRun; } else if (BattingResultKindHelper.IsTwoBaseHit(result) || BattingResultKindHelper.IsThreeBaseHit(result)) { // 二塁打か三塁打 Player.ScoutEvaluation += EventConstants.AddEvaluationByLongHit; } } else { // スカウト評価の減算(マイナス値を加算) Player.ScoutEvaluation += EventConstants.AddEvaluationByFail; } }
/// <summary> /// 外野フライか /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsOutFielderFly(BattingResultKind result) { return result == BattingResultKind.RightFly || result == BattingResultKind.CenterFly || result == BattingResultKind.LeftFly; }
/// <summary> /// 投手結果に打席結果を追加 /// </summary> /// <param name="result">打撃結果</param> /// <param name="addRunScore">その打席で追加された得点</param> public void AddPitchingResult(BattingResultKind result, int addRunScore) { // 失点の加算(現在は自責点という概念なし) PitchingResult.RunsAllowed += addRunScore; Player.PitchingResult.RunsAllowed += addRunScore; // 打席の結果がない(盗塁死か捕逸後の憤死)であれば、失点のみ加算して終了 if (result == BattingResultKind.Invalid) { return; } // 被打数の加算(四死球も含む) if (BattingResultKindHelper.IsBatCount(result) || BattingResultKindHelper.IsFourBollOrDeadBoll(result)) { PitchingResult.BatCount++; Player.PitchingResult.BatCount++; } // 安打数の加算 if (BattingResultKindHelper.IsHit(result)) { PitchingResult.HitCount++; Player.PitchingResult.HitCount++; } // 本塁打の加算 if (BattingResultKindHelper.IsHomeRun(result)) { PitchingResult.HomeRunCount++; Player.PitchingResult.HomeRunCount++; } // 四死球の加算 if (BattingResultKindHelper.IsFourBollOrDeadBoll(result)) { PitchingResult.FourBollOrDeadBollCount++; Player.PitchingResult.FourBollOrDeadBollCount++; } // 三振の加算 if (result == BattingResultKind.StrikeOut) { PitchingResult.StrikeOutCount++; Player.PitchingResult.StrikeOutCount++; } // 防御率のプロパティ変更通知 OnPropertyChanged("Player.PitchingResult.RunsAllowedAverage"); // 失点によるスカウト評価の加算 Player.ScoutEvaluation += addRunScore * EventConstants.AddEvaluationByRunsAllowed; }
/// <summary> /// 打席のカウント対象か /// </summary> /// <param name="result"></param> /// <returns></returns> public static bool IsBatCount(BattingResultKind result) { return result >= BattingResultKind.PitcherHit; }