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; }
private double TryScaleRangedVulnDueToDeco(CDeco deco) { double scalar = 1; double delta = 1 - deco.Model.GetBulletObstructionChance(); scalar *= delta; return(scalar); }