From 33331e83ee597b3526b34630898da600ef5b14b8 Mon Sep 17 00:00:00 2001 From: MARKPRO44 <119742977+MARKPRO4444@users.noreply.github.com> Date: Fri, 18 Aug 2023 18:14:01 +0300 Subject: [PATCH] Hunchman --- DangerousD/Content/lvl.tmx | 2 +- .../LivingEntities/Monsters/Hunchman.cs | 38 +++++-------------- .../LivingEntities/Monsters/HunchmanDagger.cs | 31 ++++++++++----- 3 files changed, 31 insertions(+), 40 deletions(-) diff --git a/DangerousD/Content/lvl.tmx b/DangerousD/Content/lvl.tmx index 5fcea6a..e03bd77 100644 --- a/DangerousD/Content/lvl.tmx +++ b/DangerousD/Content/lvl.tmx @@ -700,7 +700,7 @@ - + diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs index 1ca0b17..9ba700b 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs @@ -36,7 +36,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters } protected override GraphicsComponent GraphicsComponent { get; } = new(new List - { "HunchmanMoveLeft", "HunchmanMoveRight", "HunchmanDaggerLeft", "HunchmanDaggerRight" }, "HunchmanMoveLeft"); + { "HunchmanMoveLeft", "HunchmanMoveRight", "HunchmanAttackLeft", "HunchmanAttackRight" }, "HunchmanMoveLeft"); public override void Update(GameTime gameTime) @@ -56,17 +56,19 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters isAttaking = true; if (isGoRight) { - if (animation != "HunchmanDaggerRight") + if (animation != "HunchmanAttackRight") { - GraphicsComponent.StartAnimation("HunchmanDaggerRight"); + GraphicsComponent.StartAnimation("HunchmanAttackRight"); } + HunchmanDagger hunchmanDagger = new HunchmanDagger(Pos,isGoRight); } else { - if (animation != "HunchmanDaggerLeft") + if (animation != "HunchmanAttackLeft") { - GraphicsComponent.StartAnimation("HunchmanDaggerLeft"); + GraphicsComponent.StartAnimation("HunchmanAttackLeft"); } + HunchmanDagger hunchmanDagger = new HunchmanDagger(Pos, isGoRight); } } @@ -117,18 +119,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters } } - public override void OnCollision(GameObject gameObject) - { - if (gameObject is Player) - { - if (AppManager.Instance.GameManager.players[0].IsAlive) - { - Attack(); - } - } - - base.OnCollision(gameObject); - } + public void Target() { @@ -136,18 +127,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters if (physicsManager.RayCast(this, player) == null) { - if(this._pos.X <= player.Pos.X) - { - isTarget = true; - leftBoarder = Pos.X - 10; - rightBoarder = player.Pos.X; - } - else if(this._pos.X >= player.Pos.X) - { - isTarget = true; - rightBoarder = Pos.X + 10; - leftBoarder = player.Pos.X; - } + Attack(); } } } diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs index 9699ad6..11cfe8a 100644 --- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs +++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs @@ -14,8 +14,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters { private bool isGoRight = false; - public HunchmanDagger(Vector2 position) : base(position) + public HunchmanDagger(Vector2 position, bool isGoRight) : base(position) { + this.isGoRight = isGoRight; name = "Hunchman"; monster_speed = 4; Width = 9; @@ -36,22 +37,36 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters public override void Death() { - + AppManager.Instance.GameManager.Remove(this); } public override void Move(GameTime gameTime) { velocity.X = 0; - var animation = GraphicsComponent.GetCurrentAnimation; - - if (animation == "HunchmanDaggerRight") + var getCols = AppManager.Instance.GameManager.physicsManager.CheckRectangle(new Rectangle(0, 0, 0, 0)); + if (isGoRight) { + StartCicycleAnimation("HunchmanDaggerRight"); velocity.X = monster_speed; + getCols = AppManager.Instance.GameManager.physicsManager.CheckRectangle(new Rectangle((int)Pos.X, (int)Pos.Y, Width+5, Height)); + if(getCols.Count>0) + { + Death(); + } } - else if (animation == "HunchmanDaggerLeft") + + else if (!isGoRight) { + StartCicycleAnimation("HunchmanDaggerLeft"); velocity.X = -monster_speed; + getCols = AppManager.Instance.GameManager.physicsManager.CheckRectangle(new Rectangle((int)Pos.X-5, (int)Pos.Y, Width + 5, Height)); + if (getCols.Count > 0) + { + Death(); + } } + + } public override void OnCollision(GameObject gameObject) @@ -60,10 +75,6 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters { AppManager.Instance.GameManager.players[0].Death(name); } - else - { - Death(); - } base.OnCollision(gameObject); }