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