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