/// <summary> /// 서버로부터 전송받은 스킬의 효과를 대상에게 적용하도록 하는 함수 /// </summary> /// <param name="tCampNum">타겟의 캠프 번호</param> /// <param name="tIndex">타겟이 되는 로봇의 번호</param> /// <param name="statusType">효과가 적용되는 스테이터스 타입</param> /// <param name="ccType">효과에 담긴 CC 타입</param> /// <param name="amount">변화할 스테이터스의 양</param> /// <param name="duration">변화할 시간. 0이면 무제한</param> public void ApplySkillEffect(int tCampNum, int tIndex, int statusType, int ccType, int amount, float duration, float chp) { Robot target; if (tCampNum == 1) { target = robotManager.FirstCampRobot(tIndex); } else { target = robotManager.SecondCampRobot(tIndex); } SkillEffect effect = new SkillEffect((StatusType)statusType, (CCType)ccType, amount, duration); if (target == null) { Debug.Log("해당하는 타겟을 찾을 수 없습니다. 스킬 효과 적용을 무시합니다." + System.Environment.NewLine + "타겟 정보 : " + tCampNum + "P의 " + tIndex + "번째 로봇" + System.Environment.NewLine + "스킬 정보 : " + (StatusType)statusType + "스탯, " + (CCType)ccType + "CC 기, " + amount + "만큼 " + duration + "초 동안 변화"); return; } target.Synchronize(chp); target.Apply(effect); // 상대 로봇에게 가한 damage를 게임매니저에 저장. if ((StatusType)statusType == StatusType.CHP && tCampNum != MyCampNum) { if (amount < 0) { IncDamageCount(-amount); } } }