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; }