Ejemplo n.º 1
0
        //Map 점유율
        //PlayerCtrl의 PlayerTeam enum 값으로 처리함
        public void SetMapShareArray(Vector3 position, PlayerCtrl.PlayerTeam playerTeam)
        {
            Vector3 gridPosition = GridPositionToArray(position);

            if (shareArray[(int)gridPosition.x, (int)gridPosition.z] == playerTeam.ToString())
            {
                //return;
            }
            else
            {
                shareArray[(int)gridPosition.x, (int)gridPosition.z] = playerTeam.ToString();
                print("set map share array : " + shareArray[(int)gridPosition.x, (int)gridPosition.z]);
            }
        }
Ejemplo n.º 2
0
        //
        public bool GetSetBoolPlayerOcuupationPosition(Vector3 position, PlayerCtrl.PlayerTeam playerTeam = PlayerCtrl.PlayerTeam.empty, bool?setBool = null)
        {
            Vector3 gridPosition = GridPositionToArray(position);

            if (setBool != null)
            {
                //점수 계산부분
                if (PhotonNetwork.IsMasterClient && playerOccupationArray[(int)gridPosition.x, (int)gridPosition.z] == false && setBool == true)
                {
                    CalculateShare(position, playerTeam);
                }
                playerOccupationArray[(int)gridPosition.x, (int)gridPosition.z] = setBool.Value;
            }
            //print("GridPositionToArray : " + (int)gridPosition.x + " , " + (int)gridPosition.z);
            return(playerOccupationArray[(int)gridPosition.x, (int)gridPosition.z]);
        }
Ejemplo n.º 3
0
        //map에 object가 있는지 bool 값으로 체크 (true: object 존재, false object 없음)
        public string CalculateShare(Vector3 position, PlayerCtrl.PlayerTeam playerTeam = PlayerCtrl.PlayerTeam.empty)
        //함수 이름은 동사+명사 형식이 적합할듯 하다! ex) CalculatePoint
        //한 함수 안에서 두가지 일을 동시에 하고 있다(현재 점유팀의 이름 반환과 영역 계산) -> 두함수로 쪼개서 처리하는게 좋을 것 같다
        {
            Vector3 gridPosition = GridPositionToArray(position);
            string  occupation   = shareArray[(int)gridPosition.x, (int)gridPosition.z]; //currentOccupationTeam?

            if (playerTeam == PlayerCtrl.PlayerTeam.empty)
            {
                return(shareArray[(int)gridPosition.x, (int)gridPosition.z]);
            }

            //점유 되어있는 곳이 없고 B가 점유를 할 예정일때
            if (occupation == null && playerTeam == PlayerCtrl.PlayerTeam.B)
            {
                //B의 점수를 올린다.
                sharePointB++;
                print("B++");
            }
            //점유 되어있는 곳이 없고 A가 점유를 할 예정일때
            else if (occupation == null && playerTeam == PlayerCtrl.PlayerTeam.A)
            {
                //A의 점수를 올린다.
                sharePointA++;
                print("A++");
            }
            //점유 되어있는 곳이 A이고 B가 점유를 할 예정일때
            else if (occupation == "A" && playerTeam == PlayerCtrl.PlayerTeam.B)
            {
                //B의 점수를 올리고 A점수를 낮춘다.
                sharePointA--;
                sharePointB++;
            }
            //점유 되어있는 곳이 B이고 A가 점유를 할 예정일때
            else if (occupation == "B" && playerTeam == PlayerCtrl.PlayerTeam.A)
            {
                //A의 점수를 올리고 B점수를 낮춘다.
                sharePointA++;
                sharePointB--;
            }

            ScoreCustomProps();

            return(shareArray[(int)gridPosition.x, (int)gridPosition.z]);
        }