示例#1
0
        public void UpdateMe(ImportantChar vip, GameTime gt, List <EnemyChar> enemies)
        {
            m_vip       = vip;
            m_vipCoords = new Point(m_vip.CoordsX, m_vip.CoordsY);

            LockHP();
            ClampOverHeal();
            m_healthBar.UpdateBar();

            // Update the rectangle position, mouse position and mouse target coordinates.
            #region Update Coordinates
            // Move the rectangle with the character.
            m_rect.X                      = (int)(m_position.X - m_origin.X);
            m_rect.Y                      = (int)(m_position.Y - m_origin.Y);
            m_snapCircle.Centre           = m_position;
            m_viewCircle.Centre           = m_position;
            m_outerDetectionCircle.Centre = m_position;
            m_innerDetectionCircle.Centre = m_position;
            m_fightingCircle.Centre       = m_position;
            m_selectionCircle.Centre      = m_position;
            #endregion

            if (!m_map.Tiles[m_xCoords, m_yCoords].IsOccupied)
            {
                m_map.Tiles[m_xCoords, m_yCoords].IsOccupied   = true;
                m_map.Tiles[m_xCoords, m_yCoords].OccupiedChar = this;
            }

            Selection();

            UpdateStates(gt, enemies);

            m_oldVipCoords = m_vipCoords;
        }
示例#2
0
        public virtual void UpdateMe(ImportantChar vip, GameTime gt, ContentManager content, List <EnemyChar> enemyList, List <MessagePopup> popups, PlayerStats userData, List <Tower> towers, List <GameChar> friendlies, List <BaseProjectile> projectiles)
        {
            m_vip       = vip;
            m_vipCoords = new Point(m_vip.CoordsX, m_vip.CoordsY);

            LockHP();
            m_healthBar.UpdateBar(m_position);

            // Update the rectangle position, mouse position and mouse target coordinates.
            #region Update Coordinates
            // Move the rectangle with the character.
            m_rect.X                      = (int)(m_position.X - m_origin.X);
            m_rect.Y                      = (int)(m_position.Y - m_origin.Y);
            m_snapCircle.Centre           = m_position;
            m_viewCircle.Centre           = m_position;
            m_outerDetectionCircle.Centre = m_position;
            m_innerDetectionCircle.Centre = m_position;
            m_fightingCircle.Centre       = m_position;
            m_collisionCircle.Centre      = m_position;
            #endregion

            UpdateStates(gt, content, enemyList, popups, userData, towers, friendlies, projectiles);

            m_oldVipCoords = m_vipCoords;
        }
示例#3
0
        public void UpdateManager(GameTime gt, InputManager inputManager, ContentManager Content, Camera cam, PlayerStats userData, List <MessagePopup> popUpList, ImportantChar vip, List <BaseProjectile> projectiles, ref List <GameChar> allies, ref List <EnemyChar> enemies, ref List <Tower> gameTowers)
        {
            // Update Towers
            for (int i = 0; i < gameTowers.Count; i++)
            {
                gameTowers[i].UpdateTower(gt, enemies, allies, projectiles, Content, gameTowers);
            }

            // Update Allies
            for (int i = 0; i < allies.Count; i++)
            {
                if (allies[i] is ImportantChar)
                {
                    ImportantChar importantPerson = (ImportantChar)allies[i];
                    importantPerson.UpdateMe(inputManager, cam, gt);
                    vip = importantPerson;
                }
                else
                {
                    GuardChar guard = (GuardChar)allies[i];
                    guard.UpdateMe(vip, gt, enemies);
                }
            }

            // Update Enemies
            for (int i = 0; i < enemies.Count; i++)
            {
                enemies[i].UpdateMe(vip, gt, Content, enemies, popUpList, userData, gameTowers, allies, projectiles);
            }
        }
 public void UpdateZone(ImportantChar vip)
 {
     // Checks if player is within the zone
     if (m_completionZone.Contains((int)vip.Position.X, (int)vip.Position.Y))
     {
         m_complete = true;
     }
     else
     {
         m_complete = false;
     }
 }