Beispiel #1
0
        /// <summary>
        /// Get TilePointLayer from position parameter
        /// </summary>
        /// <param name="position"></param>
        /// <returns>TilePointLayer object if exists otherwise null</returns>
        public TilePointLayer GetTilePointLayer(Position position)
        {
            TilePointLayer tilePointLayer = null;
            var            tilePoint      = tiles.GetTilePoint(position.X, position.Y, false);

            if (tilePoint != null)
            {
                tilePointLayer = tilePoint.GetLayer(position.Z);
            }

            return(tilePointLayer);
        }
Beispiel #2
0
        private MapBase InitializeMap(int id, string name, int width, int height)
        {
            var tiles = new TilePointTable();

            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    var tp  = new TilePoint(x, y);
                    var tpl = new TilePointLayer(tp, 1);
                    tpl.Movement = MovementTypes.Walk;
                    tpl.SetLayer(new TilePointTileLayer(1));

                    tp.SetLayer(tpl);
                }
            }

            return(new MapBase(id, name, tiles));
        }
Beispiel #3
0
        private bool CanCreatureMove(MovementTypes movementType, Direction direction, TilePointLayer to)
        {
            if (to.Movement == MovementTypes.Walk)
            {
                return(true);
            }

            if (to.Movement == MovementTypes.Blocked)
            {
                return(false);
            }
            if (direction == Direction.East && to.Movement.HasFlag(MovementTypes.BlockedWest))
            {
                return(false);
            }
            if (direction == Direction.West && to.Movement.HasFlag(MovementTypes.BlockedEast))
            {
                return(false);
            }
            if (direction == Direction.North && to.Movement.HasFlag(MovementTypes.BlockedSouth))
            {
                return(false);
            }
            if (direction == Direction.South && to.Movement.HasFlag(MovementTypes.BlockedNorth))
            {
                return(false);
            }

            if (!to.Movement.HasFlag(movementType))
            {
                return(false);
            }

            return(true);
        }
Beispiel #4
0
        private void SetTileValues(TilePoint tp)
        {
            if (tp == null)
            {
                this.tbTileX.Text = @"xxx";
                this.tbTileY.Text = @"xxx";

                ResetTileLayers();
            }
            else
            {
                this.tbTileX.Text = tp.X.ToString(CultureInfo.InvariantCulture);
                this.tbTileY.Text = tp.Y.ToString(CultureInfo.InvariantCulture);

                if (tp.Layers.Count > 0)
                {
                    this.rbLayerN3.ForeColor = tp.HasLayer(-3) ? Color.Green : Color.Red;
                    this.rbLayerN2.ForeColor = tp.HasLayer(-2) ? Color.Green : Color.Red;
                    this.rbLayerN1.ForeColor = tp.HasLayer(-1) ? Color.Green : Color.Red;
                    this.rbLayer0.ForeColor  = tp.HasLayer(0) ? Color.Green : Color.Red;
                    this.rbLayerP1.ForeColor = tp.HasLayer(1) ? Color.Green : Color.Red;
                    this.rbLayerP2.ForeColor = tp.HasLayer(2) ? Color.Green : Color.Red;
                    this.rbLayerP3.ForeColor = tp.HasLayer(3) ? Color.Green : Color.Red;

                    // Defaults
                    this.tbMovementType.Text = @"Unknown";
                    this.pbTileLayer1.Image  = Resources.sys_base;
                    this.tbTileIdLayer1.Text = @"None";
                    this.pbTileLayer2.Image  = Resources.sys_base;
                    this.tbTileIdLayer2.Text = @"None";
                    this.pbTileLayer3.Image  = Resources.sys_base;
                    this.tbTileIdLayer3.Text = @"None";

                    TilePointLayer tpLayer = tp.GetLayer(GetSelectedTilePointLayer());
                    if (tpLayer != null)
                    {
                        this.tbMovementType.Text = tpLayer.Movement.ToString();

                        if (tpLayer.HasLayer(0))
                        {
                            string tileId = tpLayer.GetLayer(0).TileId.ToString(CultureInfo.InvariantCulture);
                            this.pbTileLayer1.Image  = tileInfoController.GetBitmapForTileId(tileId);
                            this.tbTileIdLayer1.Text = tileId;
                        }

                        if (tpLayer.HasLayer(1))
                        {
                            string tileId = tpLayer.GetLayer(1).TileId.ToString(CultureInfo.InvariantCulture);
                            this.pbTileLayer2.Image  = tileInfoController.GetBitmapForTileId(tileId);
                            this.tbTileIdLayer2.Text = tileId;
                        }

                        if (tpLayer.HasLayer(2))
                        {
                            string tileId = tpLayer.GetLayer(2).TileId.ToString(CultureInfo.InvariantCulture);
                            this.pbTileLayer3.Image  = tileInfoController.GetBitmapForTileId(tileId);
                            this.tbTileIdLayer3.Text = tileId;
                        }
                    }
                }
                else
                {
                    ResetTileLayers();
                }
            }
        }