Exemple #1
0
 public override void CheckRange(Player player, GameTime gameTime)
 {
     if (Game1.CurrentTime - LastHug > CoolDownRate
     && State == YetiStates.Standing)
       {
     if (DistanceXCenter(player) < AGGRO_RANGE)
     {
       State = YetiStates.Chasing;
       Destination = player.Position;
       Player = player;
     }
       }
 }
Exemple #2
0
        public override void CollisionCheck(Player Player, GameTime gameTime)
        {
            // If hugged recently, return.
              if (Game1.CurrentTime - LastHug < CoolDownRate)
            return;

              // Collision Check
              if (State != YetiStates.Hugging)
              {
            if (Hitbox.Intersects(Player.Hitbox) &&
              (Player.State == Planet4.Player.PlayerStates.Standing
              || Player.State == Planet4.Player.PlayerStates.Walking
              || Player.State == Planet4.Player.PlayerStates.Shooting))
            {
              State = YetiStates.Hugging;
              LastHug = Game1.CurrentTime;
              Velocity = Vector2.Zero;
              Game1.EventMan.Notify(Events.PlayerHugged, this);
            }
              }
        }
Exemple #3
0
        public override void Update(GameTime gameTime)
        {
            float timeDelta = (float)gameTime.ElapsedGameTime.TotalSeconds;
              DrawSomethingOnTop = false;

              if (State == YetiStates.Chasing)
              {
            double angle = Math.Atan2(Player.Position.Y - Position.Y, Player.Position.X - Position.X);

            Velocity.X = (float)Math.Cos(angle) * YETI_SPEED;
              }

              if (State == YetiStates.Hugging)
              {
            DrawSomethingOnTop = true;

            if (Game1.CurrentTime - LastHug > CoolDownRate)
            {
              State = YetiStates.Standing;
              LastHug = Game1.CurrentTime;
              Game1.EventMan.Notify(Events.PlayerHugRelease, this);
            }
              }

              UpdateMovement(gameTime);
        }