Ejemplo n.º 1
0
        public bool TouchEnemy()
        {
            foreach (Monster monster in Board.CurrentBoard.Monsters)
            {
                if (new Rectangle((int)Position.X, (int)Position.Y, Texture.Width, Texture.Height).Intersects(monster.Bounds))
                {
                    if (monster.IsAlive)
                    {
                        monster.Hit(this);
                        monster.Reflect(Board.CurrentBoard._player._playerM);
                        if (monster.Life <= 0)
                        {
                            Board.CurrentBoard.KillMonster(monster);

                            _monster       = monster;
                            monster.IsDead = false;
                            return(false);
                            //new Rectangle((int)monster.Position.X, (int)monster.Position.Y, Texture.Width, Texture.Height);
                        }
                        else
                        {
                            return(true);
                        }
                    }
                }
            }

            if (_boss.AddBoss())
            {
                if (new Rectangle((int)Position.X, (int)Position.Y, Texture.Width, Texture.Height).Intersects(_boss.Bounds))
                {
                    _boss.Hit(this);
                    if (_boss.Life < +0)
                    {
                        _boss.IsAlive = false;
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            return(false);
        }
Ejemplo n.º 2
0
        public void CreateNewBoard()
        /*  Types= 1:chest 2:god 3:save 4:Shop */
        {
            SetFloor();
            items = new List <Item>();
            if (_boss.AddBoss())
            {
                SetBossTileUnblocked();
            }

            if (_special != _roomNumber)
            {
                AddMonsters();
                if (_roomNumber == _roomInFloor)
                {
                    _boss.AddBoss();
                }

                BlockSomeTilesRandomly();
                SetStairs();
                Tile3[13, 1].IsBlocked = true;
                SetUpChestInTheMiddle();
                SetUpShop();
                SetTorches();
                SetSpikes();
            }
            else if (Special == _roomNumber && SpecialType == 1)
            {
                ForSpecialRoom();
                Tile4[5, 4].IsBlocked = true;
                // Tile4[7, 6].IsBlocked = true;
                _chestState = false;
            }
            else if (Special == _roomNumber && SpecialType == 2)
            {
                AddPreacher();
                //SetSanctuary();
                ForSpecialRoom();
            }
            else if (Special == _roomNumber && SpecialType == 3)
            {
                ForSpecialRoom();

                /*string Saves = Path.GetTempFileName();
                 * var Hero = _player._playerM;
                 * var Map = CurrentBoard;
                 * _f = new BinaryFormatter();
                 * using (var stream = File.OpenWrite("Content/Saves/Saves"))
                 * {
                 *  _f.Serialize(stream, Hero);
                 *  //_f.Serialize(stream, Map);
                 * }*/
            }
            else if (Shop)
            {
                //Tile5[6, 4].IsBlocked = true;
                ForSpecialRoom();
                Tile5[3, 3].IsBlocked = true;
                Trader = new Trader(_traderTexture, new Vector2(400, 400), SpriteBatch, ItemTexture);
                items  = Trader.ItemsToSell(items);
            }
            SetAllBorderTilesBlocked();
            SetTopLeftTileUnblocked();

            _player.ResetPosition();
        }