Beispiel #1
0
        public ucCharacterBattle(Core.Units.Character _character, int _numberOfCharacters)
        {
            InitializeComponent();
            this.BackColor = Color.Transparent;
            character = _character;
            numberOfChars = _numberOfCharacters;
            friendTargets = 0;

            labelHealthRemaining.Width = flpHealthBar.Width;
            labelHealthRemaining.Text = character.CurrentHP.IntValue + "/" + character.BuffedHP.IntValue + " (100%)";

            lbTurnpoints.Text = character.CurrentTurnPoints.IntValue.ToString() + " Turnpoints left";

            lbCharStats.Text = Function.GeneralFunctions.ReturnCharBattleString(this.character);

            pictureBoxChar.Image = Function.GeneralFunctions.ReturnImageForClass(character);

            foreach (var item in character.UnitActiveAbilities)
	        {
                comboBoxAbilities.Items.Add(item.AbilityName);
	        }
            selectedAbility = character.UnitActiveAbilities.First();
            comboBoxAbilities.SelectedIndex = 0;
            labelAbilityDescription.Text = selectedAbility.Description;

            if (selectedAbility.DamageOrHealing == EnumActiveAbilityType.Damage)
                checkBoxEnemy.Checked = true;
            else
                checkBoxPlayer1.Checked = false;

            HideInvalidCheckboxes();
        }
Beispiel #2
0
        public ucCharacterBattle(Core.Units.Character _character, int _numberOfCharacters)
        {
            InitializeComponent();
            this.BackColor = Color.Transparent;
            character = _character;
            numberOfChars = _numberOfCharacters;
            friendTargets = 0;

            labelHealthRemaining.Width = flpHealthBar.Width;
            labelHealthRemaining.Text = character.CurrentHP.IntValue + "/" + character.BuffedHP.IntValue + " (100%)";

            lbTurnpoints.Text = character.CurrentTurnPoints.IntValue.ToString() + " Turnpoints left";

            lbCharStats.Text = Function.GeneralFunctions.ReturnCharBattleString(this.character);

            pictureBoxChar.Image = Function.GeneralFunctions.ReturnImageForClass(character);

            foreach (var item in character.UnitActiveAbilities)
            {
                comboBoxAbilities.Items.Add(item.AbilityName);
            }
            selectedAbility = character.UnitActiveAbilities.First();
            comboBoxAbilities.SelectedIndex = 0;
            labelAbilityDescription.Text = selectedAbility.Description;

            if (selectedAbility.DamageOrHealing == EnumActiveAbilityType.Damage)
                checkBoxEnemy.Checked = true;
            else
                checkBoxPlayer1.Checked = false;

            HideInvalidCheckboxes();
        }
Beispiel #3
0
        void ucb_AttackClicked(object sender, EventArgs e)
        {
            Function.SoundManager.PlayButtonSound();
            ucCharacterBattle control = sender as ucCharacterBattle;

            Core.Abilities.ActiveAbility ab = control.ChoosenAbility();

            if (ab.DamageOrHealing == EnumActiveAbilityType.Damage)
            {
                AttackButtonDamage(control, ab);
            }
            else
            {
                AttackButtonHealing(control, ab);
            }

            foreach (var item in flpCharacters.Controls)
            {
                (item as ucCharacterBattle).Update();
            }

            (flpNPCs.Controls[0] as ucNPC).Update();

            CheckNPCHealth();
        }
Beispiel #4
0
        private void AttackButtonHealing(ucCharacterBattle control, Core.Abilities.ActiveAbility ab)
        {
            if (control.CheckBoxP1Status || control.CheckBoxP2Status || control.CheckBoxP3Status || control.CheckBoxP4Status || Function.CombatHandler.RequiresNoTarget(ab))
            {
                List <int> indexes = new List <int>();

                if (control.CheckBoxP1Status)
                {
                    indexes.Add(0);
                }
                if (control.CheckBoxP2Status)
                {
                    indexes.Add(1);
                }
                if (control.CheckBoxP3Status)
                {
                    indexes.Add(2);
                }
                if (control.CheckBoxP4Status)
                {
                    indexes.Add(3);
                }

                int previousHP = 0;
                int postHP     = 0;

                foreach (var item in battleChars)
                {
                    previousHP += item.CurrentHP.IntValue;
                }

                ab.UseAbility(control.Character(), battleChars, indexes, enemy);

                foreach (var item in battleChars)
                {
                    postHP += item.CurrentHP.IntValue;
                }

                if (postHP > previousHP)
                {
                    healingDone += Math.Abs(postHP - previousHP);
                }

                UpdateIndexedControls(indexes);

                Function.RichTextBoxExtensions.AppendText(richTextBoxActionbox, "[" + DateTime.Now.ToShortTimeString() + "] ", Color.DarkSeaGreen);
                Function.RichTextBoxExtensions.AppendText(richTextBoxActionbox, ab.ChatString + Environment.NewLine, Color.DarkOrange);
            }
            else
            {
                RPG.UI.MessageForm mes = new MessageForm("You have no target!");
                mes.ShowDialog();
            }
        }
Beispiel #5
0
        private void comboBoxAbilities_SelectedIndexChanged(object sender, EventArgs e)
        {
            selectedAbility = character.UnitActiveAbilities[comboBoxAbilities.SelectedIndex];
            labelAbilityDescription.Text = selectedAbility.Description;

            foreach (var item in groupBoxTargets.Controls)
            {
                (item as CheckBox).Checked = false;
            }

            if (selectedAbility.DamageOrHealing == EnumActiveAbilityType.Damage)
                checkBoxEnemy.Checked = true;

            HideInvalidCheckboxes();
        }
Beispiel #6
0
        private void AttackButtonDamage(ucCharacterBattle control, Core.Abilities.ActiveAbility ab)
        {
            if (control.CheckBoxEnemyStatus)
            {
                int previousHP        = 0;
                int postHP            = 0;
                int previousMonsterHP = 0;
                int postMonsterHP     = 0;

                foreach (var item in battleChars)
                {
                    previousHP += item.CurrentHP.IntValue;
                }

                previousMonsterHP = enemy.CurrentHP.IntValue;

                ab.UseAbility(control.Character(), battleChars, null, enemy);

                foreach (var item in battleChars)
                {
                    postHP += item.CurrentHP.IntValue;
                }

                postMonsterHP = enemy.CurrentHP.IntValue;

                if (postHP > previousHP)
                {
                    healingDone += Math.Abs(postHP - previousHP);
                }

                if (postMonsterHP > previousMonsterHP)
                {
                    damageDone += Math.Abs(postMonsterHP - previousMonsterHP);
                }

                Function.RichTextBoxExtensions.AppendText(richTextBoxActionbox, "[" + DateTime.Now.ToShortTimeString() + "] ", Color.DarkSeaGreen);
                Function.RichTextBoxExtensions.AppendText(richTextBoxActionbox, ab.ChatString + Environment.NewLine, Color.DarkOrange);

                CheckPlayersHealth();
            }
            else
            {
                RPG.UI.MessageForm mes = new MessageForm("You have no target!");
                mes.ShowDialog();
            }
        }
Beispiel #7
0
        private void comboBoxAbilities_SelectedIndexChanged(object sender, EventArgs e)
        {
            selectedAbility = character.UnitActiveAbilities[comboBoxAbilities.SelectedIndex];
            labelAbilityDescription.Text = selectedAbility.Description;

            foreach (var item in groupBoxTargets.Controls)
            {
                (item as CheckBox).Checked = false;
            }

            if (selectedAbility.DamageOrHealing == EnumActiveAbilityType.Damage)
                checkBoxEnemy.Checked = true;

            HideInvalidCheckboxes();
        }