public void AddToSelection(List<GameObject> add){
			if(add.Count > 0){
				Scenario.History.RegisterMarkerSelection();
			}
			for(int i = 0; i < add.Count; i++){
				bool AlreadyExist = false;
				foreach(WorkingElement obj in Selected){
					if(obj.ListId == add[i].GetComponent<MarkerData>().ListId && obj.InstanceId == add[i].GetComponent<MarkerData>().InstanceId){
						AlreadyExist = true;
						break;
					}
				}
				if(!AlreadyExist){
					WorkingElement ToAdd = new WorkingElement();
					ToAdd.InstanceId = add[i].GetComponent<MarkerData>().InstanceId;
					ToAdd.ListId = add[i].GetComponent<MarkerData>().ListId;
					Selected.Add(ToAdd);
				}
			}
			UpdateSelectionRing();
		}
		public void ChangeSelectionState(List<GameObject> change){
			if(change.Count > 0) Scenario.History.RegisterMarkerSelection();
			for(int i = 0; i < change.Count; i++){
				bool AlreadyExist = false;
				foreach(WorkingElement obj in Selected){
					if(obj.ListId == change[i].GetComponent<MarkerData>().ListId && obj.InstanceId == change[i].GetComponent<MarkerData>().InstanceId){
						AlreadyExist = true;
						Selected.Remove(obj);
						break;
					}
				}
				if(!AlreadyExist){
					WorkingElement ToAdd = new WorkingElement();
					ToAdd.InstanceId = change[i].GetComponent<MarkerData>().InstanceId;
					ToAdd.ListId = change[i].GetComponent<MarkerData>().ListId;
					Selected.Add(ToAdd);
				}
			}
			UpdateSelectionRing();
		}
		public void GenerateAllWorkingElements(){
			AllWorkingElements = new List<WorkingElement>();

			for(int i = 0; i < Scenario.ARMY_.Count; i++){
				WorkingElement NewElement = new WorkingElement();
				NewElement.InstanceId = i;
				NewElement.ListId = 0;
				NewElement.SelectionState = 0;
				AllWorkingElements.Add(NewElement);
			}
			for(int i = 0; i < Scenario.Mexes.Count; i++){
				WorkingElement NewElement = new WorkingElement();
				NewElement.InstanceId = i;
				NewElement.ListId = 1;
				NewElement.SelectionState = 0;
				AllWorkingElements.Add(NewElement);
			}
			for(int i = 0; i < Scenario.Hydros.Count; i++){
				WorkingElement NewElement = new WorkingElement();
				NewElement.InstanceId = i;
				NewElement.ListId = 2;
				NewElement.SelectionState = 0;
				AllWorkingElements.Add(NewElement);
			}
			for(int i = 0; i < Scenario.SiMarkers.Count; i++){
				WorkingElement NewElement = new WorkingElement();
				NewElement.InstanceId = i;
				NewElement.ListId = 3;
				NewElement.SelectionState = 0;
				AllWorkingElements.Add(NewElement);
			}
		}