public static void Add(Entity <int> entity) { if (!IsUpdating) { switch (entity) { case GameBoss gb: gb = GameFactory.CreateGameBoss(); gb.Add(Instance); Entities.Add(gb); break; case BulletSpawn bs: bs = GameFactory.CreateBulletSpawn(); bs.Add(Instance); Entities.Add(bs); break; case MainPlayer mp: mp = GameFactory.CreateMainPlayer(); Entities.Add(mp); //move to front of list //var temp = Entities[Entities.Count - 1]; // Entities[Entities.Count - 1] = Entities[0]; // Entities[0] = temp; mp.Add(Instance); break; case StandardEnemy be: var bList = GameFactory.CreateButterflyEnemy("Random", 1); be = bList[0]; Entities.Add(be); be.Add(Instance); break; case PlayerBullet pb: pb = GameFactory.CreatePlayerBullet(Entities[0].Position); Entities.Add(pb); pb.Add(Instance); break; //case BulletPatterns bp: // bp = GameFactory.CreateBulletPattern(BulletPatternFactory.PatternTypes.Circular); // Entities.Add(bp); // break; } } else { AddedEntities.Add(entity); } }