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); }
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(); }