1. 서론
찬란한 명예의 돌파석 가격이 감소하면서
경이로운 명예의 돌파석 가격과 비슷해짐에 따라
소나벨과 하누마탄의 수익이 어느정도 비슷할 꺼같아서 비교를 해보았다.
각각 2수당 얻는 재료의 평균은 유튜브 영상을 참고하였다.
2. 개발
2 - 1. DTO
소나벨, 하누마탄 데이터를 각각 저장할 DTO를 만들었다.
@Data
public class SuppressionDto {
private String nameData1;
private Double countData1;
private Double priceData1;
private Double totalData1;
private String nameData2;
private Double countData2;
private Double priceData2;
private Double totalData2;
private String nameData3;
private Double countData3;
private Double priceData3;
private Double totalData3;
private Double totalPrice;
public Double getPriceData1() {
return Math.round(priceData1)*100.0/100.0;
}
public Double getTotalData1() {
return Math.round(totalData1)*100.0/100.0;
}
public Double getPriceData2() {
return Math.round(priceData2)*100.0/100.0;
}
public Double getTotalData2() {
return Math.round(totalData2)*100.0/100.0;
}
public Double getPriceData3() {
return Math.round(priceData3)*100.0/100.0;
}
public Double getTotalData3() {
return Math.round(totalData3)*100.0/100.0;
}
public Double getTotalPrice() {
return Math.round(totalPrice)*100.0/100.0;
}
}
가격을 출력할 때 소수점 첫째자리까지 출력되도록 get메소드를 수정하였다.
2 - 2. 가디언 토벌 비교를 위한 RestApi
@Controller
@RequiredArgsConstructor
@Slf4j
public class SuppressionController {
private final MarketApiService marketApiService;
private final SuppressionService suppressionService;
@GetMapping("/api/suppression")
public String CallSuppression(Model model) {
JSONArray data = marketApiService.CallMarketCategories(50000);
SuppressionDto sonavel = suppressionService.GetSonavel(data);
SuppressionDto hanumatan = suppressionService.Gethanumatan(data);
double distance = sonavel.getTotalData1()+sonavel.getTotalData3()-hanumatan.getTotalData1()-hanumatan.getTotalData3();
model.addAttribute("sonavel", sonavel);
model.addAttribute("hanumatan", hanumatan);
model.addAttribute("distance", distance);
return "suppression";
}
}
앞서 만든 거래소 데이터 불러오기를 이용해 제련재료 데이터를 가져오고
소나벨과 하누마탄 데이터에 저장한다.
또한 (나는) 재료를 판매를 할 때 파괴강석과 돌파석 위주로 판매하므로
차이를 비교할 때 수호강석은 제외하였다 (distance 변수)
2 - 3. 각각의 데이터 생성
소나벨 - 정제된 파괴강석, 정제된 수호강석, 찬란한 명예의 돌파석
public SuppressionDto GetSonavel(JSONArray data) {
SuppressionDto dto = new SuppressionDto();
for(int i =0; i<data.size(); i++) {
JSONObject temp = (JSONObject) data.get(i);
if(temp.get("Name").toString().equals("정제된 파괴강석")) {
double count = 3.34;
double RecentPrice = Double.parseDouble(temp.get("RecentPrice").toString());
dto.setNameData1("정제된 파괴강석");
dto.setCountData1(count*10);
dto.setPriceData1(RecentPrice);
dto.setTotalData1(count*RecentPrice);
}
if(temp.get("Name").toString().equals("정제된 수호강석")) {
double count = 10.0;
double RecentPrice = Double.parseDouble(temp.get("RecentPrice").toString());
dto.setNameData2("정제된 수호강석");
dto.setCountData2(count*10);
dto.setPriceData2(RecentPrice);
dto.setTotalData2(count*RecentPrice);
}
if(temp.get("Name").toString().equals("찬란한 명예의 돌파석")) {
double count = 4.0;
double RecentPrice = Double.parseDouble(temp.get("RecentPrice").toString());
dto.setNameData3("찬란한 명예의 돌파석");
dto.setCountData3(count);
dto.setPriceData3(RecentPrice);
dto.setTotalData3(count*RecentPrice);
}
}
dto.setTotalPrice(dto.getTotalData1()+dto.getTotalData2()+dto.getTotalData3());
return dto;
}
하누마탄 - 파괴강석, 수호강석, 경이로운 명예의 돌파석
public SuppressionDto Gethanumatan(JSONArray data) {
SuppressionDto dto = new SuppressionDto();
for(int i =0; i<data.size(); i++) {
JSONObject temp = (JSONObject) data.get(i);
if(temp.get("Name").toString().equals("파괴강석")) {
double count = 5.15;
double RecentPrice = Double.parseDouble(temp.get("RecentPrice").toString());
dto.setNameData1("파괴강석");
dto.setCountData1(count*10);
dto.setPriceData1(RecentPrice);
dto.setTotalData1(count*RecentPrice);
}
if(temp.get("Name").toString().equals("수호강석")) {
double count = 15.25;
double RecentPrice = Double.parseDouble(temp.get("RecentPrice").toString());
dto.setNameData2("수호강석");
dto.setCountData2(count*10);
dto.setPriceData2(RecentPrice);
dto.setTotalData2(count*RecentPrice);
}
if(temp.get("Name").toString().equals("경이로운 명예의 돌파석")) {
double count = 7.0;
double RecentPrice = Double.parseDouble(temp.get("RecentPrice").toString());
dto.setNameData3("경이로운 명예의 돌파석");
dto.setCountData3(count);
dto.setPriceData3(RecentPrice);
dto.setTotalData3(count*RecentPrice);
}
}
dto.setTotalPrice(dto.getTotalData1()+dto.getTotalData2()+dto.getTotalData3());
return dto;
}
2 - 4. 결과
3. 정리 및 후기
- 2수로 비교하면 소나벨과 하누마탄을 돌았을 때 차이는 134골드이다
- 휴게 쌓아서 돌면 268골드?
- 이러면 하누마탄 딜찍으로 도는게 낫지않나...?
- 또, 시간이 지나면서 가격차이는 더 줄어들지 않을까...