public void RegisterGangerAdvancementTest() { _gangerManager.RegisterGangerAdvancement("1"); _mockGangerProvider.Verify(m => m.RegisterGangerAdvancement(It.IsAny <string>()), Times.Once); }
/// <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); }