

먼저, 총기 상태를 저장할 HeatState 열거형은 다음과 같이 세팅되어 있다.
1. HeatState는 Normal/High/Over로 구성되어 있다.
2. 각각 총기 온도가 0~30/31~70/71~100일 때 변경된다.

구조체 선언도 다음과 같다. 이때, HeatState는 방금 선언한 열거형을 사용했다.
메인 로직 부분
- 이벤트 부분을 각각 정의해주고, 발사되었다는 것을 알기 위해 Print String으로 세팅해주었다.

Set Temperature 함수
- 현재 총기의 Temperature에 따라 총기의 상태를 정해주는 함수

Display State 함수
- 현재 총기의 탄약 및 상태를 출력하기 위한 함수

Change Weapon 함수
- 무기의 인덱스 값을 바탕으로 Weapon 배열에 있는 무기로 교체한다.
- 현재 탄약, 총기 온도도 동기화 해줘야 한다는 점이 중요했다.

Get Current Weapon Ammo 함수
- 현재 무기의 탄약을 반환하는 함수이다.

참고자료