コード例 #1
0
        public void ExecuteStep(CharacterSheet character)
        {
            var storyTemplate = descriptors.Find("character-appearance").Words.ChooseOne();
            var expansion     = new PhraseTemplate(storyTemplate);

            character.Appearance.Description = expansion.WritePhrase(new CharacterContext(character));
        }
コード例 #2
0
        public void ExecuteStep(CharacterSheet character)
        {
            var storyTemplate = descriptors.Find("background-story").Words.ChooseOne();
            var expansion     = new PhraseTemplate(storyTemplate);
            var story         = new BackgroundStory(expansion.WritePhrase(new CharacterContext(character)));

            character.Add(story);
        }
コード例 #3
0
        public void PhrasesCanCompileTemplates()
        {
            var template = "Hello {{name}}.";
            var phrase   = new PhraseTemplate(template);
            var context  = new PhraseContext()
            {
                { "name", "Bob" }
            };
            var result = phrase.WritePhrase(context);

            Assert.Equal("Hello Bob.", result);
        }
コード例 #4
0
        public void PhrasesCanCascadeCallsToOtherTemplatesIfNecessary()
        {
            var template = "Good Day, {{name}}.";
            var phrase   = new PhraseTemplate(template);
            var context  = new PhraseContext()
            {
                { "name", "{{fullname}}" },
                { "fullname", "Bob Woodward" }
            };
            var result = phrase.WritePhrase(context);

            Assert.Equal("Good Day, Bob Woodward.", result);
        }