public void CanRT_Compendium() { //var creator = new BeingCreator(__factory); var publisher = new BookPublisher(_creator); var tomeOfChaos = publisher.Tome_FromNew("gloop"); var herbal = new Herbal(); var socialRegister = new SocialRegister(_creator); var dramaticon = new Dramaticon(); var atlas = new Atlas(); var idGen = new IDGenerator(33); var compendium = new Compendium(idGen, _creator, tomeOfChaos, herbal, socialRegister, dramaticon, atlas); var yaml = _serializer.Serialize(compendium); Assert.That(yaml, Is.Not.Null); var newBook = _deserializer.Deserialize <IBook>(yaml); Assert.That(newBook, Is.TypeOf <Compendium>()); var newCompendium = (Compendium)newBook; Assert.That(newCompendium.IDGenerator.UseID(), Is.EqualTo(33)); Assert.That(newCompendium.TomeOfChaos.TopSeed, Is.EqualTo("gloop")); //TODO: slightly more muscular checks once these books go beyond placeholders Assert.That(newCompendium.Herbal, Is.Not.Null); Assert.That(newCompendium.SocialRegister, Is.Not.Null); Assert.That(newCompendium.Dramaticon, Is.Not.Null); Assert.That(newCompendium.Atlas, Is.Not.Null); }
private void ScrambleSeeds(TomeOfChaos tome, Herbal herbal) { var shuffled = SeedAdjectives .OrderBy(d => tome.LearnableRndNext()).ToList(); foreach (var key in herbal.PlantByID.Keys) { herbal.PlantByID[key].SeedAdjective = shuffled[0]; shuffled.RemoveAt(0); } }
public Herbal Herbal_FromYaml(IParser parser) { parser.Consume <MappingStart>(); Herbal herbal = new Herbal(); while (parser.TryConsume <Scalar>(out var evt) && evt.Value == "Plant") { herbal.AddPlant(ParsePlantDetails(parser)); } parser.Consume <MappingEnd>(); return(herbal); }
public void CanRT_Herbal() { //if (!Debugger.IsAttached) Debugger.Launch(); var herbal = new Herbal(); var thorny = new PlantDetails { ID = 77, MainName = "Thornfriend", FruitAdjective = "Luminous", FruitKnown = true, SeedAdjective = "Knobbly", SeedKnown = true, GrowthTime = 234, }; var boomy = new PlantDetails { ID = 88, MainName = "Boomer", FruitAdjective = "Singed", FruitKnown = false, SeedAdjective = "Dark", SeedKnown = false, GrowthTime = 432, }; herbal.AddPlant(thorny); herbal.AddPlant(boomy); var yaml = _serializer.Serialize(herbal); Assert.That(yaml, Is.Not.Null); var newBook = _deserializer.Deserialize <IBook>(yaml); Assert.That(newBook, Is.TypeOf <Herbal>()); var newHerbal = (Herbal)newBook; var newDetail = newHerbal.PlantByID[77]; Assert.That(newDetail.MainName, Is.EqualTo("Thornfriend")); }
public Herbal Herbal_FromNew() { Herbal herbal = new Herbal(); herbal.PlantByID = new Dictionary <uint, PlantDetails>(); herbal.PlantByName = new Dictionary <string, PlantDetails>(); PlantDetails plant; //0.1.WORLD Flesh out the plant list, and tuck it into YAML config. plant = new PlantDetails { ID = 1, MainName = "Boomer", GrowthTime = 400, }; herbal.PlantByID[plant.ID] = plant; herbal.PlantByName[plant.MainName] = plant; plant = new PlantDetails { ID = 2, MainName = "Healer", GrowthTime = 400, }; herbal.PlantByID[plant.ID] = plant; herbal.PlantByName[plant.MainName] = plant; plant = new PlantDetails { ID = 3, MainName = "Thornfriend", GrowthTime = 400, }; herbal.PlantByID[plant.ID] = plant; herbal.PlantByName[plant.MainName] = plant; return(herbal); }
public IBook Compendium_FromYaml(IParser parser) { parser.Consume <MappingStart>(); uint nextID = uint.Parse(parser.GetKVP_string("NextID")); IDGenerator idGen = new IDGenerator(nextID); TomeOfChaos tome = null; Herbal herbal = null; SocialRegister register = null; Dramaticon drama = null; Atlas atlas = null; while (parser.TryConsume <Scalar>(out var next)) { switch (next.Value) { case "TomeOfChaos": tome = Tome_FromYaml(parser); break; case "Herbal": herbal = Herbal_FromYaml(parser); break; case "SocialRegister": register = Register_FromYaml(parser, BeingCreator); break; case "Dramaticon": drama = Dramaticon_FromYaml(parser); break; case "Atlas": atlas = Atlas_FromYaml(parser); break; default: throw new NotImplementedException($"Cannot yet parse a [{next.Value}] for Compendium."); } } var compendium = new Compendium(idGen, BeingCreator, tome, herbal, register, drama, atlas); parser.Consume <MappingEnd>(); return(compendium); }
public void Scramble(TomeOfChaos tome, Herbal herbal) { ScrambleSeeds(tome, herbal); ScrambleFruit(tome, herbal); }