Пример #1
0
    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;
            }
        }
    }
Пример #2
0
    // 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);
        }
    }
Пример #3
0
    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);
    }
Пример #4
0
    /**
     * 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);
    }
Пример #5
0
 // Start is called before the first frame update
 void Setup(GameboardPiece gp, int damageAmount)
 {
     this.piece        = gp;
     this.damageAmount = damageAmount;
     this.lastPos      = gp.GetPosition();
 }