public static void Build()
        {
            GameObject reaper = UnityEngine.Object.Instantiate(PrefabDatabase.Instance.SuperReaper);

            reaper.SetActive(false);
            FakePrefab.MarkAsFakePrefab(reaper);
            UnityEngine.Object.DontDestroyOnLoad(reaper);
            SuperReaperController       controller       = reaper.GetComponent <SuperReaperController>();
            CustomSuperReaperController customController = reaper.AddComponent <CustomSuperReaperController>();

            customController.PreventShooting    = false;
            customController.BulletScript       = controller.BulletScript;
            customController.ShootPoint         = controller.ShootPoint;
            customController.ShootTimer         = controller.ShootTimer;
            customController.MinSpeed           = controller.MinSpeed;
            customController.MaxSpeed           = controller.MaxSpeed;
            customController.MinSpeedDistance   = controller.MinSpeedDistance;
            customController.MaxSpeedDistance   = controller.MaxSpeedDistance;
            customController.knockbackComponent = controller.knockbackComponent;
            Destroy(controller);
            List <AIBulletBank.Entry> entries = new List <AIBulletBank.Entry>();

            foreach (AIBulletBank.Entry bullet in customController.bulletBank.Bullets)
            {
                AIBulletBank.Entry entry = bullet.Clone(true, true, false, false);
                entries.Add(entry);
            }
            customController.bulletBank.Bullets.Clear();
            foreach (AIBulletBank.Entry bullet in entries)
            {
                customController.bulletBank.Bullets.Add(bullet);
            }
            customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().BulletScriptSettings.preventPooling = true;
            customController.bulletBank.Bullets[0].ProjectileData.damage = 10f;
            customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite().SetSprite(ETGMod.Databases.Items.ProjectileCollection, ETGMod.Databases.Items.ProjectileCollection.GetSpriteIdByName("10x10_player_projectile_dark_002"));
            ETGMod.Databases.Items.ProjectileCollection.spriteDefinitions[customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite().spriteId] =
                PrefabDatabase.Instance.SuperReaper.GetComponent <SuperReaperController>().bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite().GetCurrentSpriteDef().CopyDefinitionFrom();
            Material material = Toolbox.GetGunById(38).DefaultModule.projectiles[0].GetAnySprite().GetCurrentSpriteDef().material;

            ETGMod.Databases.Items.ProjectileCollection.spriteDefinitions[customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite().spriteId].material     = material;
            ETGMod.Databases.Items.ProjectileCollection.spriteDefinitions[customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite().spriteId].materialInst = material;
            ETGMod.Databases.Items.ProjectileCollection.spriteDefinitions[customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite().spriteId].name         = "10x10_player_projectile_dark_002";
            tk2dBaseSprite       sprite    = PrefabDatabase.Instance.SuperReaper.GetComponent <SuperReaperController>().bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite();
            PixelCollider        pcollider = PrefabDatabase.Instance.SuperReaper.GetComponent <SuperReaperController>().bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().specRigidbody.PrimaryPixelCollider;
            tk2dSpriteDefinition tk2dSpriteDefinition;

            if (pcollider.BagleUseFirstFrameOnly && !string.IsNullOrEmpty(pcollider.SpecifyBagelFrame))
            {
                tk2dSpriteDefinition = sprite.Collection.GetSpriteDefinition(pcollider.SpecifyBagelFrame);
            }
            else
            {
                tk2dSpriteDefinition = sprite.GetTrueCurrentSpriteDef();
            }
            int num = (tk2dSpriteDefinition != null) ? sprite.GetSpriteIdByName(tk2dSpriteDefinition.name) : -1;
            BagelColliderData data = Toolbox.GetBagelColliders(num, sprite.Collection);

            ETGMod.Databases.Items.ProjectileCollection.SpriteIDsWithBagelColliders.Add(customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().GetAnySprite().spriteId);
            ETGMod.Databases.Items.ProjectileCollection.SpriteDefinedBagelColliders.Add(data);
            customController.bulletBank.Bullets[0].BulletObject.GetComponent <Projectile>().specRigidbody.PrimaryPixelCollider.SpecifyBagelFrame = "";
            CustomSuperReaperController.friendlyReaperPrefab = reaper;
        }