Пример #1
0
        public void NoStatsEffectTest()
        {
            var injury = _injuryManager.GetInjury((int)InjuryEnum.FullRecovery);

            var injuredGanger = injury.InjuryEffect(_ganger);

            DoAssertions(injuredGanger, 4, 3, 3, 3, 3, 1, 1, 7, 7, true);
        }
Пример #2
0
        private TerritoryIncomeReport ChemPit(TerritoryWorkStatus status)
        {
            if (status.Roll == 12)
            {
                // ganger gets horrible scars
                var scars = _injuryManager.GetInjury((int)InjuryEnum.HorribleScars);
                status.Ganger = scars.InjuryEffect(status.Ganger);
                _gangerManager.UpdateGanger(status.Ganger);

                return(new TerritoryIncomeReport()
                {
                    TerritoryName = status.TerritoryName,
                    Description = $"{status.Ganger.Name} has fallen into the chem pits and now has Horrible Scars. No income is collected.",
                    Income = 0,
                });
            }

            return(new TerritoryIncomeReport()
            {
                TerritoryName = status.TerritoryName,
                Income = status.Roll,
            });
        }
Пример #3
0
        /// <summary>
        /// Determine injury
        /// </summary>
        /// <param name="roll">Dice roll</param>
        /// <returns>List of injuries</returns>
        public IEnumerable <Injury> DetermineInjury(int?roll)
        {
            if (!roll.HasValue)
            {
                roll = _diceRoller.RollD66();
            }

            switch (roll.Value)
            {
            case 11:
            case 12:
            case 13:
            case 14:
            case 15:
            case 16:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.Dead) });

            case 21:
                var injuries = new List <Injury>();
                injuries.Add(_injuryManager.GetInjury((int)InjuryEnum.MultipleInjuries));
                var extraInjuries = _diceRoller.RollDie();
                for (int i = 0; i < extraInjuries; i++)
                {
                    injuries.Add(DetermineInjury(_diceRoller.MultipleInjuriesRoll()).FirstOrDefault());
                }

                return(injuries);

            case 22:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.ChestWound) });

            case 23:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.LegWound) });

            case 24:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.ArmWound) });

            case 25:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.HeadWound) });

            case 26:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.BlindedInOneEye) });

            case 31:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.PartiallyDeafened) });

            case 32:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.ShellShock) });

            case 33:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.HandInjury) });

            case 34:
            case 35:
            case 36:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.OldBattleWound) });

            case 41:
            case 42:
            case 43:
            case 44:
            case 45:
            case 46:
            case 51:
            case 52:
            case 53:
            case 54:
            case 55:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.FullRecovery) });

            case 56:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.BitterEnmity) });

            case 61:
            case 62:
            case 63:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.Captured) });

            case 64:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.HorribleScars) });

            case 65:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.ImpressiveScars) });

            case 66:
                return(new[] { _injuryManager.GetInjury((int)InjuryEnum.SurvivesAgainstTheOdds) });

            default:
                HivemindException.NoSuchInjuryException(roll.Value);
                return(new Injury[] { });
            }
        }