Ejemplo n.º 1
0
        public static void ParseDamage(Round res, string text)
        {
            MatchCollection col = Regex.Matches(text, RegexConstants.Damage);

            res.Fighter1Round.DamageDealt = new RoundDamage();
            RoundDamage rdF1 = new RoundDamage()
            {
                EnduranceDamage = col[0].GroupAsDouble("edmg"),
                StunDamage      = col[0].GroupAsDouble("sdmg")
            };

            res.Fighter1Round.DamageReceived = rdF1;
            res.Fighter2Round.DamageDealt    = rdF1;

            RoundDamage rdF2 = new RoundDamage()
            {
                EnduranceDamage = col[1].GroupAsDouble("edmg"),
                StunDamage      = col[1].GroupAsDouble("sdmg")
            };

            res.Fighter2Round.DamageReceived = rdF2;
            res.Fighter1Round.DamageDealt    = rdF2;

            res.Fighter1Round.FatigueEndRound = col[0].GroupAsDouble("fatigue");
            res.Fighter2Round.FatigueEndRound = col[1].GroupAsDouble("fatigue");
        }
Ejemplo n.º 2
0
        private void CompareDamage()
        {
            Fight f = Shared.Locator().FightResults.Fight;

            Resources.FatigueBeforeCut = this.FatigueBeforeCut;
            if (f != null)
            {
                this.CompareResults = f.CompareToCalculated();
                RoundDamage sum = RoundDamage.Sum(this.CompareResults.Select(c => c.Diff));
                this.DiffDescription = String.Format("Total diff: E: {0:0.00}, S: {1:0.00}", sum.EnduranceDamage, sum.StunDamage);
            }
        }
Ejemplo n.º 3
0
        public static bool IsDamageEqual(this Data.FighterRound dataFighterRound, RoundDamage damage, double threshold = 0)
        {
            double diff = Math.Abs(Math.Round(dataFighterRound.Stun_Damage, 1) - Math.Round(damage.StunDamage, 1));

            if (diff > threshold)
            {
                return(false);
            }
            return(true);
            //diff = Math.Abs(Math.Round(dataFighterRound.Endurance_Damage, 1) - Math.Round(damage.EnduranceDamage, 1));
            //if(diff > threshold)
            //{
            //    return false;
            //}
            //return true;
        }
Ejemplo n.º 4
0
        public static RoundDamage CalculateDamageForDataRound(Data.Round round, FighterStats fStats, FighterStats oStats, List <CutBase> cuts, bool isFirst)
        {
            Data.FighterRound round1    = (isFirst) ? round.First : round.Second;
            Data.FighterRound round2    = (isFirst) ? round.Second : round.First;
            FighterStats      adjusted1 = FighterStats.FatigueStats(fStats, round1.Endurance_Start);
            FighterStats      adjusted2 = FighterStats.FatigueStats(oStats, round2.Endurance_Start);
            FighterRoundPlan  fp1       = new FighterRoundPlan(round1.Tactic);
            FighterRoundPlan  fp2       = new FighterRoundPlan(round2.Tactic);

            if (cuts != null)
            {
                adjusted1.AdjustCutStats(cuts);
            }
            RoundDamage ret = RoundDamage.CalculateRoundDamage(adjusted1, fp1, adjusted2, fp2, fp1.TargetArea);

            return(ret);
        }
Ejemplo n.º 5
0
        public static bool RoundMatchesExpectations(Data.Round round, FighterStats f1Stats, FighterStats f2Stats, bool skipCuts, double threshold = 0)
        {
            List <CutBase> cuts1 = skipCuts ? new List <CutBase>() : round.First.GetCutsForDataRound();
            List <CutBase> cuts2 = skipCuts ? new List <CutBase>() : round.Second.GetCutsForDataRound();

            RoundDamage rd = CalculateDamageForDataRound(round, f1Stats, f2Stats, cuts1, true);

            if (!IsDamageEqual(round.First, rd, threshold))
            {
                return(false);
            }
            RoundDamage rd2 = CalculateDamageForDataRound(round, f2Stats, f1Stats, cuts2, false);

            if (!IsDamageEqual(round.Second, rd2, threshold))
            {
                return(false);
            }
            return(true);
        }