Example #1
0
        bool TrySubstitute(AHock hock)
        {
            if (!IsFinal() ||
                hock.Speed.Length > Game.MaxSpeedToAllowSubstitute ||
                !IsInSubstArea(hock) ||
                hock.Base.RemainingCooldownTicks > 0 ||
                hock.Base.RemainingKnockdownTicks > 0
                )
            {
                return(false);
            }

            var maxStamina = MyRest
                             .Select(x => x.Stamina)
                             .Max();
            var maxStrength = MyRest
                              .Where(x => Eq(maxStamina, x.Stamina))
                              .Select(x => x.Strength)
                              .Max();

            var to = Hockeyists.FirstOrDefault(x => Eq(x.Stamina, maxStamina) && Eq(x.Strength, maxStrength));

            if (to == null || maxStamina < hock.Stamina)
            {
                return(false);
            }
            move.Action        = ActionType.Substitute;
            move.TeammateIndex = to.TeammateIndex;
            return(true);
        }
Example #2
0
        bool NeedTrySubstitute(AHock hock)
        {
            if (!IsFinal())
            {
                return(false);
            }
            var maxStamina = Hockeyists
                             .Where(x => x.State == HockeyistState.Resting && x.IsTeammate)
                             .Select(x => x.Stamina)
                             .Max();
            var to = Hockeyists.FirstOrDefault(x => Eq(x.Stamina, maxStamina));

            if (to == null || maxStamina * 0.8 < hock.Stamina)
            {
                return(false);
            }
            return(true);
        }