Пример #1
0
        public bool PointMov(int x, int y, int cellId, bool troughtEntities)
        {
            bool isNewSystem = MapData.Data.IsUsingNewMovementSystem;
            MapPoint actualPoint = new MapPoint(x, y);
            BlueSheep.Data.D2p.CellData fCellData = null;
            BlueSheep.Data.D2p.CellData sCellData = null;
            bool mov = false;
            int floor = 0;

            if (actualPoint.IsInMap())
            {
                fCellData = MapData.Data.Cells[actualPoint.CellId];
                mov = ((fCellData.Mov()) && (!this.IsFighting || !fCellData.NonWalkableDuringFight()));

                if (!((mov == false)) && isNewSystem && cellId != -1 && cellId != actualPoint.CellId)
                {
                    sCellData = (MapData).Data.Cells[cellId];
                    floor = Math.Abs(Math.Abs(fCellData.Floor) - Math.Abs(sCellData.Floor));
                    if (!(sCellData.MoveZone == fCellData.MoveZone) && floor > 0 && sCellData.MoveZone == fCellData.MoveZone && fCellData.MoveZone == 0 && floor > 11)
                    {
                        mov = false;
                    }
                    if (!troughtEntities)
                    {
                        int count = 0;
                        count += MapData.Monsters.Where((e) => e.m_cellId == actualPoint.CellId).ToList().Count;
                        if (count > 0)
                        {
                        //    //ToDo Voir à travers les entity
                            return false;
                        }
                    }
                }
            }
            else
            {
                mov = false;
            }
            return mov;
        }