void OnSelectionChange(GameObject newSelection) { GameboardPiece gp = newSelection.GetComponent <GameboardPiece>(); prismiteTilePosition = gp.GetTilePosition(); if (gp.piece.data.type == PieceType.Prismite) { PrismiteNode pn = newSelection.GetComponent <PrismiteNode>(); prismite = pn.GetPrismite(); transform.position = newSelection.transform.position + new Vector3(2.25f, 0, 0); prismiteDisplayImage.sprite = prismite.uiDisplay; redSlider.value = prismite.data.redColour; blueSlider.value = prismite.data.blueColour; yellowSlider.value = prismite.data.yellowColour; nameText.text = prismite.data.name; costText.text = prismite.data.cost.ToString(); for (int i = 0; i < prismite.data.quality; i++) { prismiteQualityIcons[i].enabled = true; } } else { transform.position = new Vector3(-10, -10, 0); for (int i = 0; i < prismiteQualityIcons.Length; i++) { prismiteQualityIcons[i].enabled = false; } } }
// Update is called once per frame void FixedUpdate() { if (MouseData.activeSelection != null) { bottomPanelTransform.localPosition = Vector3.zero; GameboardPiece gp = MouseData.activeSelection.GetComponent <GameboardPiece>(); damageBaseText.text = gp.GetPieceDamage.BaseValue.ToString(); speedBaseText.text = gp.GetPieceAttackSpeed.BaseValue.ToString(); damageModText.text = (gp.GetPieceDamage.ModifiedValue - gp.GetPieceDamage.BaseValue).ToString(); speedModText.text = (gp.GetPieceAttackSpeed.ModifiedValue - gp.GetPieceAttackSpeed.BaseValue).ToString(); damageTotalText.text = gp.GetPieceDamage.ModifiedValue.ToString(); speedTotalText.text = gp.GetPieceAttackSpeed.ModifiedValue.ToString(); selectionName.text = gp.piece.data.name; if (gp.piece.tile != null) { displayImage.sprite = gp.piece.tile.sprite; } else { displayImage.sprite = MouseData.activeSelection.GetComponent <SpriteRenderer>().sprite; } } else { bottomPanelTransform.localPosition = new Vector3(0f, slideDistance, 0f); } }
public static void Create(Vector3 spawnPosition, GameboardPiece piece, int damageAmount) { Transform projectileTransform = Instantiate(ProjectileAssets.Instance.baseRailbowProjectile, spawnPosition, Quaternion.identity); Projectile projectile = projectileTransform.GetComponent <Projectile>(); projectile.Setup(piece, damageAmount); }
/** * All modifications to the game board happen here * Input is a position and an already instantiated GameObject * This ensures pieces are displayed and placed in a consistant way **/ public Vector3Int UpdateGameboard(Vector3Int tilePosition, GameObject piece) { if (!IsOnGameboard(tilePosition)) { return(tilePosition); } GameboardPiece gp = piece.GetComponent <GameboardPiece>(); piece.transform.parent = this.transform; gp.piece.parent = this; piece.transform.position = GetWorldPositionFromTilePosition(tilePosition); // Sets the tile portion of the graphic to the board if (piece.GetComponent <SpriteRenderer>() == null && gp.piece.tile != null) { if (gp.piece.data.type == PieceType.UnstableGround || gp.piece.data.type == PieceType.GroundConstruction || gp.piece.data.type == PieceType.Empty) { SetTileGraphic(groundTilemap, tilePosition, gp.piece.tile); } } if (gp.piece.data.type == PieceType.Hearth) { _hearthTileRef = new Vector3Int(tilePosition.x, tilePosition.y, 0); } Destroy(_gameboard[tilePosition.x, tilePosition.y]); _gameboard[tilePosition.x, tilePosition.y] = piece; gp.OnAfterPlaced(); return(tilePosition); }
// Start is called before the first frame update void Setup(GameboardPiece gp, int damageAmount) { this.piece = gp; this.damageAmount = damageAmount; this.lastPos = gp.GetPosition(); }