craftify.js / 아이템 합성함수 배포합니다.

안녕하세요. 예전에 육성 계산기 만들던 유저입니다.
개인 사정상 지금은 게임은 못하고 있지만, 이전에 만들었던 합성기능이 유용하다 생각해서 자바스크립트로 변환해봤습니다. 아직 캐릭터 계산기에 이 기능 만든 사람은 없죠..?
본래는 직접 서버 올려서 json api 형태로 배포하려 했지만 컴터도 안 쓰는 상황에 배포 경험도 부족하고 취미로 하는건데 이럴필요까지 있나 생각이 들더군요. 그래서 파일 뿌리기로 했습니다. 코드가 근본없으니 가져다 최적화해서 써 주시면 좋겠습니다.
원리
우선 같은 등급에서 재화를 계산합니다.
이후 총 11번의 합성 절차를 거친 후 값을 리턴합니다.

참고) 합성 전, 후의 배열은 5성에서 2성 순입니다.
아마 더 좋은 계산 방법이 있을 거라고 생각합니다. 혹시 아이디어 있다면 댓글로 남겨주세요.
사용법
npm 설치
npm install genshin-crafter
// 예제
const cft = require('genshin-crafter');
console.log(cft([0, 0, 1, 112], [6, 9, 0, 0]));
파일 직접 받아서 가져와도 되고, script 태그로 가져와 쓰셔도 됩니다.
<script src='https://genshin-craft.github.io/craftify_min.js'></script>
함수는 아래 하나만 쓰시면 됩니다.
배열은 5성에서 2성 순으로 만드시면 됩니다.
만일 아이템 등급이 총 3개라면 5성 부분에 0을 넣으시면 됩니다.
const result = craftify ( 보유중인 아이템 배열,
목표 아이템 배열 );
리턴값은 아래와 같이 나옵니다
count : [5성 업 횟수, 4성 업 횟수, 3성 업 횟수],
remain : 남은 보유 재화 배열 ,
required : 추가로 필요한 재화 배열
requiredTotal : 필요한 재화에서 남은 재화만큼 제외한 수치
예시
const result = craftify ([0, 0, 1, 112], [6, 9, 0, 0]);
console.log(result.count); // 1,12,36
console.log(result.remain); // 0,0,1,4
console.log(result.required); // 5,0,0,0
console.log(result.requiredTotal); // 128
const result = craftify ([6, 0, 11, 0], [6, 9, 9, 1]);
console.log(result.count); // 0,0,0
console.log(result.remain); // 0,0,2,0
console.log(result.required); // 0,9,0,1
console.log(result.requiredTotal); // 76
첫 댓글을 남겨 보세요.