private void LevelsTabControl_SelectedIndexChanged(object sender, EventArgs e) { var ind = LevelsTabControl.SelectedIndex; if (ind == -1) { return; } ActiveGroup = null; ActiveGroupInd = -1; ActiveSub = null; if (ind < LevelTabStart) { ActiveLevel = null; if (LevelsTabControl.SelectedTab == GroupPage) { UpdateTuningEntries(false, false); RenderGroups(); } } else if (ind == LevelsTabControl.TabPages.Count - 1 && LevelsTabControl.TabPages.Count > LevelTabStart) { AddUpgrade(); } else { ActiveLevel = ActiveUpgrades.Upgrades[ind - LevelTabStart]; } UpdateSubsList(); }
private void AddSubButton_Click(object sender, EventArgs e) { if (GroupsTabActive) { if (ActiveGroup != null) { ActiveGroup.Tuning.Add("0:0"); RenderGroups(); } } else { var newSub = new UpgradeSubstitution(); if (ActiveLevel == null) { ActiveUpgrades.Subs.Add(newSub); } else { ActiveLevel.Subs.Add(newSub); } UpdateSubsList(); } UpdateFile(); }
private void UpgradeSubList_SelectedIndexChanged(object sender, EventArgs e) { var item = UpgradeSubList.SelectedItem; ActiveSub = (item as SubEntry)?.Sub; RenderSub(); }
private void AddSubButton_Click(object sender, EventArgs e) { var newSub = new UpgradeSubstitution(); if (ActiveLevel == null) { ActiveUpgrades.Subs.Add(newSub); } else { ActiveLevel.Subs.Add(newSub); } UpdateSubsList(); UpdateFile(); }
public static List <UpgradeSubstitution> GroupsIntoSubs(List <UpgradeGroup> groups, List <UpgradeSubstitution> subs) { var groupSubs = subs.Where(x => x.Old.Length > 0 && x.Old[0] == 'G'); var defaultGroups = groups.Where(x => x.DefaultValue != null); if (groupSubs.Count() == 0 && defaultGroups.Count() == 0) { return(subs); } var result = subs.Where(x => x.Old.Length == 0 || x.Old[0] != 'G').ToList(); //add defaults at beginning var defaultInd = 0; foreach (var group in defaultGroups) { foreach (var target in group.Tuning) { var sub = new UpgradeSubstitution() { Old = target, New = group.DefaultValue }; result.Insert(defaultInd++, sub); } } //add group targeted upgrade subs at end (overwrite defaults when building into a table) foreach (var entry in groupSubs) { int groupID; if (!int.TryParse(entry.Old.Substring(1), out groupID) || groupID < 0 || groupID >= groups.Count) { //invalid group - just ignore for now continue; } var group = groups[groupID]; //create subs for each entry in the group foreach (var target in group.Tuning) { result.Add(new UpgradeSubstitution() { Old = target, New = entry.New }); } } return(result); }
private void UpdateSubsList() { ActiveSub = null; RenderSub(); if (ActiveLevel == null) { RenderSubs(ConstantSubList, ActiveUpgrades.Subs); } else { UpgradeContainer.Parent = LevelsTabControl.SelectedTab; UpgradeContainer.BackColor = Color.White; int parsedLevelName; if (int.TryParse(ActiveLevel.Name, out parsedLevelName)) { UpgradeNameText.SelectedIndex = parsedLevelName; } else { UpgradeNameText.Text = ActiveLevel.Name; } DescriptionText.Text = ActiveLevel.Description; AdText.Text = ActiveLevel.Ad; var literal = ActiveLevel.Price[0] == 'R' || ActiveLevel.Price[0] == '$'; if (literal) { PriceValueRadio.Checked = true; UpgradeValue.Value = int.Parse(ActiveLevel.Price.Substring(1)); RelativeCheck.Checked = ActiveLevel.Price[0] == 'R'; } else { PriceObjectRadio.Checked = true; } UpdatePriceObject(); RenderSubs(UpgradeSubList, ActiveLevel.Subs); } }