public void DoDead() { CanControl = false; DeadEffect deCtr = gameObject.GetComponent <DeadEffect> (); if (null == deCtr) { deCtr = gameObject.AddComponent <DeadEffect> (); } deCtr.Play(2, OnDeadCallback); }
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; }
/// <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); }); }
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); } }
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(); }
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(); }