포커 게임 + 전략적 팀 전투?

포커 게임 업그레이드

이번에 심화 과정 과제로 저번에 완성한 포커 게임을 업그레이드하는 과제가 나왔다.

다들 배팅 시스템을 만들거나 승패 시스템들의 괜찮은 시스템을 만들고 있더군요...

제 전체 요리로 말이죠...! 갸하하

내가 만들 어마 무시한 시스템은 죽어가던 전략적 팀 전투를 한번에 살려낸 괴물 같은 '그 시스템' 증강체 시스템이다.

증강체 시스템

증강체 시스템은 세 가지 특성 중에 플레이어가 원하는 특성을 얻는 시스템이다. 유닛 한 개 추가, 아이템 획득 같은 쉬운 특성부터 유닛을 대기석에 전부 사놓으면 경험치 획득, 세 턴 동안 아무 행동도 못하지만 대량의 골드 획득이 같은 재밌는 특성을 가질 수 있다. 이런 증강체 시스템이 있으면 포커에도 전략 요소가 생길 것이다.

증강체 시스템

증강체 구조체

증강체 구조체를 만들어서 생성자로 증강체 데이터를 담았다. 지금 생각해 보니 리스트를 만들어서 그곳에 데이터를 담았으면 augment를 여러 번 쓸 필요는 없었을 것 같다. 너무 데이터가 많아지면 바꿔야 할듯하다. 솔직히 데이터 만드는 게 제일 재미있다. 전략적 팀 전투를 하면서 다들 한 번쯤 증강체 직접 만들어보고 싶었던 적이 있었을 것이다. 인정?

증강체 선택 시점

증강체를 포커 게임 시작 시 고르게 했더니 그냥 아무거나 집고 운을 믿는 게임이 되어버렸다;;

증강체의 전략성을 살려야 한다.

증강체가 전략성을 가지는 시점은 덱이 어느 정도 갖추어진 중반이다. 포커게임의 증강체도 마찬가지로 중반에 등장해야 한다고 생각했다. 그래서 카드를 세 장 받은 시점에 증강체를 선택하도록 했다.

증강체 선택 창

이제 증강체를 선택할 수 있는 창을 만들 것이다.

증강체 선택 창의 기능은

  • [jd

    증강체들이 다 같은 등급이어야 함

    증강체들이 다 같은 등급이어야 함

  • [jd

    증강체는 세 개중 하나를 선택하기

    증강체는 세 개중 하나를 선택하기

  • [jd

    한번 떴던 증강체는 다시 뜨지 않게 만들기

    한번 떴던 증강체는 다시 뜨지 않게 만들기

  • [jd

    증강체 선택 입력받아서 증강체 정보 추출하기

    증강체 선택 입력받아서 증강체 정보 추출하기

  • [jd

    선택한 증강체는 리턴해주기

    선택한 증강체는 리턴해주기

    등이 있다.

    말은 이리 쉽게 했지만

    여기서 고생 많이 했다. 확실히 처음부터 구상한 기능을 구현하는 건 무척 어려운 일인 것 같다;;

    아래는 코드 전문이다.

    이제 증강체를 선택하면 Cards.cs에 증강체 정보를 넘긴다. 마지막으로 증강체가 실제로 적용되는 부분만 만들면 될 것 같다.