コード例 #1
0
        protected async Task <AppResult <List <GameCard> > > GetTargetsByCharacterName(DtoEffectTargets effect, TargetingEffectParameters parameters, Game game)
        {
            var name = parameters.TargetParameter.ToString();

            var targets = await dbContext.GameCards.IncludeAll()
                          .Where(_ => _.Card.Character.Name == name && _.CardLocation == CardLocation.Board)
                          .ToListAsync();

            return(AppResult <List <GameCard> > .Success(targets));
        }
コード例 #2
0
        protected async Task <AppResult <List <GameCard> > > GetTargetsByIds(DtoEffectTargets effect, TargetingEffectParameters parameters, Game game)
        {
            var targetsCount = Convert.ToInt32(parameters.TargetParameter);

            if (targetsCount != effect.TargetIds.Count)
            {
                return(AppResult <List <GameCard> > .Error(AppActionResultType.RuleError, $"You must choose exactly {targetsCount} targets to destroy."));
            }
            var targets = await dbContext.GameCards.IncludeAll()
                          .Where(_ => effect.TargetIds.Contains(_.Id))
                          .ToListAsync();

            if (targets.Count != effect.TargetIds.Count)
            {
                return(VoidAppResult.Error(ErrorPreset.InvalidTargets).GetErrorAppResult <List <GameCard> >());
            }

            return(AppResult <List <GameCard> > .Success(targets));
        }