コード例 #1
0
        public IActionResult Character(string strategy, int level, string scores)
        {
            var build  = strategyGateway.Find(strategy);
            var roller = GatewayProvider.Find <AbilityScoreGenerator>(scores);

            build.TargetLevel        = level;
            build.AbilityScoreRoller = roller.Generator;

            var gen = GatewayProvider.Find <CharacterDesigner>(build.Designer);

            var character = new CharacterSheet(build);

            gen.ExecuteStep(character);

            ViewData["character"]     = new CharacterSheetTextView(character);
            ViewData["characterFull"] = character;
            ViewData["strategy"]      = strategy;
            ViewData["scores"]        = scores;
            ViewData["level"]         = level;

            var saveObj = new YamlObjectStore();

            character.Save(saveObj);
            ViewData["save-data"] = saveObj.WriteToString();
            return(View());
        }
コード例 #2
0
        public void CanWriteObjectsIntoYamlString()
        {
            var yamlStore = new YamlObjectStore();

            yamlStore.SetValue("name", "A Name");
            yamlStore.SetValue("number", 2383);
            yamlStore.SetValue("list-of-values", new string[] { "one", "two", "three" });
            var childObj = new YamlObjectStore();

            childObj.SetValue("name", "childName");
            yamlStore.SetValue("child", childObj);

            var listOfObject = new YamlObjectStore[] { new YamlObjectStore(), new YamlObjectStore() };

            listOfObject[0].SetValue("name", "Test 1");
            listOfObject[1].SetValue("name", "Test 2");
            yamlStore.SetValue("list-of-objects", listOfObject);

            var yamlOutput   = yamlStore.WriteToString();
            var expectedYaml = @"name: A Name
number: 2383
list-of-values:
- one
- two
- three
child:
  name: childName
list-of-objects:
- name: Test 1
- name: Test 2
...
";

            Assert.Equal(expectedYaml, yamlOutput);

            // Deserializing Results In Same object store
            var deserialize = expectedYaml.ParseYaml();

            Assert.Equal("A Name", deserialize.GetString("name"));
            Assert.Equal(2383, deserialize.GetInteger("number"));
            Assert.Equal(new string[] { "one", "two", "three" }, deserialize.GetList("list-of-values"));
            Assert.Equal("childName", deserialize.GetObject("child").GetString("name"));
        }
コード例 #3
0
        public void CanSaveAndLoadCharacterSheets()
        {
            var             bob   = CharacterTestTemplates.AverageBob();
            YamlObjectStore store = new YamlObjectStore();

            bob.Alignment = CharacterAlignment.ChaoticEvil;
            bob.Gender    = Gender.Male;
            bob.Save(store);

            var yaml   = store.WriteToString();
            var loaded = yaml.ParseYaml();

            var bob2 = CharacterSheet.Load(loaded);

            Assert.Equal(bob.Name, bob2.Name);
            Assert.Equal(CharacterAlignment.ChaoticEvil, bob2.Alignment);
            Assert.Equal(Gender.Male, bob2.Gender);
            Assert.NotNull(bob2.Offense);
        }