コード例 #1
0
    public void Resolve()
    {
        if (playerRoll >= enemyRoll)
        {
            GameObject p = Instantiate(particles, enemyPiece.transform.position, Quaternion.identity);
            if (enemyPiece.pieceColor == "BLACK")
            {
                p.GetComponent <ParticleSystem>().startColor = Color.black;
            }
            if (enemyPiece.pieceColor == "WHITE")
            {
                p.GetComponent <ParticleSystem>().startColor = Color.white;
            }

            Destroy(enemyPiece.gameObject);
            playerPiece.targetTile    = enemyPiece.CurrentTile();
            playerPiece.isClashing    = false;
            playerPiece.movementValue = 1;
        }
        else
        {
            GameObject p = Instantiate(particles, playerPiece.transform.position, Quaternion.identity);
            if (playerPiece.pieceColor == "BLACK")
            {
                p.GetComponent <ParticleSystem>().startColor = Color.black;
            }
            if (playerPiece.pieceColor == "WHITE")
            {
                p.GetComponent <ParticleSystem>().startColor = Color.white;
            }

            Destroy(playerPiece.gameObject);
            enemyPiece.targetTile    = playerPiece.CurrentTile();
            enemyPiece.movementValue = 1;
            enemyPiece.jumping       = true;

            if (playerPiece.GetComponent <Outline>() != null)
            {
                Destroy(GetComponent <Outline>());
            }
            if (!wc.hasCheckedForVictory)
            {
                wc.CheckForVictory();
            }
        }
    }
コード例 #2
0
    public virtual void SetMovement(int value)
    {
        movementValue = value;

        if (dirs[direction].GetComponent <checkAvailability>().available)
        {
            if (dirs[direction].GetComponent <checkAvailability>().touchingEnemy&& movementValue > 1)
            {
                // this code captures pieces like normal chess, which is boring

                //targetTile = dirs[direction].GetComponent<checkAvailability>().NearestTile();
                //Destroy(dirs[direction].GetComponent<checkAvailability>().enemyPiece.gameObject);
                //movementValue = 1;

                //if (GetComponent<Outline>() != null)
                //    Destroy(GetComponent<Outline>());
                //if (!tc.coroutineIsRunning)
                //    tc.StartCoroutine(tc.SwitchTurns());

                // THIS code captures pieces like dumb bad chess, which is fun as shit

                cc.playerPiece = this;
                cc.enemyPiece  = dirs[direction].GetComponent <checkAvailability>().enemyPiece.GetComponent <basePiece>();
                isClashing     = true;
                cc.EnterClash();
                source.PlayOneShot(clashClip);
            }
            else
            {
                targetTile = dirs[direction].GetComponent <checkAvailability>().NearestTile();
                movementValue--;
                jumping = true;

                if (movementValue <= 0)
                {
                    if (GetComponent <Outline>() != null)
                    {
                        Destroy(GetComponent <Outline>());
                    }
                    jumping = false;
                    if (!wc.hasCheckedForVictory)
                    {
                        wc.CheckForVictory();
                    }
                }
            }
        }
        else
        {
            movementValue = 0;

            if (GetComponent <Outline>() != null)
            {
                Destroy(GetComponent <Outline>());
            }
            jumping = false;
            if (!wc.hasCheckedForVictory)
            {
                wc.CheckForVictory();
            }
        }
    }