Example #1
0
    public void DoDead()
    {
        CanControl = false;
        DeadEffect deCtr = gameObject.GetComponent <DeadEffect> ();

        if (null == deCtr)
        {
            deCtr = gameObject.AddComponent <DeadEffect> ();
        }
        deCtr.Play(2, OnDeadCallback);
    }
Example #2
0
    private void Dead()
    {
        if (icon != null)
        {
            icon.gameObject.SetActive(false);
        }
        ChampionSound.instance.IamDeadSound(myChampionData.ChampionName);
        // 죽은애가 나면 데스올려라, 그리고 죽는 더미 생성
        InitChampionStatus();
        ChampHP.InitProgressBar();
        if (GetComponent <PhotonView>().owner.Equals(PhotonNetwork.player))
        {
            myChampionData.death++;
            myChampionData.UIRightTop.AllUpdate();

            string dummyName = gameObject.name.Split('_')[0];
            // 더미생성
            PhotonNetwork.Instantiate("Champion/" + dummyName + "Die", transform.position, transform.rotation, 0);

            reviveTime = (myChampionData.totalstat.Level - 1) * 2.0f + 10.0f;
            myChampionData.UIIcon.ReviveCoverImage.enabled = true;

            if (deadEffect == null)
            {
                deadEffect = Camera.main.GetComponentInChildren <DeadEffect>();
            }
            deadEffect.TurnOn();

            // 죽으면 상점 구매가능
            PlayerData.Instance.purchaseState = true;

            // 내가가진 어시리스트애들한테 어시올려줌
            assistRPC();
        }

        myChampAtk.StopAllCoroutines();
        myChampAtk.ResetTarget();

        // 죽으면 기존에 액티브끄는 대신에 좌표를 옮겨버림.
        //gameObject.SetActive(false);
        transform.position = new Vector3(transform.position.x, -100, transform.position.z);

        // 죽을때 마우스바뀐상태면 원래대로
        if (mouseChanged)
        {
            cursor.SetCursor(cursor.PreCursor, Vector2.zero);
        }

        //var myAstarTarget = transform.parent.Find("PlayerA*Target");
        //if (myAstarTarget != null)
        //    myAstarTarget.localPosition = startPos;
    }
Example #3
0
    /// <summary>
    /// 사망처리를 하는 함수
    /// </summary>
    private void Dead()
    {
        if (icon != null)
        {
            icon.gameObject.SetActive(false);
        }

        // 플레이어 본인이 죽은 경우 데스 수치를 올리고 죽는 더미를 생성한다
        ChampionSound.instance.IamDeadSound(myChampionData.championName);
        InitChampionStatus();
        champHP.InitProgressBar();

        if (GetComponent <PhotonView>().owner.Equals(PhotonNetwork.player))
        {
            myChampionData.death++;

            // 더미생성
            string dummyName = gameObject.name.Split('_')[0];
            PhotonNetwork.Instantiate("Champion/" + dummyName + "Die", transform.position, transform.rotation, 0);

            reviveTime = (myChampionData.totalStat.Level - 1) * 2.0f + 10.0f;
            myChampionData.UIIcon.reviveCoverImage.enabled = true;

            if (deadEffect == null)
            {
                deadEffect = Camera.main.GetComponentInChildren <DeadEffect>();
            }

            deadEffect.TurnOn();

            // 사망 시 상점 이용이 가능하게 처리한다
            PlayerData.Instance.purchaseState = true;

            // 나를 죽인 이들의 어시스트를 올린다
            AssistRPC();
        }

        myChampAtk.StopAllCoroutines();
        myChampAtk.ResetTarget();

        // 사망시 활성을 끄는 대신 좌표를 옮겨버린다
        transform.position = new Vector3(transform.position.x, -100, transform.position.z);

        // 사망시 마우스 커서가 바뀌어있다면 원상복귀 시킨다
        if (isMouseChanged)
        {
            cursor.SetCursor(cursor.PreCursor, Vector2.zero);
        }
    }
    void DoPlayerDead()
    {
        if (m_isFailed || m_isVectory)
        {
            return;
        }
        m_mapCtr.Player.CanControl = false;
        foreach (DogCtr dog in m_mapCtr.m_dogList)
        {
            dog.CanControl = false;
        }
        AudioManager.Instance.PlayAudio("dead");
        DeadEffect deCtr = m_mapCtr.Player.gameObject.AddComponent <DeadEffect> ();

        deCtr.Play(2, (GameObject x) => {
            m_failCtr.gameObject.SetActive(true);
        });
    }
Example #5
0
    IEnumerator Resurrection(float second)
    {
        yield return(new WaitForSeconds(second));

        DeadEffect deCtr = gameObject.GetComponent <DeadEffect> ();

        if (null != deCtr)
        {
            deCtr.Stop();
        }
        Reset();
        CanControl = true;
        if (m_astarMap.GetCell(m_data.Row, m_data.Column).IsToLeft)
        {
            m_data.Move(-1, 0);
        }
        else
        {
            m_data.Move(1, 0);
        }
    }
Example #6
0
    private void Update()
    {
        if (GetComponent <PhotonView>().owner.Equals(PhotonNetwork.player))
        {
            if (isDead)
            {
                if (UIReviveTime == null)
                {
                    UIReviveTime = myChampionData.UIIcon.ReviveTime;
                }

                if (deadEffect == null)
                {
                    deadEffect = Camera.main.GetComponentInChildren <DeadEffect>();
                }

                reviveTime       -= Time.deltaTime;
                UIReviveTime.text = Mathf.FloorToInt(reviveTime).ToString();

                if (Camera.main.GetComponent <RTS_Cam.RTS_Camera>().targetFollow != null)
                {
                    Camera.main.GetComponent <RTS_Cam.RTS_Camera>().ResetTarget();
                }

                if (reviveTime < 0)
                {
                    reviveTime = 10.0f;
                    // UIText 변경
                    UIReviveTime.text          = "";
                    PlayerData.Instance.isDead = false;

                    ReviveSync();
                    // 카메라 캐릭터위치로 옮김
                    Camera.main.transform.position = new Vector3(transform.position.x, Camera.main.transform.position.y, transform.position.z)
                                                     + Camera.main.GetComponent <RTS_Cam.RTS_Camera>().targetOffset;

                    // 카메라 회색화면 끄기
                    deadEffect.TurnOff();

                    myChampionData.UIIcon.ReviveCoverImage.enabled = false;

                    myChampionData.TheAIPath.canMove = true;
                    if (PhotonNetwork.player.GetTeam().ToString().Contains("red"))
                    {
                        transform.position = myChampionData.RedPos;
                        myChampAtk.AStarTargetObj.transform.position = myChampionData.RedPos;
                    }
                    else if (PhotonNetwork.player.GetTeam().ToString().Contains("blue"))
                    {
                        transform.position = myChampionData.BluePos;
                        myChampAtk.AStarTargetObj.transform.position = myChampionData.BluePos;
                    }

                    // 부활할때 idle로
                    myChampionAnimation.AnimationAllOff();
                    this.photonView.RPC("ReviveSync", PhotonTargets.Others, null);
                }
            }
        }

        assistCheck();
    }
Example #7
0
    private void Update()
    {
        if (GetComponent <PhotonView>().owner.Equals(PhotonNetwork.player))
        {
            // 플레이어가 사망한 경우
            if (isDead)
            {
                if (uiReviveTime == null)
                {
                    uiReviveTime = myChampionData.UIIcon.reviveTimeText;
                }

                if (deadEffect == null)
                {
                    deadEffect = Camera.main.GetComponentInChildren <DeadEffect>();
                }

                // 부활 시간을 처리한다
                reviveTime       -= Time.deltaTime;
                uiReviveTime.text = Mathf.FloorToInt(reviveTime).ToString();

                if (Camera.main.GetComponent <RTS_Cam.RTS_Camera>().targetFollow != null)
                {
                    Camera.main.GetComponent <RTS_Cam.RTS_Camera>().ResetTarget();
                }

                // 부활까지 기다리는 시간이 끝났다
                if (reviveTime < 0)
                {
                    reviveTime = 10.0f;

                    // UIText를 변경한다
                    uiReviveTime.text          = "";
                    PlayerData.Instance.isDead = false;

                    // 모든 클라이언트에서 동일하게 부활하도록 처리
                    SyncRevive();

                    // 카메라를 캐릭터위치로 옮긴다
                    Camera.main.transform.position = new Vector3(transform.position.x, Camera.main.transform.position.y, transform.position.z)
                                                     + Camera.main.GetComponent <RTS_Cam.RTS_Camera>().targetOffset;

                    // 카메라의 회색화면을 끈다
                    deadEffect.TurnOff();

                    // 기타 설정을 처리
                    myChampionData.UIIcon.reviveCoverImage.enabled = false;
                    myChampionData.theAIPath.canMove = true;

                    if (PhotonNetwork.player.GetTeam().ToString().Contains("red"))
                    {
                        transform.position = myChampionData.redPos;
                        myChampAtk.aStarTargetObj.transform.position = myChampionData.redPos;
                    }
                    else if (PhotonNetwork.player.GetTeam().ToString().Contains("blue"))
                    {
                        transform.position = myChampionData.bluePos;
                        myChampAtk.aStarTargetObj.transform.position = myChampionData.bluePos;
                    }

                    myChampionAnimation.AnimationAllOff();
                    this.photonView.RPC("SyncRevive", PhotonTargets.Others, null);
                }
            }
        }

        // 어시스트를 확인한다
        CheckAssist();
    }