public static BuffController MakeNewIfNone(Tank objTank) { foreach (BuffController element in BuffController.allControllers) { if (element.tank == objTank) { return(element); } } BuffController newObject = new BuffController { tank = objTank }; foreach (KeyValuePair <string, string[]> entry in BuffController.allEffects) { BuffSegment newSegment = new BuffSegment { tank = newObject.tank, controller = newObject, effectType = entry.Key, effectPaths = entry.Value }; newObject.allSegments.Add(entry.Key, newSegment); //Console.WriteLine("FFW: Entry Key Type: " + entry.Key.GetType().Name + " / Entry Value Length: " + entry.Value.Length); } BuffController.AddObject(newObject); Console.WriteLine("FFW: Active BuffControls: " + BuffController.allControllers.Count); return(newObject); }