示例#1
0
        void AddCompletedSuitToTreeView(CompletedSuit suit)
        {
            CompletedSuitTreeNode newNode = new CompletedSuitTreeNode(suit);

            TreeNodeCollection nodes = FindDeepestNode(treeView1.Nodes, suit);

            for (int i = 0; i <= nodes.Count; i++)
            {
                if (i == nodes.Count)
                {
                    nodes.Add(newNode);
                    break;
                }

                CompletedSuitTreeNode nodeAsSuit = (nodes[i] as CompletedSuitTreeNode);

                //if (nodeAsSuit != null && (nodeAsSuit.Suit.Count < suit.Count || (nodeAsSuit.Suit.Count == suit.Count && nodeAsSuit.Suit.TotalBaseArmorLevel < suit.TotalBaseArmorLevel)))
                if (nodeAsSuit != null)
                {
                    if (nodeAsSuit.Suit.TotalBaseArmorLevel < suit.TotalBaseArmorLevel)
                    {
                        nodes.Insert(i, newNode);
                        break;
                    }

                    if ((nodeAsSuit.Suit.TotalBaseArmorLevel == suit.TotalBaseArmorLevel) && ((nodeAsSuit.Suit.TotalEffectiveEpics < suit.TotalEffectiveEpics) || (nodeAsSuit.Suit.TotalEffectiveEpics == suit.TotalEffectiveEpics && nodeAsSuit.Suit.TotalEffectiveMajors < suit.TotalEffectiveMajors)))
                    {
                        nodes.Insert(i, newNode);
                        break;
                    }
                }
            }
        }
示例#2
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            CompletedSuitTreeNode node = e.Node as CompletedSuitTreeNode;

            if (node != null)
            {
                PopulateFromEquipmentGroup(node.Suit);
            }
        }
示例#3
0
        TreeNodeCollection FindDeepestNode(TreeNodeCollection nodes, CompletedSuit suit)
        {
            foreach (TreeNode node in nodes)
            {
                CompletedSuitTreeNode nodeAsSuit = (node as CompletedSuitTreeNode);

                if (nodeAsSuit != null && suit.IsProperSupersetOf(nodeAsSuit.Suit))
                {
                    return(FindDeepestNode(node.Nodes, suit));
                }
            }

            return(nodes);
        }
示例#4
0
		void AddCompletedSuitToTreeView(CompletedSuit suit)
		{
			CompletedSuitTreeNode newNode = new CompletedSuitTreeNode(suit);

			TreeNodeCollection nodes = FindDeepestNode(treeView1.Nodes, suit);

			for (int i = 0; i <= nodes.Count; i++)
			{
				if (i == nodes.Count)
				{
					nodes.Add(newNode);
					break;
				}

				CompletedSuitTreeNode nodeAsSuit = (nodes[i] as CompletedSuitTreeNode);

				//if (nodeAsSuit != null && (nodeAsSuit.Suit.Count < suit.Count || (nodeAsSuit.Suit.Count == suit.Count && nodeAsSuit.Suit.TotalBaseArmorLevel < suit.TotalBaseArmorLevel)))
				if (nodeAsSuit != null)
				{
					if (nodeAsSuit.Suit.TotalBaseArmorLevel < suit.TotalBaseArmorLevel)
					{
						nodes.Insert(i, newNode);
						break;
					}
					
					if ((nodeAsSuit.Suit.TotalBaseArmorLevel == suit.TotalBaseArmorLevel) && ((nodeAsSuit.Suit.TotalEffectiveEpics < suit.TotalEffectiveEpics) || (nodeAsSuit.Suit.TotalEffectiveEpics == suit.TotalEffectiveEpics && nodeAsSuit.Suit.TotalEffectiveMajors < suit.TotalEffectiveMajors)))
					{
						nodes.Insert(i, newNode);
						break;
					}
				}
			}
		}
示例#5
0
        private void cmdCopyToClipboard_Click(object sender, EventArgs e)
        {
            var sb = new StringBuilder();

            CompletedSuitTreeNode node = treeView1.SelectedNode as CompletedSuitTreeNode;

            if (node == null)
            {
                return;
            }

            AddEquipmentPieceToClipboard(node.Suit[EquipMask.HeadWear] == null ? null : node.Suit[EquipMask.HeadWear].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.ChestArmor] == null ? null : node.Suit[EquipMask.ChestArmor].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.AbdomenArmor] == null ? null : node.Suit[EquipMask.AbdomenArmor].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.UpperArmArmor] == null ? null : node.Suit[EquipMask.UpperArmArmor].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.LowerArmArmor] == null ? null : node.Suit[EquipMask.LowerArmArmor].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.HandWear] == null ? null : node.Suit[EquipMask.HandWear].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.UpperLegArmor] == null ? null : node.Suit[EquipMask.UpperLegArmor].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.LowerLegArmor] == null ? null : node.Suit[EquipMask.LowerLegArmor].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.FootWear] == null ? null : node.Suit[EquipMask.FootWear].ExtendedMyWorldObject, sb);
            sb.AppendLine();
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.ChestWear] == null ? null : node.Suit[EquipMask.ChestWear].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.UpperLegWear] == null ? null : node.Suit[EquipMask.UpperLegWear].ExtendedMyWorldObject, sb);
            sb.AppendLine();
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.NeckWear] == null ? null : node.Suit[EquipMask.NeckWear].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.TrinketOne] == null ? null : node.Suit[EquipMask.TrinketOne].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.WristWearLeft] == null ? null : node.Suit[EquipMask.WristWearLeft].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.WristWearRight] == null ? null : node.Suit[EquipMask.WristWearRight].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.FingerWearLeft] == null ? null : node.Suit[EquipMask.FingerWearLeft].ExtendedMyWorldObject, sb);
            AddEquipmentPieceToClipboard(node.Suit[EquipMask.FingerWearRight] == null ? null : node.Suit[EquipMask.FingerWearRight].ExtendedMyWorldObject, sb);
            sb.AppendLine();
            sb.AppendLine("Total Effective Legendaries: ".PadRight(30) + node.Suit.TotalEffectiveLegendaries);
            sb.AppendLine("Total Effective Epics: ".PadRight(30) + node.Suit.TotalEffectiveEpics);
            sb.AppendLine("Total Effective Majors: ".PadRight(30) + node.Suit.TotalEffectiveMajors);
            sb.AppendLine("Total Base Armor Level: ".PadRight(30) + node.Suit.TotalBaseArmorLevel);
            sb.AppendLine();

            var spells = new List <Spell>();

            foreach (var kvp in node.Suit)
            {
                foreach (var spell in kvp.Value.ExtendedMyWorldObject.CachedSpells)
                {
                    spells.Add(spell);
                }
            }

            spells.Sort((a, b) =>
            {
                if (a.CantripLevel == Spell.CantripLevels.None && b.CantripLevel != Spell.CantripLevels.None)
                {
                    return(1);
                }
                if (a.CantripLevel != Spell.CantripLevels.None && b.CantripLevel == Spell.CantripLevels.None)
                {
                    return(-1);
                }
                if (a.CantripLevel != Spell.CantripLevels.None && b.CantripLevel != Spell.CantripLevels.None)
                {
                    if (a.CantripLevel == b.CantripLevel)
                    {
                        return(String.Compare(b.Name, a.Name, StringComparison.OrdinalIgnoreCase));
                    }

                    return(b.CantripLevel.CompareTo(a.CantripLevel));
                }

                if (a.BuffLevel == b.BuffLevel)
                {
                    return(String.Compare(b.Name, a.Name, StringComparison.OrdinalIgnoreCase));
                }

                return(b.BuffLevel.CompareTo(a.BuffLevel));
            });

            foreach (var spell in spells)
            {
                sb.AppendLine(spell.ToString());
            }

            try
            {
                Clipboard.SetText(sb.ToString());
            } catch {};
        }