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); }
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)); }
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; } } }
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); }
public Cut(CutType type, CutSeverity level) : base(type, level) { }
public CutBase(CutType type, CutSeverity level) { this.Type = type; this.Level = level; }