Example #1
0
        public override void Initialize(GameObject owner)
        {
            base.Initialize(owner);

            transform          = (Transform)GetComponent <Transform>();
            transform.Position = new Vector2(360, 300);

            renderer = (SpriteRenderer)GetComponent <SpriteRenderer>();

            velocity = (Velocity)GetComponent <Velocity>();

            var playerObj = GameManager.GetObjectByTag("Player");

            player             = (Transform)playerObj.GetComponent <Transform>();
            playerCenter       = ((SpriteRenderer)playerObj.GetComponent <SpriteRenderer>()).Sprite.GetCenter();
            phaseOneProjectile = GameManager.GetPrefab("GreenProjectile");
            phaseTwoProjectile = GameManager.GetPrefab("PinkSquareProjectile");

            phaseOneProjectile.Tag = "Enemy" + phaseOneProjectile.Tag;

            centerPosition = new Vector2(360, 360) - renderer.Sprite.GetCenter();

            bulletFanProjectile         = GameManager.GetPrefab("WhiteDiamondProjectile");
            bulletFanProjectileRenderer = (SpriteRenderer)bulletFanProjectile.GetComponent <SpriteRenderer>();

            phaseOneCoordinates = new Vector2[]
            {
                new Vector2(360, 84) - renderer.Sprite.GetCenter(),
                new Vector2(248, 432) - renderer.Sprite.GetCenter(),
                new Vector2(541, 215) - renderer.Sprite.GetCenter(),
                new Vector2(178, 215) - renderer.Sprite.GetCenter(),
                new Vector2(471, 432) - renderer.Sprite.GetCenter()
            };

            bossOutline = new Vector2[]
            {
                new Vector2(128, 10) * renderer.Sprite.Scale,
                new Vector2(96, 102) * renderer.Sprite.Scale,
                new Vector2(1, 101) * renderer.Sprite.Scale,
                new Vector2(77, 159) * renderer.Sprite.Scale,
                new Vector2(46, 246) * renderer.Sprite.Scale,
                new Vector2(128, 188) * renderer.Sprite.Scale,
                new Vector2(210, 246) * renderer.Sprite.Scale,
                new Vector2(180, 159) * renderer.Sprite.Scale,
                new Vector2(255, 101) * renderer.Sprite.Scale,
                new Vector2(160, 102) * renderer.Sprite.Scale
            };

            starPoints = new Vector2[]
            {
                new Vector2(128, 10) * renderer.Sprite.Scale,
                new Vector2(1, 101) * renderer.Sprite.Scale,
                new Vector2(46, 246) * renderer.Sprite.Scale,
                new Vector2(210, 246) * renderer.Sprite.Scale,
                new Vector2(255, 101) * renderer.Sprite.Scale,
            };

            health       = totalHealth = 2;
            midbossState = MidbossState.TransitionPhase1;
        }
Example #2
0
        private void ManagePhase1(GameTime gameTime)
        {
            var distance = Vector2.Distance(transform.Position, phaseOneCoordinates[currentPhase1Index]);

            if (distance <= velocity.Speed * gameTime.ElapsedGameTime.TotalSeconds)
            {
                currentPhase1Index++;
                if (currentPhase1Index >= 5)
                {
                    currentPhase1Index = 0;
                }
                StarAttack();
            }
            else
            {
                velocity.Direction = phaseOneCoordinates[currentPhase1Index] - transform.Position;
            }

            if ((float)health / (float)totalHealth <= .5)
            {
                midbossState = MidbossState.TransitionPhase2;
            }

            if (gameTime.TotalGameTime.TotalMilliseconds >= bulletFanCooldown + bulletFanLastAttackTime)
            {
                BulletFan(new Vector2(0, 0));
                BulletFan(new Vector2(730, 0));
                bulletFanLastAttackTime = gameTime.TotalGameTime.TotalMilliseconds;
            }
        }
Example #3
0
        private void ManageTransitionPhase1(GameTime gameTime)
        {
            velocity.Direction = phaseOneCoordinates[0] - transform.Position;
            var distance = Vector2.Distance(transform.Position, phaseOneCoordinates[0]);

            if (distance <= velocity.Speed * gameTime.ElapsedGameTime.TotalSeconds)
            {
                currentPhase1Index = 1;
                midbossState       = MidbossState.Phase1;
            }
        }
Example #4
0
        private void ManageTransitionPhase2(GameTime gameTime)
        {
            velocity.Direction = centerPosition - transform.Position;

            var distance = Vector2.Distance(transform.Position, centerPosition);

            if (distance <= velocity.Speed * gameTime.ElapsedGameTime.TotalSeconds)
            {
                velocity.IsActive  = false;
                transform.Position = centerPosition;
                midbossState       = MidbossState.Phase2;
            }
        }
Example #5
0
        public override void Initialize(GameObject owner)
        {
            base.Initialize(owner);

            transform          = (Transform)GetComponent <Transform>();
            transform.Position = new Vector2(360, 300);

            renderer = (SpriteRenderer)GetComponent <SpriteRenderer>();

            velocity = (Velocity)GetComponent <Velocity>();

            player     = (Transform)GameManager.GetObjectByTag("Player").GetComponent <Transform>();
            projectile = GameManager.GetPrefab("GreenProjectile");

            projectile.Tag = "Enemy" + projectile.Tag;

            phaseOneCoordinates = new Vector2[]
            {
                new Vector2(360, 84) - renderer.Sprite.GetCenter(),
                new Vector2(248, 432) - renderer.Sprite.GetCenter(),
                new Vector2(541, 215) - renderer.Sprite.GetCenter(),
                new Vector2(178, 215) - renderer.Sprite.GetCenter(),
                new Vector2(471, 432) - renderer.Sprite.GetCenter()
            };

            bossOutline = new Vector2[]
            {
                new Vector2(128, 10) * renderer.Sprite.Scale,
                new Vector2(96, 102) * renderer.Sprite.Scale,
                new Vector2(1, 101) * renderer.Sprite.Scale,
                new Vector2(77, 159) * renderer.Sprite.Scale,
                new Vector2(46, 246) * renderer.Sprite.Scale,
                new Vector2(128, 188) * renderer.Sprite.Scale,
                new Vector2(210, 246) * renderer.Sprite.Scale,
                new Vector2(180, 159) * renderer.Sprite.Scale,
                new Vector2(255, 101) * renderer.Sprite.Scale,
                new Vector2(160, 102) * renderer.Sprite.Scale
            };

            starPoints = new Vector2[]
            {
                new Vector2(128, 10) * renderer.Sprite.Scale,
                new Vector2(1, 101) * renderer.Sprite.Scale,
                new Vector2(46, 246) * renderer.Sprite.Scale,
                new Vector2(210, 246) * renderer.Sprite.Scale,
                new Vector2(255, 101) * renderer.Sprite.Scale,
            };

            health       = 10;
            midbossState = MidbossState.Phase2;
        }