discordJS
Update
지난 수요일 인 게임 내에서 업데이트가 있었다. 새 컨텐츠가 나오며 기존 예상 보상 명령어를 수정해야 했다. 기존의 1단계만을 위한 함수에서 2단계도 추가했다.
const tickets = [ticketFirst, ticketSecond]; // 4 tier Cube
const reward = [0, 0, 0, 0, 0, 0]; //gem, itm, card exp, itm, itm, money
const gems = [0, 0, 0, 0, 0, 0, 0, 0, 0]; // lv 1~10 gem
const cubeRewards = [
[9, 14, 14000, 4, 4, 140100],
[18, 25, 14500, 5, 5, 146800]
];
// expect
for(const ticket in tickets)
for(let t = 0; t < tickets[ticket]; t++)
for(const sum in reward)
reward[sum] += cubeRewards[ticket][sum];
gems[0] = reward[0];
// gem lv
for(const gem in gems){
if(parseInt(gems[gem]/3)!= 0){
gems[(gem*1)+1] = parseInt((gems[gem])/3);
gems[gem] -= gems(gem*1)+3;
}
}
첫 for
문을 거칠 때 tickets의 배열의 길이만큼 반복하며, 입장권의 개수를 파악하며 예상 보상을 현재값에 더해줍니다. 그러나 cubeRewards 배열에 보석 값은 단순 1레벨 보석의 상자의 개수로 입력해두어 시스템 상 동일 레벨의 보석 3개로 상위 레벨의 보석으로 업그레이드가 가능한 점을 이용해 변환 과정이 필요했다.
gems 배열은 1레벨부터 10레벨의 보석이 있는 시스템을 반영하여 3으로 나누어 몫이 0이 아닌 경우에 작동하여 상위 보석으로 변환한 만큼 하위 보석의 개수들을 빼는 방식으로 제작했다.