Exemplo n.º 1
0
        void SetControlsWithData(CombatDamageCalculatorInputData data)
        {
            dataUpdateSuspended = true;

            PickPanelData panelData = attackerPickPanel.Data;

            panelData.Unit         = data.Attacker;
            panelData.HeroStats    = data.AttackerHeroStats;
            panelData.Spells       = data.AttackerSpells;
            attackerPickPanel.Data = panelData;

            panelData              = defenderPickPanel.Data;
            panelData.Unit         = data.Defender;
            panelData.HeroStats    = data.DefenderHeroStats;
            panelData.Spells       = data.DefenderSpells;
            defenderPickPanel.Data = panelData;

            if (data.Terrain != null)
            {
                terrainComboBox.SelectedValue = data.Terrain;
            }
            else
            {
                terrainComboBox.SelectedIndex = 0;
            }

            attackerCountUpDn.Value = data.AttackerCount;
            defenderCountUpDn.Value = data.DefenderCount;

            dataUpdateSuspended = false;
        }
Exemplo n.º 2
0
        private void SpellDamagePanelDataChanged(object sender, EventArgs e)
        {
            CombatDamageCalculatorInputData combatData = combatDamagePanel.Data;
            SpellDamageCalculatorData       spellData  = spellDamagePanel.Data;

            combatData.AttackerHeroStats = spellData.CasterHeroStats;
            combatData.Defender          = spellData.Target;

            combatDamagePanel.Data = combatData;
        }
Exemplo n.º 3
0
        private void UpdateCalculatedDamage()
        {
            bool hasInputData = ((Data.Attacker != null) && (Data.Defender != null));

            resultPanel.Visible = hasInputData;
            if (!hasInputData)
            {
                return;
            }

            int    minDamage, maxDamage;
            string notes;

            calculator.CalculateDamage(Data, out minDamage, out maxDamage, out notes);

            int minKills = minDamage / Data.Defender.InitialStats.Health;
            int maxKills = maxDamage / Data.Defender.InitialStats.Health;

            calculatedDamageLbl.Text = FormatRange(minDamage, maxDamage);
            calculatedKillsLbl.Text  = FormatRange(minKills, maxKills);
            notesLbl.Text            = (notes != null) ? "(" + notes + ")" : null;

            //// TODO: refactor this crap

            int    minRetDamage, tempRetDamage, maxRetDamage;
            string retNotes;

            CombatDamageCalculatorInputData retData = Data.InverseData();

            retData.AttackerCount = Math.Max(0, Data.DefenderCount - minKills);
            calculator.CalculateDamage(retData, out tempRetDamage, out maxRetDamage, out retNotes);

            retData.AttackerCount = Math.Max(0, Data.DefenderCount - maxKills);
            calculator.CalculateDamage(retData, out minRetDamage, out tempRetDamage, out retNotes);

            int minRetKills = minRetDamage / retData.Defender.InitialStats.Health;
            int maxRetKills = maxRetDamage / retData.Defender.InitialStats.Health;

            calculatedRetDamageLbl.Text = FormatRange(minRetDamage, maxRetDamage);
            calculatedRetKillsLbl.Text  = FormatRange(minRetKills, maxRetKills);
            retNotesLbl.Text            = (retNotes != null) ? "(" + retNotes + ")" : null;
        }
Exemplo n.º 4
0
        void UpdateDataFromControls(CombatDamageCalculatorInputData data)
        {
            data.Attacker = attackerPickPanel.Data.Unit;
            data.Defender = defenderPickPanel.Data.Unit;

            data.Terrain = (Terrain)terrainComboBox.SelectedValue;
            if (data.Terrain.Id == -1)
            {
                data.Terrain = null;
            }

            data.AttackerHeroStats = attackerPickPanel.Data.HeroStats;
            data.AttackerSpells    = attackerPickPanel.Data.Spells;

            data.DefenderHeroStats = defenderPickPanel.Data.HeroStats;
            data.DefenderSpells    = defenderPickPanel.Data.Spells;

            data.AttackerCount = (int)attackerCountUpDn.Value;
            data.DefenderCount = (int)defenderCountUpDn.Value;
        }