public void Initialize() { base.Image = GameScreen.Instance.NpcHelperTexture; this.currentFrame = Vector2.Zero; base.Animation = new Animation(base.position, base.AmountOfFrames, base.Image); // base.Animation.AnimationImage = base.Image; NpcHelperHandler.AddSprite(this); }
public void Initialize() { base.Image = GameScreen.Instance.NpcSorcererTexture; base.DrawRect = new Rectangle((int)base.Position.X, (int)base.Position.Y, (int)(base.Image.Width / base.AmountOfFrames.X), (int)(base.Image.Height / base.AmountOfFrames.Y)); this.reactRect = base.DrawRect; this.reactRect.Width += 20; this.reactRect.Height += 20; elapsedTime = GameSettings.TIME_TO_RENT_AGAIN; base.Animation = new Animation(base.Position, base.AmountOfFrames, base.Image); NpcHelperHandler.AddSprite(this); }
public override void Update(GameTime gameTime) { if (this.isActive) { this.frameCounter += (int)gameTime.ElapsedGameTime.TotalMilliseconds; if (this.frameCounter > GameSettings.ACTIVE_TIME) { this.frameCounter = 0; this.isActive = false; } if (Player.Instance.Direction == DirectionsEnum.East) { base.position.X = Player.Instance.DestinationPosition.X - 40; base.position.Y = Player.Instance.DestinationPosition.Y - 40; this.currentFrame.Y = 2; } else if (Player.Instance.Direction == DirectionsEnum.North) { base.position.X = Player.Instance.DestinationPosition.X; base.position.Y = Player.Instance.DestinationPosition.Y + 10; this.currentFrame.Y = 3; } else if (Player.Instance.Direction == DirectionsEnum.South) { base.position.X = Player.Instance.DestinationPosition.X; base.position.Y = Player.Instance.DestinationPosition.Y - 50; this.currentFrame.Y = 0; } else if (Player.Instance.Direction == DirectionsEnum.West) { base.position.X = Player.Instance.DestinationPosition.X + 10; base.position.Y = Player.Instance.DestinationPosition.Y - 40; this.currentFrame.Y = 1; } this.DrawRect = new Rectangle((int)base.position.X, (int)base.position.Y, (int)(base.Image.Width / base.AmountOfFrames.X), (int)(base.Image.Height / base.AmountOfFrames.Y)); this.reactRect = new Rectangle(this.DrawRect.X - 100, this.DrawRect.Y - 100, this.DrawRect.Width + 100, this.DrawRect.Height + 100); foreach (Monsters.Monster monster in Handlers.MonstersHandler.Instance.SpawnedMobs) { if (monster.DestinationPosition.Intersects(reactRect) && this.frameCounter % 600 == 0) { FireBall fireBall = new FireBall(new Vector2(8, 1), new Vector2(this.DrawRect.X + this.DrawRect.Width / 2, this.DrawRect.Y + this.DrawRect.Height / 2), monster); fireBall.isActive = true; NpcHelperHandler.AddSprite(fireBall); break; } } this.currentFrame.X = base.Animation.CurrentFrame.X; base.Animation.Position = base.position; base.Animation.CurrentFrame = this.currentFrame; base.Animation.Update(gameTime); } else { if (GameScreen.Instance.KeyboardState.IsKeyDown(Keys.Enter)) { this.DrawRect = new Rectangle(Player.Instance.DestinationPosition.X, Player.Instance.DestinationPosition.Y, (int)(base.Image.Width / base.AmountOfFrames.X), (int)(base.Image.Height / base.AmountOfFrames.Y)); this.reactRect = new Rectangle(this.DrawRect.X - 10, this.DrawRect.Y - 10, this.DrawRect.Width + 10, this.DrawRect.Height + 10); NpcHelperHandler.DoReaction <ImPlayer>(this); this.reactRect = Rectangle.Empty; } } }