Unity 내일배움캠프 TIL 0828 | 스킬, 치명타, 회피 기능

cheeseonrose·2023년 8월 28일
0

Unity 내일배움캠프

목록 보기
21/89
post-thumbnail

두둥 오늘은 두 번째 팀 프로젝트 발제하는 날~
주제는 똑같은 텍스트 RPG 게임 만들기였다 근데 이제 이것저것 추가되는

이번 팀원분들은 E가 많으셨다!! 조용하던 전과는 매우 다른 분위기
다들 열심히 하시고 잘 하시고 좋은 분들이신 것 같당 희희

팀 프로젝트

스킬 기능

  • Player 객체에 MP 프로퍼티를 추가해주었다.
  • Player 클래스에서 스킬 공격이 가능한지 체크해주려고 했는데, 그렇게 되면 함수를 추가해야 함 -> Stage에서는 ICharacter로 Player 객체를 받음 -> ICharacter에도 함수를 추가해야 함 -> Monster에서는 필요 없는 함수임 -> 흠...!
    이런 상황이 되어서 그냥 Stage에서 처리해야 되나 일단은 고민 중이다!!!
  • 근데 Monster랑 다르게 Player에서만 필요한 프로퍼티나 메서드가 좀 많은 것 같아서 그냥 Stage에서 Player 객체로 받아오게 해야 될 듯
    --> Player 객체로 받아오기로 결정!
  • 몬스터 리스트에서 2개의 랜덤한 몬스터를 공격하는 부분이 있기 때문에 n개의 랜덤한 인덱스를 뽑는 함수를 따로 만들어줬다. 추후에 쓸지도 모르니께
    • min과 max 사이의 수에서 n개의 랜덤한 수를 뽑아서 리스트에 담아 반환하는 함수
     private List<int> GetRandomIdx(int n, int min, int max)
     {
     	List<int> randomIdx = new List<int>();
      	
        while (randomIdx.Count < n) {
        	int currentNum = new Random().Next(min, max);
        	if (randomIdx.Contains(currentNum))
        	{
        		currentNum = new Random().Next(min, max);
        	}
        	randomIdx.Add(currentNum);
        }
        
        return randomIdx;
     }

치명타 기능

  • 치명타 기능과 회피 기능은 일정 확률로 일어나는 동작이므로 따로 확률 계산 함수를 만들어줬다.
    • prob는 원하는 확률의 값이다. 15% 이면 15
    • 해당 확률로 이벤트가 발생한다면 true, 아니면 false를 반환
    private bool IsOccur(int prob)
    {
    	int isOccur = new Random().Next(0, 100);
      	if (isOccur < prob) return true;
        else return false;
    }
  • 위 함수를 활용해서 IsOccur(15) == true 일 때, 몬스터에게 넘겨주는 damage 값에 1.6을 곱해주었다.

회피 기능

  • 치명타와 비슷하다. IsOccur(10) == true 일 때, 아무일도 일어나지 않았다는 문구를 출력한다. false 라면 플레이어나 몬스터는 damage를 받는다.



사실 오늘 로직 짜고 다른 팀원분들 코드 리뷰하는거 말고는 할게 없었다..!
내가 맡은 부분이 전투 부분 구현이 완료되어야 추가할 수 있는 거라서 ;ㅅ;
그래서 코드 리뷰라도 열심히 했다 !

그리고 협업할 때는 gitignore 파일을 잊지말자...
맨날 혼자하니까 안 넣는게 버릇 돼서 떼잉..쯧

오늘은 여기까지 ~.~
끗!

0개의 댓글