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 MTile() { this._adjacent = new List <MTile>(); this._flags = new FTile(); this._height = 1; this._liquid = false; this._particles = new ParticleContainer(); }
public static FTile SquareError() { var layer = new FTile(); var(input, res) = FSymbol.New("input", "res"); layer.Sum((i, j) => res[i] = input[j] * input[j]); return(layer); }
public static FTile Dense() { var layer = new FTile(); var(input, w, b, res) = FSymbol.New("input", "W", "b", "res"); layer.Sum((i, j) => res[i] = w[i, j] * input[j] + b[i]); layer.Sum(i => res[i] = Activations.ReLU(res[i])); return(layer); }
public override void BuildLandmark(CTile tile) { var lmParams = LandmarkTable.Instance.Table[ELandmark.Pond]; int radius = RNG.Instance.Next(lmParams.RadiusMin, lmParams.RadiusMax); var mTiles = tile.Model.GetAoETiles(radius - 1); int minHeight = 3; var set = new List <MTile>(); foreach (var mTile in mTiles) { if (!set.Contains(mTile)) { set.Add(mTile); } foreach (MTile neighbor in mTile.GetAdjacent()) { if (!set.Contains(neighbor)) { set.Add(neighbor); } } } foreach (var mTile in set) { if (mTile.GetHeight() < minHeight) { minHeight = mTile.GetHeight(); } } foreach (var mTile in set) { mTile.SetHeight(minHeight); FTile.SetLandmarkFlagTrue(mTile.GetFlags()); } foreach (var mTile in mTiles) { var controller = mTile.Controller; FTile.SetEnvironmentFlagTrue(mTile.GetFlags()); mTile.SetAPCost(TileTable.Instance.Table[ETile.Water].Cost); mTile.SetStaminaCost(TileTable.Instance.Table[ETile.Water].StaminaCost); mTile.SetThreatMod(TileTable.Instance.Table[ETile.Water].ThreatMod); mTile.SetVulnMod(TileTable.Instance.Table[ETile.Water].VulnMod); mTile.SetLiquid(true); mTile.SetType(ETile.Water); } }
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); } } } }
protected void ParseTiles(List <int> _tiles) { int xPos = 0; int yPos = 0; foreach (int tile in _tiles) { FTile newTile = new FTile(tile); mTiles[xPos, yPos] = newTile; xPos++; if (xPos % mWidth == 0) { xPos = 0; yPos++; } } }
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()); } } } }