public ShowGuiTouchAction(BasicBuildActionsGUI Default, Building Build,TouchedObject tb, 
                                                            BasicBuildActionsGUI BuildingActionGUI,
                                                            BasicBuildActionsGUI ActionGUIConstruction)
    {
        this.Default = Default;
        this.tb = tb;
        this.Build = Build;

        this.BuildingActionGUI = BuildingActionGUI;
        this.ActionGUIConstruction = ActionGUIConstruction;
    }
Example #2
0
    // 점수 계산
    void CalcResult()
    {
        // 맞은 적구 판단
        // 수구는 최초에 캐싱된 하나만 인정한다.
        PlayerBallController PC = CueBall.GetComponent <PlayerBallController>();

        if (PC != null)
        {
            List <GameObject> TouchedObjects = PC.GetTouchedObjectsList();

            int   TouchedBalls = 0;
            int   TouchedWalls = 0;
            bool  bBankShot    = false;
            float Score        = Score_Miss;
            foreach (GameObject TouchedObject in TouchedObjects)
            {
                if (TouchedObject == null)
                {
                    continue;
                }

                // 적구 타격 먼저 판단
                if (TouchedObject.CompareTag("Ball"))
                {
                    TouchedBalls++;

                    // 첫 적구 터치 시 가락 확인
                    if (TouchedBalls == 1 && TouchedWalls >= 3 && bBankShot == false)
                    {
                        bBankShot = true;
                    }

                    // 적구 타격 완료 시 계산 완료
                    if (TouchedBalls >= ObjectBalls.Count)
                    {
                        // 성공 시 턴 증감 계산
                        if (bBankShot)
                        {
                            Score = Score_BankShot;
                        }
                        else if (TouchedWalls >= 3)
                        {
                            Score = Score_3Cushion;
                        }
                        else
                        {
                            Score = Score_Success;
                        }

                        break;
                    }
                }

                // 쿠션 판단
                if (TouchedObject.CompareTag("Wall"))
                {
                    TouchedWalls++;
                }
            }

            // 실패에 대한 턴 증감 계산
            if (Score == Score_Miss && TouchedBalls > 0)
            {
                Score = Score_Save;
            }

            // 잔여 턴 계산
            Turn = Mathf.Min(Turn + Score, MaxTurn);

            Debug.Log("Result ----");
            Debug.Log("Score : " + Score);
            Debug.Log("Touched Balls : " + TouchedBalls);
            Debug.Log("Touched Walls : " + TouchedWalls);
            Debug.Log("Bank Shot : " + bBankShot);
            Debug.Log("Remain Turn : " + Turn);
        }

        if (Turn > 0.0f)
        {
            SetTurnState(ETurn.Action);
        }
    }
Example #3
0
 private void MatchTileTouched(TouchedObject touchedObject)
 {
     matchTileTouchedCommand.touchedObject = touchedObject;
     matchTileTouchedCommand.Execute();
 }
 public void setTouchedObject(TouchedObject TObject)
 {
     _TouchedObject = TObject;
 }
Example #5
0
    void OnCollisionEnter(Collision collisionInfo)
    {
        GameObject touched = collisionInfo.collider.gameObject;

        if (collisionInfo.collider.tag == objectifTag)
        {
            touched.GetComponent <Collider>().enabled = false;
            if (FindObjectOfType <GameManager>().difficult == true)
            {
                FindObjectOfType <playerMovement>().Boost();
            }
            Debug.Log("We hit the objectif !");
            // Augmenter le score de 1 !
            FindObjectOfType <GameManager>().actualScore += 1f;
            FindObjectOfType <AudioManager>().Play("Dissolution");
            //Fais disparaitre l'objet
            disappearObject(touched);
        }
        else
        {
            GameObject touchedFalse = collisionInfo.collider.gameObject;
            if (touchedFalse.name != "Plane")
            {
                //Joue l'animation d'explosion
                touchedFalse.GetComponent <explosion>().explosionObj.GetComponent <VisualEffect>().Play();
                //Augmente l'erreur +1
                FindObjectOfType <GameManager>().error += 1f;
                //Joue le son
                FindObjectOfType <AudioManager>().Play("Explosion");
                //Fais disparaitre l'objet
                disappearObject(touchedFalse);
            }
        }

        /*if(collisionInfo.collider.tag == "obstacle")
         * {
         *  Debug.Log("We hit an obstacle !");
         *  movement.enabled = false;
         *  FindObjectOfType<GameManager>().EndGame();
         * }*/



        void disappearObject(GameObject TouchedObject)
        {
            Renderer mat = collisionInfo.collider.gameObject.GetComponent <Renderer>();

            StartCoroutine(ChangeValue(0f, 1f, 0.25f, mat, TouchedObject));
        }

        IEnumerator ChangeValue(float v_start, float v_end, float duration, Renderer v_mat, GameObject TouchedObject)
        {
            float elapsed = 0.0f;

            while (elapsed < duration)
            {
                value    = Mathf.Lerp(v_start, v_end, elapsed / duration);
                elapsed += Time.deltaTime;

                v_mat.material.SetFloat("Vector1_A5850407", value);
                yield return(null);
            }
            value = v_end;
            v_mat.material.SetFloat("Vector1_A5850407", value);
            TouchedObject.SetActive(false);
            value = 0f;
        }
    }