[ 2024.09.19 TIL ] futsal-manager

박지영·2024년 9월 19일
0

Today I Learned

목록 보기
46/84

⚽ futsal-manager

🎨 추가 기획

📌 게임 매치 로직

팀 컬러

  • 선수의 스타일에 따라 팀 컬러를 정하고 팀 컬러 간의 상성에 따라 선수의 능력치에 보너스를 주는 방식

  • 선수의 스타일

    • highpressing / gegenpressing - 전방압박 (역습에 약함)
    • poacher / counter attack - 역습 (롱볼에 약함)
    • targetMan / kick & rush, long-ball (전방압박에 약함)
  • 라인업에 있는 3명의 선수 중 같은 스타일을 가지고 있는 선수가 최소 2명 이상 존재했을 때
    해당 스타일을 팀 컬러로 설정

  • 팀 컬러가 없을 시 상대팀이 팀 컬러가 있다면 상대는 상성에 관계없이 무조건 능력치 보너스를 얻는다

메인 매치

  • 각 팀 별로 선수들의 스탯별 합을 구하고 스탯별 합으로 총합을 구한다.

  • 매치에는 페이즈가 존재하며 페이즈는 총 10번 진행된다.

  • 페이즈마다 선수들의 스탯이 감소하며 선수들의 스태미너 스탯의 합에 따라 감소량이 변한다.

  • 경기장의 중앙을 0으로 두고 이는 공의 위치이다. 양수는 상대방 골대쪽으로 가까워지는 것이고 음수는 내 팀의 방향으로 가까워지는 방식이다.

  • 각 팀의 스탯 총합에 따라 공의 이동거리가 변동되며 -80 or 80을 넘어서면 슛 찬스를 얻고
    각 팀 선수의 정확도, 힘에 따라 골 확률을 정하고 골이되던 안되던 공의 중앙으로 다시 돌아온다.

  • 모든 페이즈가 종료된 후 득점이 높은 쪽이 승리하며 득점이 같을 경우 승부차기로 넘어간다.

승부차기

  • 공격과 방어를 번갈아가며 시행하고 각각 최소 5번씩 시행하고 이후는 앞서는 쪽이 승리한다.

  • 공격은 정확도, 힘을 반영한다.

  • 방어는 수비력을 반영한다.

📌 강화 로직

  • 강화에는 등급이 존재하며 등급은 노말 - 매직 - 레어 - 유니크 - 에픽 - 레전더리가 있다.

  • 다음 단계로 넘어갈 때마다 확률이 변동되며 확률은 기본 확률 + 소모한 선수 카드의 등급 및 가치에 따라 추가로 확률이 상승한다.

  • 강화에는 기본 소모 캐시 500, 재료로 들어가는 선수 카드는 최대 5장까지이다.

  • 레어 단계부터는 단계가 하락할 수 있는 확률이 존재하며 그냥 실패 90% 하락할 확률 10%이다.

  • 에픽에서 레전더리 등급을 도전하는 경우에 한해서 실패시 강화를 시도하는 카드가 삭제될 확률이 1% 존재한다.

🛠 구현한 기능

팀 편성(라인업 편성)

  • 오류로 인해 라인업이 3명 초과하면 레코드가 3개가 될 때까지 삭제

  • 기존 라인업이 존재하면 정보 업데이트, 없을 경우(최초 1회) 생성

보유 선수 목록 조회

  • 계정 일치 여부를 검증하고 보유한 선수의 선수id와 등급 조회

선수 판매

  • 라인업에 존재하는 선수는 판매 불가능

  • 로스터에서 선수 삭제 및 캐쉬 변동 내역 트랜잭션

📌 게임 매치메이킹

  • 내 팀의 라인업 편성 확인

  • 매칭 범위 내의 상대 조회 후 라인업 편성 여부 확인

  • 각 팀의 스탯별 합산 및 스타일을 구한다.

  • 팀 컬러 상성에 따라 스탯 보너스

  • 메인 매치 로직

  • 경기 결과 등록

  • 추가로 보완해야할 점

    • 중복 코드 모듈화

    • 등급에 따른 스탯 보너스 구현

    • 공 이동 로직 다듬기

profile
신입 개발자

0개의 댓글