예제 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BodypartRemover"/> class.
 /// </summary>
 /// <param name="appearance">The appearance that is being shifted.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public BodypartRemover
 (
     Appearance appearance,
     TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _descriptionBuilder = descriptionBuilder;
 }
예제 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PatternRemover"/> class.
 /// </summary>
 /// <param name="appearance">The appearance to shift.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public PatternRemover
 (
     Appearance appearance,
     TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _descriptionBuilder = descriptionBuilder;
 }
예제 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PatternRemover"/> class.
 /// </summary>
 /// <param name="appearance">The appearance to shift.</param>
 /// <param name="transformations">The transformation service.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public PatternRemover
 (
     [NotNull] Appearance appearance,
     [NotNull] TransformationService transformations,
     [NotNull] TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _transformations    = transformations;
     _descriptionBuilder = descriptionBuilder;
 }
예제 #4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ColourShifter"/> class.
 /// </summary>
 /// <param name="appearance">The appearance to shift.</param>
 /// <param name="colour">The colour to shift into.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public ColourShifter
 (
     [NotNull] Appearance appearance,
     [NotNull] Colour colour,
     [NotNull] TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _colour             = colour;
     _descriptionBuilder = descriptionBuilder;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PatternColourShifter"/> class.
 /// </summary>
 /// <param name="appearance">The appearance to shift.</param>
 /// <param name="colour">The colour to shift into.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public PatternColourShifter
 (
     Appearance appearance,
     Colour colour,
     TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _colour             = colour;
     _descriptionBuilder = descriptionBuilder;
 }
예제 #6
0
        public void ReplacesFluentTokensCorrectly()
        {
            var character = new Character
                            (
                new User(0),
                new Server(0),
                "Amby",
                string.Empty,
                string.Empty,
                string.Empty,
                string.Empty,
                pronounProviderFamily: "Feminine"
                            );

            var hairColour = new Colour(Shade.White, ShadeModifier.Fluorescent);

            var hairTransformation = new Transformation
                                     (
                new Species("dummy", "dummy", "dummy"),
                "dummy",
                hairColour,
                "dummy",
                "dummy",
                SampleFluentText
                                     )
            {
                Part = Bodypart.Hair,
            };

            var hairComponent = AppearanceComponent.CreateFrom(hairTransformation);

            var appearance = new Appearance(character);

            appearance.Components.Add(hairComponent);

            var pronounService = new PronounService();

            pronounService.WithPronounProvider(new FemininePronounProvider());

            var characterService = new CharacterService(null !, null !, null !, pronounService);

            var serviceProvider = new ServiceCollection()
                                  .AddSingleton(pronounService)
                                  .AddSingleton(characterService)
                                  .BuildServiceProvider();

            var descriptionBuilder = new TransformationDescriptionBuilder(serviceProvider, new TransformationText());

            var result = descriptionBuilder.ReplaceTokensWithContent(SampleFluentText, appearance, hairComponent);

            Assert.Equal(ExpectedText, result);
        }
예제 #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PatternColourShifter"/> class.
 /// </summary>
 /// <param name="appearance">The appearance to shift.</param>
 /// <param name="colour">The colour to shift into.</param>
 /// <param name="transformations">The transformation service.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public PatternColourShifter
 (
     [NotNull] Appearance appearance,
     [NotNull] Colour colour,
     [NotNull] TransformationService transformations,
     [NotNull] TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _colour             = colour;
     _transformations    = transformations;
     _descriptionBuilder = descriptionBuilder;
 }
예제 #8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PatternShifter"/> class.
 /// </summary>
 /// <param name="appearance">The appearance to shift.</param>
 /// <param name="pattern">The colour to shift into.</param>
 /// <param name="patternColour">The colour of the pattern to shift into.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public PatternShifter
 (
     [NotNull] Appearance appearance,
     Pattern pattern,
     [NotNull] Colour patternColour,
     [NotNull] TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _pattern            = pattern;
     _patternColour      = patternColour;
     _descriptionBuilder = descriptionBuilder;
 }
예제 #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SpeciesShifter"/> class.
 /// </summary>
 /// <param name="appearance">The appearance that is being shifted.</param>
 /// <param name="species">The species to shift into.</param>
 /// <param name="transformations">The transformation service.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public SpeciesShifter
 (
     Appearance appearance,
     Species species,
     TransformationService transformations,
     TransformationDescriptionBuilder descriptionBuilder
 )
     : base(appearance)
 {
     _species            = species;
     _transformations    = transformations;
     _descriptionBuilder = descriptionBuilder;
 }
예제 #10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TransformationService"/> class.
 /// </summary>
 /// <param name="content">The content service.</param>
 /// <param name="users">The user service.</param>
 /// <param name="servers">The server service.</param>
 /// <param name="database">The database.</param>
 /// <param name="descriptionBuilder">The description builder.</param>
 public TransformationService
 (
     ContentService content,
     UserService users,
     ServerService servers,
     TransformationsDatabaseContext database,
     TransformationDescriptionBuilder descriptionBuilder
 )
 {
     _content            = content;
     _users              = users;
     _servers            = servers;
     _database           = database;
     _descriptionBuilder = descriptionBuilder;
 }
예제 #11
0
        public void ReplacesFluentTokensCorrectly()
        {
            var hairColour = new Colour
            {
                Shade    = Shade.White,
                Modifier = ShadeModifier.Fluorescent
            };

            var hairTransformation = new Transformation
            {
                DefaultBaseColour = hairColour,
                Part = Bodypart.Hair,
                SingleDescription = SampleFluentText
            };

            var hairComponent = AppearanceComponent.CreateFrom(hairTransformation);

            var appearance = new Appearance
            {
                Components = new List <AppearanceComponent> {
                    hairComponent
                }
            };

            var character = new Character
            {
                Name = "Amby",
                CurrentAppearance     = appearance,
                PronounProviderFamily = "Feminine"
            };

            var characterService = new CharacterService(null, null, null, null)
                                   .WithPronounProvider(new FemininePronounProvider());

            var serviceProvider = new ServiceCollection()
                                  .AddSingleton(characterService)
                                  .BuildServiceProvider();

            var descriptionBuilder = new TransformationDescriptionBuilder(serviceProvider);

            var result = descriptionBuilder.ReplaceTokensWithContent(SampleFluentText, character, hairComponent);

            Assert.Equal(ExpectedText, result);
        }
예제 #12
0
 public TransformationService WithDescriptionBuilder(TransformationDescriptionBuilder descriptionBuilder)
 {
     this.DescriptionBuilder = descriptionBuilder;
     return(this);
 }