Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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;
        }
Exemplo n.º 7
0
        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;
            }
        }
Exemplo n.º 8
0
 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;
     }
 }
Exemplo n.º 9
0
        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;
            }
        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
        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;
        }
Exemplo n.º 12
0
        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;
            }
        }
Exemplo n.º 13
0
 public void AdjustAllout(FighterRoundStats other)
 {
     this.DamageAdjustment  *= (1 + 1 * Resources.Style_Multiplier);
     other.DamageAdjustment *= (1 + 3 * Resources.Style_Multiplier);
 }
Exemplo n.º 14
0
 public void SetPunches(FighterRoundStats roundStats)
 {
     this.PunchStats = PunchStats.GetPunchStats(roundStats);
 }