private void Start()
        {
            this.m_projectile = base.GetComponent <Projectile>();
            BulletScriptSource source = this.m_projectile.gameObject.GetOrAddComponent <BulletScriptSource>();

            this.m_projectile.gameObject.AddComponent <BulletSourceKiller>();
            var          bulletScriptSelected = new CustomBulletScriptSelector(typeof(GunjurerSlamPlayerScript));
            AIBulletBank bulletBank           = DataCloners.CopyAIBulletBank(EnemyDatabase.GetOrLoadByGuid("206405acad4d4c33aac6717d184dc8d4").bulletBank);

            bulletBank.OnProjectileCreated += this.OnBulletSpawned;
            foreach (AIBulletBank.Entry bullet in bulletBank.Bullets)
            {
                bullet.BulletObject.GetComponent <Projectile>().BulletScriptSettings.preventPooling = true;
            }
            source.BulletManager = bulletBank;
            source.BulletScript  = bulletScriptSelected;
            source.Initialize();//to fire the script once
            GunjurerSlamPlayerScript spawnedScript = source.RootBullet as GunjurerSlamPlayerScript;

            spawnedScript.aimDirection = this.m_projectile.Direction.ToAngle();

            /*if (this.m_projectile.ProjectilePlayerOwner() != null)
             * {
             *  spawnedScript.overrideSpeed *= this.m_projectile.ProjectilePlayerOwner().stats.GetStatValue(PlayerStats.StatType.ProjectileSpeed);
             * }*/
        }
 public ExpandingBullet(GunjurerSlamPlayerScript parent, Vector2 offset) : base(null, false, false, false)
 {
     this.m_parent = parent;
     this.m_offset = offset;
 }