Пример #1
0
 public void RegisterGangerAdvancementTest()
 {
     _gangerManager.RegisterGangerAdvancement("1");
     _mockGangerProvider.Verify(m => m.RegisterGangerAdvancement(It.IsAny <string>()), Times.Once);
 }
Пример #2
0
        /// <summary>
        /// Do an advance roll
        /// </summary>
        /// <param name="ganger">Ganger advancing</param>
        /// <param name="house">Ganger's house</param>
        /// <returns>Ganger level up report</returns>
        public GangerLevelUpReport DoAdvanceRoll(Ganger ganger, GangHouse house)
        {
            GangerStatistics stat = 0;
            int roll           = _diceRoller.RollDice(6, 2);
            int statToIncrease = _diceRoller.RollDie();

            switch (roll)
            {
            case 2:
            case 12:
                var advancementId = _gangerManager.RegisterGangerAdvancement(ganger.GangerId);
                return(new GangerLevelUpReport()
                {
                    Description = "Pick any skill",
                    GangerName = ganger.Name,
                    GangerId = ganger.GangerId,
                    NewSkillFromCategory = new[] { SkillType.Agility, SkillType.Combat, SkillType.Ferocity, SkillType.Muscle, SkillType.Shooting, SkillType.Stealth, SkillType.Techno },
                    AdvancementId = advancementId,
                });

            case 3:
            case 4:
            case 10:
            case 11:
                advancementId = _gangerManager.RegisterGangerAdvancement(ganger.GangerId);
                return(new GangerLevelUpReport()
                {
                    Description = "New gang skill",
                    GangerName = ganger.Name,
                    GangerId = ganger.GangerId,
                    NewSkillFromCategory = GetGangSkill(ganger.GangerType, house),
                    AdvancementId = advancementId,
                });

            case 5:
                stat = (statToIncrease <= 3) ? GangerStatistics.Strength : GangerStatistics.Attack;
                _gangerManager.IncreaseStat(ganger, stat);
                return(new GangerLevelUpReport()
                {
                    Description = Enum.GetName(typeof(GangerStatistics), stat) + " increased",
                    GangerName = ganger.Name,
                    GangerId = ganger.GangerId,
                    NewSkillFromCategory = null,
                });

            case 6:
            case 8:
                stat = (statToIncrease <= 3) ? GangerStatistics.WeaponSkill : GangerStatistics.BallisticSkill;
                _gangerManager.IncreaseStat(ganger, stat);
                return(new GangerLevelUpReport()
                {
                    Description = Enum.GetName(typeof(GangerStatistics), stat) + " increased",
                    GangerName = ganger.Name,
                    GangerId = ganger.GangerId,
                    NewSkillFromCategory = null,
                });

            case 7:
                stat = (statToIncrease <= 3) ? GangerStatistics.Initiative : GangerStatistics.Leadership;
                _gangerManager.IncreaseStat(ganger, stat);
                return(new GangerLevelUpReport()
                {
                    Description = Enum.GetName(typeof(GangerStatistics), stat) + " increased",
                    GangerName = ganger.Name,
                    GangerId = ganger.GangerId,
                    NewSkillFromCategory = null,
                });

            case 9:
                stat = (statToIncrease <= 3) ? GangerStatistics.Wounds : GangerStatistics.Attack;
                _gangerManager.IncreaseStat(ganger, stat);
                return(new GangerLevelUpReport()
                {
                    Description = Enum.GetName(typeof(GangerStatistics), stat) + " increased",
                    GangerName = ganger.Name,
                    GangerId = ganger.GangerId,
                    NewSkillFromCategory = null,
                });
            }

            return(null);
        }