/// <summary> /// handles all logic to bench the skater for the game. /// </summary> /// <param name="skater"></param> /// <param name="teamNumber"></param> public void benchSkater(TeamMembersViewModel skater, TeamNumberEnum teamNumber) { if (teamNumber == TeamNumberEnum.Team1) { if (Blocker1T1 != null && Blocker1T1.SkaterId == skater.SkaterId) Blocker1T1 = null; if (Blocker2T1 != null && Blocker2T1.SkaterId == skater.SkaterId) Blocker2T1 = null; if (Blocker3T1 != null && Blocker3T1.SkaterId == skater.SkaterId) Blocker3T1 = null; if (PivotT1 != null && PivotT1.SkaterId == skater.SkaterId) PivotT1 = null; if (JammerT1 != null && JammerT1.SkaterId == skater.SkaterId) JammerT1 = null; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBenched = true; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker1 = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker2 = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker3 = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsInBox = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsJammer = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsLeadJammer = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsPivot = false; } else if (teamNumber == TeamNumberEnum.Team2) { if (Blocker1T2 != null && Blocker1T2.SkaterId == skater.SkaterId) Blocker1T2 = null; if (Blocker2T2 != null && Blocker2T2.SkaterId == skater.SkaterId) Blocker2T2 = null; if (Blocker3T2 != null && Blocker3T2.SkaterId == skater.SkaterId) Blocker3T2 = null; if (PivotT2 != null && PivotT2.SkaterId == skater.SkaterId) PivotT2 = null; if (JammerT2 != null && JammerT2.SkaterId == skater.SkaterId) JammerT2 = null; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBenched = true; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker1 = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker2 = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker3 = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsInBox = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsJammer = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsLeadJammer = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsPivot = false; } }
/// <summary> /// sets the pivot for the jam. /// </summary> /// <param name="skater"></param> /// <param name="team"></param> public void setPivot(TeamMembersViewModel skater, TeamNumberEnum team) { clearSkaterPositions(skater, team); if (team == TeamNumberEnum.Team1) { for (int i = 0; i < GameViewModel.Instance.Team1.TeamMembers.Count; i++) { if (GameViewModel.Instance.Team1.TeamMembers[i].IsPivot) { GameViewModel.Instance.Team1.TeamMembers[i].IsBenched = true; GameViewModel.Instance.Team1.TeamMembers[i].IsPivot = false; } } PivotT1 = skater; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsPivot = true; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBenched = false; } else if (team == TeamNumberEnum.Team2) { for (int i = 0; i < GameViewModel.Instance.Team2.TeamMembers.Count; i++) { if (GameViewModel.Instance.Team2.TeamMembers[i].IsPivot) { GameViewModel.Instance.Team2.TeamMembers[i].IsBenched = true; GameViewModel.Instance.Team2.TeamMembers[i].IsPivot = false; } } PivotT2 = skater; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsPivot = true; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBenched = false; } }
public void clearSkaterPositions(TeamMembersViewModel skater, TeamNumberEnum team) { if (team == TeamNumberEnum.Team1) { if (PivotT1 == skater) PivotT1 = null; if (JammerT1 == skater) JammerT1 = null; if (Blocker1T1 == skater) Blocker1T1= null; if (Blocker2T1 == skater) Blocker2T1= null; if (Blocker3T1== skater) Blocker3T1= null; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBenched = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker1 = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker2 = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker3 = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsInBox = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsJammer = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsLeadJammer = false; GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsPivot = false; } else if (team == TeamNumberEnum.Team2) { if (PivotT1 == skater) PivotT1 = null; if (JammerT1 == skater) JammerT1 = null; if (Blocker1T1 == skater) Blocker1T1 = null; if (Blocker2T1 == skater) Blocker2T1 = null; if (Blocker3T1 == skater) Blocker3T1 = null; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBenched = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker1 = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker2 = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsBlocker3 = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsInBox = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsJammer = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsLeadJammer = false; GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault().IsPivot = false; } }
/// <summary> /// sets the lead jammer for the Jam. /// Also takes care if the Lead Jammer has changed as in MADE rules. /// </summary> /// <param name="jammerInLead"></param> /// <param name="gameTimeinMilliseconds"></param> /// <param name="jamTimeinMilliseconds"></param> public bool setLeadJammer(TeamMembersViewModel jammerInLead, long gameTimeinMilliseconds, TeamNumberEnum team) { //can only be lead if they are jammer or pivot if ((jammerInLead.IsPivot | jammerInLead.IsJammer) && !jammerInLead.IsInBox) { if (LeadJammers == null) LeadJammers = new List<LeadJammerViewModel>(); LeadJammerViewModel jamLead = new LeadJammerViewModel(); jamLead.Jammer = jammerInLead; jamLead.JamTimeInMilliseconds = (long)TimeSpan.FromTicks(this.JamClock.TimeElapsed).TotalMilliseconds; jamLead.GameTimeInMilliseconds = gameTimeinMilliseconds; LeadJammers.Add(jamLead); if (team == TeamNumberEnum.Team1) { //removes lead from this team removeLeadJammer(team); GameViewModel.Instance.Team1.TeamMembers.Where(x => x.SkaterId == jammerInLead.SkaterId).FirstOrDefault().IsLeadJammer = true; removeLeadJammer(TeamNumberEnum.Team2); } else if (team == TeamNumberEnum.Team2) { removeLeadJammer(team); GameViewModel.Instance.Team2.TeamMembers.Where(x => x.SkaterId == jammerInLead.SkaterId).FirstOrDefault().IsLeadJammer = true; removeLeadJammer(TeamNumberEnum.Team1); } return true; } return false; }
/// <summary> /// add a skater to a team specified. /// </summary> /// <param name="skaterName"></param> /// <param name="skaterNumber"></param> /// <param name="team"></param> public void addTeamSkater(string skaterName, string skaterNumber, TeamNumberEnum team) { TeamMembersViewModel teamMember = new TeamMembersViewModel(); teamMember.SkaterId = Guid.NewGuid(); teamMember.SkaterName = skaterName; teamMember.SkaterNumber = skaterNumber; teamMember.IsBenched = true; teamMember.IsBlocker1 = false; teamMember.IsBlocker2 = false; teamMember.IsBlocker3 = false; teamMember.IsInBox = false; teamMember.IsJammer = false; teamMember.IsLeadJammer = false; teamMember.IsPivot = false; if (team == TeamNumberEnum.Team1) { instance.Team1.TeamMembers.Add(teamMember); } else { instance.Team2.TeamMembers.Add(teamMember); } }
/// <summary> /// removes the player from the penalty box. /// </summary> /// <param name="skaterBeingRemovedFromBox"></param> /// <param name="team"></param> public void removeSkaterFromPenaltyBox(TeamMembersViewModel skaterBeingRemovedFromBox, TeamNumberEnum team) { if (skaterBeingRemovedFromBox.IsInBox) { instance.PenaltyBox.Where(x => x.PlayerSentToBox.SkaterId == skaterBeingRemovedFromBox.SkaterId).LastOrDefault().GameTimeInMillisecondsReleased = instance.ElapsedTimeGameClockMilliSeconds; instance.PenaltyBox.Where(x => x.PlayerSentToBox.SkaterId == skaterBeingRemovedFromBox.SkaterId).LastOrDefault().JamTimeInMillisecondsReleased = instance.CurrentJam.JamClock.TimeElapsed; instance.PenaltyBox.Where(x => x.PlayerSentToBox.SkaterId == skaterBeingRemovedFromBox.SkaterId).LastOrDefault().JamNumberReleased = instance.CurrentJam.JamNumber; if (team == TeamNumberEnum.Team1) instance.Team1.TeamMembers.Where(x => x.SkaterId == skaterBeingRemovedFromBox.SkaterId).FirstOrDefault().IsInBox = false; else if (team == TeamNumberEnum.Team2) instance.Team2.TeamMembers.Where(x => x.SkaterId == skaterBeingRemovedFromBox.SkaterId).FirstOrDefault().IsInBox = false; } }
/// <summary> /// Sends Player to Penalty Box /// </summary> /// <param name="skaterBeingSentToBox"></param> public void sendSkaterToPenaltyBox(TeamMembersViewModel skaterBeingSentToBox, TeamNumberEnum team) { SkaterInPenaltyBoxViewModel skater = new SkaterInPenaltyBoxViewModel(); skater.GameTimeInMillisecondsSent = instance.ElapsedTimeGameClockMilliSeconds; skater.JamTimeInMillisecondsSent = instance.CurrentJam.JamClock.TimeElapsed; skater.PlayerSentToBox = skaterBeingSentToBox; skater.JamNumberSent = instance.CurrentJam.JamNumber; instance.PenaltyBox.Add(skater); if (team == TeamNumberEnum.Team1) { instance.Team1.TeamMembers.Where(x => x.SkaterId == skaterBeingSentToBox.SkaterId).FirstOrDefault().IsInBox = true; //any skater in box isn't allowed to be lead jammer. if (PolicyViewModel.Instance.PenaltyBoxControlsLeadJammer) instance.Team1.TeamMembers.Where(x => x.SkaterId == skaterBeingSentToBox.SkaterId).FirstOrDefault().IsLeadJammer = false; } else if (team == TeamNumberEnum.Team2) { instance.Team2.TeamMembers.Where(x => x.SkaterId == skaterBeingSentToBox.SkaterId).FirstOrDefault().IsInBox = true; //any skater in box isn't allowed to be lead jammer. if (PolicyViewModel.Instance.PenaltyBoxControlsLeadJammer) instance.Team2.TeamMembers.Where(x => x.SkaterId == skaterBeingSentToBox.SkaterId).FirstOrDefault().IsLeadJammer = false; } }
public void removeSkaterFromTeam(TeamMembersViewModel skater, TeamNumberEnum team) { if (team == TeamNumberEnum.Team1) { var member = this.Team1.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault(); instance.Team1.TeamMembers.Remove(member); } else if (team == TeamNumberEnum.Team2) { var member = this.Team2.TeamMembers.Where(x => x.SkaterId == skater.SkaterId).FirstOrDefault(); instance.Team2.TeamMembers.Remove(member); } }