스몬봇 업그레이드 - 카드 정보 입력(http://smbot.realman.pe.kr)

in mini.topia2 months ago

안녕하세요 @realmankwon입니다.

스몬봇 업그레이드를 위해서 카드 데이터를 입력 중입니다.
스몬팀에서 제공하고 있는 api 에서 카드 정보를 가지고 올 수 있지만 너무나 불편하기 때문입니다.
이것을 보면 스몬팀도 얼마나 급하게 닥치는 대로 만들었는지 알 수가 있습니다.

어쩌면 언테임드 카드와 같이 새로운 카드를 만들어 낼 계획이 없었던 것은 아닐까라는 생각이 들 정도였습니다.
카드의 정보를 보면 다음과 같습니다.

  { id: 99,
    name: 'Skeletal Warrior',
    color: 'Black',
    type: 'Monster',
    sub_type: null,
    rarity: 2,
    drop_rate: 0,
    stats: 
     { mana: [Array],
       attack: [Array],
       ranged: [Array],
       magic: [Array],
       armor: [Array],
       health: [Array],
       speed: [Array],
       abilities: [Array] },
    is_starter: false,
    editions: '3',
    created_block_num: 29484401,
    last_update_tx: '52e0702a184a0242dca0643654a5d7ae3d6a3b25',
    total_printed: 100000,
    is_promo: false,
    tier: null,
    distribution: [ [Object], [Object] ] },

저기서 알파, 베타, 언테임드 카드를 구분하는 것은 editions 입니다.
그런데 실제로는 저것으로 완전히 구분이 되지 않습니다.
바로 프로모, 리워드 카드 때문입니다.

  • 0 : 알파
  • 1 : 베타
  • 4 : 언테임드

이렇게까지는 명확한데 프로모, 리워드 카드는 editions 2, 3에 베타와 언테이드 카드가 섞여 있습니다.
물론 사용자들에게는 중요하지 않습니다.
하지만 개발자들에게는 무진장 헷갈릴 것 같은 느낌입니다.
코드를 보고 한눈에 어떤 카드인지 알 수 있으면 좋은데 그렇지 않다보니 직관적으로 판단이 안 될 것 같습니다.
저 또한 봇을 만들때 너무나 피곤한 작업이어서 아직까지 이걸 하지는 않고 있었습니다.

스몬카드는 카드 종류에 따라서 레벨의 카드수가 달라집니다.
카드수 뿐만 아니라 xp 또한 다릅니다.
그렇다면 알파, 베타, 언테임드가 바로 구분이 되고 이걸로 쉽게 구분을 할 수 있으면 될텐데 카드 정보를 다 외우고 있지 않는 이상 카드 구분을 못하는 것입니다.
그리고 해당 카드의 개수를 그냥 기본으로 가지고 있으면 될텐데 그 또한 제공을 하지 않으니 카드 종류를 알아내고 각 카드의 xp 에서 해당 카드 한장의 xp를 나누어서 계산을 하는 번거로움이 존재합니다.
그래서 카드 정보를 표시하는 것이 참 힘이 듭니다.

또한 이 카드가 스타터팩 종류인지를 알려주는 is_starter 라는 변수는 베타에서는 명확히 구분이 되는데 언테임드에서는 무조건 false라서 이것도 이해가 되지 않는 부분입니다.
변수를 만들어 놨으면 정보를 잘 정리해서 넣기만 하면 되는데 그걸 입력하지 않았다는 것이 의아합니다.

이 정도 게임을 만들 정도면 이런 설계 및 데이터 관리는 충분히 가능할텐데 왜 이렇게 했는지...
바빠서 대충 만든 것이 아닌가 생각이 되네요.
암튼 이걸 한눈에 보기 쉽게 코드 정리를 별도로 한 후에 덱 선택시에 지금보다는 더 효율적으로 할 수 있도록 업그레이드 해야겠습니다.

Sort:  

돈 긁어 모으려고 급하게 슉슉슉 찍어낸것 같습니다
그덕에 람보형이나 kr형님들 돈을 잘 빼먹었죠..