public static PunchStats GetPunchStats(FighterRoundStats roundStats) { roundStats.AdjustPunchLuck(); PunchStats ret = new PunchStats(roundStats.AdjustedTactics); ret.PowerPunchesLanded = GetLanded(ret.PowerPunchesAttempted, roundStats.PunchLandPercent); ret.RightsLanded = GetLanded(ret.RightsAttempted, roundStats.PunchLandPercent); ret.JabsLanded = GetLanded(ret.JabsAttempted, roundStats.JabLandPercent); return(ret); }
public void AdjustRing(FighterRoundStats other) { this.AdjustedStats.Agility += 1 * Resources.Style_Multiplier; double diff = this.OriginalStats.Agility - other.OriginalStats.Agility; if (diff > 0) { this.AdjustedStats.Agility += diff * 0.5 * Resources.Style_Multiplier; } this.AdditionalFatigue += 1 * Resources.Style_Multiplier; }
public void AdjustInside(FighterRoundStats other) { this.AdjustedStats.Strength += 1 * Resources.Style_Multiplier; double diff = this.OriginalStats.Strength - other.OriginalStats.Strength; if (diff > 0) { this.AdjustedStats.Strength += diff * 0.5 * Resources.Style_Multiplier; } other.DamageAdjustment *= (1 + 0.1 * Resources.Style_Multiplier); }
public void AdjustOutside(FighterRoundStats other) { this.AdjustedStats.Agility += 0.5; this.AdjustedStats.Speed += 0.5; double diff = this.OriginalStats.Height - other.OriginalStats.Height; if (diff > 0) { this.AdjustedStats.Height += 0.5 * diff * Resources.Style_Multiplier; } this.AdjustedTactics.Power -= this.AdjustedTactics.Power * 0.15 * Resources.Style_Multiplier; }
public void AdjustClinch(FighterRoundStats other) { this.AdjustedStats.Agility += 1 * Resources.Style_Multiplier; double diff = this.OriginalStats.Strength - other.OriginalStats.Strength; if (diff > 0) { this.AdjustedStats.Agility += 0.5 * diff * Resources.Style_Multiplier; } double aggAdjust = other.Plan.Aggressiveness * 0.15 * Resources.Style_Multiplier; this.AdjustedTactics.Aggressiveness -= aggAdjust; this.AdjustedTactics.Rest += aggAdjust; }
public void AdjustRopes(FighterRoundStats other) { this.AdjustedStats.Agility -= 1 * Resources.Style_Multiplier; double diff = this.OriginalStats.Agility - other.OriginalStats.Agility; double adjust = diff * (2d / 3); if (other.OriginalStats.Agility - adjust <= 8) { adjust = other.OriginalStats.Agility - 8; if (adjust < 0) { adjust = 0; } } other.AdjustedStats.Agility -= adjust; }
public void AdjustFeint(FighterRoundStats other) { this.AdjustedStats.Speed += 1 * Resources.Style_Multiplier; double fatigue = this.AdjustedTactics.Aggressiveness + 0.5 * this.AdjustedTactics.Power; if (fatigue >= this.AdjustedStats.Conditioning / 2) { this.AdditionalFatigue += 1 * Resources.Style_Multiplier; } double diff = this.OriginalStats.Speed - other.OriginalStats.Speed; if (diff > 0) { this.AdjustedStats.Speed += diff * 0.5 * Resources.Style_Multiplier; } }
public void SetCutPercent(FighterRoundStats other) { this.CutPercent = 2 - (this.AdjustedStats.CutResistance * 0.5) + this.OriginalStats.NumberOfFights * 0.005; if (other.Plan.TargetArea == TargetArea.Body) { this.CutPercent *= 0.25; } else if (other.Plan.TargetArea == TargetArea.Head || other.Plan.TargetArea == TargetArea.Cut) { this.CutPercent *= 1.5; } this.CutPercent = CutPercent; this.CutAggravatePercent = CutPercent * Resources.CutAggPercentMultiplier; if (other.Plan.TargetArea == TargetArea.Cut) { this.CutAggravatePercent *= 1.5; } }
public void AdjustHeight(FighterRoundStats other) { double diff = this.AdjustedStats.Height - other.AdjustedStats.Height; if (diff > 0) { this.AdjustedStats.Speed += diff / 2; this.AdjustedStats.Agility += diff / 2; this.AdjustedStats.Height -= diff; } else if (diff < 0) { diff *= -1; other.AdjustedStats.Speed += diff / 2; other.AdjustedStats.Agility += diff / 2; other.AdjustedStats.Height -= diff; } }
public void SetPunchAccuracy(FighterRoundStats other) { int rating = this.AdjustedStats.Rating + other.AdjustedStats.Rating; this.PunchLandPercent = PunchStats.GetPercentageNoLuck(this.AdjustedStats.Speed, rating, other.AdjustedStats.Agility, false); this.JabLandPercent = PunchStats.GetPercentageNoLuck(this.AdjustedStats.Speed, rating, other.AdjustedStats.Agility, true); double mult = 15 / (this.AdjustedTactics.Defense + other.AdjustedTactics.Defense); if (this.Plan.TargetArea == TargetArea.Body || this.Plan.TargetArea == TargetArea.Head) { mult *= 0.8; } else if (this.Plan.TargetArea == TargetArea.Cut) { mult *= 0.9; } this.PunchLandPercent *= mult; this.JabLandPercent *= mult; this.PunchLuckAdjusted = false; }
public void AdjustCounter(FighterRoundStats other) { this.AdjustedStats.Strength += 1 * Resources.Style_Multiplier; this.AdjustedTactics.Aggressiveness -= this.AdjustedTactics.Aggressiveness * 0.15 * Resources.Style_Multiplier; double diff = this.OriginalStats.Height + this.OriginalStats.Speed - other.OriginalStats.Height - other.OriginalStats.Speed; double adjust = diff * (1d / 3) * Resources.Style_Multiplier; if (adjust < -1 * this.OriginalStats.Agility * 0.5) { adjust = -1 * this.OriginalStats.Agility * 0.5; } this.AdjustedStats.Agility += adjust; adjust = -1 * diff * (1d / 3) * Resources.Style_Multiplier; if (adjust < -1 * other.OriginalStats.Agility * 0.5) { adjust = -1 * other.OriginalStats.Agility * 0.5; } other.AdjustedStats.Agility += adjust; }
public void AdjustStyle(FightingStyle style, FighterRoundStats other) { switch (style) { case FightingStyle.AllOut: AdjustAllout(other); break; case FightingStyle.Clinch: AdjustClinch(other); break; case FightingStyle.Counter: AdjustCounter(other); break; case FightingStyle.Feint: AdjustFeint(other); break; case FightingStyle.Inside: AdjustInside(other); break; case FightingStyle.Outside: AdjustOutside(other); break; case FightingStyle.Ring: AdjustRing(other); break; case FightingStyle.Ropes: AdjustRopes(other); break; } }
public void AdjustAllout(FighterRoundStats other) { this.DamageAdjustment *= (1 + 1 * Resources.Style_Multiplier); other.DamageAdjustment *= (1 + 3 * Resources.Style_Multiplier); }
public void SetPunches(FighterRoundStats roundStats) { this.PunchStats = PunchStats.GetPunchStats(roundStats); }