diff --git a/DangerousD/Content/deathBackground.jpg b/DangerousD/Content/deathBackground.jpg
index d8c4062..8e6095c 100644
Binary files a/DangerousD/Content/deathBackground.jpg and b/DangerousD/Content/deathBackground.jpg differ
diff --git a/DangerousD/Content/lvl.tmx b/DangerousD/Content/lvl.tmx
index 5d448e5..9e9f5c2 100644
--- a/DangerousD/Content/lvl.tmx
+++ b/DangerousD/Content/lvl.tmx
@@ -719,20 +719,6 @@
-
-
-
-
-
-
-
diff --git a/DangerousD/GameCore/GUI/LoginGUI.cs b/DangerousD/GameCore/GUI/LoginGUI.cs
index 7d5ee76..f122ad4 100644
--- a/DangerousD/GameCore/GUI/LoginGUI.cs
+++ b/DangerousD/GameCore/GUI/LoginGUI.cs
@@ -44,6 +44,7 @@ namespace DangerousD.GameCore.GUI
Button backButton = new Button(Manager)
{
rectangle = new Rectangle(screenWidth / 20, screenHeight / 15, (int)(40 * 2.4), (int)(40 * 2.4)),
+ text = "<-",
fontColor = Color.Black,
fontName = "font2",
textureName = "textboxbackground1-1"
diff --git a/DangerousD/GameCore/GUI/OptionsGUI.cs b/DangerousD/GameCore/GUI/OptionsGUI.cs
index 53b1953..9ceb725 100644
--- a/DangerousD/GameCore/GUI/OptionsGUI.cs
+++ b/DangerousD/GameCore/GUI/OptionsGUI.cs
@@ -66,7 +66,7 @@ namespace DangerousD.GameCore.GUI
Elements.Add(lblSwitchMode);
Button bTExit = new Button(Manager)
- { fontName = "Font2", scale = 0.72f, text = "<-", rectangle = new Rectangle(wigth / 30, height / 30, (int)(40 * 2.4), (int)(40 * 2.4)), textureName = "textboxbackground1-1" };
+ { fontName = "Font2", text = "<-", rectangle = new Rectangle(wigth / 30, height / 30, (int)(40 * 2.4), (int)(40 * 2.4)), textureName = "textboxbackground1-1" };
Elements.Add(bTExit);
bTExit.LeftButtonPressed += () =>
{
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs
index 5f33df9..e06b177 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/CoreEnemy.cs
@@ -13,7 +13,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
public abstract class CoreEnemy : LivingEntity
{
protected int monster_health;
- protected int monster_speed;
+ protected float monster_speed;
protected string name;
protected bool isAlive = true;
protected int leftBoarder = 0;
@@ -45,5 +45,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
isAlive = false;
}
}
+
+ public abstract void Target();
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FlameSkull.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FlameSkull.cs
index c93b40a..a7c6796 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FlameSkull.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FlameSkull.cs
@@ -13,20 +13,38 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
public class FlameSkull : CoreEnemy
{
private bool isAttack;
-
- public FlameSkull(Vector2 position) : base(position)
- {
- Width = 62;
- Height = 40;
- monster_speed = 3;
+ protected Vector2 startPosition;
+ /*protected Vector2[] positions = { new Vector2(0, 242), new Vector2(0, 332), new Vector2(582, 332), new Vector2(0, 332),
+ new Vector2(0, 444), new Vector2(582, 444), new Vector2(0, 444), new Vector2(0, 242), new Vector2(582, 242),
+ new Vector2(0, 242), new Vector2(0, 149), new Vector2(582, 149), new Vector2(0,149)};*/
+ protected Vector2[] positions = { new Vector2(0,246), new Vector2(0, 344), new Vector2(550,344), new Vector2(520, 246)};
+ protected int i;
+ public FlameSkull(Vector2 position) : base(position)
+ { // v3 -> v2 -> s2 -> v2 -> v1 -> s1 -> v1 -> v3 -> s3 -> v3 -> v4 -> s4 -> v4
+ //0 149 verv 4 [7]
+ //582 108 stairs 4 [6]
+ //0 242 verv 3 [5]
+ //582 220 stairs 3 [4]
+ //0 332 verv 2 [3]
+ //582 332 stairs 2 [2]
+ //0 444 verv 1 [1]
+ //582 444 stairs 1 [0]
+ startPosition = new Vector2(500, 242);
+ _pos = startPosition;
+ i = 0;
+ Width = 31;
+ Height = 20;
+ monster_speed = 2;
name = "Skull";
acceleration = Vector2.Zero;
+ startPosition = new Vector2();
}
protected override GraphicsComponent GraphicsComponent { get; } = new(new List { "FlameSkullMoveRight" , "FlameSkullMoveLeft"}, "FlameSkullMoveRight");
public override void Update(GameTime gameTime)
{
+ AppManager.Instance.DebugHUD.Set("number i: ", i.ToString());
if (!isAttack)
{
Move(gameTime);
@@ -63,19 +81,52 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
velocity.X = -monster_speed;
}
- if (Pos.X >= rightBoarder)
+
+ if (i%2 == 0)
{
- isGoRight = false;
+ if (Pos.X > positions[i].X)
+ {
+ isGoRight = false;
+ }
+ else if (Pos.X < positions[i].X)
+ {
+ isGoRight = true;
+ }
+ else if (Pos.X == positions[i].X)
+ {
+ i++;
+ velocity.X = 0;
+ }
}
- else if (Pos.X <= leftBoarder)
+ else
{
- isGoRight = true;
+ if (Pos.Y > positions[i].Y)
+ {
+ _pos.Y -= monster_speed;
+ }
+ else if (Pos.Y < positions[i].Y)
+ {
+ _pos.Y += monster_speed;
+ }
+ else if (Pos.Y == positions[i].Y)
+ {
+ i++;
+ }
+ }
+ if (i == positions.Length)
+ {
+ i = 0;
}
}
public override void Attack(GameTime gameTime)
{
- throw new NotImplementedException();
+
+ }
+
+ public override void Target()
+ {
+
}
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs
index f164455..dc04ab5 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Frank.cs
@@ -74,9 +74,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
- public void Target()
+ public override void Target()
{
- throw new NotImplementedException();
+
}
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs
index 720fd96..6e999d4 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/FrankBalls.cs
@@ -120,14 +120,14 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
- public void Target()
+ public override void Target()
{
- throw new NotImplementedException();
+
}
public override void Attack(GameTime gameTime)
{
- throw new NotImplementedException();
+
}
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Ghost.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Ghost.cs
index 57ab2c4..e3dfb18 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Ghost.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Ghost.cs
@@ -111,16 +111,15 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
public void TakeDamage()
{
monster_health--;
-
-
if (monster_health <= 0)
{
Death();
}
}
- public void Target()
+
+ public override void Target()
{
- throw new NotImplementedException();
+
}
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs
index 5db5359..b0fa2b0 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Hunchman.cs
@@ -129,9 +129,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
Debug.WriteLine("Collision");
}
- public void Target()
+ public override void Target()
{
- throw new NotImplementedException();
+
}
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs
index 740c360..3d1bc3a 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/HunchmanDagger.cs
@@ -42,9 +42,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
- public void Target()
+ public override void Target()
{
- throw new NotImplementedException();
+
}
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasHands.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasHands.cs
index 3e2a1b8..14e58f8 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasHands.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasHands.cs
@@ -68,9 +68,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
}
- public void Target()
+ public override void Target()
{
- throw new NotImplementedException();
+
}
public override void Update(GameTime gameTime)
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasMaster.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasMaster.cs
index 46b1cc4..1592efb 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasMaster.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SilasMaster.cs
@@ -112,9 +112,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
}
- public void Target()
+ public override void Target()
{
- throw new NotImplementedException();
+
}
public override void Update(GameTime gameTime)
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Slime.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Slime.cs
index afdbf9b..5a60037 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Slime.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Slime.cs
@@ -288,7 +288,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
base.Update(gameTime);
}
- public void Target()
+ public override void Target()
{
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs
index f2c9d50..550b64c 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Spider.cs
@@ -19,10 +19,12 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
protected SpiderWeb web;
protected float delay;
protected int webLength;
+ protected int widthS;
protected bool isDown;
protected bool isDownUp;
protected PhysicsManager physicsManager;
protected Player player;
+ protected Vector2 oldPosition;
public Spider(Vector2 position) : base(position)
{
@@ -31,8 +33,10 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
isDown = true;
physicsManager = AppManager.Instance.GameManager.physicsManager;
name = "Spider";
- Width = 112;
- Height = 24;
+ Width = 28;
+ Height = 6;
+ widthS = Width;
+ web = new SpiderWeb(new Vector2(Pos.X+Width/2,Pos.Y));
delay = 0;
web = new SpiderWeb(new Vector2(Pos.X-Width/2,Pos.Y));
webLength = 0;
@@ -45,7 +49,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
public override void Update(GameTime gameTime)
{
- if (!isAttack)
+ if (isAttack == false)
{
Move(gameTime);
}
@@ -68,15 +72,16 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
///
///
public override void Attack(GameTime gameTime)
- { //48 72
- velocity.X = 0;
- delay += (float)gameTime.ElapsedGameTime.TotalSeconds;
+ {
if (isAttack)
{
- if (delay > 0.5 && webLength <= 4 && isDown)
+ velocity.X = 0;
+ delay += (float)gameTime.ElapsedGameTime.TotalSeconds;
+
+ if (delay > 0.25 && webLength <= 4 && isDown)
{
- Width = 48;
- Height = 72;
+ Width = 12;
+ Height = 18;
StartCicycleAnimation("SpiderOnWeb");
acceleration = Vector2.Zero;
webLength++;
@@ -91,8 +96,8 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
else if (delay > 0.5 && webLength != 0 && !isDown)
{
- Width = 48;
- Height = 72;
+ Width = 12;
+ Height = 18;
StartCicycleAnimation("SpiderOnWeb");
webLength--;
_pos.Y -= 25;
@@ -104,22 +109,19 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
isDown = true;
}
}
- var entitiesInter = physicsManager.CheckRectangle(new Rectangle((int)Pos.X, (int)Pos.Y, 200, 600));
- if (entitiesInter.Count > 0)
+ if (webLength == 0)
{
- foreach (var entity in entitiesInter)
+ isAttack = false;
+ }
+ var entities = physicsManager.CheckRectangle(new Rectangle((int)Pos.X, (int)Pos.Y, Width, Height + 200));
+ foreach (var entity in entities)
+ {
+ if (webLength == 4 && entity is Player)
{
- if (entity.GetType() == typeof(Player))
- {
- player.Death(name);
- }
+ AppManager.Instance.GameManager.players[0].Death(name);
}
}
}
- if (webLength == 0)
- {
- isAttack = false;
- }
}
public override void Draw(SpriteBatch spriteBatch)
@@ -142,8 +144,8 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
public override void Move(GameTime gameTime)
{
- Width = 112;
- Height = 24;
+ Width = 28;
+ Height = 6;
foreach (var entity in physicsManager.CheckRectangle(new Rectangle((int)Pos.X - 7, (int)Pos.Y, 126, 10)))
{
if (entity.GetType() == typeof(StopTile))
@@ -169,12 +171,24 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
}
- public void Target()
+ public override void Target()
{
if (player.Pos.X >= Pos.X && player.Pos.X <= Pos.X+Width)
{
isAttack = true;
}
}
+
+ public override void OnCollision(GameObject gameObject)
+ {
+ if (gameObject is Player)
+ {
+ if (AppManager.Instance.GameManager.players[0].IsAlive)
+ {
+ Attack();
+ }
+ }
+ base.OnCollision(gameObject);
+ }
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SpiderWeb.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SpiderWeb.cs
index c5971de..5d7b202 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SpiderWeb.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/SpiderWeb.cs
@@ -15,7 +15,6 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
public SpiderWeb(Vector2 position) : base(position)
{
name = "Web";
- monster_speed = 1;
Width = 16;
Height = 0;
acceleration = Vector2.Zero;
@@ -43,9 +42,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
- public void Target()
+ public override void Target()
{
- throw new NotImplementedException();
+
}
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Werewolf.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Werewolf.cs
index bb6cd6f..f13279d 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Werewolf.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Werewolf.cs
@@ -102,6 +102,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
public override void Attack(GameTime gameTime)
{
}
+
public void Jump()
{
var getCols = AppManager.Instance.GameManager.physicsManager.CheckRectangle(new Rectangle((int)Pos.X, (int)Pos.Y + Height / 2 - 2, 50, 2));
@@ -148,10 +149,6 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
}
base.OnCollision(gameObject);/*/
}
- public void Target()
- {
- throw new NotImplementedException();
- }
public void TakeDamage()
{
monster_health--;
@@ -162,5 +159,9 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
Death();
}
}
+
+ public override void Target()
+ {
+ }
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs
index c952e7e..d589a74 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Monsters/Zombie.cs
@@ -142,7 +142,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities.Monsters
base.OnCollision(gameObject);
}
- public void Target()
+ public override void Target()
{
if (AppManager.Instance.GameManager.physicsManager.CheckRectangle(new Rectangle((int)Pos.X - 50, (int)Pos.Y, Width + 200, Height), typeof(Player)).Count > 0)
{
diff --git a/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs b/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs
index 96f24d2..21c1c76 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntities/Player/Player.cs
@@ -197,7 +197,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
StartCicycleAnimation("playerShootRight");
Bullet bullet = new Bullet(new Vector2(Pos.X + 16, Pos.Y));
bullet.ShootRight();
- SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X + 12, Pos.Y - 8));
+ SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X + 30, Pos.Y + 7));
}
else
{
@@ -214,7 +214,7 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
StartCicycleAnimation("playerShootBoomUpLeft");
Bullet bullet = new Bullet(new Vector2(Pos.X, Pos.Y));
bullet.ShootLeft();
- SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X - 6, Pos.Y - 7));
+ SmokeAfterShoot smokeAfterShoot = new SmokeAfterShoot(new Vector2(Pos.X - 12, Pos.Y + 7));
}
else
{
@@ -345,9 +345,10 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
Height = 5;
Width = 5;
}
+ int time = 0;
protected override GraphicsComponent GraphicsComponent { get; } = new(new List { "playerMoveLeft" }, "playerMoveLeft");
Vector2 direction;
- Vector2 maindirection;
+ public Vector2 maindirection;
public void ShootUpRight()
{
direction = new Vector2(1, -1);
@@ -415,10 +416,6 @@ namespace DangerousD.GameCore.GameObjects.LivingEntities
}
public override void Update(GameTime gameTime)
{
- if (maindirection != velocity)
- {
- AppManager.Instance.GameManager.Remove(this);
- }
base.Update(gameTime);
}
}
diff --git a/DangerousD/GameCore/GameObjects/LivingEntity.cs b/DangerousD/GameCore/GameObjects/LivingEntity.cs
index 72d61f4..1523401 100644
--- a/DangerousD/GameCore/GameObjects/LivingEntity.cs
+++ b/DangerousD/GameCore/GameObjects/LivingEntity.cs
@@ -40,7 +40,10 @@ public abstract class LivingEntity : Entity
//}
base.Update(gameTime);
}
-
+ ///
+ ///
+ ///
+ ///
public virtual void StartCicycleAnimation(string animationName)
{
if (GraphicsComponent.GetCurrentAnimation != animationName)
diff --git a/DangerousD/GameCore/Managers/AppManager.cs b/DangerousD/GameCore/Managers/AppManager.cs
index 62c57b8..116c8a4 100644
--- a/DangerousD/GameCore/Managers/AppManager.cs
+++ b/DangerousD/GameCore/Managers/AppManager.cs
@@ -241,6 +241,7 @@ namespace DangerousD.GameCore
Player.Bullet bullet = new Player.Bullet(networkTask.position);
bullet.id = networkTask.objId;
bullet.velocity = networkTask.velocity;
+ bullet.maindirection = bullet.velocity;
}
break;
case NetworkTaskOperationEnum.SendPosition: