diff --git a/MonsterAttack.cs b/MonsterAttack.cs new file mode 100644 index 0000000..63080f4 --- /dev/null +++ b/MonsterAttack.cs @@ -0,0 +1,176 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace cdda_item_creator +{ + public class MonsterAttack + { + public string AttackType { get; set; } + public string Type { set; get; } = "hardcoded"; + [DefaultValue("")] + public string Id { get; set; } = ""; + public int Cooldown { get; set; } + } + public class MonEffectData + { + public string Id { get; set; } + public int Duration { get; set; } + [DefaultValue(false)] + public bool AffectHitBp { get; set; } + [DefaultValue("NUM_BP")] + public string BodyPart { get; set; } + [DefaultValue(false)] + public bool Permanent { get; set; } + [DefaultValue(100)] + public int Chance { get; set; } + public MonEffectData() + { + Id = ""; + Duration = 0; + AffectHitBp = false; + BodyPart = "NUM_BP"; + Permanent = false; + Chance = 100; + } + } + public class MonsterAttackLeap : MonsterAttack + { + public float MaxRange { get; set; } + [DefaultValue(1.0f)] + public float MinRange { get; set; } + [DefaultValue(false)] + public bool AllowNoTarget { get; set; } + [DefaultValue(150)] + public int MoveCost { get; set; } + public float MinConsiderRange { get; set; } + [DefaultValue(200.0f)] + public float MaxConsiderRange { get; set; } + public MonsterAttackLeap() + { + Type = "leap"; + MaxRange = 0.0f; + MinRange = 1.0f; + AllowNoTarget = false; + MoveCost = 150; + MinConsiderRange = 0.0f; + MaxConsiderRange = 200.0f; + } + } + public class MonsterAttackSpell : MonsterAttack + { + // mandatory member + public string SpellId { get; set; } + [DefaultValue(false)] + public bool Self { get; set; } + public int SpellLevel { get; set; } + [DefaultValue("%1$s casts %2$s at %3$s!")] + public string MonsterMessage { get; set; } + public MonsterAttackSpell() + { + Type = "spell"; + SpellId = ""; + Self = false; + SpellLevel = 0; + MonsterMessage = "%1$s casts %2$s at %3$s!"; + } + } + public class MonsterAttackMelee : MonsterAttack + { + [JsonConverter(typeof(DamageInstanceConverter))] + public DamageInstance DamageMaxInstance { get; set; } + public float MinMul { get; set; } + public float MaxMul { get; set; } + public int MoveCost { get; set; } + [DefaultValue(-2147483648)] + public int Accuracy { get; set; } + [DefaultValue("The %s lunges at you, but you dodge!")] + public string MissMsgU { get; set; } + [DefaultValue("The %1$s bites your %2$s, but fails to penetrate armor!")] + public string NoDmgMsgU { get; set; } + [DefaultValue("The %1$s bites your %2$s!")] + public string HitDmgU { get; set; } + [DefaultValue("The %s lunges at , but they dodge!")] + public string MissMsgNpc { get; set; } + [DefaultValue("The %1$s bites 's %2$s!")] + public string NoDmgMsgNpc { get; set; } + [DefaultValue("The %1$s bites 's %2$s!")] + public string HitDmgNpc { get; set; } + [JsonConverter(typeof(IdValueArrayConverter))] + public List BodyParts { get; set; } + List Effects { get; set; } + public MonsterAttackMelee() + { + Type = "melee"; + MinMul = 0.0f; + MaxMul = 1.0f; + MoveCost = 100; + Accuracy = -2147483648; + MissMsgU = "The %s lunges at you, but you dodge!"; + NoDmgMsgU = "The %1$s bites your %2$s, but fails to penetrate armor!"; + HitDmgU = "The %1$s bites your %2$s!"; + MissMsgNpc = "The %s lunges at , but they dodge!"; + NoDmgMsgNpc = "The %1$s bites 's %2$s!"; + HitDmgNpc = "The %1$s bites 's %2$s!"; + } + } + public class MonsterAttackBite : MonsterAttackMelee + { + [DefaultValue(14)] + public int NoInfectionChance { get; set; } = 14; + MonsterAttackBite() + { + Type = "bite"; + } + } + public class IdValueArray + { + public string Id { get; set; } + public int Value { get; set; } + } + public class GunRange + { + public int Min { get; set; } + public int Max { get; set; } + public string Type { get; set; } + } + public class MonsterAttackGun : MonsterAttack + { + public string GunType { get; set; } + public string AmmoType { get; set; } + [JsonConverter(typeof(IdValueArrayConverter))] + public List FakeSkills { get; set; } + public int FakeDex { get; set; } + public int FakeInt { get; set; } + public int FakeStr { get; set; } + public int FakePer { get; set; } + [JsonConverter(typeof(MAttackGunRangeConverter))] + public List Ranges { get; set; } + public int MaxAmmo { get; set; } + public int MoveCost { get; set; } + public string Description { get; set; } + public string FailureMsg { get; set; } + [DefaultValue("Click.")] + public string NoAmmoSound { get; set; } + public int TargetingCost { get; set; } + public bool RequireTargetingPlayer { get; set; } + public bool RequireTargetingNpc { get; set; } + public bool RequireTargetingMonster { get; set; } + public int TargetingTimeout { get; set; } + [DefaultValue("Beep.")] + public string TargetingSound { get; set; } + public int TargetingVolume { get; set; } + public bool LaserLock { get; set; } + public bool RequireSunlight { get; set; } + public MonsterAttackGun() + { + Type = "gun"; + NoAmmoSound = "Click."; + TargetingSound = "Beep."; + } + } +} diff --git a/MonsterAttackForm.Designer.cs b/MonsterAttackForm.Designer.cs new file mode 100644 index 0000000..ded7027 --- /dev/null +++ b/MonsterAttackForm.Designer.cs @@ -0,0 +1,1601 @@ +namespace cdda_item_creator +{ + partial class MonsterAttackForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.mattackTypeCombobox = new System.Windows.Forms.ComboBox(); + this.mattackTypeLabel = new System.Windows.Forms.Label(); + this.cooldownUpDown = new System.Windows.Forms.NumericUpDown(); + this.cooldownLabel = new System.Windows.Forms.Label(); + this.idComboBox = new System.Windows.Forms.ComboBox(); + this.idLabel = new System.Windows.Forms.Label(); + this.cancelButton = new System.Windows.Forms.Button(); + this.saveButton = new System.Windows.Forms.Button(); + this.spellPanel = new System.Windows.Forms.Panel(); + this.spellMessageInfoLabel = new System.Windows.Forms.Label(); + this.spellMessageLabel = new System.Windows.Forms.Label(); + this.spellMessageTextBox = new System.Windows.Forms.TextBox(); + this.spellLevelUpDown = new System.Windows.Forms.NumericUpDown(); + this.spellLevelLabel = new System.Windows.Forms.Label(); + this.spellSelfCheckBox = new System.Windows.Forms.CheckBox(); + this.spellIdLabel = new System.Windows.Forms.Label(); + this.spellIdComboBox = new System.Windows.Forms.ComboBox(); + this.leapPanel = new System.Windows.Forms.Panel(); + this.leapMoveCostLabel = new System.Windows.Forms.Label(); + this.leapMoveCostUpDown = new System.Windows.Forms.NumericUpDown(); + this.leapMinConsiderRangeLabel = new System.Windows.Forms.Label(); + this.leapMaxConsiderRangeLabel = new System.Windows.Forms.Label(); + this.leapMaxConsiderRangeUpDown = new System.Windows.Forms.NumericUpDown(); + this.leapMinConsiderRangeUpDown = new System.Windows.Forms.NumericUpDown(); + this.leapAllowNoTargetCheckBox = new System.Windows.Forms.CheckBox(); + this.leapMinRangeLabel = new System.Windows.Forms.Label(); + this.leapMaxRangeLabel = new System.Windows.Forms.Label(); + this.leapMaxRangeUpDown = new System.Windows.Forms.NumericUpDown(); + this.leapMinRangeUpDown = new System.Windows.Forms.NumericUpDown(); + this.meleePanel = new System.Windows.Forms.Panel(); + this.moneEffectDataAddButton = new System.Windows.Forms.Button(); + this.biteNoInfectionChanceLabel = new System.Windows.Forms.Label(); + this.biteNoInfectionChanceUpDown = new System.Windows.Forms.NumericUpDown(); + this.label5 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.numericUpDown3 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown2 = new System.Windows.Forms.NumericUpDown(); + this.numericUpDown1 = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.monEffectDataChanceUpDown = new System.Windows.Forms.NumericUpDown(); + this.monEffectDataBodyPartComboBox = new System.Windows.Forms.ComboBox(); + this.monEffectDataDurationUpDown = new System.Windows.Forms.NumericUpDown(); + this.monEffectDataIdComboBox = new System.Windows.Forms.ComboBox(); + this.monEffectDataAffectHitBpCheckBox = new System.Windows.Forms.CheckBox(); + this.monEffectDataPermanentCheckbox = new System.Windows.Forms.CheckBox(); + this.meleeMonEffectDataGrid = new System.Windows.Forms.DataGridView(); + this.effectDataIdColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.effectDataDurationColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.affectHitBpColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.effectDataBodyPartColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.effectDataPermanentColumn = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.effectDataChanceColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bodyPartHitRateUpDown = new System.Windows.Forms.NumericUpDown(); + this.meleeBodyPartAddButton = new System.Windows.Forms.Button(); + this.bodyPartComboBox = new System.Windows.Forms.ComboBox(); + this.bodyPartsDataGrid = new System.Windows.Forms.DataGridView(); + this.bodyPartTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.bodyPartHitRateColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.damageInstanceLabel = new System.Windows.Forms.Label(); + this.damageInstanceAddButton = new System.Windows.Forms.Button(); + this.damageInstanceDamageMultiplierUpDown = new System.Windows.Forms.NumericUpDown(); + this.damageInstanceArmorMultiplierUpDown = new System.Windows.Forms.NumericUpDown(); + this.damageInstanceAmountUpDown = new System.Windows.Forms.NumericUpDown(); + this.damageInstanceArmorPenetrationUpDown = new System.Windows.Forms.NumericUpDown(); + this.damageInstanceTypeComboBox = new System.Windows.Forms.ComboBox(); + this.damageInstanceDataGrid = new System.Windows.Forms.DataGridView(); + this.Type = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Amount = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ArmorPenetration = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ArmorMultiplier = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.DamageMultiplier = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.meleeNoDamageLabel = new System.Windows.Forms.Label(); + this.meleeMissMessage = new System.Windows.Forms.Label(); + this.meleeHitLabel = new System.Windows.Forms.Label(); + this.meleeYouMessageLabel = new System.Windows.Forms.Label(); + this.meleeNpcLabel = new System.Windows.Forms.Label(); + this.meleeHitDmgUMessageTextBox = new System.Windows.Forms.TextBox(); + this.meleeMissNpcMessageTextBox = new System.Windows.Forms.TextBox(); + this.meleeMissUMessageTextBox = new System.Windows.Forms.TextBox(); + this.meleeNoDmgUMessageTextBox = new System.Windows.Forms.TextBox(); + this.meleeNoDmgNpcMessageTextBox = new System.Windows.Forms.TextBox(); + this.meleeHitDmgNpcMessageTextBox = new System.Windows.Forms.TextBox(); + this.gunPanel = new System.Windows.Forms.Panel(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.gunRangeMaxUpDown = new System.Windows.Forms.NumericUpDown(); + this.gunRangeMinUpDown = new System.Windows.Forms.NumericUpDown(); + this.rangesDataGrid = new System.Windows.Forms.DataGridView(); + this.gunRangeMinColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.gunRangeMaxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.gunRangeTypeColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.label13 = new System.Windows.Forms.Label(); + this.gunMoveCostUpDown = new System.Windows.Forms.NumericUpDown(); + this.label12 = new System.Windows.Forms.Label(); + this.gunMaxAmmoUpDown = new System.Windows.Forms.NumericUpDown(); + this.label11 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.gunFakeStrUpDown = new System.Windows.Forms.NumericUpDown(); + this.gunFakePerUpDown = new System.Windows.Forms.NumericUpDown(); + this.gunFakeIntUpDown = new System.Windows.Forms.NumericUpDown(); + this.gunFakeDexUpDown = new System.Windows.Forms.NumericUpDown(); + this.label7 = new System.Windows.Forms.Label(); + this.ammoTypeComboBox = new System.Windows.Forms.ComboBox(); + this.label6 = new System.Windows.Forms.Label(); + this.gunTypeComboBox = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.cooldownUpDown)).BeginInit(); + this.spellPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.spellLevelUpDown)).BeginInit(); + this.leapPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.leapMoveCostUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMaxConsiderRangeUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMinConsiderRangeUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMaxRangeUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMinRangeUpDown)).BeginInit(); + this.meleePanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.biteNoInfectionChanceUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.monEffectDataChanceUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.monEffectDataDurationUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.meleeMonEffectDataGrid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bodyPartHitRateUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bodyPartsDataGrid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceDamageMultiplierUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceArmorMultiplierUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceAmountUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceArmorPenetrationUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceDataGrid)).BeginInit(); + this.gunPanel.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gunRangeMaxUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunRangeMinUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.rangesDataGrid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunMoveCostUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunMaxAmmoUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakeStrUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakePerUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakeIntUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakeDexUpDown)).BeginInit(); + this.SuspendLayout(); + // + // mattackTypeCombobox + // + this.mattackTypeCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.mattackTypeCombobox.FormattingEnabled = true; + this.mattackTypeCombobox.Items.AddRange(new object[] { + "hardcoded", + "bite", + "melee", + "leap", + "spell"}); + this.mattackTypeCombobox.Location = new System.Drawing.Point(12, 66); + this.mattackTypeCombobox.Name = "mattackTypeCombobox"; + this.mattackTypeCombobox.Size = new System.Drawing.Size(120, 21); + this.mattackTypeCombobox.TabIndex = 0; + this.mattackTypeCombobox.SelectedIndexChanged += new System.EventHandler(this.mattackTypeCombobox_SelectedIndexChanged); + // + // mattackTypeLabel + // + this.mattackTypeLabel.AutoSize = true; + this.mattackTypeLabel.Location = new System.Drawing.Point(23, 47); + this.mattackTypeLabel.Name = "mattackTypeLabel"; + this.mattackTypeLabel.Size = new System.Drawing.Size(31, 13); + this.mattackTypeLabel.TabIndex = 1; + this.mattackTypeLabel.Text = "Type"; + // + // cooldownUpDown + // + this.cooldownUpDown.Location = new System.Drawing.Point(12, 115); + this.cooldownUpDown.Maximum = new decimal(new int[] { + 999999, + 0, + 0, + 0}); + this.cooldownUpDown.Name = "cooldownUpDown"; + this.cooldownUpDown.Size = new System.Drawing.Size(120, 20); + this.cooldownUpDown.TabIndex = 2; + // + // cooldownLabel + // + this.cooldownLabel.AutoSize = true; + this.cooldownLabel.Location = new System.Drawing.Point(19, 99); + this.cooldownLabel.Name = "cooldownLabel"; + this.cooldownLabel.Size = new System.Drawing.Size(95, 13); + this.cooldownLabel.TabIndex = 3; + this.cooldownLabel.Text = "Cooldown (Moves)"; + // + // idComboBox + // + this.idComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.idComboBox.FormattingEnabled = true; + this.idComboBox.Items.AddRange(new object[] { + "bite", + "gun", + "hardcoded", + "leap", + "melee", + "spell"}); + this.idComboBox.Location = new System.Drawing.Point(12, 23); + this.idComboBox.Name = "idComboBox"; + this.idComboBox.Size = new System.Drawing.Size(120, 21); + this.idComboBox.Sorted = true; + this.idComboBox.TabIndex = 4; + // + // idLabel + // + this.idLabel.AutoSize = true; + this.idLabel.Location = new System.Drawing.Point(18, 7); + this.idLabel.Name = "idLabel"; + this.idLabel.Size = new System.Drawing.Size(15, 13); + this.idLabel.TabIndex = 5; + this.idLabel.Text = "id"; + // + // cancelButton + // + this.cancelButton.Location = new System.Drawing.Point(578, 12); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size(75, 23); + this.cancelButton.TabIndex = 6; + this.cancelButton.Text = "Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + this.cancelButton.Click += new System.EventHandler(this.cancelButton_Click); + // + // saveButton + // + this.saveButton.Location = new System.Drawing.Point(424, 12); + this.saveButton.Name = "saveButton"; + this.saveButton.Size = new System.Drawing.Size(127, 23); + this.saveButton.TabIndex = 7; + this.saveButton.Text = "Save Attack and Close"; + this.saveButton.UseVisualStyleBackColor = true; + this.saveButton.Click += new System.EventHandler(this.saveButton_Click); + // + // spellPanel + // + this.spellPanel.Controls.Add(this.spellMessageInfoLabel); + this.spellPanel.Controls.Add(this.spellMessageLabel); + this.spellPanel.Controls.Add(this.spellMessageTextBox); + this.spellPanel.Controls.Add(this.spellLevelUpDown); + this.spellPanel.Controls.Add(this.spellLevelLabel); + this.spellPanel.Controls.Add(this.spellSelfCheckBox); + this.spellPanel.Controls.Add(this.spellIdLabel); + this.spellPanel.Controls.Add(this.spellIdComboBox); + this.spellPanel.Location = new System.Drawing.Point(12, 191); + this.spellPanel.Name = "spellPanel"; + this.spellPanel.Size = new System.Drawing.Size(200, 174); + this.spellPanel.TabIndex = 8; + // + // spellMessageInfoLabel + // + this.spellMessageInfoLabel.AutoSize = true; + this.spellMessageInfoLabel.Location = new System.Drawing.Point(13, 121); + this.spellMessageInfoLabel.MaximumSize = new System.Drawing.Size(175, 0); + this.spellMessageInfoLabel.Name = "spellMessageInfoLabel"; + this.spellMessageInfoLabel.Size = new System.Drawing.Size(146, 39); + this.spellMessageInfoLabel.TabIndex = 14; + this.spellMessageInfoLabel.Text = "%1$s: The caster of the spell.\r\n%2$s: The name of the spell.\r\n%3$s: The creature " + + "targeted."; + // + // spellMessageLabel + // + this.spellMessageLabel.AutoSize = true; + this.spellMessageLabel.Location = new System.Drawing.Point(13, 83); + this.spellMessageLabel.Name = "spellMessageLabel"; + this.spellMessageLabel.Size = new System.Drawing.Size(76, 13); + this.spellMessageLabel.TabIndex = 13; + this.spellMessageLabel.Text = "Spell Message"; + // + // spellMessageTextBox + // + this.spellMessageTextBox.Location = new System.Drawing.Point(9, 98); + this.spellMessageTextBox.Name = "spellMessageTextBox"; + this.spellMessageTextBox.Size = new System.Drawing.Size(180, 20); + this.spellMessageTextBox.TabIndex = 12; + this.spellMessageTextBox.Text = "%1$s casts %2$s at %3$s!"; + // + // spellLevelUpDown + // + this.spellLevelUpDown.Location = new System.Drawing.Point(135, 32); + this.spellLevelUpDown.Name = "spellLevelUpDown"; + this.spellLevelUpDown.Size = new System.Drawing.Size(45, 20); + this.spellLevelUpDown.TabIndex = 11; + // + // spellLevelLabel + // + this.spellLevelLabel.AutoSize = true; + this.spellLevelLabel.Location = new System.Drawing.Point(139, 16); + this.spellLevelLabel.Name = "spellLevelLabel"; + this.spellLevelLabel.Size = new System.Drawing.Size(33, 13); + this.spellLevelLabel.TabIndex = 10; + this.spellLevelLabel.Text = "Level"; + // + // spellSelfCheckBox + // + this.spellSelfCheckBox.AutoSize = true; + this.spellSelfCheckBox.Location = new System.Drawing.Point(16, 58); + this.spellSelfCheckBox.Name = "spellSelfCheckBox"; + this.spellSelfCheckBox.Size = new System.Drawing.Size(78, 17); + this.spellSelfCheckBox.TabIndex = 9; + this.spellSelfCheckBox.Text = "Target Self"; + this.spellSelfCheckBox.UseVisualStyleBackColor = true; + // + // spellIdLabel + // + this.spellIdLabel.AutoSize = true; + this.spellIdLabel.Location = new System.Drawing.Point(19, 12); + this.spellIdLabel.Name = "spellIdLabel"; + this.spellIdLabel.Size = new System.Drawing.Size(41, 13); + this.spellIdLabel.TabIndex = 9; + this.spellIdLabel.Text = "Spell id"; + // + // spellIdComboBox + // + this.spellIdComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.spellIdComboBox.FormattingEnabled = true; + this.spellIdComboBox.Items.AddRange(new object[] { + "bite", + "gun", + "hardcoded", + "leap", + "melee", + "spell"}); + this.spellIdComboBox.Location = new System.Drawing.Point(9, 31); + this.spellIdComboBox.Name = "spellIdComboBox"; + this.spellIdComboBox.Size = new System.Drawing.Size(120, 21); + this.spellIdComboBox.Sorted = true; + this.spellIdComboBox.TabIndex = 9; + // + // leapPanel + // + this.leapPanel.Controls.Add(this.leapMoveCostLabel); + this.leapPanel.Controls.Add(this.leapMoveCostUpDown); + this.leapPanel.Controls.Add(this.leapMinConsiderRangeLabel); + this.leapPanel.Controls.Add(this.leapMaxConsiderRangeLabel); + this.leapPanel.Controls.Add(this.leapMaxConsiderRangeUpDown); + this.leapPanel.Controls.Add(this.leapMinConsiderRangeUpDown); + this.leapPanel.Controls.Add(this.leapAllowNoTargetCheckBox); + this.leapPanel.Controls.Add(this.leapMinRangeLabel); + this.leapPanel.Controls.Add(this.leapMaxRangeLabel); + this.leapPanel.Controls.Add(this.leapMaxRangeUpDown); + this.leapPanel.Controls.Add(this.leapMinRangeUpDown); + this.leapPanel.Location = new System.Drawing.Point(12, 380); + this.leapPanel.Name = "leapPanel"; + this.leapPanel.Size = new System.Drawing.Size(196, 143); + this.leapPanel.TabIndex = 9; + // + // leapMoveCostLabel + // + this.leapMoveCostLabel.AutoSize = true; + this.leapMoveCostLabel.Location = new System.Drawing.Point(12, 96); + this.leapMoveCostLabel.Name = "leapMoveCostLabel"; + this.leapMoveCostLabel.Size = new System.Drawing.Size(58, 13); + this.leapMoveCostLabel.TabIndex = 10; + this.leapMoveCostLabel.Text = "Move Cost"; + // + // leapMoveCostUpDown + // + this.leapMoveCostUpDown.Location = new System.Drawing.Point(14, 111); + this.leapMoveCostUpDown.Maximum = new decimal(new int[] { + 999999, + 0, + 0, + 0}); + this.leapMoveCostUpDown.Name = "leapMoveCostUpDown"; + this.leapMoveCostUpDown.Size = new System.Drawing.Size(56, 20); + this.leapMoveCostUpDown.TabIndex = 9; + // + // leapMinConsiderRangeLabel + // + this.leapMinConsiderRangeLabel.AutoSize = true; + this.leapMinConsiderRangeLabel.Location = new System.Drawing.Point(86, 54); + this.leapMinConsiderRangeLabel.Name = "leapMinConsiderRangeLabel"; + this.leapMinConsiderRangeLabel.Size = new System.Drawing.Size(103, 13); + this.leapMinConsiderRangeLabel.TabIndex = 8; + this.leapMinConsiderRangeLabel.Text = "Min Consider Range"; + // + // leapMaxConsiderRangeLabel + // + this.leapMaxConsiderRangeLabel.AutoSize = true; + this.leapMaxConsiderRangeLabel.Location = new System.Drawing.Point(83, 96); + this.leapMaxConsiderRangeLabel.Name = "leapMaxConsiderRangeLabel"; + this.leapMaxConsiderRangeLabel.Size = new System.Drawing.Size(106, 13); + this.leapMaxConsiderRangeLabel.TabIndex = 7; + this.leapMaxConsiderRangeLabel.Text = "Max Consider Range"; + // + // leapMaxConsiderRangeUpDown + // + this.leapMaxConsiderRangeUpDown.Location = new System.Drawing.Point(106, 111); + this.leapMaxConsiderRangeUpDown.Name = "leapMaxConsiderRangeUpDown"; + this.leapMaxConsiderRangeUpDown.Size = new System.Drawing.Size(56, 20); + this.leapMaxConsiderRangeUpDown.TabIndex = 6; + // + // leapMinConsiderRangeUpDown + // + this.leapMinConsiderRangeUpDown.Location = new System.Drawing.Point(106, 73); + this.leapMinConsiderRangeUpDown.Name = "leapMinConsiderRangeUpDown"; + this.leapMinConsiderRangeUpDown.Size = new System.Drawing.Size(56, 20); + this.leapMinConsiderRangeUpDown.TabIndex = 5; + // + // leapAllowNoTargetCheckBox + // + this.leapAllowNoTargetCheckBox.AutoSize = true; + this.leapAllowNoTargetCheckBox.Location = new System.Drawing.Point(86, 25); + this.leapAllowNoTargetCheckBox.Name = "leapAllowNoTargetCheckBox"; + this.leapAllowNoTargetCheckBox.Size = new System.Drawing.Size(102, 17); + this.leapAllowNoTargetCheckBox.TabIndex = 4; + this.leapAllowNoTargetCheckBox.Text = "Allow No Target"; + this.leapAllowNoTargetCheckBox.UseVisualStyleBackColor = true; + // + // leapMinRangeLabel + // + this.leapMinRangeLabel.AutoSize = true; + this.leapMinRangeLabel.Location = new System.Drawing.Point(11, 14); + this.leapMinRangeLabel.Name = "leapMinRangeLabel"; + this.leapMinRangeLabel.Size = new System.Drawing.Size(59, 13); + this.leapMinRangeLabel.TabIndex = 3; + this.leapMinRangeLabel.Text = "Min Range"; + // + // leapMaxRangeLabel + // + this.leapMaxRangeLabel.AutoSize = true; + this.leapMaxRangeLabel.Location = new System.Drawing.Point(14, 54); + this.leapMaxRangeLabel.Name = "leapMaxRangeLabel"; + this.leapMaxRangeLabel.Size = new System.Drawing.Size(62, 13); + this.leapMaxRangeLabel.TabIndex = 2; + this.leapMaxRangeLabel.Text = "Max Range"; + // + // leapMaxRangeUpDown + // + this.leapMaxRangeUpDown.Location = new System.Drawing.Point(14, 73); + this.leapMaxRangeUpDown.Name = "leapMaxRangeUpDown"; + this.leapMaxRangeUpDown.Size = new System.Drawing.Size(56, 20); + this.leapMaxRangeUpDown.TabIndex = 1; + // + // leapMinRangeUpDown + // + this.leapMinRangeUpDown.Location = new System.Drawing.Point(14, 30); + this.leapMinRangeUpDown.Name = "leapMinRangeUpDown"; + this.leapMinRangeUpDown.Size = new System.Drawing.Size(56, 20); + this.leapMinRangeUpDown.TabIndex = 0; + // + // meleePanel + // + this.meleePanel.Controls.Add(this.moneEffectDataAddButton); + this.meleePanel.Controls.Add(this.biteNoInfectionChanceLabel); + this.meleePanel.Controls.Add(this.biteNoInfectionChanceUpDown); + this.meleePanel.Controls.Add(this.label5); + this.meleePanel.Controls.Add(this.label4); + this.meleePanel.Controls.Add(this.label3); + this.meleePanel.Controls.Add(this.numericUpDown3); + this.meleePanel.Controls.Add(this.numericUpDown2); + this.meleePanel.Controls.Add(this.numericUpDown1); + this.meleePanel.Controls.Add(this.label2); + this.meleePanel.Controls.Add(this.label1); + this.meleePanel.Controls.Add(this.monEffectDataChanceUpDown); + this.meleePanel.Controls.Add(this.monEffectDataBodyPartComboBox); + this.meleePanel.Controls.Add(this.monEffectDataDurationUpDown); + this.meleePanel.Controls.Add(this.monEffectDataIdComboBox); + this.meleePanel.Controls.Add(this.monEffectDataAffectHitBpCheckBox); + this.meleePanel.Controls.Add(this.monEffectDataPermanentCheckbox); + this.meleePanel.Controls.Add(this.meleeMonEffectDataGrid); + this.meleePanel.Controls.Add(this.bodyPartHitRateUpDown); + this.meleePanel.Controls.Add(this.meleeBodyPartAddButton); + this.meleePanel.Controls.Add(this.bodyPartComboBox); + this.meleePanel.Controls.Add(this.bodyPartsDataGrid); + this.meleePanel.Controls.Add(this.damageInstanceLabel); + this.meleePanel.Controls.Add(this.damageInstanceAddButton); + this.meleePanel.Controls.Add(this.damageInstanceDamageMultiplierUpDown); + this.meleePanel.Controls.Add(this.damageInstanceArmorMultiplierUpDown); + this.meleePanel.Controls.Add(this.damageInstanceAmountUpDown); + this.meleePanel.Controls.Add(this.damageInstanceArmorPenetrationUpDown); + this.meleePanel.Controls.Add(this.damageInstanceTypeComboBox); + this.meleePanel.Controls.Add(this.damageInstanceDataGrid); + this.meleePanel.Controls.Add(this.meleeNoDamageLabel); + this.meleePanel.Controls.Add(this.meleeMissMessage); + this.meleePanel.Controls.Add(this.meleeHitLabel); + this.meleePanel.Controls.Add(this.meleeYouMessageLabel); + this.meleePanel.Controls.Add(this.meleeNpcLabel); + this.meleePanel.Controls.Add(this.meleeHitDmgUMessageTextBox); + this.meleePanel.Controls.Add(this.meleeMissNpcMessageTextBox); + this.meleePanel.Controls.Add(this.meleeMissUMessageTextBox); + this.meleePanel.Controls.Add(this.meleeNoDmgUMessageTextBox); + this.meleePanel.Controls.Add(this.meleeNoDmgNpcMessageTextBox); + this.meleePanel.Controls.Add(this.meleeHitDmgNpcMessageTextBox); + this.meleePanel.Location = new System.Drawing.Point(218, 41); + this.meleePanel.Name = "meleePanel"; + this.meleePanel.Size = new System.Drawing.Size(442, 755); + this.meleePanel.TabIndex = 10; + // + // moneEffectDataAddButton + // + this.moneEffectDataAddButton.Location = new System.Drawing.Point(377, 542); + this.moneEffectDataAddButton.Name = "moneEffectDataAddButton"; + this.moneEffectDataAddButton.Size = new System.Drawing.Size(58, 23); + this.moneEffectDataAddButton.TabIndex = 111; + this.moneEffectDataAddButton.Text = "Add"; + this.moneEffectDataAddButton.UseVisualStyleBackColor = true; + this.moneEffectDataAddButton.Click += new System.EventHandler(this.moneEffectDataAddButton_Click); + // + // biteNoInfectionChanceLabel + // + this.biteNoInfectionChanceLabel.AutoSize = true; + this.biteNoInfectionChanceLabel.Location = new System.Drawing.Point(277, 436); + this.biteNoInfectionChanceLabel.Name = "biteNoInfectionChanceLabel"; + this.biteNoInfectionChanceLabel.Size = new System.Drawing.Size(65, 26); + this.biteNoInfectionChanceLabel.TabIndex = 110; + this.biteNoInfectionChanceLabel.Text = "No Infection\r\nChance"; + // + // biteNoInfectionChanceUpDown + // + this.biteNoInfectionChanceUpDown.Location = new System.Drawing.Point(344, 438); + this.biteNoInfectionChanceUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.biteNoInfectionChanceUpDown.Name = "biteNoInfectionChanceUpDown"; + this.biteNoInfectionChanceUpDown.Size = new System.Drawing.Size(62, 20); + this.biteNoInfectionChanceUpDown.TabIndex = 109; + this.biteNoInfectionChanceUpDown.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(284, 413); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(58, 13); + this.label5.TabIndex = 108; + this.label5.Text = "Move Cost"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(295, 386); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(47, 13); + this.label4.TabIndex = 107; + this.label4.Text = "Max Mul"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(298, 359); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(44, 13); + this.label3.TabIndex = 106; + this.label3.Text = "Min Mul"; + // + // numericUpDown3 + // + this.numericUpDown3.Location = new System.Drawing.Point(344, 410); + this.numericUpDown3.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.numericUpDown3.Name = "numericUpDown3"; + this.numericUpDown3.Size = new System.Drawing.Size(62, 20); + this.numericUpDown3.TabIndex = 105; + this.numericUpDown3.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // numericUpDown2 + // + this.numericUpDown2.DecimalPlaces = 3; + this.numericUpDown2.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.numericUpDown2.Location = new System.Drawing.Point(344, 384); + this.numericUpDown2.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.numericUpDown2.Name = "numericUpDown2"; + this.numericUpDown2.Size = new System.Drawing.Size(62, 20); + this.numericUpDown2.TabIndex = 104; + this.numericUpDown2.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // numericUpDown1 + // + this.numericUpDown1.DecimalPlaces = 3; + this.numericUpDown1.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.numericUpDown1.Location = new System.Drawing.Point(344, 356); + this.numericUpDown1.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.numericUpDown1.Name = "numericUpDown1"; + this.numericUpDown1.Size = new System.Drawing.Size(62, 20); + this.numericUpDown1.TabIndex = 103; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(34, 333); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(96, 20); + this.label2.TabIndex = 102; + this.label2.Text = "Body Parts"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(40, 545); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(67, 20); + this.label1.TabIndex = 101; + this.label1.Text = "Effects"; + // + // monEffectDataChanceUpDown + // + this.monEffectDataChanceUpDown.Location = new System.Drawing.Point(377, 568); + this.monEffectDataChanceUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.monEffectDataChanceUpDown.Name = "monEffectDataChanceUpDown"; + this.monEffectDataChanceUpDown.Size = new System.Drawing.Size(58, 20); + this.monEffectDataChanceUpDown.TabIndex = 100; + // + // monEffectDataBodyPartComboBox + // + this.monEffectDataBodyPartComboBox.AutoCompleteCustomSource.AddRange(new string[] { + "true", + "biological", + "bash", + "cut", + "acid", + "stab", + "heat", + "cold", + "electric"}); + this.monEffectDataBodyPartComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.monEffectDataBodyPartComboBox.Location = new System.Drawing.Point(206, 568); + this.monEffectDataBodyPartComboBox.Name = "monEffectDataBodyPartComboBox"; + this.monEffectDataBodyPartComboBox.Size = new System.Drawing.Size(86, 21); + this.monEffectDataBodyPartComboBox.TabIndex = 99; + // + // monEffectDataDurationUpDown + // + this.monEffectDataDurationUpDown.Location = new System.Drawing.Point(118, 568); + this.monEffectDataDurationUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.monEffectDataDurationUpDown.Name = "monEffectDataDurationUpDown"; + this.monEffectDataDurationUpDown.Size = new System.Drawing.Size(58, 20); + this.monEffectDataDurationUpDown.TabIndex = 98; + // + // monEffectDataIdComboBox + // + this.monEffectDataIdComboBox.AutoCompleteCustomSource.AddRange(new string[] { + "true", + "biological", + "bash", + "cut", + "acid", + "stab", + "heat", + "cold", + "electric"}); + this.monEffectDataIdComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.monEffectDataIdComboBox.Location = new System.Drawing.Point(3, 568); + this.monEffectDataIdComboBox.Name = "monEffectDataIdComboBox"; + this.monEffectDataIdComboBox.Size = new System.Drawing.Size(108, 21); + this.monEffectDataIdComboBox.Sorted = true; + this.monEffectDataIdComboBox.TabIndex = 97; + // + // monEffectDataAffectHitBpCheckBox + // + this.monEffectDataAffectHitBpCheckBox.AutoSize = true; + this.monEffectDataAffectHitBpCheckBox.Location = new System.Drawing.Point(185, 575); + this.monEffectDataAffectHitBpCheckBox.Name = "monEffectDataAffectHitBpCheckBox"; + this.monEffectDataAffectHitBpCheckBox.Size = new System.Drawing.Size(15, 14); + this.monEffectDataAffectHitBpCheckBox.TabIndex = 96; + this.monEffectDataAffectHitBpCheckBox.UseVisualStyleBackColor = true; + // + // monEffectDataPermanentCheckbox + // + this.monEffectDataPermanentCheckbox.AutoSize = true; + this.monEffectDataPermanentCheckbox.Location = new System.Drawing.Point(319, 575); + this.monEffectDataPermanentCheckbox.Name = "monEffectDataPermanentCheckbox"; + this.monEffectDataPermanentCheckbox.Size = new System.Drawing.Size(15, 14); + this.monEffectDataPermanentCheckbox.TabIndex = 95; + this.monEffectDataPermanentCheckbox.UseVisualStyleBackColor = true; + // + // meleeMonEffectDataGrid + // + this.meleeMonEffectDataGrid.AllowUserToAddRows = false; + this.meleeMonEffectDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.meleeMonEffectDataGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.effectDataIdColumn, + this.effectDataDurationColumn, + this.affectHitBpColumn, + this.effectDataBodyPartColumn, + this.effectDataPermanentColumn, + this.effectDataChanceColumn}); + this.meleeMonEffectDataGrid.Location = new System.Drawing.Point(3, 595); + this.meleeMonEffectDataGrid.Name = "meleeMonEffectDataGrid"; + this.meleeMonEffectDataGrid.ReadOnly = true; + this.meleeMonEffectDataGrid.RowHeadersWidth = 10; + this.meleeMonEffectDataGrid.Size = new System.Drawing.Size(436, 150); + this.meleeMonEffectDataGrid.TabIndex = 94; + // + // effectDataIdColumn + // + this.effectDataIdColumn.HeaderText = "Effect Id"; + this.effectDataIdColumn.Name = "effectDataIdColumn"; + this.effectDataIdColumn.ReadOnly = true; + // + // effectDataDurationColumn + // + this.effectDataDurationColumn.HeaderText = "Duration"; + this.effectDataDurationColumn.Name = "effectDataDurationColumn"; + this.effectDataDurationColumn.ReadOnly = true; + this.effectDataDurationColumn.Width = 55; + // + // affectHitBpColumn + // + this.affectHitBpColumn.HeaderText = "Affect Hit BP?"; + this.affectHitBpColumn.Name = "affectHitBpColumn"; + this.affectHitBpColumn.ReadOnly = true; + this.affectHitBpColumn.Width = 40; + // + // effectDataBodyPartColumn + // + this.effectDataBodyPartColumn.HeaderText = "Body Part"; + this.effectDataBodyPartColumn.Name = "effectDataBodyPartColumn"; + this.effectDataBodyPartColumn.ReadOnly = true; + // + // effectDataPermanentColumn + // + this.effectDataPermanentColumn.HeaderText = "Permanent?"; + this.effectDataPermanentColumn.Name = "effectDataPermanentColumn"; + this.effectDataPermanentColumn.ReadOnly = true; + this.effectDataPermanentColumn.Width = 70; + // + // effectDataChanceColumn + // + this.effectDataChanceColumn.HeaderText = "Chance"; + this.effectDataChanceColumn.Name = "effectDataChanceColumn"; + this.effectDataChanceColumn.ReadOnly = true; + this.effectDataChanceColumn.Width = 50; + // + // bodyPartHitRateUpDown + // + this.bodyPartHitRateUpDown.DecimalPlaces = 3; + this.bodyPartHitRateUpDown.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.bodyPartHitRateUpDown.Location = new System.Drawing.Point(155, 355); + this.bodyPartHitRateUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.bodyPartHitRateUpDown.Name = "bodyPartHitRateUpDown"; + this.bodyPartHitRateUpDown.Size = new System.Drawing.Size(62, 20); + this.bodyPartHitRateUpDown.TabIndex = 93; + this.bodyPartHitRateUpDown.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // meleeBodyPartAddButton + // + this.meleeBodyPartAddButton.Location = new System.Drawing.Point(26, 355); + this.meleeBodyPartAddButton.Name = "meleeBodyPartAddButton"; + this.meleeBodyPartAddButton.Size = new System.Drawing.Size(35, 23); + this.meleeBodyPartAddButton.TabIndex = 92; + this.meleeBodyPartAddButton.Text = "Add"; + this.meleeBodyPartAddButton.UseVisualStyleBackColor = true; + this.meleeBodyPartAddButton.Click += new System.EventHandler(this.meleeBodyPartAddButton_Click); + // + // bodyPartComboBox + // + this.bodyPartComboBox.AutoCompleteCustomSource.AddRange(new string[] { + "true", + "biological", + "bash", + "cut", + "acid", + "stab", + "heat", + "cold", + "electric"}); + this.bodyPartComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.bodyPartComboBox.Location = new System.Drawing.Point(63, 356); + this.bodyPartComboBox.Name = "bodyPartComboBox"; + this.bodyPartComboBox.Size = new System.Drawing.Size(86, 21); + this.bodyPartComboBox.TabIndex = 91; + // + // bodyPartsDataGrid + // + this.bodyPartsDataGrid.AllowUserToAddRows = false; + this.bodyPartsDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.bodyPartsDataGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.bodyPartTextBoxColumn, + this.bodyPartHitRateColumn}); + this.bodyPartsDataGrid.Location = new System.Drawing.Point(26, 384); + this.bodyPartsDataGrid.Name = "bodyPartsDataGrid"; + this.bodyPartsDataGrid.ReadOnly = true; + this.bodyPartsDataGrid.RowHeadersWidth = 20; + this.bodyPartsDataGrid.Size = new System.Drawing.Size(240, 150); + this.bodyPartsDataGrid.TabIndex = 90; + // + // bodyPartTextBoxColumn + // + this.bodyPartTextBoxColumn.HeaderText = "Body Part"; + this.bodyPartTextBoxColumn.Name = "bodyPartTextBoxColumn"; + this.bodyPartTextBoxColumn.ReadOnly = true; + // + // bodyPartHitRateColumn + // + this.bodyPartHitRateColumn.HeaderText = "Hit Rate"; + this.bodyPartHitRateColumn.Name = "bodyPartHitRateColumn"; + this.bodyPartHitRateColumn.ReadOnly = true; + // + // damageInstanceLabel + // + this.damageInstanceLabel.AutoSize = true; + this.damageInstanceLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.damageInstanceLabel.Location = new System.Drawing.Point(50, 160); + this.damageInstanceLabel.Name = "damageInstanceLabel"; + this.damageInstanceLabel.Size = new System.Drawing.Size(188, 20); + this.damageInstanceLabel.TabIndex = 89; + this.damageInstanceLabel.Text = "Damage Max Instance"; + // + // damageInstanceAddButton + // + this.damageInstanceAddButton.Location = new System.Drawing.Point(26, 182); + this.damageInstanceAddButton.Name = "damageInstanceAddButton"; + this.damageInstanceAddButton.Size = new System.Drawing.Size(35, 23); + this.damageInstanceAddButton.TabIndex = 88; + this.damageInstanceAddButton.Text = "Add"; + this.damageInstanceAddButton.UseVisualStyleBackColor = true; + this.damageInstanceAddButton.Click += new System.EventHandler(this.damageInstanceAddButton_Click); + // + // damageInstanceDamageMultiplierUpDown + // + this.damageInstanceDamageMultiplierUpDown.DecimalPlaces = 3; + this.damageInstanceDamageMultiplierUpDown.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.damageInstanceDamageMultiplierUpDown.Location = new System.Drawing.Point(316, 184); + this.damageInstanceDamageMultiplierUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.damageInstanceDamageMultiplierUpDown.Name = "damageInstanceDamageMultiplierUpDown"; + this.damageInstanceDamageMultiplierUpDown.Size = new System.Drawing.Size(62, 20); + this.damageInstanceDamageMultiplierUpDown.TabIndex = 87; + this.damageInstanceDamageMultiplierUpDown.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // damageInstanceArmorMultiplierUpDown + // + this.damageInstanceArmorMultiplierUpDown.DecimalPlaces = 3; + this.damageInstanceArmorMultiplierUpDown.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.damageInstanceArmorMultiplierUpDown.Location = new System.Drawing.Point(248, 184); + this.damageInstanceArmorMultiplierUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.damageInstanceArmorMultiplierUpDown.Name = "damageInstanceArmorMultiplierUpDown"; + this.damageInstanceArmorMultiplierUpDown.Size = new System.Drawing.Size(62, 20); + this.damageInstanceArmorMultiplierUpDown.TabIndex = 86; + this.damageInstanceArmorMultiplierUpDown.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // damageInstanceAmountUpDown + // + this.damageInstanceAmountUpDown.Location = new System.Drawing.Point(140, 184); + this.damageInstanceAmountUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.damageInstanceAmountUpDown.Name = "damageInstanceAmountUpDown"; + this.damageInstanceAmountUpDown.Size = new System.Drawing.Size(38, 20); + this.damageInstanceAmountUpDown.TabIndex = 85; + // + // damageInstanceArmorPenetrationUpDown + // + this.damageInstanceArmorPenetrationUpDown.Location = new System.Drawing.Point(184, 184); + this.damageInstanceArmorPenetrationUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.damageInstanceArmorPenetrationUpDown.Name = "damageInstanceArmorPenetrationUpDown"; + this.damageInstanceArmorPenetrationUpDown.Size = new System.Drawing.Size(58, 20); + this.damageInstanceArmorPenetrationUpDown.TabIndex = 84; + // + // damageInstanceTypeComboBox + // + this.damageInstanceTypeComboBox.AutoCompleteCustomSource.AddRange(new string[] { + "true", + "biological", + "bash", + "cut", + "acid", + "stab", + "heat", + "cold", + "electric"}); + this.damageInstanceTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.damageInstanceTypeComboBox.Items.AddRange(new object[] { + "true", + "biological", + "bash", + "cut", + "acid", + "stab", + "heat", + "cold", + "electric"}); + this.damageInstanceTypeComboBox.Location = new System.Drawing.Point(67, 183); + this.damageInstanceTypeComboBox.Name = "damageInstanceTypeComboBox"; + this.damageInstanceTypeComboBox.Size = new System.Drawing.Size(67, 21); + this.damageInstanceTypeComboBox.TabIndex = 82; + // + // damageInstanceDataGrid + // + this.damageInstanceDataGrid.AllowUserToAddRows = false; + this.damageInstanceDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.damageInstanceDataGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.Type, + this.Amount, + this.ArmorPenetration, + this.ArmorMultiplier, + this.DamageMultiplier}); + this.damageInstanceDataGrid.Location = new System.Drawing.Point(26, 206); + this.damageInstanceDataGrid.Name = "damageInstanceDataGrid"; + this.damageInstanceDataGrid.ReadOnly = true; + this.damageInstanceDataGrid.Size = new System.Drawing.Size(370, 122); + this.damageInstanceDataGrid.TabIndex = 83; + // + // Type + // + this.Type.HeaderText = "Type"; + this.Type.Name = "Type"; + this.Type.ReadOnly = true; + this.Type.Width = 65; + // + // Amount + // + this.Amount.HeaderText = "Amount"; + this.Amount.Name = "Amount"; + this.Amount.ReadOnly = true; + this.Amount.Width = 50; + // + // ArmorPenetration + // + this.ArmorPenetration.HeaderText = "Armor Penetration"; + this.ArmorPenetration.Name = "ArmorPenetration"; + this.ArmorPenetration.ReadOnly = true; + this.ArmorPenetration.Width = 65; + // + // ArmorMultiplier + // + this.ArmorMultiplier.HeaderText = "Armor Multiplier"; + this.ArmorMultiplier.Name = "ArmorMultiplier"; + this.ArmorMultiplier.ReadOnly = true; + this.ArmorMultiplier.Width = 65; + // + // DamageMultiplier + // + this.DamageMultiplier.HeaderText = "Damage Multiplier"; + this.DamageMultiplier.Name = "DamageMultiplier"; + this.DamageMultiplier.ReadOnly = true; + this.DamageMultiplier.Width = 65; + // + // meleeNoDamageLabel + // + this.meleeNoDamageLabel.AutoSize = true; + this.meleeNoDamageLabel.Location = new System.Drawing.Point(11, 121); + this.meleeNoDamageLabel.Name = "meleeNoDamageLabel"; + this.meleeNoDamageLabel.Size = new System.Drawing.Size(64, 13); + this.meleeNoDamageLabel.TabIndex = 10; + this.meleeNoDamageLabel.Text = "No Damage"; + // + // meleeMissMessage + // + this.meleeMissMessage.AutoSize = true; + this.meleeMissMessage.Location = new System.Drawing.Point(27, 69); + this.meleeMissMessage.Name = "meleeMissMessage"; + this.meleeMissMessage.Size = new System.Drawing.Size(28, 13); + this.meleeMissMessage.TabIndex = 9; + this.meleeMissMessage.Text = "Miss"; + // + // meleeHitLabel + // + this.meleeHitLabel.AutoSize = true; + this.meleeHitLabel.Location = new System.Drawing.Point(35, 27); + this.meleeHitLabel.Name = "meleeHitLabel"; + this.meleeHitLabel.Size = new System.Drawing.Size(20, 13); + this.meleeHitLabel.TabIndex = 8; + this.meleeHitLabel.Text = "Hit"; + // + // meleeYouMessageLabel + // + this.meleeYouMessageLabel.AutoSize = true; + this.meleeYouMessageLabel.Location = new System.Drawing.Point(115, 8); + this.meleeYouMessageLabel.Name = "meleeYouMessageLabel"; + this.meleeYouMessageLabel.Size = new System.Drawing.Size(72, 13); + this.meleeYouMessageLabel.TabIndex = 7; + this.meleeYouMessageLabel.Text = "You Message"; + // + // meleeNpcLabel + // + this.meleeNpcLabel.AutoSize = true; + this.meleeNpcLabel.Location = new System.Drawing.Point(286, 8); + this.meleeNpcLabel.Name = "meleeNpcLabel"; + this.meleeNpcLabel.Size = new System.Drawing.Size(75, 13); + this.meleeNpcLabel.TabIndex = 6; + this.meleeNpcLabel.Text = "NPC Message"; + // + // meleeHitDmgUMessageTextBox + // + this.meleeHitDmgUMessageTextBox.Location = new System.Drawing.Point(81, 27); + this.meleeHitDmgUMessageTextBox.Multiline = true; + this.meleeHitDmgUMessageTextBox.Name = "meleeHitDmgUMessageTextBox"; + this.meleeHitDmgUMessageTextBox.Size = new System.Drawing.Size(166, 40); + this.meleeHitDmgUMessageTextBox.TabIndex = 5; + this.meleeHitDmgUMessageTextBox.Text = "The %1$s bites your %2$s!"; + // + // meleeMissNpcMessageTextBox + // + this.meleeMissNpcMessageTextBox.Location = new System.Drawing.Point(252, 72); + this.meleeMissNpcMessageTextBox.Multiline = true; + this.meleeMissNpcMessageTextBox.Name = "meleeMissNpcMessageTextBox"; + this.meleeMissNpcMessageTextBox.Size = new System.Drawing.Size(166, 40); + this.meleeMissNpcMessageTextBox.TabIndex = 4; + this.meleeMissNpcMessageTextBox.Text = "The %s lunges at , but they dodge!"; + // + // meleeMissUMessageTextBox + // + this.meleeMissUMessageTextBox.Location = new System.Drawing.Point(81, 72); + this.meleeMissUMessageTextBox.Multiline = true; + this.meleeMissUMessageTextBox.Name = "meleeMissUMessageTextBox"; + this.meleeMissUMessageTextBox.Size = new System.Drawing.Size(166, 40); + this.meleeMissUMessageTextBox.TabIndex = 3; + this.meleeMissUMessageTextBox.Text = "The %s lunges at you, but you dodge!"; + // + // meleeNoDmgUMessageTextBox + // + this.meleeNoDmgUMessageTextBox.Location = new System.Drawing.Point(81, 118); + this.meleeNoDmgUMessageTextBox.Multiline = true; + this.meleeNoDmgUMessageTextBox.Name = "meleeNoDmgUMessageTextBox"; + this.meleeNoDmgUMessageTextBox.Size = new System.Drawing.Size(166, 40); + this.meleeNoDmgUMessageTextBox.TabIndex = 2; + this.meleeNoDmgUMessageTextBox.Text = "The %1$s bites your %2$s, but fails to penetrate armor!"; + // + // meleeNoDmgNpcMessageTextBox + // + this.meleeNoDmgNpcMessageTextBox.Location = new System.Drawing.Point(252, 118); + this.meleeNoDmgNpcMessageTextBox.Multiline = true; + this.meleeNoDmgNpcMessageTextBox.Name = "meleeNoDmgNpcMessageTextBox"; + this.meleeNoDmgNpcMessageTextBox.Size = new System.Drawing.Size(166, 40); + this.meleeNoDmgNpcMessageTextBox.TabIndex = 1; + this.meleeNoDmgNpcMessageTextBox.Text = "The %1$s bites \'s %2$s!"; + // + // meleeHitDmgNpcMessageTextBox + // + this.meleeHitDmgNpcMessageTextBox.Location = new System.Drawing.Point(253, 27); + this.meleeHitDmgNpcMessageTextBox.Multiline = true; + this.meleeHitDmgNpcMessageTextBox.Name = "meleeHitDmgNpcMessageTextBox"; + this.meleeHitDmgNpcMessageTextBox.Size = new System.Drawing.Size(166, 40); + this.meleeHitDmgNpcMessageTextBox.TabIndex = 0; + this.meleeHitDmgNpcMessageTextBox.Text = "The %1$s bites \'s %2$s!"; + // + // gunPanel + // + this.gunPanel.Controls.Add(this.comboBox1); + this.gunPanel.Controls.Add(this.gunRangeMaxUpDown); + this.gunPanel.Controls.Add(this.gunRangeMinUpDown); + this.gunPanel.Controls.Add(this.rangesDataGrid); + this.gunPanel.Controls.Add(this.label13); + this.gunPanel.Controls.Add(this.gunMoveCostUpDown); + this.gunPanel.Controls.Add(this.label12); + this.gunPanel.Controls.Add(this.gunMaxAmmoUpDown); + this.gunPanel.Controls.Add(this.label11); + this.gunPanel.Controls.Add(this.label10); + this.gunPanel.Controls.Add(this.label9); + this.gunPanel.Controls.Add(this.label8); + this.gunPanel.Controls.Add(this.gunFakeStrUpDown); + this.gunPanel.Controls.Add(this.gunFakePerUpDown); + this.gunPanel.Controls.Add(this.gunFakeIntUpDown); + this.gunPanel.Controls.Add(this.gunFakeDexUpDown); + this.gunPanel.Controls.Add(this.label7); + this.gunPanel.Controls.Add(this.ammoTypeComboBox); + this.gunPanel.Controls.Add(this.label6); + this.gunPanel.Controls.Add(this.gunTypeComboBox); + this.gunPanel.Location = new System.Drawing.Point(710, 41); + this.gunPanel.Name = "gunPanel"; + this.gunPanel.Size = new System.Drawing.Size(482, 755); + this.gunPanel.TabIndex = 11; + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "DEFAULT", + "AUTO", + "BURST", + "MULTI", + "DOUBLE"}); + this.comboBox1.Location = new System.Drawing.Point(151, 294); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(121, 21); + this.comboBox1.TabIndex = 131; + // + // gunRangeMaxUpDown + // + this.gunRangeMaxUpDown.Location = new System.Drawing.Point(105, 294); + this.gunRangeMaxUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunRangeMaxUpDown.Name = "gunRangeMaxUpDown"; + this.gunRangeMaxUpDown.Size = new System.Drawing.Size(40, 20); + this.gunRangeMaxUpDown.TabIndex = 130; + // + // gunRangeMinUpDown + // + this.gunRangeMinUpDown.Location = new System.Drawing.Point(63, 294); + this.gunRangeMinUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunRangeMinUpDown.Name = "gunRangeMinUpDown"; + this.gunRangeMinUpDown.Size = new System.Drawing.Size(40, 20); + this.gunRangeMinUpDown.TabIndex = 129; + // + // rangesDataGrid + // + this.rangesDataGrid.AllowUserToAddRows = false; + this.rangesDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.rangesDataGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.gunRangeMinColumn, + this.gunRangeMaxColumn, + this.gunRangeTypeColumn}); + this.rangesDataGrid.Location = new System.Drawing.Point(21, 320); + this.rangesDataGrid.Name = "rangesDataGrid"; + this.rangesDataGrid.ReadOnly = true; + this.rangesDataGrid.Size = new System.Drawing.Size(240, 150); + this.rangesDataGrid.TabIndex = 127; + // + // gunRangeMinColumn + // + this.gunRangeMinColumn.HeaderText = "Min"; + this.gunRangeMinColumn.Name = "gunRangeMinColumn"; + this.gunRangeMinColumn.ReadOnly = true; + this.gunRangeMinColumn.Width = 40; + // + // gunRangeMaxColumn + // + this.gunRangeMaxColumn.HeaderText = "Max"; + this.gunRangeMaxColumn.Name = "gunRangeMaxColumn"; + this.gunRangeMaxColumn.ReadOnly = true; + this.gunRangeMaxColumn.Width = 40; + // + // gunRangeTypeColumn + // + this.gunRangeTypeColumn.HeaderText = "Type"; + this.gunRangeTypeColumn.Name = "gunRangeTypeColumn"; + this.gunRangeTypeColumn.ReadOnly = true; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(83, 208); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(58, 13); + this.label13.TabIndex = 126; + this.label13.Text = "Move Cost"; + // + // gunMoveCostUpDown + // + this.gunMoveCostUpDown.Location = new System.Drawing.Point(176, 208); + this.gunMoveCostUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunMoveCostUpDown.Name = "gunMoveCostUpDown"; + this.gunMoveCostUpDown.Size = new System.Drawing.Size(58, 20); + this.gunMoveCostUpDown.TabIndex = 125; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(82, 166); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(59, 13); + this.label12.TabIndex = 124; + this.label12.Text = "Max Ammo"; + // + // gunMaxAmmoUpDown + // + this.gunMaxAmmoUpDown.Location = new System.Drawing.Point(176, 166); + this.gunMaxAmmoUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunMaxAmmoUpDown.Name = "gunMaxAmmoUpDown"; + this.gunMaxAmmoUpDown.Size = new System.Drawing.Size(58, 20); + this.gunMaxAmmoUpDown.TabIndex = 123; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(159, 105); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(88, 13); + this.label11.TabIndex = 122; + this.label11.Text = "Fake Intelligence"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(163, 79); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(85, 13); + this.label10.TabIndex = 121; + this.label10.Text = "Fake Perception"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(173, 53); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(75, 13); + this.label9.TabIndex = 120; + this.label9.Text = "Fake Dexterity"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(173, 27); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(74, 13); + this.label8.TabIndex = 119; + this.label8.Text = "Fake Strength"; + // + // gunFakeStrUpDown + // + this.gunFakeStrUpDown.Location = new System.Drawing.Point(249, 24); + this.gunFakeStrUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunFakeStrUpDown.Name = "gunFakeStrUpDown"; + this.gunFakeStrUpDown.Size = new System.Drawing.Size(58, 20); + this.gunFakeStrUpDown.TabIndex = 118; + // + // gunFakePerUpDown + // + this.gunFakePerUpDown.Location = new System.Drawing.Point(250, 76); + this.gunFakePerUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunFakePerUpDown.Name = "gunFakePerUpDown"; + this.gunFakePerUpDown.Size = new System.Drawing.Size(58, 20); + this.gunFakePerUpDown.TabIndex = 117; + // + // gunFakeIntUpDown + // + this.gunFakeIntUpDown.Location = new System.Drawing.Point(249, 102); + this.gunFakeIntUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunFakeIntUpDown.Name = "gunFakeIntUpDown"; + this.gunFakeIntUpDown.Size = new System.Drawing.Size(58, 20); + this.gunFakeIntUpDown.TabIndex = 116; + // + // gunFakeDexUpDown + // + this.gunFakeDexUpDown.Location = new System.Drawing.Point(250, 50); + this.gunFakeDexUpDown.Maximum = new decimal(new int[] { + 99999, + 0, + 0, + 0}); + this.gunFakeDexUpDown.Name = "gunFakeDexUpDown"; + this.gunFakeDexUpDown.Size = new System.Drawing.Size(58, 20); + this.gunFakeDexUpDown.TabIndex = 112; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(18, 54); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(63, 13); + this.label7.TabIndex = 115; + this.label7.Text = "Ammo Type"; + // + // ammoTypeComboBox + // + this.ammoTypeComboBox.AutoCompleteCustomSource.AddRange(new string[] { + "true", + "biological", + "bash", + "cut", + "acid", + "stab", + "heat", + "cold", + "electric"}); + this.ammoTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.ammoTypeComboBox.Location = new System.Drawing.Point(21, 73); + this.ammoTypeComboBox.Name = "ammoTypeComboBox"; + this.ammoTypeComboBox.Size = new System.Drawing.Size(135, 21); + this.ammoTypeComboBox.Sorted = true; + this.ammoTypeComboBox.TabIndex = 114; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(18, 8); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(54, 13); + this.label6.TabIndex = 113; + this.label6.Text = "Gun Type"; + // + // gunTypeComboBox + // + this.gunTypeComboBox.AutoCompleteCustomSource.AddRange(new string[] { + "true", + "biological", + "bash", + "cut", + "acid", + "stab", + "heat", + "cold", + "electric"}); + this.gunTypeComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.gunTypeComboBox.Location = new System.Drawing.Point(21, 24); + this.gunTypeComboBox.Name = "gunTypeComboBox"; + this.gunTypeComboBox.Size = new System.Drawing.Size(135, 21); + this.gunTypeComboBox.Sorted = true; + this.gunTypeComboBox.TabIndex = 112; + // + // MonsterAttackForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1280, 874); + this.ControlBox = false; + this.Controls.Add(this.gunPanel); + this.Controls.Add(this.meleePanel); + this.Controls.Add(this.leapPanel); + this.Controls.Add(this.spellPanel); + this.Controls.Add(this.saveButton); + this.Controls.Add(this.cancelButton); + this.Controls.Add(this.idLabel); + this.Controls.Add(this.idComboBox); + this.Controls.Add(this.cooldownLabel); + this.Controls.Add(this.cooldownUpDown); + this.Controls.Add(this.mattackTypeLabel); + this.Controls.Add(this.mattackTypeCombobox); + this.Name = "MonsterAttackForm"; + this.Text = "MonsterAttackForm"; + ((System.ComponentModel.ISupportInitialize)(this.cooldownUpDown)).EndInit(); + this.spellPanel.ResumeLayout(false); + this.spellPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.spellLevelUpDown)).EndInit(); + this.leapPanel.ResumeLayout(false); + this.leapPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.leapMoveCostUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMaxConsiderRangeUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMinConsiderRangeUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMaxRangeUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.leapMinRangeUpDown)).EndInit(); + this.meleePanel.ResumeLayout(false); + this.meleePanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.biteNoInfectionChanceUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.monEffectDataChanceUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.monEffectDataDurationUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.meleeMonEffectDataGrid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bodyPartHitRateUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bodyPartsDataGrid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceDamageMultiplierUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceArmorMultiplierUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceAmountUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceArmorPenetrationUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.damageInstanceDataGrid)).EndInit(); + this.gunPanel.ResumeLayout(false); + this.gunPanel.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gunRangeMaxUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunRangeMinUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.rangesDataGrid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunMoveCostUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunMaxAmmoUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakeStrUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakePerUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakeIntUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gunFakeDexUpDown)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox mattackTypeCombobox; + private System.Windows.Forms.Label mattackTypeLabel; + private System.Windows.Forms.NumericUpDown cooldownUpDown; + private System.Windows.Forms.Label cooldownLabel; + private System.Windows.Forms.ComboBox idComboBox; + private System.Windows.Forms.Label idLabel; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button saveButton; + private System.Windows.Forms.Panel spellPanel; + private System.Windows.Forms.Label spellIdLabel; + private System.Windows.Forms.ComboBox spellIdComboBox; + private System.Windows.Forms.CheckBox spellSelfCheckBox; + private System.Windows.Forms.NumericUpDown spellLevelUpDown; + private System.Windows.Forms.Label spellLevelLabel; + private System.Windows.Forms.Label spellMessageInfoLabel; + private System.Windows.Forms.Label spellMessageLabel; + private System.Windows.Forms.TextBox spellMessageTextBox; + private System.Windows.Forms.Panel leapPanel; + private System.Windows.Forms.Label leapMinRangeLabel; + private System.Windows.Forms.Label leapMaxRangeLabel; + private System.Windows.Forms.NumericUpDown leapMaxRangeUpDown; + private System.Windows.Forms.NumericUpDown leapMinRangeUpDown; + private System.Windows.Forms.CheckBox leapAllowNoTargetCheckBox; + private System.Windows.Forms.Label leapMinConsiderRangeLabel; + private System.Windows.Forms.Label leapMaxConsiderRangeLabel; + private System.Windows.Forms.NumericUpDown leapMaxConsiderRangeUpDown; + private System.Windows.Forms.NumericUpDown leapMinConsiderRangeUpDown; + private System.Windows.Forms.Label leapMoveCostLabel; + private System.Windows.Forms.NumericUpDown leapMoveCostUpDown; + private System.Windows.Forms.Panel meleePanel; + private System.Windows.Forms.TextBox meleeHitDmgUMessageTextBox; + private System.Windows.Forms.TextBox meleeMissNpcMessageTextBox; + private System.Windows.Forms.TextBox meleeMissUMessageTextBox; + private System.Windows.Forms.TextBox meleeNoDmgUMessageTextBox; + private System.Windows.Forms.TextBox meleeNoDmgNpcMessageTextBox; + private System.Windows.Forms.TextBox meleeHitDmgNpcMessageTextBox; + private System.Windows.Forms.Label meleeYouMessageLabel; + private System.Windows.Forms.Label meleeNpcLabel; + private System.Windows.Forms.Label meleeNoDamageLabel; + private System.Windows.Forms.Label meleeMissMessage; + private System.Windows.Forms.Label meleeHitLabel; + private System.Windows.Forms.Button damageInstanceAddButton; + private System.Windows.Forms.NumericUpDown damageInstanceDamageMultiplierUpDown; + private System.Windows.Forms.NumericUpDown damageInstanceArmorMultiplierUpDown; + private System.Windows.Forms.NumericUpDown damageInstanceAmountUpDown; + private System.Windows.Forms.NumericUpDown damageInstanceArmorPenetrationUpDown; + private System.Windows.Forms.ComboBox damageInstanceTypeComboBox; + private System.Windows.Forms.DataGridView damageInstanceDataGrid; + private System.Windows.Forms.DataGridViewTextBoxColumn Type; + private System.Windows.Forms.DataGridViewTextBoxColumn Amount; + private System.Windows.Forms.DataGridViewTextBoxColumn ArmorPenetration; + private System.Windows.Forms.DataGridViewTextBoxColumn ArmorMultiplier; + private System.Windows.Forms.DataGridViewTextBoxColumn DamageMultiplier; + private System.Windows.Forms.Label damageInstanceLabel; + private System.Windows.Forms.DataGridView bodyPartsDataGrid; + private System.Windows.Forms.NumericUpDown bodyPartHitRateUpDown; + private System.Windows.Forms.Button meleeBodyPartAddButton; + private System.Windows.Forms.ComboBox bodyPartComboBox; + private System.Windows.Forms.DataGridViewTextBoxColumn bodyPartTextBoxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn bodyPartHitRateColumn; + private System.Windows.Forms.DataGridView meleeMonEffectDataGrid; + private System.Windows.Forms.CheckBox monEffectDataAffectHitBpCheckBox; + private System.Windows.Forms.CheckBox monEffectDataPermanentCheckbox; + private System.Windows.Forms.ComboBox monEffectDataIdComboBox; + private System.Windows.Forms.NumericUpDown monEffectDataChanceUpDown; + private System.Windows.Forms.ComboBox monEffectDataBodyPartComboBox; + private System.Windows.Forms.NumericUpDown monEffectDataDurationUpDown; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.DataGridViewTextBoxColumn effectDataIdColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn effectDataDurationColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn affectHitBpColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn effectDataBodyPartColumn; + private System.Windows.Forms.DataGridViewCheckBoxColumn effectDataPermanentColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn effectDataChanceColumn; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.NumericUpDown numericUpDown3; + private System.Windows.Forms.NumericUpDown numericUpDown2; + private System.Windows.Forms.NumericUpDown numericUpDown1; + private System.Windows.Forms.Label biteNoInfectionChanceLabel; + private System.Windows.Forms.NumericUpDown biteNoInfectionChanceUpDown; + private System.Windows.Forms.Button moneEffectDataAddButton; + private System.Windows.Forms.Panel gunPanel; + private System.Windows.Forms.ComboBox gunTypeComboBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox ammoTypeComboBox; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.NumericUpDown gunFakeStrUpDown; + private System.Windows.Forms.NumericUpDown gunFakePerUpDown; + private System.Windows.Forms.NumericUpDown gunFakeIntUpDown; + private System.Windows.Forms.NumericUpDown gunFakeDexUpDown; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.NumericUpDown gunMoveCostUpDown; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.NumericUpDown gunMaxAmmoUpDown; + private System.Windows.Forms.DataGridView rangesDataGrid; + private System.Windows.Forms.NumericUpDown gunRangeMaxUpDown; + private System.Windows.Forms.NumericUpDown gunRangeMinUpDown; + private System.Windows.Forms.DataGridViewTextBoxColumn gunRangeMinColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn gunRangeMaxColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn gunRangeTypeColumn; + private System.Windows.Forms.ComboBox comboBox1; + } +} \ No newline at end of file diff --git a/MonsterAttackForm.cs b/MonsterAttackForm.cs new file mode 100644 index 0000000..72ac488 --- /dev/null +++ b/MonsterAttackForm.cs @@ -0,0 +1,161 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace cdda_item_creator +{ + public partial class MonsterAttackForm : Form + { + Dictionary hardcoded_attacks; + MonsterAttack mattack; + private void LoadHardcodedAttacks() + { + string flag_path = System.Windows.Forms.Application.StartupPath + "\\json\\hardcoded_mattack.json"; + string flag_file_text = File.ReadAllText(flag_path); + JObject jobj = JObject.Parse(flag_file_text); + hardcoded_attacks = jobj.ToObject>(); + } + private void BuildMonsterAttack() + { + switch(mattackTypeCombobox.Text) + { + default: + mattack = null; + break; + } + } + private void LoadBodyParts() + { + string flag_path = System.Windows.Forms.Application.StartupPath + "\\json\\body_parts.json"; + string flag_file_text = File.ReadAllText(flag_path); + string[] array = JArray.Parse(flag_file_text).ToObject(); + bodyPartComboBox.Items.AddRange(array); + monEffectDataBodyPartComboBox.Items.AddRange(array); + } + public MonsterAttackForm() + { + InitializeComponent(); + LoadHardcodedAttacks(); + LoadBodyParts(); + monEffectDataIdComboBox.Items.AddRange(Program.LoadedObjectDictionary.GetList("effect_type").ToArray()); + gunTypeComboBox.Items.AddRange(Program.LoadedObjectDictionary.GetList("GUN").ToArray()); + ammoTypeComboBox.Items.AddRange(Program.LoadedObjectDictionary.GetList("AMMO").ToArray()); + mattackTypeCombobox.SelectedIndex = 0; + idComboBox.SelectedIndex = 0; + foreach (string spell_id in Program.LoadedObjectDictionary.GetList("SPELL")) + { + spellIdComboBox.Items.Add(spell_id); + } + spellIdComboBox.SelectedIndex = 0; + } + + private void mattackTypeCombobox_SelectedIndexChanged(object sender, EventArgs e) + { + idComboBox.Enabled = true; + idComboBox.SelectedIndex = -1; + idComboBox.Items.Clear(); + idComboBox.Show(); + idComboBox.DropDownStyle = ComboBoxStyle.DropDown; + idLabel.Show(); + spellPanel.Hide(); + leapPanel.Hide(); + meleePanel.Hide(); + gunPanel.Hide(); + switch(mattackTypeCombobox.Text) + { + case "gun": + { + gunPanel.Show(); + break; + } + case "melee": + { + biteNoInfectionChanceLabel.Hide(); + biteNoInfectionChanceUpDown.Hide(); + meleePanel.Show(); + break; + } + case "bite": + { + biteNoInfectionChanceLabel.Show(); + biteNoInfectionChanceUpDown.Show(); + meleePanel.Show(); + break; + } + case "hardcoded": + { + foreach(string key in hardcoded_attacks.Keys) + { + idComboBox.Items.Add(key); + idComboBox.SelectedIndex = 0; + idComboBox.DropDownStyle = ComboBoxStyle.DropDownList; + } + break; + } + case "leap": + { + leapPanel.Show(); + break; + } + case "spell": + { + idComboBox.Enabled = false; + idComboBox.Hide(); + idLabel.Hide(); + spellPanel.Show(); + break; + } + default: break; + } + } + + private void cancelButton_Click(object sender, EventArgs e) + { + mattack = null; + } + + private void saveButton_Click(object sender, EventArgs e) + { + BuildMonsterAttack(); + } + + private void damageInstanceAddButton_Click(object sender, EventArgs e) + { + damageInstanceDataGrid.Rows.Add( + damageInstanceTypeComboBox.Text, + damageInstanceAmountUpDown.Value, + damageInstanceArmorPenetrationUpDown.Value, + damageInstanceArmorMultiplierUpDown.Value, + damageInstanceDamageMultiplierUpDown.Value + ); + } + + private void meleeBodyPartAddButton_Click(object sender, EventArgs e) + { + bodyPartsDataGrid.Rows.Add( + bodyPartComboBox.Text, + bodyPartHitRateUpDown.Value + ); + } + + private void moneEffectDataAddButton_Click(object sender, EventArgs e) + { + meleeMonEffectDataGrid.Rows.Add( + monEffectDataIdComboBox.Text, + monEffectDataDurationUpDown.Value, + monEffectDataAffectHitBpCheckBox.Checked, + monEffectDataBodyPartComboBox.Text, + monEffectDataPermanentCheckbox.Checked, + monEffectDataChanceUpDown.Value + ); + } + } +} diff --git a/MonsterAttackForm.resx b/MonsterAttackForm.resx new file mode 100644 index 0000000..cac8353 --- /dev/null +++ b/MonsterAttackForm.resx @@ -0,0 +1,216 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + + True + + \ No newline at end of file diff --git a/MonsterForm.Designer.cs b/MonsterForm.Designer.cs index 4049740..b873619 100644 --- a/MonsterForm.Designer.cs +++ b/MonsterForm.Designer.cs @@ -30,11 +30,9 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.nameTextBox = new System.Windows.Forms.TextBox(); - this.monsterNameStringsBindingSource = new System.Windows.Forms.BindingSource(this.components); this.clipboardButton = new System.Windows.Forms.Button(); this.nameLabel = new System.Windows.Forms.Label(); this.idTextBox = new System.Windows.Forms.TextBox(); - this.mtypeBindingSource = new System.Windows.Forms.BindingSource(this.components); this.idLabel = new System.Windows.Forms.Label(); this.pluralNameTextBox = new System.Windows.Forms.TextBox(); this.pluralNameLabel = new System.Windows.Forms.Label(); @@ -70,7 +68,6 @@ private void InitializeComponent() this.colorLabel = new System.Windows.Forms.Label(); this.materialDataGrid = new System.Windows.Forms.DataGridView(); this.MaterialComboBox = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.materialBindingSource = new System.Windows.Forms.BindingSource(this.components); this.speciesDataGrid = new System.Windows.Forms.DataGridView(); this.SpeciesComboBox = new System.Windows.Forms.DataGridViewComboBoxColumn(); this.categoriesDataGrid = new System.Windows.Forms.DataGridView(); @@ -117,7 +114,6 @@ private void InitializeComponent() this.pathSettingsPanel = new System.Windows.Forms.Panel(); this.label7 = new System.Windows.Forms.Label(); this.checkBox3 = new System.Windows.Forms.CheckBox(); - this.pathSettingsDataBindingSource = new System.Windows.Forms.BindingSource(this.components); this.checkBox2 = new System.Windows.Forms.CheckBox(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.label6 = new System.Windows.Forms.Label(); @@ -135,8 +131,16 @@ private void InitializeComponent() this.copyFromComboBox = new System.Windows.Forms.ComboBox(); this.clearCopyFromButton = new System.Windows.Forms.Button(); this.copyFromLabel = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.monsterNameStringsBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.mtypeBindingSource)).BeginInit(); + this.specialAttacksDataGrid = new System.Windows.Forms.DataGridView(); + this.specialAttackIdColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.specialAttackTypeColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.specialAttackCooldownColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.specialAttacksLabel = new System.Windows.Forms.Label(); + this.specialAttacksEditButton = new System.Windows.Forms.Button(); + this.materialBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.mtypeBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.pathSettingsDataBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.monsterNameStringsBindingSource = new System.Windows.Forms.BindingSource(this.components); ((System.ComponentModel.ISupportInitialize)(this.hpUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.volumeUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.weightUpDown)).BeginInit(); @@ -148,7 +152,6 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.bashArmorUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dodgeUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.materialDataGrid)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.materialBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.speciesDataGrid)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.categoriesDataGrid)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.diffUpDown)).BeginInit(); @@ -167,10 +170,14 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.speedUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.moraleUpDown)).BeginInit(); this.pathSettingsPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pathSettingsDataBindingSource)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pathSettingsBashStrengthUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pathSettingsMaxLengthUpDown)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pathSettingsMaxDistUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.specialAttacksDataGrid)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.materialBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.mtypeBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pathSettingsDataBindingSource)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.monsterNameStringsBindingSource)).BeginInit(); this.SuspendLayout(); // // nameTextBox @@ -181,10 +188,6 @@ private void InitializeComponent() this.nameTextBox.Size = new System.Drawing.Size(100, 20); this.nameTextBox.TabIndex = 0; // - // monsterNameStringsBindingSource - // - this.monsterNameStringsBindingSource.DataSource = typeof(cdda_item_creator.Translation); - // // clipboardButton // this.clipboardButton.Location = new System.Drawing.Point(597, 9); @@ -212,10 +215,6 @@ private void InitializeComponent() this.idTextBox.Size = new System.Drawing.Size(100, 20); this.idTextBox.TabIndex = 3; // - // mtypeBindingSource - // - this.mtypeBindingSource.DataSource = typeof(cdda_item_creator.Mtype); - // // idLabel // this.idLabel.AutoSize = true; @@ -599,11 +598,6 @@ private void InitializeComponent() this.MaterialComboBox.ToolTipText = "The Material this monster is made out of."; this.MaterialComboBox.Width = 146; // - // materialBindingSource - // - this.materialBindingSource.DataMember = "Material"; - this.materialBindingSource.DataSource = this.mtypeBindingSource; - // // speciesDataGrid // this.speciesDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; @@ -705,7 +699,7 @@ private void InitializeComponent() // difficultyLabel // this.difficultyLabel.AutoSize = true; - this.difficultyLabel.Location = new System.Drawing.Point(381, 9); + this.difficultyLabel.Location = new System.Drawing.Point(180, 7); this.difficultyLabel.Name = "difficultyLabel"; this.difficultyLabel.Size = new System.Drawing.Size(182, 13); this.difficultyLabel.TabIndex = 67; @@ -750,6 +744,7 @@ private void InitializeComponent() this.combatEffectivenessPanel.Controls.Add(this.bonusCutUpDown); this.combatEffectivenessPanel.Controls.Add(this.meleeDamageLabel); this.combatEffectivenessPanel.Controls.Add(this.damageInstanceAddButton); + this.combatEffectivenessPanel.Controls.Add(this.difficultyLabel); this.combatEffectivenessPanel.Controls.Add(this.damageInstanceDamageMultiplierUpDown); this.combatEffectivenessPanel.Controls.Add(this.damageInstanceArmorMultiplierUpDown); this.combatEffectivenessPanel.Controls.Add(this.damageInstanceAmountUpDown); @@ -899,7 +894,7 @@ private void InitializeComponent() // this.meleeDamageLabel.AutoSize = true; this.meleeDamageLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.meleeDamageLabel.Location = new System.Drawing.Point(106, 2); + this.meleeDamageLabel.Location = new System.Drawing.Point(42, 2); this.meleeDamageLabel.Name = "meleeDamageLabel"; this.meleeDamageLabel.Size = new System.Drawing.Size(129, 20); this.meleeDamageLabel.TabIndex = 82; @@ -1194,10 +1189,6 @@ private void InitializeComponent() this.checkBox3.Text = "Allow Climb Stairs"; this.checkBox3.UseVisualStyleBackColor = true; // - // pathSettingsDataBindingSource - // - this.pathSettingsDataBindingSource.DataSource = typeof(cdda_item_creator.PathSettingsData); - // // checkBox2 // this.checkBox2.AutoSize = true; @@ -1368,6 +1359,7 @@ private void InitializeComponent() this.clearCopyFromButton.TabIndex = 80; this.clearCopyFromButton.Text = "Clear"; this.clearCopyFromButton.UseVisualStyleBackColor = true; + this.clearCopyFromButton.Click += new System.EventHandler(this.clearCopyFromButton_Click); // // copyFromLabel // @@ -1379,11 +1371,88 @@ private void InitializeComponent() this.copyFromLabel.TabIndex = 81; this.copyFromLabel.Text = "Copy From"; // + // specialAttacksDataGrid + // + this.specialAttacksDataGrid.AllowUserToAddRows = false; + this.specialAttacksDataGrid.AllowUserToDeleteRows = false; + this.specialAttacksDataGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.specialAttacksDataGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.specialAttackIdColumn, + this.specialAttackTypeColumn, + this.specialAttackCooldownColumn}); + this.specialAttacksDataGrid.Location = new System.Drawing.Point(338, 27); + this.specialAttacksDataGrid.Name = "specialAttacksDataGrid"; + this.specialAttacksDataGrid.ReadOnly = true; + this.specialAttacksDataGrid.RowHeadersWidth = 5; + this.specialAttacksDataGrid.Size = new System.Drawing.Size(251, 85); + this.specialAttacksDataGrid.TabIndex = 82; + // + // specialAttackIdColumn + // + this.specialAttackIdColumn.HeaderText = "ID"; + this.specialAttackIdColumn.Name = "specialAttackIdColumn"; + this.specialAttackIdColumn.ReadOnly = true; + // + // specialAttackTypeColumn + // + this.specialAttackTypeColumn.HeaderText = "Type"; + this.specialAttackTypeColumn.Name = "specialAttackTypeColumn"; + this.specialAttackTypeColumn.ReadOnly = true; + this.specialAttackTypeColumn.Width = 65; + // + // specialAttackCooldownColumn + // + this.specialAttackCooldownColumn.HeaderText = "Cooldown"; + this.specialAttackCooldownColumn.Name = "specialAttackCooldownColumn"; + this.specialAttackCooldownColumn.ReadOnly = true; + this.specialAttackCooldownColumn.ToolTipText = "Cooldown in Moves. 100 moves is 1 second."; + this.specialAttackCooldownColumn.Width = 65; + // + // specialAttacksLabel + // + this.specialAttacksLabel.AutoSize = true; + this.specialAttacksLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.specialAttacksLabel.Location = new System.Drawing.Point(341, 6); + this.specialAttacksLabel.Name = "specialAttacksLabel"; + this.specialAttacksLabel.Size = new System.Drawing.Size(134, 20); + this.specialAttacksLabel.TabIndex = 83; + this.specialAttacksLabel.Text = "Special Attacks"; + // + // specialAttacksEditButton + // + this.specialAttacksEditButton.Location = new System.Drawing.Point(554, 6); + this.specialAttacksEditButton.Name = "specialAttacksEditButton"; + this.specialAttacksEditButton.Size = new System.Drawing.Size(36, 20); + this.specialAttacksEditButton.TabIndex = 84; + this.specialAttacksEditButton.Text = "Edit"; + this.specialAttacksEditButton.UseVisualStyleBackColor = true; + this.specialAttacksEditButton.Click += new System.EventHandler(this.specialAttacksEditButton_Click); + // + // materialBindingSource + // + this.materialBindingSource.DataMember = "Material"; + this.materialBindingSource.DataSource = this.mtypeBindingSource; + // + // mtypeBindingSource + // + this.mtypeBindingSource.DataSource = typeof(cdda_item_creator.Mtype); + // + // pathSettingsDataBindingSource + // + this.pathSettingsDataBindingSource.DataSource = typeof(cdda_item_creator.PathSettingsData); + // + // monsterNameStringsBindingSource + // + this.monsterNameStringsBindingSource.DataSource = typeof(cdda_item_creator.Translation); + // // MonsterForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(926, 462); + this.Controls.Add(this.specialAttacksEditButton); + this.Controls.Add(this.specialAttacksLabel); + this.Controls.Add(this.specialAttacksDataGrid); this.Controls.Add(this.copyFromLabel); this.Controls.Add(this.clearCopyFromButton); this.Controls.Add(this.copyFromComboBox); @@ -1395,7 +1464,6 @@ private void InitializeComponent() this.Controls.Add(this.harvestTextBox); this.Controls.Add(this.pathSettingsPanel); this.Controls.Add(this.combatEffectivenessPanel); - this.Controls.Add(this.difficultyLabel); this.Controls.Add(this.diffLabel); this.Controls.Add(this.diffUpDown); this.Controls.Add(this.looksLikeTextBox); @@ -1433,8 +1501,6 @@ private void InitializeComponent() this.Controls.Add(this.nameTextBox); this.Name = "MonsterForm"; this.Text = "Monster Creator"; - ((System.ComponentModel.ISupportInitialize)(this.monsterNameStringsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.mtypeBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.hpUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.volumeUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.weightUpDown)).EndInit(); @@ -1447,7 +1513,6 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.bashArmorUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.dodgeUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.materialDataGrid)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.materialBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.speciesDataGrid)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.categoriesDataGrid)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.diffUpDown)).EndInit(); @@ -1468,10 +1533,14 @@ private void InitializeComponent() ((System.ComponentModel.ISupportInitialize)(this.moraleUpDown)).EndInit(); this.pathSettingsPanel.ResumeLayout(false); this.pathSettingsPanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pathSettingsDataBindingSource)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pathSettingsBashStrengthUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pathSettingsMaxLengthUpDown)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.pathSettingsMaxDistUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.specialAttacksDataGrid)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.materialBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.mtypeBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pathSettingsDataBindingSource)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.monsterNameStringsBindingSource)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -1585,5 +1654,11 @@ private void InitializeComponent() private System.Windows.Forms.ComboBox copyFromComboBox; private System.Windows.Forms.Button clearCopyFromButton; private System.Windows.Forms.Label copyFromLabel; + private System.Windows.Forms.DataGridView specialAttacksDataGrid; + private System.Windows.Forms.DataGridViewTextBoxColumn specialAttackIdColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn specialAttackTypeColumn; + private System.Windows.Forms.DataGridViewTextBoxColumn specialAttackCooldownColumn; + private System.Windows.Forms.Label specialAttacksLabel; + private System.Windows.Forms.Button specialAttacksEditButton; } } \ No newline at end of file diff --git a/MonsterForm.cs b/MonsterForm.cs index 18699a8..a2985b5 100644 --- a/MonsterForm.cs +++ b/MonsterForm.cs @@ -98,9 +98,26 @@ private void loadFaction() defaultFactionTextBox.Items.Add(faction); } } + private void UpdateSpecialAttackDataGrid() + { + specialAttacksDataGrid.Rows.Clear(); + if(main_monster.SpecialAttacks == null) + { + return; + } + foreach(MonsterAttack mattack in main_monster.SpecialAttacks) + { + specialAttacksDataGrid.Rows.Add( + mattack.Id, + mattack.Type, + mattack.Cooldown + ); + } + } // updates the lists on the form to the data from the Mtype object private void UpdateFormListInternal() { + UpdateSpecialAttackDataGrid(); List indices = new List { }; foreach(string checked_item in flagsListBox.CheckedItems) { @@ -165,7 +182,12 @@ private void UpdateFormListInternal() int vol = 1; int.TryParse(split[0], out vol); volumeUpDown.Value = vol; - volumeListbox.SelectedItem = split[1]; + string it = "ml"; + if(split[1] == "L") + { + it = "L"; + } + volumeListbox.SelectedItem = it; } else { volumeUpDown.Value = 1; @@ -400,12 +422,8 @@ private void colorComboBox_SelectedIndexChanged(object sender, EventArgs e) { UpdateSymbolPreviewColor(); } - - private void copyFromComboBox_SelectedIndexChanged(object sender, EventArgs e) + private void UpdateMainMonsterBindings() { - // TODO: selector for items, and show what mod they're from - main_monster = Program.LoadedObjectDictionary.GetMtypes(copyFromComboBox.Text)[0].DeepCopy(); - mtypeBindingSource.Clear(); mtypeBindingSource.Add(main_monster); mtypeBindingSource.ResetBindings(false); @@ -424,5 +442,28 @@ private void copyFromComboBox_SelectedIndexChanged(object sender, EventArgs e) UpdateFormListInternal(); } + private void copyFromComboBox_SelectedIndexChanged(object sender, EventArgs e) + { + if ( copyFromComboBox.SelectedIndex == -1) + { + return; + } + // TODO: selector for items, and show what mod they're from + main_monster = Program.LoadedObjectDictionary.GetMtypes(copyFromComboBox.Text)[0].DeepCopy(); + UpdateMainMonsterBindings(); + } + + private void clearCopyFromButton_Click(object sender, EventArgs e) + { + copyFromComboBox.SelectedIndex = -1; + } + + private void specialAttacksEditButton_Click(object sender, EventArgs e) + { + MonsterAttackForm form = new MonsterAttackForm { }; + this.Hide(); + form.ShowDialog(); + this.Show(); + } } } diff --git a/MonsterForm.resx b/MonsterForm.resx index c4b0519..edc9b9d 100644 --- a/MonsterForm.resx +++ b/MonsterForm.resx @@ -126,9 +126,6 @@ True - - 428, 17 - True @@ -153,4 +150,16 @@ 603, 17 + + True + + + True + + + True + + + 428, 17 + \ No newline at end of file diff --git a/Program.cs b/Program.cs index 18a4b05..ccc61aa 100644 --- a/Program.cs +++ b/Program.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json; +using Newtonsoft.Json.Serialization; using System; using System.Collections.Generic; using System.Linq; @@ -22,6 +23,7 @@ public static class LoadedObjectDictionary static Dictionary> ids_by_type = new Dictionary> { }; static Dictionary> mtypes_by_id = new Dictionary> { }; static Dictionary> spells_by_id = new Dictionary> { }; + static Dictionary> mattacks_by_id = new Dictionary> { }; static public void Add(string type, string id) { @@ -36,6 +38,19 @@ static public void Add(string type, string id) ids_by_type.Add(type, temp_list); } } + static public void Add(string id, MonsterAttack mattack) + { + List temp_attack; + if (mattacks_by_id.TryGetValue(id, out temp_attack)) + { + temp_attack.Add(mattack); + mattacks_by_id[id] = temp_attack; + } else + { + temp_attack = new List { mattack }; + mattacks_by_id.Add(id, temp_attack); + } + } static public void Add(string id, Mtype mon) { List temp_list; @@ -79,6 +94,12 @@ static public List GetMtypes(string id) mtypes_by_id.TryGetValue(id, out ret); return ret; } + static public List GetMAttacks(string id) + { + List ret; + mattacks_by_id.TryGetValue(id, out ret); + return ret; + } } /// /// The main entry point for the application. diff --git a/ViewerForm.cs b/ViewerForm.cs index d080e8f..d8376a6 100644 --- a/ViewerForm.cs +++ b/ViewerForm.cs @@ -28,10 +28,13 @@ public ViewerForm() private void typeListBox_SelectedIndexChanged(object sender, EventArgs e) { idListBox.Items.Clear(); + string s = ""; foreach (string id in Program.LoadedObjectDictionary.GetList((string)typeListBox.SelectedItem)) { idListBox.Items.Add(id); + s += id + "\n"; } + Clipboard.SetText(s); } } } diff --git a/cdda-item-creator.csproj b/cdda-item-creator.csproj index f6b2a14..2ad13d8 100644 --- a/cdda-item-creator.csproj +++ b/cdda-item-creator.csproj @@ -50,6 +50,13 @@ + + + Form + + + MonsterAttackForm.cs + Form @@ -78,6 +85,9 @@ ViewerForm.cs + + MonsterAttackForm.cs + MonsterForm.cs diff --git a/custom_json.cs b/custom_json.cs index 51c8e00..5e3f307 100644 --- a/custom_json.cs +++ b/custom_json.cs @@ -38,17 +38,132 @@ protected override JsonProperty CreateProperty(MemberInfo member, MemberSerializ return jsonProperty; } } - + // expects a List public class MonsterAttackConverter : JsonConverter { + private JObject JODiff(JObject jo_base, JObject jo_compare) + { + if(jo_base.Count == 0) + { + return jo_compare; + } + + JObject ret; + if (jo_base.GetValue("id") == null) + { + ret = new JObject { { "Id", jo_base.GetValue("Id") } }; + } else + { + ret = new JObject { { "id", jo_base.GetValue("id") } }; + } + + foreach (KeyValuePair token in jo_base) + { + if (!JToken.DeepEquals(token.Value, jo_compare.GetValue(token.Key))) + { + ret.Add(token.Key, jo_compare.GetValue(token.Key)); + } + } + + return ret; + } public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { - MonsterAttack attack = value as MonsterAttack; - throw new NotImplementedException(); + List attacks = value as List; + JArray attacks_array = new JArray { }; + foreach (MonsterAttack attack in attacks) + { + if (attack.Type == "hardcoded") + { + JArray array = new JArray { attack.Id, attack.Cooldown }; + attacks_array.Add(array); + } + else + { + List mon_list = Program.LoadedObjectDictionary.GetMAttacks(attack.Id); + JObject jo_base = new JObject { }; + if(mon_list != null) + { + jo_base = JObject.FromObject(mon_list[0], serializer); + } + JObject attack_obj = JObject.FromObject(attack, serializer); + attacks_array.Add(JODiff(jo_base, attack_obj)); + } + } + attacks_array.WriteTo(writer); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { - throw new NotImplementedException(); + if(reader.TokenType == JsonToken.Null) + { + return null; + } + List ret = new List { }; + JArray main_array = JArray.Load(reader); + foreach (JToken token in main_array) + { + if (token.Type == JTokenType.Array) + { + JArray array = token.ToObject(); + ret.Add(new MonsterAttack + { + Id = (string)array[0], + Cooldown = (int)array[1] + }); + } + else + { + MonsterAttack test = token.ToObject(serializer); + List loaded_attack_list = Program.LoadedObjectDictionary.GetMAttacks(test.Id); + JObject token_object = token.ToObject(serializer); + string type; + if (loaded_attack_list != null) + { + JObject base_object = JObject.FromObject(loaded_attack_list[0], serializer); + type = loaded_attack_list[0].Type == "monster_attack" ? loaded_attack_list[0].AttackType : loaded_attack_list[0].Type; + base_object.Merge(token_object, + new JsonMergeSettings + { + MergeArrayHandling = MergeArrayHandling.Replace + }); + token_object = base_object; + } + else + { + type = test.Type == "monster_attack" ? test.AttackType : test.Type; + } + switch (type) + { + case "hardcoded": + ret.Add(token.ToObject(serializer)); + break; + case "leap": + ret.Add(token_object.ToObject(serializer)); + break; + case "bite": + ret.Add(token_object.ToObject(serializer)); + break; + case "gun": + ret.Add(token_object.ToObject(serializer)); + break; + case "melee": + ret.Add(token_object.ToObject(serializer)); + break; + case "spell": + ret.Add(token_object.ToObject(serializer)); + break; + default: break; + } + + } + } + if(ret.Count == 0) + { + return null; + } else + { + return ret; + } } public override bool CanConvert(Type objectType) { @@ -95,15 +210,7 @@ public override bool CanWrite public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { DamageInstance instance = (DamageInstance)value; - JToken token = JToken.FromObject(instance.Values, - new JsonSerializer - { - ContractResolver = new DefaultContractResolver - { - NamingStrategy = new SnakeCaseNamingStrategy() - } - } - ); + JToken token = JToken.FromObject(instance.Values, serializer); token.WriteTo(writer); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) @@ -112,22 +219,15 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist DamageInstance instance = new DamageInstance { }; if(token.Type == JTokenType.Array) { - foreach(JObject jo in token.ToObject>()) + foreach(JObject jo in token.ToObject>(serializer)) { - DamageUnit du = (DamageUnit)jo.ToObject(typeof(DamageUnit), - new JsonSerializer - { - ContractResolver = new DefaultContractResolver - { - NamingStrategy = new SnakeCaseNamingStrategy() - } - }); + DamageUnit du = (DamageUnit)jo.ToObject(typeof(DamageUnit), serializer); instance.Add(du); } } else { - return token.ToObject(); + return token.ToObject(serializer); } return instance; } @@ -226,4 +326,83 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist return null; } } + public class MAttackGunRangeConverter : JsonConverter + { + public override bool CanConvert(Type objectType) + { + return (objectType == typeof(GunRange)); + } + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + List ranges = value as List; + JArray outer = new JArray { }; + foreach (GunRange range in ranges) + { + outer.Add(new JArray { range.Min, range.Max, range.Type }); + } + outer.WriteTo(writer); + } + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + JToken token = JToken.Load(reader); + if (token.Type == JTokenType.Array) + { + JArray outer = token.ToObject(); + List ranges = new List { }; + foreach (JArray array in outer) + { + ranges.Add(new GunRange + { + Min = (int)array[0], + Max = (int)array[1], + Type = (string)array[2] + }); + } + return ranges; + } + else + { + return token.ToObject(); + } + } + } + public class IdValueArrayConverter : JsonConverter + { + public override bool CanConvert(Type objectType) + { + return (objectType == typeof(IdValueArray)); + } + public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + { + List pairs = value as List; + JArray outer = new JArray { }; + foreach (IdValueArray pair in pairs) + { + outer.Add(new JArray { pair.Id, pair.Value }); + } + outer.WriteTo(writer); + } + public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + { + JToken token = JToken.Load(reader); + if (token.Type == JTokenType.Array) + { + JArray outer = token.ToObject(); + List ret = new List { }; + foreach (JArray array in outer) + { + ret.Add(new IdValueArray + { + Id = (string)array[0], + Value = (int)array[1] + }); + } + return ret; + } + else + { + return token.ToObject(); + } + } + } } diff --git a/json/body_parts.json b/json/body_parts.json new file mode 100644 index 0000000..dd91b87 --- /dev/null +++ b/json/body_parts.json @@ -0,0 +1,15 @@ +[ + "TORSO", + "HEAD", + "EYES", + "MOUTH", + "ARM_L", + "ARM_R", + "HAND_L", + "HAND_R", + "LEG_L", + "LEG_R", + "FOOT_L", + "FOOT_R", + "NUM_BP", +] diff --git a/json/hardcoded_mattack.json b/json/hardcoded_mattack.json index 66b5a5c..f769bbf 100644 --- a/json/hardcoded_mattack.json +++ b/json/hardcoded_mattack.json @@ -5,88 +5,88 @@ "ANTQUEEN": "lays ant eggs and feeds them to have them grow into an adult", "CHECK_UP": "robot nurse checkup special", "ASSIST": "self-aware special", - "OPERATE": - "PAID_BOT": - "SHRIEK": - "SHRIEK_ALERT": - "SHRIEK_STUN": - "RATTLE": - "HOWL": - "ACID": - "ACID_BARF": - "ACID_ACCURATE": - "SHOCKSTORM": - "SHOCKING_REVEAL": - "PULL_METAL_WEAPON": - "BOOMER": - "BOOMER_GLOW": - "RESURRECT": - "SMASH": - "SCIENCE": - "GROWPLANTS": - "GROW_VINE": - "VINE": - "SPIT_SAP": - "TRIFFID_HEARTBEAT": - "FUNGUS": - "FUNGUS_CORPORATE": - "FUNGUS_HAZE": - "FUNGUS_BIG_BLOSSOM": - "FUNGUS_INJECT": - "FUNGUS_BRISTLE": - "FUNGUS_GROWTH": - "FUNGUS_SPROUT": - "FUNGUS_FORTIFY": - "DERMATIK": - "DERMATIK_GROWTH": - "FUNGAL_TRAIL": - "PLANT": - "DISAPPEAR": - "FORMBLOB": - "CALLBLOBS": - "JACKSON": - "DANCE": - "DOGTHING": - "TENTACLE": - "GENE_STING": - "PARA_STING": - "TRIFFID_GROWTH": - "STARE": - "FEAR_PARALYZE": - "PHOTOGRAPH": - "TAZER": - "SEARCHLIGHT": - "FLAMETHROWER": - "COPBOT": - "CHICKENBOT": - "MULTI_ROBOT": - "RATKING": - "GENERATOR": - "UPGRADE": - "BREATHE": - "IMPALE": - "BRANDISH": - "FLESH_GOLEM": - "ABSORB_MEAT": - "LUNGE": - "LONGSWIPE": - "PARROT": - "PARROT_AT_DANGER": - "DARKMAN": - "SLIMESPRING": - "TINDALOS_TELEPORT": - "FLESH_TENDRIL": - "BIO_OP_TAKEDOWN": - "SUICIDE": - "KAMIKAZE": - "GRENADIER": - "GRENADIER_ELITE": - "RIOTBOT": - "STRETCH_ATTACK": - "STRETCH_BITE": - "RANGED_PULL": - "GRAB": - "GRAB_DRAG": - "DOOT": - "ZOMBIE_FUSE": + "OPERATE": "no description available.", + "PAID_BOT": "no description available.", + "SHRIEK": "no description available.", + "SHRIEK_ALERT": "no description available.", + "SHRIEK_STUN": "no description available.", + "RATTLE": "no description available.", + "HOWL": "no description available.", + "ACID": "no description available.", + "ACID_BARF": "no description available.", + "ACID_ACCURATE": "no description available.", + "SHOCKSTORM": "no description available.", + "SHOCKING_REVEAL": "no description available.", + "PULL_METAL_WEAPON": "no description available.", + "BOOMER": "no description available.", + "BOOMER_GLOW": "no description available.", + "RESURRECT": "no description available.", + "SMASH": "no description available.", + "SCIENCE": "no description available.", + "GROWPLANTS": "no description available.", + "GROW_VINE": "no description available.", + "VINE": "no description available.", + "SPIT_SAP": "no description available.", + "TRIFFID_HEARTBEAT": "no description available.", + "FUNGUS": "no description available.", + "FUNGUS_CORPORATE": "no description available.", + "FUNGUS_HAZE": "no description available.", + "FUNGUS_BIG_BLOSSOM": "no description available.", + "FUNGUS_INJECT": "no description available.", + "FUNGUS_BRISTLE": "no description available.", + "FUNGUS_GROWTH": "no description available.", + "FUNGUS_SPROUT": "no description available.", + "FUNGUS_FORTIFY": "no description available.", + "DERMATIK": "no description available.", + "DERMATIK_GROWTH": "no description available.", + "FUNGAL_TRAIL": "no description available.", + "PLANT": "no description available.", + "DISAPPEAR": "no description available.", + "FORMBLOB": "no description available.", + "CALLBLOBS": "no description available.", + "JACKSON": "no description available.", + "DANCE": "no description available.", + "DOGTHING": "no description available.", + "TENTACLE": "no description available.", + "GENE_STING": "no description available.", + "PARA_STING": "no description available.", + "TRIFFID_GROWTH": "no description available.", + "STARE": "no description available.", + "FEAR_PARALYZE": "no description available.", + "PHOTOGRAPH": "no description available.", + "TAZER": "no description available.", + "SEARCHLIGHT": "no description available.", + "FLAMETHROWER": "no description available.", + "COPBOT": "no description available.", + "CHICKENBOT": "no description available.", + "MULTI_ROBOT": "no description available.", + "RATKING": "no description available.", + "GENERATOR": "no description available.", + "UPGRADE": "no description available.", + "BREATHE": "no description available.", + "IMPALE": "no description available.", + "BRANDISH": "no description available.", + "FLESH_GOLEM": "no description available.", + "ABSORB_MEAT": "no description available.", + "LUNGE": "no description available.", + "LONGSWIPE": "no description available.", + "PARROT": "no description available.", + "PARROT_AT_DANGER": "no description available.", + "DARKMAN": "no description available.", + "SLIMESPRING": "no description available.", + "TINDALOS_TELEPORT": "no description available.", + "FLESH_TENDRIL": "no description available.", + "BIO_OP_TAKEDOWN": "no description available.", + "SUICIDE": "no description available.", + "KAMIKAZE": "no description available.", + "GRENADIER": "no description available.", + "GRENADIER_ELITE": "no description available.", + "RIOTBOT": "no description available.", + "STRETCH_ATTACK": "no description available.", + "STRETCH_BITE": "no description available.", + "RANGED_PULL": "no description available.", + "GRAB": "no description available.", + "GRAB_DRAG": "no description available.", + "DOOT": "no description available.", + "ZOMBIE_FUSE": "no description available." } \ No newline at end of file diff --git a/mtype.cs b/mtype.cs index eaa5e03..39224a8 100644 --- a/mtype.cs +++ b/mtype.cs @@ -9,11 +9,6 @@ namespace cdda_item_creator { - [JsonConverter(typeof(MonsterAttackConverter))] - class MonsterAttack - { - - } public class Translation { [DefaultValue("")] @@ -167,6 +162,8 @@ public string Id public int BashSkill { get; set; } = -1; public PathSettingsData PathSettings { get; set; } = new PathSettingsData { }; public List Flags { get; set; } + [JsonConverter(typeof(MonsterAttackConverter))] + public List SpecialAttacks { get; set; } public void UpdateVolume( int num_part, string unit ) { @@ -182,7 +179,7 @@ public int Difficulty() { int difficulty = (int)((MeleeSkill + 1) * MeleeDice * (MeleeCut + MeleeDiceSides) * 0.04 + (Dodge + 1) * (3 + ArmorBash + ArmorCut) * 0.04 + - (Diff /* + special_attacks.size() + 8 * emit_fields.size() */)); + (Diff + SpecialAttacks.Count /* + 8 * emit_fields.size() */)); difficulty = (int)( difficulty * (Hp + Speed - AttackCost + (Morale + Aggression) * 0.1) * 0.01 + (VisionDay + 2 * VisionNight) * 0.01); return difficulty; diff --git a/selector.cs b/selector.cs index a417f6a..673ac8d 100644 --- a/selector.cs +++ b/selector.cs @@ -68,6 +68,32 @@ private void TryLoadObjectLists() case "SPELL": Program.LoadedObjectDictionary.Add(generic_object.Id, (spell.spell_type)obj.ToObject(typeof(spell.spell_type), j_ser)); break; + case "monster_attack": + MonsterAttack loaded_attack = (MonsterAttack)obj.ToObject(typeof(MonsterAttack), j_ser); + switch (loaded_attack.AttackType) + { + case "hardcoded": + Program.LoadedObjectDictionary.Add(generic_object.Id, loaded_attack); + break; + case "leap": + Program.LoadedObjectDictionary.Add(generic_object.Id, (MonsterAttackLeap)obj.ToObject(typeof(MonsterAttackLeap), j_ser)); + break; + case "bite": + Program.LoadedObjectDictionary.Add(generic_object.Id, (MonsterAttackBite)obj.ToObject(typeof(MonsterAttackBite), j_ser)); + break; + case "melee": + string melee = obj.ToString(); + Program.LoadedObjectDictionary.Add(generic_object.Id, (MonsterAttackMelee)obj.ToObject(typeof(MonsterAttackMelee), j_ser)); + break; + case "spell": + Program.LoadedObjectDictionary.Add(generic_object.Id, (MonsterAttackSpell)obj.ToObject(typeof(MonsterAttackSpell), j_ser)); + break; + case "gun": + Program.LoadedObjectDictionary.Add(generic_object.Id, (MonsterAttackGun)obj.ToObject(typeof(MonsterAttackGun), j_ser)); + break; + default: break; + } + break; default: break; } }