void SkillPicker_OnItemPicked(int index, string skillName) { skillPicker.CloseWindow(); switch (lastSkillButtonId) { case 0: createdClass.PrimarySkill1 = skillsDict[skillName]; break; case 1: createdClass.PrimarySkill2 = skillsDict[skillName]; break; case 2: createdClass.PrimarySkill3 = skillsDict[skillName]; break; case 3: createdClass.MajorSkill1 = skillsDict[skillName]; break; case 4: createdClass.MajorSkill2 = skillsDict[skillName]; break; case 5: createdClass.MajorSkill3 = skillsDict[skillName]; break; case 6: createdClass.MinorSkill1 = skillsDict[skillName]; break; case 7: createdClass.MinorSkill2 = skillsDict[skillName]; break; case 8: createdClass.MinorSkill3 = skillsDict[skillName]; break; case 9: createdClass.MinorSkill4 = skillsDict[skillName]; break; case 10: createdClass.MinorSkill5 = skillsDict[skillName]; break; case 11: createdClass.MinorSkill6 = skillsDict[skillName]; break; default: return; } skillsList.Remove(skillName); if (skillLabels[lastSkillButtonId].Text != string.Empty) { skillsList.Add(skillLabels[lastSkillButtonId].Text); } skillsList.Sort(); skillLabels[lastSkillButtonId].Text = skillName; }
private void EnchantmentPrimaryPicker_OnUseSelectedItem() { // Clear existing enchantmentSecondaryPicker.ListBox.ClearItems(); // Get the effect template tagged to selected item ListBox.ListItem listItem = enchantmentPrimaryPicker.ListBox.SelectedValue; IEntityEffect effect = listItem.tag as IEntityEffect; if (effect == null) { throw new Exception(string.Format("ListItem '{0}' has no IEntityEffect tag", listItem.textLabel.Text)); } // Filter enchantments based on effect key EnchantmentSettings[] filteredEnchantments = GetFilteredEnchantments(effect); // If this is a singleton effect with no secondary options then add directly to powers/side-effects if (filteredEnchantments.Length == 1) { AddEnchantmentSettings(filteredEnchantments[0]); enchantmentPrimaryPicker.CloseWindow(); return; } // Order filtered list by alpha when requested by effect flags if (effect.HasItemMakerFlags(ItemMakerFlags.AlphaSortSecondaryList)) { filteredEnchantments = filteredEnchantments.OrderBy(o => o.SecondaryDisplayName).ToArray(); } // User must select from available secondary enchantment types EnchantmentSettings[] currentPowers = powersList.GetEnchantments(); EnchantmentSettings[] currentSideEffects = sideEffectsList.GetEnchantments(); foreach (EnchantmentSettings enchantment in filteredEnchantments) { // Filter out enchantment when multiple instances not allowed if (!effect.HasItemMakerFlags(ItemMakerFlags.AllowMultipleSecondaryInstances)) { if (ContainsEnchantmentSettings(enchantment)) { continue; } } // Filter if any current secondary enchantments are exclusive to this one EnchantmentParam comparerParam = new EnchantmentParam() { ClassicParam = enchantment.ClassicParam, CustomParam = enchantment.CustomParam }; if (effect.IsEnchantmentExclusiveTo(currentPowers, comparerParam) || effect.IsEnchantmentExclusiveTo(currentSideEffects, comparerParam)) { continue; } enchantmentSecondaryPicker.ListBox.AddItem(enchantment.SecondaryDisplayName, -1, enchantment); } enchantmentSecondaryPicker.ListBox.SelectedIndex = 0; uiManager.PushWindow(enchantmentSecondaryPicker); }