public void AttachDeco(CTile tile, EDeco deco) { var decoParam = DecoTable.Instance.Table[deco]; var data = this.GetDecoData(decoParam); var sprite = this._sprites[ListUtil <int> .GetRandomElement(decoParam.Sprites)]; FTile.SetEnvironmentFlagTrue(tile.GetFlags()); var handle = new GameObject(); var model = new MDeco(deco); model.SetData(data); var view = new VDeco(deco); var controller = new CDeco(); controller.SetGameHandle(handle); controller.SetModel(model); controller.SetView(view); var renderer = handle.AddComponent <SpriteRenderer>(); tile.SetCurrent(controller); renderer.sprite = sprite; renderer.transform.SetParent(tile.Handle.transform); renderer.transform.position = tile.Handle.transform.position; var tileRenderer = tile.Handle.GetComponent <SpriteRenderer>(); renderer.sortingLayerName = tileRenderer.sortingLayerName; renderer.sortingOrder = tileRenderer.sortingOrder + 1; }
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 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()); } } } }