Example #1
0
        public void Execute(Utility.ComponentContainer components)
        {
            RogueTalent selected = null;

            var characterTalents = components.GetAll <RogueTalent>();
            var availableTalents = this.rogueTalentGateway.Where(talent =>
                                                                 (!talent.IsAdvancedTalent ||
                                                                  talent.IsAdvancedTalent == selectAdvanced) &&
                                                                 characterTalents.None(x => x.Matches(talent.Name)));

            //Prefer Advanced Talents

            var advanced = availableTalents.Where(x => x.IsAdvancedTalent);

            if (advanced.Count() > 0)
            {
                selected = advanced.ChooseOne();
            }
            else
            {
                selected = availableTalents.ChooseOne();
            }

            components.Add(selected);
        }
Example #2
0
        public void ParseSneakAttackTalents()
        {
            var talentYaml = @"
- name: Talent
  sneak-attack: true".ParseYaml().Children.First();
            var talent     = new RogueTalent(talentYaml);

            Assert.Equal(talent.Name, "Talent");
            Assert.True(talent.IsSneakAttack);
        }
Example #3
0
        public void ParseAdvancedTalents()
        {
            var talentYaml = @"
- name: Talent
  advanced-talent: true".ParseYaml().Children.First();
            var talent     = new RogueTalent(talentYaml);

            Assert.Equal(talent.Name, "Talent");
            Assert.True(talent.IsAdvancedTalent);
        }
Example #4
0
        public SelectRogueTalentTests()
        {
            var basicData = new MemoryStore();

            basicData.SetValue("name", "Basic Talent");
            basicTalent = new RogueTalent(basicData);

            var advData = new MemoryStore();

            advData.SetValue("name", "Advanced Talent");
            advData.SetValue("advanced-talent", "true");
            advancedTalent = new RogueTalent(advData);

            Talents = EntityGateway <RogueTalent> .LoadFromList(new RogueTalent[] { basicTalent, advancedTalent });
        }