Ejemplo n.º 1
0
        public Card RollCard(Squad team, IAction action, MatchMinute[] minutes)
        {
            PositionalArea positionalArea = ChanceHelper.PercentBase100Chance(action.PositionalChance, x => x.Value).Key;

            var sentOffCardIds = minutes.SelectMany(x => x.Events).Where(x => x is RedCard).Select(x => x.CardId);
            var cards          = team.Lineup[positionalArea.ToString()].Where(x => x != null && !sentOffCardIds.Contains(x.Id)).ToList();

            int r = _randomnessProvider.Next(cards.Count);

            return(cards.ElementAtOrDefault(r)); //returns null TODO fix rolling position with 0 cards due to sending off
        }
Ejemplo n.º 2
0
        public Squad InPossession(Models.Match.Match match, out Squad notInPossession, out int homeChance, out int awayChance)
        {
            homeChance = PossessionChance(match.HomeTeam.Squad, match);
            awayChance = PossessionChance(match.AwayTeam.Squad, match);

            var homePossession = ChanceHelper.CumulativeTrueOrFalse(homeChance, awayChance);

            if (homePossession)
            {
                notInPossession = match.AwayTeam.Squad;
                return(match.HomeTeam.Squad);
            }
            else
            {
                notInPossession = match.HomeTeam.Squad;
                return(match.AwayTeam.Squad);
            }
        }
Ejemplo n.º 3
0
 public IAction RollAction()
 {
     return(ChanceHelper.PercentBase100Chance(_actions, x => x.ChancePerMinute));
 }