public Boss CreateBoss(BossType enemyType, Vector2 position) { Boss boss; uint id = NextID(); switch (enemyType) { case BossType.Blimp: Blimp blimp = new Blimp(id, position, content); LeftGun leftGun = new LeftGun(NextID(), content, blimp); RightGun rightGun = new RightGun(NextID(), content, blimp); leftGun.ObjectType = ObjectType.Boss; rightGun.ObjectType = ObjectType.Boss; blimp.leftGun = leftGun; blimp.rightGun = rightGun; QueueGameObjectForCreation(leftGun); QueueGameObjectForCreation(rightGun); boss = blimp; break; case BossType.TwinJetManager: boss = new TwinJetManager(id, content, position); break; default: throw new NotImplementedException("The boss type " + Enum.GetName(typeof(BossType), enemyType) + " is not supported"); } boss.ObjectType = ObjectType.Boss; QueueGameObjectForCreation(boss); return boss; }