Ejemplo n.º 1
0
        public override void Update(Vector2 a_offset, MainChar a_mainChar, SquareGrid a_grid)
        {
            a_grid.GetSlotFromPixel(Position, Vector2.Zero).Filled = false;

            _shooterTimer.UpdateTimer();
            if (_shooterTimer.Test())
            {
                if (Globals.GetDistance(Position, a_mainChar.Position) < 500)
                {
                    //GameGlobals.PassProjectile(new CurlyLine(new Vector2(Position.X, Position.Y - (Dimension.Y / 2)), this, new Vector2(a_mainChar.Position.X, a_mainChar.Position.Y)));
                }
                _shooterTimer.Reset();
            }


            _moveTimer.UpdateTimer();
            if (_moveTimer.Test())
            {
                MovSpeed = -MovSpeed;
                _moveTimer.Reset();
            }

            //HSpeed += MovSpeed;

            base.Update(a_offset, a_mainChar, a_grid);

            if (Globals.GetDistance(Position, a_mainChar.Position) < 45)
            {
                a_mainChar.GetHit(1);
            }

            a_grid.GetSlotFromPixel(Position, Vector2.Zero).Filled = true;
        }
Ejemplo n.º 2
0
        public override void Update(Vector2 a_offset, MainChar a_mainChar, SquareGrid a_grid)
        {
            a_grid.GetSlotFromPixel(Position, Vector2.Zero).Filled = false;

            AI(a_mainChar);

            StartAnimation();

            base.Update(a_offset, a_mainChar, a_grid);

            a_grid.GetSlotFromPixel(Position, Vector2.Zero).Filled = true;
        }
Ejemplo n.º 3
0
        public override void Update(Vector2 a_offset, MainChar a_mainChar, SquareGrid a_grid)
        {
            if (!_locationImpassible)
            {
                GridLocation location = a_grid.GetSlotFromPixel(Position - new Vector2(0, a_grid.SlotDimensions.Y), Vector2.Zero);
                location.SetToFilled(true);
                Position            = location.Position + Dimension / 2;
                _locationImpassible = true;
            }
            if (FrameAnimationList[CurrentAnimation].CurrentFrame == 4)
            {
                a_grid.GetSlotFromPixel(Position, Vector2.Zero).Impassible = false;
                a_grid.GetSlotFromPixel(Position, Vector2.Zero).Filled     = false;
            }
            if (Globals.GetDistance(a_mainChar.Position, Position) < 100)
            {
                SetAnimationByName("Crumble");
            }

            base.Update(a_offset);
        }
Ejemplo n.º 4
0
        public virtual void Update()
        {
            if (!MainCharacter.Dead && GameGlobals.paused == false)
            {
                //_enemyTimer.UpdateTimer();
                //if (_enemyTimer.Test())
                //{
                //    int randomX = Engine.Globals.RandomNumber(0, 1000);
                //    int randomY = Engine.Globals.RandomNumber(0, 1000);
                //    Console.WriteLine(randomX + " , " + randomY);
                //    GameGlobals.PassNpc(new FirstEnemy(new Vector2(randomX,randomY)));;
                //    _enemyTimer.Reset();
                //}

                MainCharacter.Update(_offset, _grid);

                for (int idx = 0; idx < _projectiles.Count(); idx++)
                {
                    _projectiles[idx].Update(_offset, _npcs.ToList <Unit>());
                    if (_projectiles[idx].Done)
                    {
                        _projectiles.RemoveAt(idx);
                        idx--;
                    }
                }

                List <Unit> mainCharList = new List <Unit>();
                mainCharList.Add(MainCharacter);
                for (int idx = 0; idx < _enemyProjectiles.Count(); idx++)
                {
                    _enemyProjectiles[idx].Update(_offset, mainCharList);
                    if (_enemyProjectiles[idx].Done)
                    {
                        _enemyProjectiles.RemoveAt(idx);
                        idx--;
                    }
                }

                for (int idx = 0; idx < _npcs.Count(); idx++)
                {
                    _npcs[idx].Update(_offset, MainCharacter, _grid);
                    if (_npcs[idx].Dead)
                    {
                        GridLocation location = _grid.GetSlotFromPixel(_npcs[idx].Position, Vector2.Zero);
                        location.Filled     = false;
                        location.Impassible = false;

                        _nKilled++;
                        _npcs.RemoveAt(idx);
                        idx--;
                    }
                }

                for (int idx = 0; idx < _effects.Count(); idx++)
                {
                    _effects[idx].Update(_offset);
                    if (_effects[idx].Done)
                    {
                        _effects.RemoveAt(idx);
                        idx--;
                    }
                }
            }
            else
            {
                if (Globals.MyKeyboard.GetNewPress("Enter"))
                {
                    ResetWorld(null);
                }
            }

            if (_grid != null)
            {
                _grid.Update(_offset);
            }

            if (Globals.MyKeyboard.GetNewPress("Escape") && !MainCharacter.Dead)
            {
                GameGlobals.paused = !GameGlobals.paused;
            }

            if (Globals.MyKeyboard.GetNewPress("G"))
            {
                _grid.ShowGrid = !_grid.ShowGrid;
            }

            _ui.Update(this);
        }