모더를 위한 JSON 분석기 입니다.

많은 모더가 올려주신 소중한 모드들 모두 적용하고 싶은 마음이 가득하지만
여러 모드들을 적용하면 JSON 파일들이 덮어씌워져 일부만 적용되거나 적용이 안되는 경우가 많습니다.
또 업데이트가 발생하면 전체 모드를 확인해야 합니다.

이러한 문제를 해결하기 위해 전체 모드에 포함된 json 파일을 분석하는 도구를 만들었습니다.



특징
1. 이 도구는 선히님의 D2R 스킨 적용 보조도우미 도구를 위해 제작되었습니다.
2. D2R 업데이트로 인해 오리지널 JSON이 변경되어도 원본만 지정한다면 모두 반영됩니다.

사용법
** 압축파일을 원하는 위치에 압축풀고 D2RJSONAnalyzer.exe를 실행 합니다.**

1. 원본 Data 폴더: D2R의 원본 Data 폴더를 지정 합니다. 지정을 안하면 최상단부터 처음으로 분석한 json을 기준값으로 합니다.
  * 별도의 유틸리티로 D2R 원본 데이터를 추출 해야만 합니다.
  * 폴더를 지정할때 global, hd, local 폴더의 상위 폴더인 data 폴더를 지정하면 됩니다.
2. 모드 유틸리티 폴더: 선히 D2R 스킨 적용 보조도우미 폴더를 선택 합니다.
  * 예) seonheeD2Rskingenerator_v0.95 폴더 지정
3. 병합 저장 폴더: 모드에 사용된 json을 통합할 폴더를 지정 합니다. 병합을 하면 해당 폴더에 구조화되서 저장 됩니다.
4. 폴더가 모두 지정되면 "누적 분석 시작" 버튼을 눌러서 분석을 진행 합니다.
  * 스킨 적용 보조도우미의 config 파일을 읽고 모드 적용여부와 순서를 자동으로 읽어옵니다.
  * files 폴더에서 적용한 모드폴더만 탐색하여 전체 json 파일을 읽고 분석 합니다.

5. 분석결과는 신규로 추가된 파일, JSON 내용이 변경됨, JSON 내용 중 일부가 삭제됨 으로 구분됩니다.
6. 분석결과를 활용해서 병합을 하거나 변경사항을 확인하고 에디터로 원하는 모드의 JSON 파일을 직접 수정 합니다.
7. 파일을 더블클릭하면 세부 변경사항이 나타납니다.


8. 여기서 세부 항목을 다시 더블클릭하면 실제 구조나 값이 어떻게 변경되었는지 보여줍니다.


** 병합 사용시 **
9. 만약 병합을 진행할때 "모드에서 삭제된 항목을 원본으로 복구 유지"를 체크하면 모드에서 삭제한 요소들은 모두 원본으로 대체 됩니다.
  * 모드가 제거한 요소를 원본데이터를 사용하고 싶을때 사용하는 것으로, 일반적으로는 체크해제 합니다.
  * 체크하고 병합한 JSON을 스킨 적용 보조도우미에 추가해서 적용하면 원본과 모드가 겹치는 현상이 발생 할 수 있습니다.

10. 병합이 끝나면 폴더를 압축해서 스킨 적용 보조도우미에 외부 스킨으로 추가하여 가장 하단에서 적용하면 됩니다.

11. 병합은 모드와 구조에 대한 높은 이해도를 요구합니다. 검토 없이 병합된 JSON을 사용하면 잘 작동하는 모드가 정상작동하지 않을 수 있습니다. 충분한 이해와 검토 후에 병합을 사용하셔야 합니다.
  * 아마 모더분들이 사용하시기 좋을겁니다.


기타
1. 원본 Data 폴더를 지정하면 원본 JSON의 내용을 기본 뼈대로 사용하게 됩니다. 그렇게 되면 모드의 JSON으로 인해 누락된 부분을 해결할 수 있고,
  * 모드 적용 후 신규 컨텐츠(예: 악마술사)가 정상적으로 동작하지 않은경우

2. 여러 모드로인해 덮어씌워지거나 누락이 생기는 부분을 찾고 해결 할 수 있습니다.
  * 예를들어서 모드를 적용하고 스킬을 사용했는데 이펙트가 보이지 않을경우
  * 다른 모드로 인해 원하는 이펙트가 나오지 않을경우

3. 동일한 파일(예: missiles.json)을 다수의 모드에서 수정하거나 변경할때 순서에 상관없이 1개 이상의 모드에서 적용을 해제하면 선택한 부분은 동일한 파일을 변경하는 모든 모드에서 적용하지 않게 됩니다.

4. 최대한 세부 요소까지 분석하도록 했지만 제대로 분석이 안되는 부분이 있을수도 있습니다.

5. VirusTotal 검사결과 바이러스 없습니다.
  * https://www.virustotal.com/gui/file/2400ef2cbef352a83253f7600b97a67af640540a3c2e8fa70ed5ab5a5a127592/detection
  * 12시간 정도 걸려서 Gemini로만 코드를 작성했고, 버전과 제작자 제외하고는 직접 수정한 부분이 하나도 없습니다

6. 아마 몇몇 특수한 케이스에서는 분석이 제대로 안되는(?) 경우가 존재할 수 있는점 고려해서 사용하시면 됩니다.

많은 분들이 JSON 때문에 골치거리였을텐데, 잘 활용하셔서 모드 제작 및 적용에 많은 도움이 되었으면 좋겠습니다.
버그 제보는 쪽지로 부탁 드립니다.