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())); }
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())); }
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}")); }
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)); }
public Task <VoidAppResult> ConfigureDtoEffect(CardEffect cardEffect, DtoEffect dtoEffect) { dtoEffect.Name = "Destroy"; return(base.ConfigureDtoEffect(cardEffect, dtoEffect, "Destroy ", "")); }