コード例 #1
0
        protected Task <VoidAppResult> ConfigureDtoEffect(CardEffect cardEffect, DtoEffect dtoEffect, string effectPrefix, string effectSuffix)
        {
            var parameters = JsonConvert.DeserializeObject <TargetingEffectParameters>(cardEffect.EffectParameters);

            dtoEffect.TargetsCount = parameters.TargetingType == TargetingType.NumberOfTargets
                ? Convert.ToInt32(parameters.TargetParameter)
                : 0;

            switch (parameters.TargetingType)
            {
            case TargetingType.Title:
                dtoEffect.Description = $"{effectPrefix}all cards with the title '{parameters.TargetParameter}'{effectSuffix}.";
                break;

            case TargetingType.CharacterName:
                dtoEffect.Description = $"{effectPrefix}all '{parameters.TargetParameter}'{effectSuffix}.";
                break;

            default:     // TargetingType.NumberOfTargets
                dtoEffect.Description = $"{effectPrefix}{parameters.TargetParameter} cards{effectSuffix}.";
                break;
            }

            return(Task.FromResult(VoidAppResult.Success()));
        }
コード例 #2
0
        public Task <VoidAppResult> ConfigureDtoEffect(CardEffect cardEffect, DtoEffect dtoEffect)
        {
            var parameters = JsonConvert.DeserializeObject <DrawCardsEffectParameters>(cardEffect.EffectParameters);

            dtoEffect.Name         = "Draw cards";
            dtoEffect.TargetsCount = 0;
            dtoEffect.Description  = $"Draw {parameters.CardsCount} cards.";

            return(Task.FromResult(VoidAppResult.Success()));
        }
コード例 #3
0
        public Task <VoidAppResult> ConfigureDtoEffect(CardEffect cardEffect, DtoEffect dtoEffect)
        {
            var parameters = JsonConvert.DeserializeObject <ChangeStatsEffectParameters>(cardEffect.EffectParameters);

            dtoEffect.Name = parameters.EffectStrength > 0 ? "Buff" : "Debuff";

            var sign = parameters.EffectStrength > 0 ? "+" : "";

            return(base.ConfigureDtoEffect(cardEffect, dtoEffect, "Give ", $" {sign}{parameters.EffectStrength}/{sign}{parameters.EffectStrength}"));
        }
コード例 #4
0
        public async Task <AppResult <DtoEffect> > GetDtoEffect(CardEffect cardEffect)
        {
            var dtoEffect = new DtoEffect
            {
                Id         = cardEffect.Id,
                EffectType = cardEffect.EffectType
            };

            var configureResult = await this.effects[cardEffect.EffectType].ConfigureDtoEffect(cardEffect, dtoEffect);

            if (configureResult.IsErrorResult)
            {
                return(configureResult.GetErrorAppResult <DtoEffect>());
            }

            return(AppResult <DtoEffect> .Success(dtoEffect));
        }
コード例 #5
0
        public Task <VoidAppResult> ConfigureDtoEffect(CardEffect cardEffect, DtoEffect dtoEffect)
        {
            dtoEffect.Name = "Destroy";

            return(base.ConfigureDtoEffect(cardEffect, dtoEffect, "Destroy ", ""));
        }