void update_view() { SkillList.Items.Clear(); ListViewItem name_lvi = SkillList.Items.Add(fChallenge.Name + ": " + fChallenge.GetXP() + " XP"); name_lvi.Group = SkillList.Groups[0]; ListViewItem info_lvi = SkillList.Items.Add(fChallenge.Info); info_lvi.Group = SkillList.Groups[0]; if (fChallenge.MapID != Guid.Empty) { Map m = Session.Project.FindTacticalMap(fChallenge.MapID); if (m != null) { MapArea ma = m.FindArea(fChallenge.MapAreaID); if (ma != null) { string str = "Location: " + m.Name; if (ma != null) { str += " (" + ma.Name + ")"; } ListViewItem lvi_loc = SkillList.Items.Add(str); lvi_loc.Group = SkillList.Groups[0]; } } } foreach (SkillChallengeData scd in fChallenge.Skills) { string diff = scd.Difficulty.ToString().ToLower() + " DCs"; if (scd.DCModifier != 0) { if (scd.DCModifier > 0) { diff += " +" + scd.DCModifier; } else { diff += " " + scd.DCModifier; } } string str = scd.SkillName + " (" + diff + ")"; if (scd.Details != "") { str += ": " + scd.Details; } ListViewItem lvi = SkillList.Items.Add(str); lvi.Tag = scd; switch (scd.Type) { case SkillType.Primary: lvi.Group = SkillList.Groups[1]; break; case SkillType.Secondary: lvi.Group = SkillList.Groups[2]; break; case SkillType.AutoFail: lvi.Group = SkillList.Groups[3]; break; } if ((scd.Difficulty == Difficulty.Trivial) || (scd.Difficulty == Difficulty.Extreme)) { lvi.ForeColor = Color.Red; } } if (SkillList.Groups[1].Items.Count == 0) { ListViewItem lvi = SkillList.Items.Add("(none)"); lvi.Group = SkillList.Groups[1]; lvi.ForeColor = SystemColors.GrayText; } if (SkillList.Groups[2].Items.Count == 0) { ListViewItem lvi = SkillList.Items.Add("(none)"); lvi.Group = SkillList.Groups[2]; lvi.ForeColor = SystemColors.GrayText; } SkillList.Sort(); }