/// <summary> /// If runner reaches to home plate. /// </summary> /// <param name="batter"></param> public static void RunnerToHomePlate(Batter batter) { InGameManager.runnerInBases[3] = null; //Add score by 1; if (InGameManager.currentAttack == InGameManager.game.home) { InGameManager.game.homeScoreBoard.AddRun(InGameManager.currentInning); } else if (InGameManager.currentAttack == InGameManager.game.away) { InGameManager.game.awayScoreBoard.AddRun(InGameManager.currentInning); } else { throw new System.NullReferenceException("Error: There is no appropriate team matching. Check currentAttack and Game instance again."); } //And other statistic stuffs. bool isEarnedRun = true; if (isEarnedRun) { //Earned Run InGameManager.currentPitcher.stats.SetStat(1, PlayerStatistics.PS.ER); } //Runs Batted In InGameManager.currentBatter.stats.SetStat(1, PlayerStatistics.PS.RBI); //Run batter.stats.SetStat(1, PlayerStatistics.PS.R); }
public bool HadAtBat(Batter batter, DateTime gameDate) { var hadAtBat = false; if (gameDate < DateTime.Now.AddDays(-2)) { if (batter == null || batter.PlayerSlug == null) { return(false); } var statsAfterGame = _playerStatsRepository.Submit( queryDate: gameDate.AddDays(1), playerSlug: batter.PlayerSlug); var statsBeforeGame = _playerStatsRepository.Submit( queryDate: gameDate, playerSlug: batter.PlayerSlug); if (statsAfterGame.AtBats > statsBeforeGame.AtBats) { hadAtBat = true; } } else { Console.WriteLine("Game too fresh"); } return(hadAtBat); }
private bool isFinished(Batter batter) { if (waittime2 < 0) { return(true); } if (batter.hitballObj.GetComponentInChildren <Ball>().kekka != "") { string kekka = batter.hitballObj.GetComponentInChildren <Ball>().kekka; if (kekka.Equals("HR") && batter.hitballObj.GetComponentInChildren <Ball>().isBound) { kekka = "2BH"; } Debug.Log(kekka); batter.gameManager.kekka = kekka; return(true); } if (batter.hitballObj.transform.GetComponent <Rigidbody>().velocity.magnitude <= 0.2 && waittime < 0) { Debug.Log("ballstop"); batter.gameManager.kekka = "OUT"; return(true); } return(false); }
private void AddBatter( Dictionary <int, Dictionary <string, int> > d, int j, Batter batter) { if (d.TryGetValue(j, out Dictionary <string, int> batterDict)) { if (batterDict.TryGetValue(batter.PlayerSlug, out int batterAps)) { batterAps++; batterDict[batter.PlayerSlug] = batterAps; } else { batterDict.Add(batter.PlayerSlug, 1); } } else { var playerDict = new Dictionary <string, int> { { batter.PlayerSlug, 1 } }; d.Add(j, playerDict); } }
private void AddToRoster(Dictionary <string, Batter> roster, Batter batterAt) { if (!roster.ContainsKey(batterAt.PlayerSlug)) { roster.Add(batterAt.PlayerSlug, batterAt); } }
public void init(Batter batter) { Destroy(batter.ballInstance); batter.hitballObj = Instantiate(batter.hitballPrefab, new Vector3(0f, 1.0f, 0f), Quaternion.identity); batter.hitballObj.SetActive(true); Rigidbody rb = batter.hitballObj.transform.GetComponent <Rigidbody>(); float maxBattingSpeedKmH = basespeed * 0.277f; float kakudo = basetatekakudo * Mathf.PI / 180; float speedY = Mathf.Sin(kakudo) * maxBattingSpeedKmH / 1.4f; float speedMae = Mathf.Cos(kakudo) * maxBattingSpeedKmH / 1.4f; Debug.Log("speedY: " + speedY + "speedMae: " + speedMae); float yokoKakudo = baseyokokakudo * Mathf.PI / 180; //-30~150 float speedX = Mathf.Sin(yokoKakudo) * speedMae; float speedZ = Mathf.Cos(yokoKakudo) * speedMae; Debug.Log("x:" + speedX + "y:" + speedY + "z:" + speedZ); rb.velocity = new Vector3(speedX, speedY, speedZ); }
private static Player CastToPlayer(Batter player) { return(new Player { Name = player.Name, Slug = player.PlayerSlug }); }
private void HandleHitterAtPlateEvent(HitterWasAtBat msg, Boolean shouldPersist) { _totalBases += msg.HitValue; _atBats += msg.IsAtBat ? 1 : 0; _rbi += msg.RbiOnPlay; _hits += msg.HitValue > 0 ? 1 : 0; if (msg.PlayType == Shared.PlayType.Walk) { _walks += 1; } else if (msg.PlayType == Shared.PlayType.HitByPitch) { _hitByPitch += 1; } else if (msg.IsSacrificeFly) { _sacrificeFlies += 1; } if (shouldPersist) { //Console.WriteLine($"{_id} has {Average()} BA, {OnBase()} OBP, and {Slugging()} SLG"); var batter = new Batter { AtBats = _atBats, Average = Average(), Hits = _hits, Id = _id, PlayerId = _id, Name = "", OnBase = OnBase(), SacrificeFlies = _sacrificeFlies, Slugging = Slugging(), Walks = _walks, HitByPitch = _hitByPitch, TotalBases = _totalBases }; _coll.ReplaceOneAsync <Batter>(b => b.Id.Equals(_id), batter, new UpdateOptions { IsUpsert = true }) .PipeTo(Self); RethinkDB.R.Db("baseball").Table("batterStat").Insert(batter).RunNoReply(RethinkConnection.Connection); //write to event store var eventData = new EventData(Guid.NewGuid(), "HitterPlateAppearance", true, System.Text.Encoding.Default.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(msg)), new byte[] { }); EventConnection.Connection .AppendToStreamAsync(msg.Id, ExpectedVersion.Any, eventData) .PipeTo(Self); } }
public Cake(Shape shape, Batter batter, Frost frost = null) { this.shape = shape; this.batter = batter; this.frost = frost; this.pickSet.Add(typeof(Shape).ToString(), shape.pickId); this.pickSet.Add(typeof(Batter).ToString(), batter.pickId); this.pickSet.Add(typeof(Frost).ToString(), frost != null ? frost.pickId : -1); this.Render(); }
/// <summary> /// Determines whether attempt to steal base or not. /// </summary> /// <param name="batter"></param> /// <returns></returns> public static bool BaseStealDetermine(Batter batter, bool isRandom = false) { if (isRandom) { return(false); } else { return(false); } }
public static int?ExtractBatterHomeRuns(IPlayer player) { Batter b = player as Batter; if (b == null) { return(null); } return(b.ProjectedHR); }
private bool LineupHas(Batter batter, List <Batter> lineup) { foreach (var b in lineup) { if (b.Name == batter.Name) { return(true); } } return(false); }
public static int?ExtractBatterHitsPlusWalks(IPlayer player) { Batter b = player as Batter; if (b == null) { return(null); } return(b.ProjectedBB + b.ProjectedH); }
public void BatterSet() { Batter b = new Batter(); this.CSVData = b.CSVData; this.DATA = b.DATA; this.child = b.child; this.child2 = b.child2; this.SearchList = b.SearchList; this.Year = b.Year; }
public static int?ExtractBatterAtBats(IPlayer player) { Batter b = player as Batter; if (b == null) { return(null); } return(b.ProjectedAB); }
static void Main(string[] args) { Console.WriteLine("Start"); Ball ball = new Ball(); Ball ball2 = new Ball(); Bat bat = ball.GetNewBat(); bat = ball.GetNewBat(); Pitcher pitcher = new Pitcher(ball); Catcher cathcer = new Catcher(ball); Batter batter = new Batter(ball); FirstBaseman firstBaseman = new FirstBaseman(ball); SecondBaseman secondBaseman = new SecondBaseman(ball); ThirdBaseman thirdBaseman = new ThirdBaseman(ball); Fan energeticFan = new Fan(ball); Umpire goodUmpire = new Umpire(ball); bat.HitTheBall(new BallEventArgs(50, 80)); bat.HitTheBall(new BallEventArgs(50, 80)); //int[][] parmas = new int[][]; ball.OnBallInPlayTest(new BallEventArgs(50, 80)); bat.HitTheBall(new BallEventArgs(40, 200)); bat.HitTheBall(new BallEventArgs(40, 200)); Console.WriteLine(); bat.HitTheBall(new BallEventArgs(40, 200)); //Add listener many times: goodUmpire.StartLookingAtBall(ball); goodUmpire.StartLookingAtBall(ball); bat.HitTheBall(new BallEventArgs(30, 910)); Console.WriteLine(); goodUmpire.StopLookingAtBall(); bat.HitTheBall(new BallEventArgs(30, 910)); goodUmpire.StopLookingAtBall(); goodUmpire.StopLookingAtBall(); Console.WriteLine(); bat.HitTheBall(new BallEventArgs(50, 80)); Console.WriteLine(); goodUmpire.StartWaitgingForHit(bat); goodUmpire.StartWaitgingForHit(bat); bat.HitTheBall(new BallEventArgs(50, 80)); bat.HitTheBall(new BallEventArgs(50, 80)); Console.ReadKey(); }
public void init(Batter batter) { batter.gameManager.kekka = ""; batter.gameManager.printCall(); Debug.Log("BattingStateinit"); batter.ballInstance = Instantiate(batter.ballObj, new Vector3(13.0f, 1.0f, 13.0f), Quaternion.identity); batter.ballObjBall = batter.ballInstance.GetComponent <Ball>(); batter.ballObjBall.kyusyu = batter.gameManager.kyusyu; m_Animator = batter.GetComponentInParent <Animator>(); }
public bool PichingJudge(int throwPoint) { Batter batter = new Batter(); batter.CpuMeetPoint(); bool hit = false; if (Batter.MeetPoint >= 1 && Batter.MeetPoint <= 3) { if (Batter.MeetPoint != 3) { if (Batter.MeetPoint == throwPoint || Batter.MeetPoint == throwPoint + 1) { hit = true; } } else if (Batter.MeetPoint == throwPoint) { hit = true; } } else if (Batter.MeetPoint >= 4 && Batter.MeetPoint <= 6) { if (Batter.MeetPoint != 6) { if (Batter.MeetPoint == throwPoint || Batter.MeetPoint == throwPoint + 1) { hit = true; } } else if (Batter.MeetPoint == throwPoint) { hit = true; } } else if (Batter.MeetPoint >= 7 && Batter.MeetPoint <= 9) { if (Batter.MeetPoint != 9) { if (Batter.MeetPoint == throwPoint || Batter.MeetPoint == throwPoint + 1) { hit = true; } } else if (Batter.MeetPoint == throwPoint) { hit = true; } } return(hit); }
private bool PlayerPassesFilters(IPlayer player) { if (cbUndrafted.Checked && !string.IsNullOrEmpty(player.FantasyTeam)) { return(false); } Batter b = player as Batter; if (cb1B.Checked && b != null && b.Is1B) { return(true); } if (cb2B.Checked && b != null && b.Is2B) { return(true); } if (cb3B.Checked && b != null && b.Is3B) { return(true); } if (cbSS.Checked && b != null && b.IsSS) { return(true); } if (cbOF.Checked && b != null && b.IsOF) { return(true); } if (cbC.Checked && b != null && b.IsC) { return(true); } if (cbUtil.Checked && b != null) { return(true); } Pitcher p = player as Pitcher; if (cbSP.Checked && p != null && p.IsSP) { return(true); } if (cbRP.Checked && p != null && p.IsRP) { return(true); } return(false); }
/* * バッティング結果を集計 * 1. ボールが停止する * 2. 一定時間経過する * 3. 壁に当たる */ public void batting(Batter batter) { if (isFinished(batter)) { batter.state = new AfterState(); batter.state.init(batter); } else { waittime -= Time.deltaTime; waittime2 -= Time.deltaTime; } //Debug.Log(batter.hitballObj.transform.GetComponent<Rigidbody>().velocity.magnitude); }
public BatterActor(String id) { _id = id; Receive <HitterWasAtBat>(msg => { _totalBases += msg.HitValue; _atBats += msg.IsAtBat ? 1 : 0; _rbi += msg.RbiOnPlay; _hits += msg.HitValue > 0 ? 1 : 0; if (msg.PlayType == Shared.PlayType.Walk) { _walks += 1; } else if (msg.PlayType == Shared.PlayType.HitByPitch) { _hitByPitch += 1; } else if (msg.IsSacrificeFly) { _sacrificeFlies += 1; } //Console.WriteLine($"{_id} has {Average()} BA, {OnBase()} OBP, and {Slugging()} SLG"); var batter = new Batter { AtBats = _atBats, Average = Average(), Hits = _hits, Id = _id, PlayerId = _id, Name = "", OnBase = OnBase(), SacrificeFlies = _sacrificeFlies, Slugging = Slugging(), Walks = _walks, HitByPitch = _hitByPitch, TotalBases = _totalBases }; _coll.ReplaceOneAsync <Batter>(b => b.Id.Equals(_id), batter, new UpdateOptions { IsUpsert = true }) .PipeTo(Self); RethinkDB.R.Db("baseball").Table("batterStat").Insert(batter).RunNoReply(RethinkConnection.Connection); }); }
public void OnClickCPUPitching() { GameObject pitObj = maneger.pitcher; Pitcher pitcher = pitObj.GetComponent <Pitcher>(); pitcher.strategy = new PitchingPlayerStrategy(); GameObject batObj = maneger.batter; Batter batter = batObj.GetComponent <Batter>(); batter.strategy = new BattingCPUStrategy(); maneger.mode = "battle"; Close(); }
public void batting(Batter batter) { if (batter.gameManager.kyusyu != KYUSYU.NONE) { if (waittime < 0) { batter.state = new BattingState(); batter.state.init(batter); } else { waittime -= Time.deltaTime; } } }
public void batting(Batter batter) { if (waittime < 0) { batter.state = new WaitingBattingState(); batter.state.init(batter); batter.gameManager.kekka = "wait"; if (batter.hitballObj != null) { Destroy(batter.hitballObj); } } waittime -= Time.deltaTime; }
public bool Likes(Selection selection, out string reasonForDislike) { reasonForDislike = string.Empty; var choices = new List <Batter>(); var originalChoices = new List <Batter> { selection.Batter1, selection.Batter2, selection.Batter3, selection.Batter4 }; foreach (var batter in originalChoices) { if (!MissingFromLineup( batter, selection.GameDate)) { choices.Add(batter); } } if (choices.Count == 0) { reasonForDislike = $@" All top 3 batters for { selection.Batter1.TeamSlug } had time off in the last 3 days" ; return(false); } var bestAvg = 0.000M; var batterWithBestAvg = new Batter(); foreach (var batter in choices) { // recalculate Batting Average RecalculateBattingAverage(batter, selection.GameDate); if (batter.BattingAverage > bestAvg) { batterWithBestAvg = batter; bestAvg = batter.BattingAverage; } } selection.Batter = batterWithBestAvg; #if DEBUG Console.WriteLine($"{selection.Batter} has the highest batting average"); #endif return(true); }
private bool PlayerPassesFilters(IPlayer player) { Batter b = player as Batter; if (cb1B.Checked && b != null && b.Is1B) { return(true); } if (cb2B.Checked && b != null && b.Is2B) { return(true); } if (cb3B.Checked && b != null && b.Is3B) { return(true); } if (cbSS.Checked && b != null && b.IsSS) { return(true); } if (cbOF.Checked && b != null && b.IsOF) { return(true); } if (cbC.Checked && b != null && b.IsC) { return(true); } if (cbUtil.Checked && b != null) { return(true); } Pitcher p = player as Pitcher; if (cbSP.Checked && p != null && p.IsSP) { return(true); } if (cbRP.Checked && p != null && p.IsRP) { return(true); } return(false); }
//공이 생성 될 때 초기화 public void Init(Vector3 targetV, int patternN) { if (isInit) { return; } batter = FindObjectOfType <Batter>(); do { curveRateX = Random.Range(-5f, 5f); } while (Mathf.Abs(curveRateX) < 3); curveRateX *= (1 + CountManager.instance.countPitch * 0.01f); do { curveRateY = Random.Range(-5f, 5f); } while (Mathf.Abs(curveRateY) < 3); curveRateY *= (1 + CountManager.instance.countPitch * 0.01f); pattern = patternN; target = targetV; direction = target - this.transform.position; moveDirect = this.transform.position; targetDistance = Vector3.Distance(this.transform.position, target); isInit = true; isBall = false; canvas = Instantiate(canvasDistance); textDistance = canvas.GetComponentInChildren <Text>(); if (GameManager.instance.mode == GameManager.Mode.AUTO) { speed = Random.Range(0.4f, 0.5f) + CountManager.instance.countPitch * 0.02f; } else { speed = Random.Range(0.4f, 0.5f); } rotate = new Vector3(Random.Range(60, 120), Random.Range(60, 120), Random.Range(60, 120)) * speed * 10; }
private bool NotInLineup( DateTime gameDate, Batter batter) { if (batter == null || batter.TeamSlug == null) { return(true); } var lineup = _lineupRepository.Submit( gameDate, batter.TeamSlug).Lineup; if (!LineupHas(batter, lineup)) { return(true); } return(false); }
private Batter MapDtoToBatter(LineupDto dto) { var playerSlug = GetPlayerSlug(dto.PlayerId, Players); var batter = new Batter { PlayerSlug = playerSlug, Name = GetName(dto.PlayerId, Players), TeamId = TeamFor(dto.TeamId, Teams), Bats = GetBats(dto.PlayerId, Players), BattingOrder = dto.BattingOrder, LineupPosition = dto.LineupPosition, PositionAbbreviation = dto.PositionAbbreviation, Sequence = dto.Sequence, TeamSlug = TeamSlugFor(dto.TeamId, Teams), TeamName = TeamNameFor(dto.TeamId, Teams), BattingAverage = GetBattingAverage(playerSlug) }; return(batter); }
private bool MissingFromLineup( Batter batter, DateTime gameDate) { if (_pickerOptions.OptionOn(Constants.Options.NoDaysOff)) { for (int daysback = 1; daysback < _pickerOptions.IntegerOption( Constants.Options.DaysOffDaysBack) + 1; daysback++) { var queryDate = gameDate.AddDays(-daysback); if (NotInLineup(queryDate, batter)) { return(true); } } } return(false); }