示例#1
0
            public void Indexer_Returns_Negative_When_No_Stat()
            {
                StatBlock sut = StatBlock.With()
                                .Str(13).Build();

                Check.That(sut[Stat.Dex]).IsEqualTo(-1);
            }
示例#2
0
            public void Utility_Property_Returns_Negative_When_No_Stat()
            {
                StatBlock sut = StatBlock.With()
                                .Str(13).Build();

                Check.That(sut.Dex).IsEqualTo(-1);
            }
示例#3
0
        public void Can_Check_That_Character_Does_Not_Satisfy()
        {
            var character = new Character(StatBlock.With().Default().Str(13).Dex(15).Wis(10).Build());
            var sut       = new StatPrereq(StatBlock.With().Dex(15).Wis(9).Str(15).Build());

            Check.That(sut.IsSatisfiedBy(character)).IsFalse();
        }
示例#4
0
        public void Can_Be_Created()
        {
            var sut = new StatPrereq(StatBlock.With().Dex(15).Wis(13).Build());

            Check.That(sut.Constraints).HasSize(2)
            .And.ContainsPair(Stat.Dex, 15)
            .And.ContainsPair(Stat.Wis, 13);
        }
            public void Can_Check_Stat_Prereqs_When_False()
            {
                var       character = new Character(StatBlock.With().Default().Str(14).Build());
                StatBlock prereq    = StatBlock.With().Str(15).Build();
                Feat      sut       = FeatBuilder.Get().Build();

                sut.AddStatPrereq(prereq);

                Check.That(sut.CanBeTakenBy(character)).IsFalse();
            }
示例#6
0
            public void Can_Be_Converted_To_String()
            {
                StatBlock sut = StatBlock.With()
                                .Str(13).Dex(14).Con(15)
                                .Wis(17).Cha(18)
                                .Bab(3).Cl(5).Build();

                string str = sut.ToString();

                Check.That(str).IsEqualTo("STR: 13; DEX: 14; CON: 15; INT: -1; WIS: 17; CHA: 18; BAB: 3; CL: 5;");
            }
            public void Can_Check_Complex_Prereqs_When_Satisfies()
            {
                Feat feat      = FeatBuilder.Get().Build();
                var  character = new Character(StatBlock.With().Default().Str(14).Build(),
                                               new[] { feat });
                StatBlock stat = StatBlock.With().Str(13).Build();
                Feat      sut  = FeatBuilder.Get().Build();

                sut.AddFeatPrereq(feat);
                sut.AddStatPrereq(stat);

                Check.That(sut.CanBeTakenBy(character)).IsTrue();
            }
            public void Can_Add_Stat_Prereqs()
            {
                StatBlock stat = StatBlock.With().Str(15).Bab(6).Build();
                Feat      sut  = FeatBuilder.Get().Build();

                sut.AddStatPrereq(stat);

                Check.That(sut.Prereqs).HasSize(1);
                Check.That(sut.PrereqFeats).IsEmpty();
                Check.That(sut.Prereqs.First()).IsInstanceOf <StatPrereq>();
                Check.That(((StatPrereq)sut.Prereqs.First()).Constraints)
                .HasSize(2).And.ContainsPair(Stat.Str, 15)
                .And.ContainsPair(Stat.Bab, 6);
            }
示例#9
0
            public void Can_Be_Created_By_Builder_With_Defaults()
            {
                StatBlock sut = StatBlock.With().Default()
                                .Str(13).Build();

                Check.That(sut.Stats).HasSize(7);
                Check.That(sut.Stats[Stat.Str]).IsEqualTo(13);
                Check.That(sut.Stats[Stat.Dex]).IsEqualTo(10);
                Check.That(sut.Stats[Stat.Con]).IsEqualTo(10);
                Check.That(sut.Stats[Stat.Int]).IsEqualTo(10);
                Check.That(sut.Stats[Stat.Wis]).IsEqualTo(10);
                Check.That(sut.Stats[Stat.Cha]).IsEqualTo(10);
                Check.That(sut.Stats[Stat.Bab]).IsEqualTo(1);
                Check.That(sut.Stats).Not.ContainsKey(Stat.Cl);
            }
示例#10
0
            public void Can_Check_Complex_Prereqs_When_Does_Not_Satisfy(bool goodFeat, bool goodStat)
            {
                Feat feat      = FeatBuilder.Get().Build();
                var  character = new Character(
                    StatBlock.With().Default()
                    .Str(goodStat ? 14 : 12).Build(),
                    goodFeat ? new[] { feat } : new Feat[] {}
                    );
                StatBlock stat = StatBlock.With().Str(13).Build();
                Feat      sut  = FeatBuilder.Get().Build();

                sut.AddFeatPrereq(feat);
                sut.AddStatPrereq(stat);

                Check.That(sut.CanBeTakenBy(character)).IsFalse();
            }
示例#11
0
            public void Can_Be_Accessed_With_Utility_Properties()
            {
                StatBlock sut = StatBlock.With()
                                .Str(13).Dex(14).Con(15)
                                .Int(16).Wis(17).Cha(18)
                                .Bab(3).Cl(5).Build();

                Check.That(sut.Str).IsEqualTo(13);
                Check.That(sut.Dex).IsEqualTo(14);
                Check.That(sut.Con).IsEqualTo(15);
                Check.That(sut.Int).IsEqualTo(16);
                Check.That(sut.Wis).IsEqualTo(17);
                Check.That(sut.Cha).IsEqualTo(18);
                Check.That(sut.Bab).IsEqualTo(3);
                Check.That(sut.Cl).IsEqualTo(5);
            }
示例#12
0
            public void Can_Be_Accessed_With_Indexer()
            {
                StatBlock sut = StatBlock.With()
                                .Str(13).Dex(14).Con(15)
                                .Int(16).Wis(17).Cha(18)
                                .Bab(3).Cl(5).Build();

                Check.That(sut[Stat.Str]).IsEqualTo(13);
                Check.That(sut[Stat.Dex]).IsEqualTo(14);
                Check.That(sut[Stat.Con]).IsEqualTo(15);
                Check.That(sut[Stat.Int]).IsEqualTo(16);
                Check.That(sut[Stat.Wis]).IsEqualTo(17);
                Check.That(sut[Stat.Cha]).IsEqualTo(18);
                Check.That(sut[Stat.Bab]).IsEqualTo(3);
                Check.That(sut[Stat.Cl]).IsEqualTo(5);
            }
示例#13
0
            public void Can_Be_Created_By_Builder()
            {
                StatBlock sut = StatBlock.With()
                                .Str(13).Dex(14).Con(15)
                                .Int(16).Wis(17).Cha(18)
                                .Bab(3).Cl(5).Build();

                Check.That(sut.Stats).HasSize(8);
                Check.That(sut.Stats[Stat.Str]).IsEqualTo(13);
                Check.That(sut.Stats[Stat.Dex]).IsEqualTo(14);
                Check.That(sut.Stats[Stat.Con]).IsEqualTo(15);
                Check.That(sut.Stats[Stat.Int]).IsEqualTo(16);
                Check.That(sut.Stats[Stat.Wis]).IsEqualTo(17);
                Check.That(sut.Stats[Stat.Cha]).IsEqualTo(18);
                Check.That(sut.Stats[Stat.Bab]).IsEqualTo(3);
                Check.That(sut.Stats[Stat.Cl]).IsEqualTo(5);
            }
示例#14
0
        public void Can_Be_Created_With_Custom_Stats()
        {
            StatBlock stats = StatBlock.With()
                              .Str(13).Dex(14).Con(15)
                              .Int(16).Wis(17).Cha(18)
                              .Bab(3).Cl(5).Build();

            var sut = new Character(stats);

            Check.That(sut.Stats.Str).IsEqualTo(13);
            Check.That(sut.Stats.Dex).IsEqualTo(14);
            Check.That(sut.Stats.Con).IsEqualTo(15);
            Check.That(sut.Stats.Int).IsEqualTo(16);
            Check.That(sut.Stats.Wis).IsEqualTo(17);
            Check.That(sut.Stats.Cha).IsEqualTo(18);
            Check.That(sut.Stats.Bab).IsEqualTo(3);
            Check.That(sut.Stats.Cl).IsEqualTo(5);

            Check.That(sut.Feats).HasSize(0);
        }
示例#15
0
        public void Can_Be_Created_With_Feats_And_Stats()
        {
            StatBlock stats = StatBlock.With()
                              .Str(13).Dex(14).Con(15)
                              .Int(16).Wis(17).Cha(18)
                              .Bab(3).Cl(5).Build();
            Feat feat  = FeatBuilder.Get().Build();
            Feat feat2 = FeatBuilder.Get(2).Build();

            var sut = new Character(stats, new [] { feat, feat2 });

            Check.That(sut.Feats).HasSize(2);
            Check.That(sut.Feats).Contains(feat, feat2).InThatOrder();

            Check.That(sut.Stats.Str).IsEqualTo(13);
            Check.That(sut.Stats.Dex).IsEqualTo(14);
            Check.That(sut.Stats.Con).IsEqualTo(15);
            Check.That(sut.Stats.Int).IsEqualTo(16);
            Check.That(sut.Stats.Wis).IsEqualTo(17);
            Check.That(sut.Stats.Cha).IsEqualTo(18);
            Check.That(sut.Stats.Bab).IsEqualTo(3);
            Check.That(sut.Stats.Cl).IsEqualTo(5);
        }