Example #1
0
 public PivotFighter(FighterStats stats, FightPlan fightPlan, string name, TrainingStat trainingStat)
 {
     this.Stats           = stats;
     this.FightPlan       = fightPlan;
     this.Name            = name;
     this.StatAdjustments = GetStatAdjustment(trainingStat);
 }
Example #2
0
 public FighterFight(FighterStats stats, FightPlan fp)
 {
     this.Fighter = new Fighter()
     {
         Stats = stats
     };
     this.FightPlan = fp;
     Reset();
 }
Example #3
0
        public static FightTracker GetFightTracker()
        {
            Weebul.Core.Model.Fighter f1 = new Weebul.Core.Model.Fighter()

            {
                Stats = new FighterStats(Shared.Locator().Fighter1.SelectedFighter)
            };

            Weebul.Core.Model.Fighter f2 = new Weebul.Core.Model.Fighter()
            {
                Stats = new FighterStats(Shared.Locator().Fighter2.SelectedFighter)
            };

            Weebul.Core.Model.FightPlan fp1 = new Weebul.Core.Model.FightPlan()
            {
                FightPlanText = Shared.Locator().FightPlanF1.FightPlanText,
                WeblScript    = new Scripting.WeblScript()
            };
            Weebul.Core.Model.FightPlan fp2 = new Weebul.Core.Model.FightPlan()
            {
                FightPlanText = Shared.Locator().FightPlanF2.FightPlanText,
                WeblScript    = new Scripting.WeblScript()
            };
            if (!fp1.Validate())
            {
                MessageBox.Show("Fight plan 1 is invalid");
                return(null);
            }
            if (!fp2.Validate())
            {
                MessageBox.Show("Fight plan 2 is invalid");
                return(null);
            }

            FightTracker tracker = new FightTracker(f1, f2, fp1, fp2, Shared.Locator().Options.Options);

            return(tracker);
        }
Example #4
0
 public FightTracker(Fighter fighter1, Fighter fighter2, FightPlan fighter1Plan, FightPlan fighter2Plan, FightOptions options) : this()
 {
     this.Fighter1 = new FighterFight(fighter1, fighter1Plan);
     this.Fighter2 = new FighterFight(fighter2, fighter2Plan);
     this.Options  = options;
 }
Example #5
0
        public static List <Fight> PlayMultiple(int numberOfTimes, Fighter f1, Fighter f2, FightPlan fp1, FightPlan fp2, FightOptions options)
        {
            int perEach = numberOfTimes / 20;
            var results = new ConcurrentBag <List <Fight> >();

            Parallel.For(0, 20, (i) =>
            {
                FightTracker tracker = new FightTracker(f1, f2, fp1.Copy(), fp2.Copy(), options);
                List <Fight> resTemp = tracker.PlayFights(perEach);
                results.Add(resTemp);
            });
            List <Fight> ret = results.SelectMany(fr => fr).ToList();

            if (ret.Count < numberOfTimes)
            {
                int          numSim  = ret.Count - numberOfTimes;
                FightTracker tracker = new FightTracker(f1, f2, fp1.Copy(), fp2.Copy(), options);
                var          v       = tracker.PlayFights(numSim);
                foreach (var res in v)
                {
                    ret.Add(res);
                }
            }
            return(ret);
        }
Example #6
0
 public FighterFight(Fighter fighter, FightPlan fp)
 {
     this.Fighter   = fighter;
     this.FightPlan = fp;
     Reset();
 }