public void UpdateUnitPointLists(ClusterConditions CC) { if (ListUnits.Count == 0) { return; } List <int> RemovalIndexList = new List <int>(); bool changeOccured = false; foreach (var item in ListUnits) { if (!item.IsStillValid() || (!CC.IgnoreNonTargetable || !item.IsTargetable.Value)) { RemovalIndexList.Add(ListUnits.IndexOf(item)); RAGUIDS.Remove(item.RAGUID); changeOccured = true; } } if (changeOccured) { RemovalIndexList.Sort(); RemovalIndexList.Reverse(); foreach (var item in RemovalIndexList) { //ListCacheObjects.RemoveAt(item); ListUnits.RemoveAt(item); ListPoints.RemoveAt(item); } if (ListUnits.Count > 1) { //Logger.DBLog.InfoFormat("Updating Cluster"); //Reset Vars Info = new ClusterInfo(); NearestMonsterDistance = -1f; //Set default using First Unit CacheUnit firstUnit = ListUnits[0]; MidPoint = firstUnit.PointPosition; RAGUIDS.Add(firstUnit.RAGUID); NearestMonsterDistance = firstUnit.CentreDistance; Info.Update(ref firstUnit); //Iterate thru the remaining for (int i = 1; i < ListUnits.Count - 1; i++) { this.UpdateProperties(ListUnits[i]); } } } }
private void DeleteSelectPoint_Click(object sender, EventArgs e) { if (listBoxPoints.Items.Count > 0 && listBoxPoints.SelectedIndex > -1) { ListPoints.RemoveAt(listBoxPoints.SelectedIndex); ListPointDesc.RemoveAt(listBoxPoints.SelectedIndex); setListBoxPoints(); } else if (listBoxPoints.Items.Count > 0 && listBoxPoints.SelectedIndex == -1) { ListPoints.RemoveAt(0); ListPointDesc.RemoveAt(0); setListBoxPoints(); } }