Esempio n. 1
0
        public override void BuildLandmark(CTile tile)
        {
            var lmParams = LandmarkTable.Instance.Table[ELandmark.Flat_Hill];
            int radius   = RNG.Instance.Next(lmParams.RadiusMin, lmParams.RadiusMax);
            var mTiles   = tile.Model.GetAoETiles(radius - 1);

            foreach (var mTile in mTiles)
            {
                if (!FTile.HasFlag(mTile.Controller.GetFlags().CurFlags, FTile.Flags.Landmark))
                {
                    mTile.SetHeight(lmParams.Height);
                    var controller = mTile.Controller;
                    FTile.SetLandmarkFlagTrue(tile.GetFlags());
                }
            }
        }
Esempio n. 2
0
        public void InitMapEnvironment(CMap controller, MapInitInfo info)
        {
            var decoLoader  = new DecoLoader();
            var biomeParams = BiomeTable.Instance.Table[info.Biome];

            foreach (var decoKVP in biomeParams.DecoDict)
            {
                foreach (var tile in controller.GetMap().GetTiles())
                {
                    var roll = RNG.Instance.NextDouble();
                    if (roll < decoKVP.Value && !FTile.HasFlag(tile.GetFlags().CurFlags, FTile.Flags.Environment))
                    {
                        decoLoader.AttachDeco(tile, decoKVP.Key);
                    }
                }
            }
        }
Esempio n. 3
0
        public override void BuildLandmark(CTile tile)
        {
            var lmParams  = LandmarkTable.Instance.Table[ELandmark.Ridge];
            int length    = RNG.Instance.Next(lmParams.LengthMin, lmParams.LengthMin);
            var builder   = new HexGeography();
            var direction = EDirectionUtil.GetRandomDirection();
            var tiles     = builder.GetTiles(direction, length, tile.Model);

            foreach (MTile mTile in tiles)
            {
                if (mTile != null)
                {
                    if (!FTile.HasFlag(mTile.Controller.GetFlags().CurFlags, FTile.Flags.Landmark))
                    {
                        mTile.SetHeight(lmParams.Height);
                        var controller = mTile.Controller;
                        FTile.SetLandmarkFlagTrue(tile.GetFlags());
                    }
                }
            }
        }