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(); }
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(); }
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(); }
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(); } }
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(); }
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(); } }
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(); }