Skip to content

develop LevelUpSystem

pianop edited this page Feb 9, 2023 · 17 revisions

주인공 레벨업 기능 관리

경험치 획득 -> 레벨업 발생시 시간 멈추고 스킬 선택화면 등장 -> 선택, 스킬 갱신 후 게임 재개

목차

Summary

  1. 레벨업
  • 경험치 획득 후 현재 maxExp 이상이면 현재 경험치를 초기화, maxExp에 dExp만큼 더해주기(선형 증가), 레벨업 함수 호출.
  1. 행운에 따른 선택지 개수 정하기
  • 기본 3개, luck에 따라 1개 추가 가능 (luck 수치 1당 1%, 100 이상이면 100%로 4개)
  1. 스킬/장신구를 뽑을 때 나뉘는 2가지 경우
  • 스킬/장신구 소지 수가 각각 6개로 모두 꽉 차있고 모두 마스터 한 경우 -> 스킬/장신구 대신 체력, 돈을 고르는 선택지 제공
  • 마스터한 장비들을 제외하고 뽑기
  1. 뽑힌 장비 목록을 LevelUpUI에 넘겨주어 그 중 하나를 선택할 수 있게 하기 (develop - LevelUpUI 에서 계속)

Stat

image
image
stat들을 하나하나 변수로 관리하기는 힘드므로 int 배열에 넣어서 관리, 그냥 사용할 경우 index번호랑 스탯을 연결짓기 어려우므로 열거형을 이용하여 string <-> int 형변환 하듯이 사용해주었습니다.

UpdateLuck

image
image

  • 소지 장비 수가 최대치에 도달했다면 뽑기 목록에 가지고 있는 장비 중 마스터 하지 않은 장비만 넣어줌
  • 최대치에 도달하지 않았다면 마스터한 장비를 제외한 모든 장비들을 넣어줌

LevelUp

image

  1. character의 level을 1 더해줌
  2. RandomPickUp()함수를 통해 현재 뽑힌 장비 목록을 받아옴
    • pickUps는 List<Tuple<int, int, int>>로 Tuple 내의 각 int들의 의미는 < 0: 무기/ 1: 악세, 무기/ 악세의 index 번호, 0: new/ 1:old >를 의미함
  3. ...LoadLevelUpUI() 함수에 뽑힌 목록들과 현재 스탯, 보유 무기/ 악세를 넘겨주어 레벨업 UI를 표시

RandomPickUp

image

  1. getPossibleChoice
    image

image
1.
image

4

reference

UI창을 제일 위로
2차원 배열을 inspector창에서

Clone this wiki locally