示例#1
0
        public MainForm()
        {
            InitializeComponent();

            database = ObjectDatabase.Database;
            var pw = database.GetUnitByName("Photon Walker");

            var force = new Force
            {
                Name = "Robots Test",
                Formation = database.GetFormationByName("Rage Vindicator")
            };

            force.AddUnit(database.GetUnitByName("Field Marshall Riggs"));
            for (var i = 0; i < force.Formation.AssaultSlots - 1; i++)
                force.AddUnit(pw);
            force.AddUnit(database.GetUnitByName("Mammoth Tank"));
            force.AddUnit(database.GetUnitByName("Beowulf Cluster"));
            force.AddUnit(database.GetUnitByName("Omega, Machine of War"));

            force.AddReinforcement(pw, 2);

            var enemy = new Force
            {
                Name = "Dummy",
                IsEpicBoss = true
            };

            ForceReportTextBox.Text = force.ForceReport(enemy);
            ForceReportTextBox.SelectionStart = ForceReportTextBox.Text.Length;
        }
示例#2
0
        private void RunTests()
        {
            var database = ObjectDatabase.Database;
            var riggs = database.GetUnitByName("Field Marshall Riggs");
            var pw = database.GetUnitByName("Photon Walker");
            var mt = database.GetUnitByName("Mammoth Tank");
            var beowulf = database.GetUnitByName("Beowulf Cluster");
            var omega = database.GetUnitByName("Omega, Machine of War");
            var rageVindi = database.GetFormationByName("Rage Vindicator");

            var force = new Force
            {
                Name = "Robots Test",
                Formation = rageVindi
            };

            var riggsDmg = riggs.CalculateAverageDamage(force, null, null, true);
            var pwNDmg = pw.CalculateAverageDamage(force, null, null, false);
            var pwEDmg = pw.CalculateAverageDamage(force, null, null, true);
            var mtDmg = mt.CalculateAverageDamage(force, null, null, true);
            var omegaDmg = omega.CalculateAverageDamage(force, null, null, true);

            var omegaBoost = pw.CalculateBoostBonus(force, null, omega.Abilities[0].Effects[0], true);
            var mtBoost = mt.CalculateBoostBonus(force, null, rageVindi.Abilities[0].Effects[0], true);

            force.AddUnit(riggs);
            force.AddUnit(riggs);
            for (int i = 0; i < force.Formation.AssaultSlots - 1; i++)
                force.AddUnit(pw);
            force.AddUnit(mt);
            force.AddUnit(beowulf);
            force.AddUnit(omega);

            force.AddReinforcement(pw, 2);

            var boosts = force.GetBoostAbilities();
            var poweredPW = pw.CalculateAverageDamage(force, null, boosts, true); // This is counting the vs epic & vs non-epic twice for rallys

            // These don't count reinforcements from Riggs
            var beoBonus = beowulf.CalculateBoostToForce(force, null, true);
            var rvBonus = rageVindi.CalculateBoostToForce(force, null, true);
            var omegaBonus = omega.CalculateBoostToForce(force, null, true);

            var riggsReinf = riggs.CalculateReinforcedDamage(force, null, boosts, true);

            force.ResetCombat();
            var riggsTotal = riggs.CalculateTotalDamageContribution(force, null, boosts, true);
            var pwTotal = pw.CalculateTotalDamageContribution(force, null, boosts, true);
            var mtTotal = mt.CalculateTotalDamageContribution(force, null, boosts, true);
            var beowulfTotal = beowulf.CalculateTotalDamageContribution(force, null, boosts, true);
            var omegaTotal = omega.CalculateTotalDamageContribution(force, null, boosts, true);

            force.ResetCombat();
            var enemy = new Force
            {
                Name = "Dummy",
                IsEpicBoss = true
            };
            var forceDmg = force.CalculateAverageForceDamage(enemy);
        }