public AbilityActionCollection(DotaAbility ability) { Ability = ability; KeyValue kv = ability.KeyValue["Modifiers"]; if (kv == null) { kv = new KeyValue("Modifiers"); } Modifiers = new DotaScriptCollection <DotaModifier>(kv); kv = ability.KeyValue["AbilitySpecial"]; if (kv == null) { kv = new KeyValue("AbilitySpecial"); } Variables = new DotaScriptCollection <BaseActionVariable>(kv); }
private void okButton_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(nameTextBox.Text)) { switch(dialogType) { case DotaType.Hero: MessageBox.Show("Dota 2 does not currently support custom heroes."); break; case DotaType.Unit: DotaUnit unit = new DotaUnit(nameTextBox.Text); unit.BaseClass = DEFAULT_UNIT_CLASS; if (objectListBox.SelectedIndex != -1) unit.BaseClass = objectListBox.SelectedItem.ToString(); unit.ObjectInfo.ObjectClass = DotaDataObject.DataObjectInfo.ObjectDataClass.Custom; DotaData.AllUnits.Add(unit); break; case DotaType.Ability: DotaAbility ability = new DotaAbility(nameTextBox.Text); ability.BaseClass = DEFAULT_ABILITY_CLASS; if (objectListBox.SelectedIndex != -1) ability.BaseClass = objectListBox.SelectedItem.ToString(); ability.ObjectInfo.ObjectClass = DotaDataObject.DataObjectInfo.ObjectDataClass.Custom; DotaData.AllAbilities.Add(ability); break; case DotaType.Item: DotaItem item = new DotaItem(nameTextBox.Text); item.BaseClass = DEFAULT_ITEM_CLASS; if (objectListBox.SelectedIndex != -1) item.BaseClass = objectListBox.SelectedItem.ToString(); item.ObjectInfo.ObjectClass = DotaDataObject.DataObjectInfo.ObjectDataClass.Custom; DotaData.AllItems.Add(item); break; } this.DialogResult = DialogResult.OK; this.Close(); } else { switch (dialogType) { case DotaType.Hero: MessageBox.Show("Please enter a valid hero name."); break; case DotaType.Unit: MessageBox.Show("Please enter a valid unit name."); break; case DotaType.Ability: MessageBox.Show("Please enter a valid ability name."); break; case DotaType.Item: MessageBox.Show("Please enter a valid item name."); break; } } }