public bool HasTouchedPlayer(EnemyLib enemylib) { if (new System.Drawing.Rectangle((int)position.X, (int)position.Y, Texture.Width, Texture.Height).IntersectsWith(Player.CurrentPlayer.PlayerLib.Bounds)) { enemylib.MakeDamage(Player.CurrentPlayer.PlayerLib); Player.CurrentPlayer.PlayerInfo.Life -= 10; return(true); } return(false); }
public NPCNarrator(Texture2D texture, Vector2 position, SpriteBatch spriteBatch) : base(texture, position, spriteBatch) { ReferenceLib = new EnemyLib(new System.Numerics.Vector2(position.X, position.Y), texture.Width - 620, texture.Height, 100); _animation = new Animation(); _animation.Initialize(texture, position, 60, 58, 0, 0, 10, 100, Color.White, 1, true, true); _spritebatch = spriteBatch; _player = Player.CurrentPlayer; Lib = new NPCDialogLib(); }
public NPCMarchand(Texture2D texture, Vector2 position, SpriteBatch spriteBatch) : base(texture, position, spriteBatch) { _lib = new EnemyLib(new System.Numerics.Vector2(position.X, position.Y), texture.Width - 50, texture.Height, 100); _animation = new Animation(); _animation.Initialize(texture, position, 40, 34, 0, 0, 2, 150, Color.White, 1, true, true); _spritebatch = spriteBatch; _player = Player.CurrentPlayer; _button = new Icon(IconType.PotionRed, Anchor.Auto); _button2 = new Icon(IconType.Apple, Anchor.Auto); }
public Weapon(Texture2D weaponTexture, Texture2D bulletTexture, DungeonPlanetGame ctx, Vector2 position, SpriteBatch spritebatch, EnemyLib enemyLib) : base(weaponTexture, position, spritebatch) { _enemyLib = enemyLib; _origin = new Vector2(-2, 7); WeaponLib = new WeaponLib(); Bullets = new List <Bullet>(); BulletsEnemy = new List <Bullet>(); _time = 0; _ctx = ctx; _bulletTexture = bulletTexture; }
public NPCWeapon(Texture2D texture, Vector2 position, SpriteBatch spriteBatch) : base(texture, position, spriteBatch) { _lib = new EnemyLib(new System.Numerics.Vector2(position.X, position.Y), texture.Width, texture.Height, 100); _spritebatch = spriteBatch; _animation = new Animation(); _animation.Initialize(texture, position, 33, 60, 0, 0, 2, 300, Color.White, 1, true, true); _player = Player.CurrentPlayer; _redBullet = new Icon(IconType.OrbRed, Anchor.Auto); _blueBullet = new Icon(IconType.OrbBlue, Anchor.Auto); _greenBullet = new Icon(IconType.OrbGreen, Anchor.Auto); _alreadyBuy = false; }
public Enemy(Texture2D texture, Vector2 position, SpriteBatch spritebatch, string type, Texture2D fireTexture, int frameWidth, int frameHeight, int numberLin, int frameCount, int frameTime, DungeonPlanetGame ctx) : base(texture, position, spritebatch) { EnemyLib = new EnemyLib(new System.Numerics.Vector2(position.X, position.Y), 40, 55, 30); _player = Player.CurrentPlayer; PlayerLib = Player.CurrentPlayer.PlayerLib; _count = 0; _ctx = ctx; _type = type; _spritebatch = spritebatch; Fire = new Sprite(fireTexture, new Vector2(EnemyLib.Position.X, EnemyLib.Position.Y), _spritebatch); _animation = new Animation(); _animation.Initialize(texture, position, frameWidth, frameHeight, 0, numberLin, frameCount, frameTime, Color.White, 1, true, true); }
public NPCWeaponSeller(Texture2D texture, Texture2D shotgun, Texture2D launcher, Vector2 position, SpriteBatch spriteBatch) : base(texture, position, spriteBatch) { _lib = new EnemyLib(new System.Numerics.Vector2(position.X, position.Y), 55, 64, 100); _spritebatch = spriteBatch; _animation = new Animation(); _animation.Initialize(texture, position, 55, 64, 0, 0, 5, 150, Color.White, 0.9f, true, true); _player = Player.CurrentPlayer; _shotgun = new Image(shotgun, new Vector2(100, 50)); _launcher = new Image(launcher, new Vector2(100, 50)); _alreadyBuy = false; _redText = new Paragraph("Transforme votre arme en un puissant Lance Roquette"); _blueText = new Paragraph("transforme votre arme en Shotgun"); }
private void CheckKeyboardAndUpdateMovement(GameTime gameTime) { if (EnemyLib.Movement.X < -1) { _animation.Effect = SpriteEffects.None; } else if (EnemyLib.Movement.X > 1) { _animation.Effect = SpriteEffects.FlipHorizontally; } if (EnemyLib.Vision.IntersectsWith(PlayerLib.Bounds)) { if (_type == "CQC") { if (EnemyLib.Bounds.IntersectsWith(PlayerLib.Bounds)) { if (EnemyLib.State != 2) { _player.PlayerInfo.Life -= 10; EnemyLib.MakeDamage(PlayerLib); } else { _player.PlayerInfo.Life -= 10; EnemyLib.MakeDamageWithSlim(PlayerLib); } } if (EnemyLib.GetDistanceTo(PlayerLib.Position).X < 0.1 && EnemyLib.State != 2) { EnemyLib.Left(); } else { EnemyLib.LeftSlim(); } if (EnemyLib.GetDistanceTo(PlayerLib.Position).X > 0.1 && EnemyLib.State != 2) { EnemyLib.Right(); } else { EnemyLib.RightSlim(); } } else if (_type == "DIST") { EnemyLib.IsShooting = true; if (EnemyLib.Bounds.IntersectsWith(PlayerLib.Bounds)) { _player.PlayerInfo.Life -= 1; EnemyLib.MakeDamage(PlayerLib); } } } else { EnemyLib.IsShooting = false; if (_count <= 100) { if (EnemyLib.State != 2) { EnemyLib.Left(); _count++; } else { EnemyLib.LeftSlim(); _count++; } } else if (_count <= 200 && _count > 100) { if (EnemyLib.State != 2) { EnemyLib.Right(); _count++; } else { EnemyLib.RightSlim(); _count++; } } else { _count = 0; if (EnemyLib.State == 1) { EnemyLib.Life -= 15; } } } }
public IEnumerator Execute(string boss, int phase, EnemyShoot enemy, EnemyMovement enemyMove) { endOfPhase = false; EnemyLib lib = GameController.gameControl.enemyLib; patterns.Clear(); p1 = null; p2 = null; p3 = null; p4 = null; p5 = null; mp1 = null; mp2 = null; mp3 = null; mp4 = null; mp5 = null; GameController.gameControl.ui.UpdateTopPlayer("Boss" + enemy.wave.bossIndex + "_" + (phase)); // Debug.Log ("executing phase " + phase); switch (boss) { case "Boss0.5": switch (phase) { case 0: enemy.NextBossPhase(); break; case 1: GameController.gameControl.ui.UpdateTopPlayer(1f); enemy.enemyLife.SetInvulnerable(true); p1 = new Pattern(lib.spiral); p1.Customize(new BulletMovementPattern(true, "WaitAndExplode", 5f, p1, 0, 14)); p1.Customize("LoopCircles", 1440); p1.Customize("BulletCount", 100); p1.SetSprite("Circle", "Glow", "Green"); p2 = new Pattern(lib.maelStrom); p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14)); p2.Customize("RotationDirection", 1); p2.SetSprite("Circle", "Glow", "Green"); p3 = new Pattern(lib.maelStrom); p3.SetSprite("Circle", "Glow", "Yellow"); p3.Customize(new BulletMovementPattern(true, "Explode", 6f, p3, 0, 14)); p3.Customize("RotationDirection", -1); mp1 = new EnemyMovementPattern(lib.centerHor); mp1.Customize("Speed", 7f); enemyMove.SetUpPatternAndMove(mp1); for (int i = 0; i < 5; i++) { yield return(new WaitForSeconds(2f)); enemy.BossShoot(p2); enemy.BossShoot(p3); yield return(new WaitForSeconds(2.2f)); p2.stop = true; p3.stop = true; } mp1 = new EnemyMovementPattern("Leaving", new Vector3(lib.centerX, 13, 0), false, 0); enemyMove.SetUpPatternAndMove(mp1); yield return(new WaitForSeconds(2f)); enemy.enemyLife.Die(); p2.stop = true; p3.stop = true; break; } break; //BOSS 1 - FOREST GUARDIAN case "Boss1": switch (phase) { case 0: p1 = new Pattern(lib.spiral); p1.Customize(new BulletMovementPattern(true, "WaitAndExplode", 5f, p1, 0, 14)); p1.Customize("LoopCircles", 1440); p1.Customize("BulletCount", 100); p1.SetSprite("Circle", "Glow", "Green"); p2 = new Pattern(lib.maelStrom); p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14)); p2.Customize("RotationDirection", 1); p2.SetSprite("Circle", "Glow", "Green"); p3 = new Pattern(lib.maelStrom); p3.SetSprite("Circle", "Glow", "Yellow"); p3.Customize(new BulletMovementPattern(true, "Explode", 6f, p3, 0, 14)); p3.Customize("RotationDirection", -1); mp1 = new EnemyMovementPattern(lib.centerHor); mp1.Customize("Speed", 7f); mp2 = new EnemyMovementPattern(lib.rocking); mp2.Customize("Speed", 7f); while (!endOfPhase) { enemyMove.SetUpPatternAndMove(mp1); yield return(new WaitForSeconds(2f)); enemy.BossShoot(p2); enemy.BossShoot(p3); yield return(new WaitForSeconds(2.2f)); p2.stop = true; p3.stop = true; if (endOfPhase) { break; } enemyMove.SetUpPatternAndMove(new EnemyMovementPattern(lib.rocking)); yield return(new WaitForSeconds(1f)); enemy.BossShoot(p1); yield return(new WaitForSeconds(2.2f)); enemy.BossShoot(p1); yield return(new WaitForSeconds(3f)); } p2.stop = true; p3.stop = true; break; case 1: GameController.gameControl.sound.PlaySpellSound("Enemy"); GameController.gameControl.ui.ShowActivatedPhase("Boss", "Justice Seal: Ninetailed Spear"); p1 = new Pattern(lib.curtain); p1.Customize("BulletCount", 9); p1.SetSprite("Circle", "Bevel", "Lilac"); p1.Customize(new BulletMovementPattern(false, "TurnToSpears", 6f, p1, 0, 14)); p2 = new Pattern(lib.maelStrom); p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14)); p2.Customize("RotationDirection", 1); p2.SetSprite("Circle", "Glow", "Green"); p3 = new Pattern(lib.maelStrom); p3.SetSprite("Circle", "Glow", "Yellow"); p3.Customize(new BulletMovementPattern(true, "Explode", 4f, p3, 0, 14)); p3.Customize("RotationDirection", -1); mp1 = new EnemyMovementPattern("", new Vector3(-15, 6f, 0f), false, 0); mp1.Customize("Speed", 7f); mp2 = new EnemyMovementPattern("", new Vector3(1, 6, 0), false, 0); mp2.Customize("Speed", 7f); enemyMove.SetUpPatternAndMove(mp1); yield return(new WaitForSeconds(2.2f)); while (!endOfPhase) { yield return(new WaitUntil(() => mp1.CheckIfReachedDestination(enemyMove) == true)); enemyMove.SetUpPatternAndMove(mp2); enemy.BossShoot(p1); yield return(new WaitUntil(() => mp1.CheckIfReachedDestination(enemyMove) == true)); yield return(new WaitForSeconds(1f)); enemy.BossShoot(p2); enemy.BossShoot(p3); yield return(new WaitForSeconds(2.2f)); p2.stop = true; p3.stop = true; yield return(new WaitForSeconds(1f)); enemyMove.SetUpPatternAndMove(mp1); enemy.BossShoot(p1); yield return(new WaitUntil(() => mp1.CheckIfReachedDestination(enemyMove) == true)); yield return(new WaitForSeconds(1f)); enemy.BossShoot(p2); enemy.BossShoot(p3); yield return(new WaitForSeconds(2.2f)); p2.stop = true; p3.stop = true; yield return(new WaitForSeconds(1f)); } break; case 2: mp1 = new EnemyMovementPattern("", new Vector3(lib.centerX + 4f, enemy.transform.position.y, 0), false, 0); mp1.Customize("Teleport", 1); mp2 = new EnemyMovementPattern("", new Vector3(lib.centerX - 4f, enemy.transform.position.y, 0), false, 0); mp2.Customize("Teleport", 1); while (!endOfPhase) { enemyMove.SetUpPatternAndMove(mp1); yield return(new WaitForSeconds(5f)); enemyMove.SetUpPatternAndMove(mp2); yield return(new WaitForSeconds(5f)); } break; case 3: /*p2 = new Pattern (lib.maelStrom); * p2.Customize (new BulletMovementPattern (true, "Explode", 6f, p2, 0, 14)); * p2.Customize ("RotationDirection", 1); * p2.SetSprite ("Circle", "Glow", "Green"); * * p3 = new Pattern (lib.maelStrom); * p3.SetSprite ("Circle", "Glow", "Yellow"); * p3.Customize (new BulletMovementPattern (true, "Explode", 6f, p3, 0, 14)); * p3.Customize ("RotationDirection", -1);*/ GameController.gameControl.ui.ShowActivatedPhase("Boss", "Guardian Seal: Fox Fires"); p1 = new Pattern("Cluster", true, 150, 0, 0.01f, 0, 1f); p1.SetSprite("Fireball", "Glow", "Orange"); p2 = new Pattern(lib.maelStrom); p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14)); p2.Customize("RotationDirection", 1); p2.SetSprite("Circle", "Big", "Red"); p2.Customize("BulletCount", 6); p2.Customize("CoolDown", .5f); mp1 = new EnemyMovementPattern("Swing", new Vector3(-13, enemy.transform.position.y, 0), false, 0); mp1.Customize("Speed", 5f); mp1.Customize("Direction", 1); mp2 = new EnemyMovementPattern("", new Vector3(lib.centerX, lib.centerY, 0), false, 0); while (!endOfPhase) { enemyMove.SetUpPatternAndMove(mp1); yield return(new WaitForSeconds(2f)); enemy.BossShoot(p1); yield return(new WaitForSeconds(4f)); mp1.Customize("Speed", 7f); enemyMove.SetUpPatternAndMove(mp2); yield return(new WaitForSeconds(1f)); enemy.BossShoot(p2); yield return(new WaitForSeconds(4f)); p2.stop = true; } //mp1.Customize ("Speed", 1f); break; } break; //BOSS 2 - SPIDER BOSS case "Boss2": switch (phase) { case 0: p1 = lib.singleHoming; p1.Customize(new BulletMovementPattern(true, null, 0.5f, p1, 0, 14)); p1.SetSprite("Circle", "Big", "Red"); p2 = lib.maelStrom; p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14)); p2.SetSprite("Diamond", "Glow", "Red"); enemy.BossShoot(p2); while (!endOfPhase) { if (endOfPhase) { break; } enemy.BossShoot(p1); yield return(new WaitForSeconds(1f)); } break; case 1: enemyMove.SetUpPatternAndMove(GameController.gameControl.enemyLib.centerHor); GameController.gameControl.ui.ShowActivatedPhase("Boss", "Dark Core: Web of Lies"); p1 = new Pattern(lib.giantWeb); p2 = lib.maelStrom; p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14)); p2.SetSprite("Diamond", "Glow", "Red"); enemy.BossShoot(p2); while (!endOfPhase) { enemy.BossShoot(p1); yield return(new WaitForSeconds(10)); } endOfPhase = true; break; case 2: yield return(new WaitForSeconds(2f)); p1 = new Pattern(lib.spiral); p1.Customize(new BulletMovementPattern(true, "WaitAndExplode", 6f, p1, 0, 14)); p1.SetSprite("Diamond", "Glow", "Red"); p2 = lib.spiderWeb; p2.Customize(new BulletMovementPattern(false, "DownAndExplode", 0.5f, p2, 0, 14)); p2.SetSprite("Circle", "Glow", "Red"); while (!endOfPhase) { for (int i = 0; i < 2; i++) { enemy.BossShoot(p1); p1.SetSprite("Circle", "Glow", "Yellow"); yield return(new WaitForSeconds(2f)); enemy.BossShoot(p1); p1.SetSprite("Circle", "Glow", "Green"); } yield return(new WaitForSeconds(2f)); enemyMove.SetUpPatternAndMove(new EnemyMovementPattern(GameController.gameControl.enemyLib.rocking)); for (int i = 0; i < 4; i++) { enemy.BossShoot(p2); yield return(new WaitForSeconds(1f)); enemy.BossShoot(p1); yield return(new WaitForSeconds(1f)); } } break; case 3: enemyMove.SetUpPatternAndMove(new EnemyMovementPattern(GameController.gameControl.enemyLib.centerHor)); yield return(new WaitForSeconds(2f)); GameController.gameControl.ui.ShowActivatedPhase("Boss", "Dark Core: Weave Misfortune"); p1 = lib.laser; p1.Customize("BulletCount", 6); p1.SetSprite("Circle", "Glow", "White"); p2 = lib.giantWeb; while (!endOfPhase) { for (int i = 0; i < 12; i++) { enemy.BossShoot(p1); yield return(new WaitForSeconds(1f)); } enemy.BossShoot(p2); yield return(new WaitForSeconds(2f)); } break; } break; } }
public IEnumerator Execute(EnemyMovement _m) { m = _m; Vector3 vector = new Vector3(targetPos.x, targetPos.y, 0f); centerPoint = m.transform.position; lib = GameController.gameControl.enemyLib; m.floating = false; m.teleporting = false; if (teleport) { m.teleporting = true; m.GetComponent <SpriteRenderer> ().enabled = false; } if (name == "CenterHor") { vector.y = _m.transform.position.y; } else if (name == "CenterVer") { vector.x = _m.transform.position.x; } UpdateDirection(vector.x, vector.y); if (teleport) { yield return(new WaitUntil(() => CheckIfReachedDestination(m) == true)); m.GetComponent <SpriteRenderer> ().enabled = true; m.teleporting = false; } switch (name) { case "ZigZag": //Repeatable yield return(new WaitUntil(() => CheckIfReachedDestination(_m) == true)); UpdateDirection(-14f, 6f); yield return(new WaitUntil(() => CheckIfReachedDestination(_m) == true)); UpdateDirection(10f, 2f); break; case "SnakeRightToLeft": //Repeatable yield return(new WaitUntil(() => CheckIfReachedDestination(_m) == true)); if (leaveDir == "Right") { UpdateDirection(2f, 6f); } else { UpdateDirection(-12f, 6f); } yield return(new WaitUntil(() => CheckIfReachedDestination(_m) == true)); if (leaveDir == "Right") { UpdateDirection(lib.farRight, 6f); } else { UpdateDirection(lib.farLeft, 6f); } break; case "EnterLeave": yield return(new WaitUntil(() => CheckIfReachedDestination(_m) == true)); //_m.Animate ("Float"); if (stayTime > 0) { yield return(new WaitForSeconds(stayTime)); //if (leaveDir == "Left") UpdateDirection(-20f, 6f); //else if (leaveDir == "Right") // UpdateDirection (10f, 6f); //else if (leaveDir == "Up") // UpdateDirection (lib.centerX, 13f); } break; case "Rocking": yield return(new WaitUntil(() => CheckIfReachedDestination(_m) == true)); UpdateDirection(-11f, 8f); yield return(new WaitUntil(() => CheckIfReachedDestination(_m) == true)); break; case "Swing": centerPoint = new Vector3(-6, 13, 0); yield return(new WaitForSeconds(1f)); rotation = m.transform.rotation; _RotateOnAxis(50f * speed); yield return(new WaitForSeconds(4f)); rotateOnAxis = false; m.moving = false; break; case "SwipeLeftToRight": yield return(new WaitForSeconds(2f)); while (!_m.GetComponent <Phase> ().endOfPhase) { UpdateDirection(1f, 6f); yield return(new WaitForSeconds(5f)); UpdateDirection(vector.x, vector.y); yield return(new WaitForSeconds(5f)); } break; case "Leaving": yield return(new WaitForSeconds(4f)); //GameObject.Destroy (_m.gameObject); break; default: break; } }