package HKEYE;
import java.util.Scanner;
public class HKEYE {
	public static void main(String[] args) 
	{
		Scanner sc = new Scanner(System.in);
		System.out.println("스킬번호를 입력해주세요. 아토믹'1', 애로우해일'2', 호크샷'3', 차징샷'4': ");
		int skill = sc.nextInt();
		double X = 2.5;		// 치명타피해증가율(예리한둔기 적용)
		System.out.println("치명타확률을 입력하세요 : ");
		double K = sc.nextDouble(); // 치명타확률
		switch(skill) {
		
		case 1:
			System.out.print("트라이포드 [화살촉 강화] 레벨을 입력하세요 : ");
			int AL = sc.nextInt() -1;
			System.out.print("트라이포드 [불꽃 화약] 레벨을 입력하세요 : ");
			int FL = sc.nextInt() -1;
			System.out.print("트라이포드 [긴도화선] 레벨을 입력하세요 : ");
			int LL = sc.nextInt() -1;
			double A[] = {30, 37.5, 45, 52.5, 60};	// [화살촉 강화] 치명타확률
			double F[] = {0.403250855, 0.504738077, 0.613800608, 0.718783047, 0.815489729};	// [불꽃 화약] 계수
			double L[] = {0.651329316, 0.748692046, 0.837616490, 0.914687092, 1.012930771};	// [긴도화선] 계수
			double AD;				// [화살촉 강화]의 데미지를 저장할 변수
			double FD;				// [불꽃 화약]의 데미지를 저장할 변수
			double LD;				// [긴도화선]의 데미지를 저장할 변수
			double AK = K;			// [화살촉 강화]의 치명타확률을 저장할 변수
			AK += A[AL];			// [화살촉 강화] 레벨에 따른 최종치명타확률

				if(AK > 100) AK = 100;
					AD = (100-AK) + AK*X;
					System.out.println("[화살촉 강화]의 데미지 : " + AD);
					
				if(K > 100) K = 100;
					FD = (100-K)+K*X+F[FL]*(100-K)+F[FL]*K*X;
					System.out.println("[불꽃 화약]의 데미지 : " + FD);
					
				if(K > 100) K = 100;
					LD=(100-K)+K*X+L[LL]*(100-K)+L[LL]*K*X;
					System.out.println("[긴도화선]의 데미지 : " + LD);
		break;
		
			
		case 2:
			System.out.print("트라이포드 [강화된화살] 레벨을 입력하세요 : ");
			int PL = sc.nextInt() -1;
			System.out.print("트라이포드 [헬파이어] 레벨을 입력하세요 : ");
			int HL = sc.nextInt() -1;
			double P[] = {15, 21, 27, 33, 40};		// [강화된화살] 치명타확률
			double H[] = {0.299775579, 0.490175806, 0.674593337, 0.861433297, 1.057163086};	// [헬파이어] 계수
			double PD;				// [강화된화살]의 데미지를 저장할 변수
			double HD;				// [헬파이어]의 데미지를 저장할 변수
			double PK = K;			// [강화된화살]의 치명타확률을 저장할 변수
			PK += P[PL];			// [강화된화살] 레벨에 따른 최종치명타확률
			
			if(PK > 100) PK = 100;
				PD=((100-PK) + PK*X)*3;							// [강화된화살] 데미지 공식
				System.out.println("[강화된화살]의 데미지 : " + PD);
				
			if(K > 100) K = 100;
				HD=((100-K) + K*X)*3 + H[HL]*((100-K)+K*X) ;	// [헬파이어] 데미지 공식
				System.out.println("[헬파이어]의 데미지 : " + HD);
		break;
			
			
		case 3:
			System.out.println("죽습이면 '1' 두동이면 '2' 를 입력해주세요 : ");
			int J = sc.nextInt(); // 직업각인 분류
			System.out.println("트라이포드 [붉은매] 레벨을 입력하세요 : ");
			int RL = sc.nextInt() - 1;
			System.out.println("트라이포드 [수리매] 레벨을 입력하세요 : ");
			int SL = sc.nextInt() - 1;
			double S[] = {30, 37, 44, 52, 60};			// [수리매] 치명타확률
			double R[] = {0.3, 0.37, 0.44, 0.52, 0.6};	// [붉은매] 뎀증
			double T[] = {1.6, 1.8, 2.0, 2.2, 2.4};		// [단독전술] 치명타피해증가율
			double TX = X;		// [단독전술] 치명타피해증가율 저장할 변수
			double SK = K;		// [수리매]의 치명타확률을 저장할 변수
			double SD;			// [수리매]의 데미지를 저장할 변수
			double RD;			// [붉은매]의 데미지를 저장할 변수
			SK += S[SL];	// [수리매] 레벨에 따른 최종치명타확률
			
			if(J==1) {
				System.out.println("트라이포드 [단독전술] 레벨을 입력하세요 : ");
				int TL = sc.nextInt() - 1;
				TX += T[TL];	// [단독전술] 레벨에 따른 최종치명타피해증가율
				
				if (K > 100) K = 100;		// [붉은매] 데미지 공식
				RD=(((100-K) + K*(TX))*(R[RL]+1));
				
				if (SK > 100) SK = 100;		// [수리매] 데미지 공식
				SD = ((100-SK) + (SK*TX));

				
				System.out.println("[붉은매]의 데미지 : " + RD);
				System.out.println("[수리매]의 데미지 : " + SD);
			}
			
			else if(J==2) {

				
				if (K > 100) K = 100;		// [붉은매] 데미지 공식
				RD = (2.001*(R[RL]+1)*((100-K)+(K*X)));
				
				if (SK > 100) SK = 100;		// [수리매] 데미지 공식
				SD = (2.001*((100-SK)+(SK*X)));

				
				System.out.println("[붉은매]의 데미지 : " + RD);
				System.out.println("[수리매]의 데미지 : " + SD);
			}
			
			else {
				System.out.println("잘못입력하셨습니다.");
			}	
		break;
			
		
		case 4:
			System.out.print("트라이포드 [즉발] 레벨을 입력하세요 : ");
			int ZL = sc.nextInt() -1;
			System.out.print("트라이포드 [정조준] 레벨을 입력하세요 : ");
			int JL = sc.nextInt() -1;
			double Z[] = {0.50, 0.62, 0.74, 0.86, 1};	// [즉발] 치명타피해증가율
			double j[] = {1.3, 1.37, 1.44, 1.52, 1.60};	// [정조준] 데미지증가 계수
			double ZD;				// [즉발]의 데미지를 저장할 변수
			double ZX = X;			// [즉발]의 치명타피해증가율 초기값
			double JD;				// [정조준]의 데미지를 저장할 변수
			double JK = K + 50;		// [정조준]의 치명타확률을 저장할 변수

			ZX += Z[ZL];			// [즉발]의 최종치명타피해증가율
				
				if(K > 100) K = 100;
					ZD = ((100-K)+(K*ZX))*1.5;
					System.out.println("[즉발]의 데미지 : " + ZD);
					
				if(JK > 100) JK = 100;
					JD = ((100-JK)+(JK*X))*j[JL];
					System.out.println("[정조준]의 데미지 : " + JD);
		break;
		
		
		
		default:
			System.out.println("잘못입력하셨습니다.");
		break;
		
		}
		sc.close();
	}
}