Exemplo n.º 1
0
        public static CutPenalty CutGroupPenalty(CutGroup cutGroup, CutSeverity level)
        {
            CutPenalty cp = new CutPenalty();

            if (cutGroup == CutGroup.BleedAbove)
            {
                cp.SpeedPenalty += 0.5 * (int)level;
                if (level == CutSeverity.High)
                {
                    cp.AgilityPenalty += 0.5;
                }
                else if (level == CutSeverity.Critical)
                {
                    cp.AgilityPenalty += 1;
                }
            }
            //else if (cutGroup == CutGroup.BleedBelow)
            //{
            //    double penalty = ((int) level - 1) * 0.5;
            //    cp.SpeedPenalty += penalty;
            //    cp.AgilityPenalty += penalty;
            //}
            else if (cutGroup == CutGroup.Swell && (int)level >= 2)
            {
                double penalty = (level == CutSeverity.Medium) ? 0.5 : level == CutSeverity.High ? 1.5 : 3.0;
                cp.AgilityPenalty += penalty;
                cp.SpeedPenalty   += penalty;
            }
            else if (cutGroup == CutGroup.Nose)
            {
                cp.FatiguePenalty = 1;
            }
            return(cp);
        }
Exemplo n.º 2
0
        public static Cut RandomCut()
        {
            double r = RandomGen.RANDOM_GEN.NextDouble();

            CutType cType = CutType.SwellRight;

            if (r < 0.1)
            {
                cType = CutType.BleedAboveLeft;
            }
            else if (r < 0.2)
            {
                cType = CutType.BleedAboveRight;
            }
            else if (r < 0.3)
            {
                cType = CutType.BleedBelowLeft;
            }
            else if (r < 0.4)
            {
                cType = CutType.BleedBelowRight;
            }
            else if (r < 0.5)
            {
                cType = CutType.InjuredJaw;
            }
            else if (r < 0.6)
            {
                cType = CutType.InjuredNose;
            }
            else if (r < 0.8)
            {
                cType = CutType.SwellLeft;
            }
            CutSeverity severity = CutSeverity.Low;

            if (cType != CutType.SwellLeft && cType != CutType.SwellRight)
            {
                if (RandomGen.CheckRandom(2d / 3))
                {
                    severity = CutSeverity.Low;
                }
                else if (RandomGen.CheckRandom(2d / 3))
                {
                    severity = CutSeverity.Medium;
                }
                else if (RandomGen.CheckRandom(2d / 3))
                {
                    severity = CutSeverity.High;
                }
                else
                {
                    severity = CutSeverity.Critical;
                }
            }
            return(new Cut(cType, severity));
        }
Exemplo n.º 3
0
        public CutPenalty this[CutSeverity level]
        {
            get
            {
                switch (level)
                {
                case CutSeverity.Low:
                    return(Low);

                case CutSeverity.Medium:
                    return(Medium);

                case CutSeverity.High:
                    return(High);

                case CutSeverity.Critical:
                    return(Critical);

                default:
                    return(Low);
                }
            }
            set
            {
                switch (level)
                {
                case CutSeverity.Low:
                    this.Low = value;
                    break;

                case CutSeverity.Medium:
                    this.Medium = value;
                    break;

                case CutSeverity.High:
                    this.High = value;
                    break;

                case CutSeverity.Critical:
                    this.Critical = value;
                    break;
                }
            }
        }
Exemplo n.º 4
0
        public static CutSeverity PromoteNonSwell(CutSeverity start)
        {
            if (start == CutSeverity.High || start == CutSeverity.Critical)
            {
                return(CutSeverity.Critical);
            }
            if (start == CutSeverity.Medium)
            {
                bool isCritical = RandomGen.CheckRandom(1d / 3);
                return((isCritical) ? CutSeverity.Critical : CutSeverity.High);
            }

            if (RandomGen.CheckRandom(2d / 3))
            {
                return(CutSeverity.Medium);
            }
            else if (RandomGen.CheckRandom(2d / 3))
            {
                return(CutSeverity.High);
            }
            return(CutSeverity.Critical);
        }
Exemplo n.º 5
0
 public Cut(CutType type, CutSeverity level) : base(type, level)
 {
 }
Exemplo n.º 6
0
 public CutBase(CutType type, CutSeverity level)
 {
     this.Type  = type;
     this.Level = level;
 }