fix: 캐릭터 레벨업시 공격력, 방어력 증가하지 않는 버그 수정

This commit is contained in:
aube.lee
2025-03-03 18:14:24 +09:00
parent f075e2b231
commit d18dc18387
3 changed files with 14 additions and 13 deletions

View File

@@ -14,11 +14,11 @@ namespace TON
public int fishAmount { get; private set; } public int fishAmount { get; private set; }
public UserItemData userItem { get; private set; } = new UserItemData(); public UserItemData userItem { get; private set; } = new UserItemData();
public int defensiveIntention { get; private set; } = 200; // 방어력 변수 (조정 가능) public float defensiveIntention { get; private set; } = 200f; // 방어력 변수 (조정 가능)
public int requireLevelUpExp; // 경험치 변수 (조정 가능) public int requireLevelUpExp; // 경험치 변수 (조정 가능)
[SerializeField] private int expVariable = 50; // 경험치 변수 (조정 가능) [SerializeField] private int expVariable = 50; // 경험치 변수 (조정 가능)
[SerializeField] private int attackGrowthFactor = 50; // 공격력 성장 변수 (조정 가능) [SerializeField] private float attackGrowthFactor = 50f; // 공격력 성장 변수 (조정 가능)
private BackendCashDataManager cashDataManager; private BackendCashDataManager cashDataManager;
private BackendItemDataManager itemDataManager; private BackendItemDataManager itemDataManager;
@@ -138,10 +138,10 @@ namespace TON
} }
// 공격력과 방어력 업데이트 // 공격력과 방어력 업데이트
private void UpdateStats(int currentLevel) private void UpdateStats(int level)
{ {
player.attackPower = player.attackPower * (1 + (currentLevel - 1) / attackGrowthFactor); player.attackPower = player.attackPower * (1 + level / attackGrowthFactor);
player.defensivePower = player.defensivePower * (1 + (currentLevel - 1) / defensiveIntention); player.defensivePower = player.defensivePower * (1 + level / defensiveIntention);
} }
// 현재 레벨에서 다음 레벨까지 필요한 경험치 계산 // 현재 레벨에서 다음 레벨까지 필요한 경험치 계산
@@ -161,10 +161,10 @@ namespace TON
{ {
// 레벨업 후 초과된 경험치를 반영하기 위해 다시 계산 // 레벨업 후 초과된 경험치를 반영하기 위해 다시 계산
player.experience -= requireLevelUpExp; player.experience -= requireLevelUpExp;
// 레벨업으로 인한 공격력/방어력 업데이트
UpdateStats(player.level);
// 레벨 증가 // 레벨 증가
player.level++; player.level++;
// 레벨업으로 인한 공격력/방어력 업데이트
UpdateStats(player.level);
return true; return true;
} }
return false; return false;
@@ -172,6 +172,7 @@ namespace TON
public void UpdatePlayerData() public void UpdatePlayerData()
{ {
Debug.Log($"player {player.level}: {player.attackPower}, {player.defensivePower}");
int index = playersData.FindIndex(x => x.id == player.id); int index = playersData.FindIndex(x => x.id == player.id);
if (index > -1) if (index > -1)
{ {

View File

@@ -22,9 +22,9 @@ namespace TON
// 캐릭터 마나(스킬 포인트) // 캐릭터 마나(스킬 포인트)
public int mp; public int mp;
// 기본 공격력 // 기본 공격력
public int attackPower; public float attackPower;
// 기본 방어력 // 기본 방어력
public int defensivePower; public float defensivePower;
// 캐릭터 크리티컬 수치 // 캐릭터 크리티컬 수치
public int critical; public int critical;
@@ -37,8 +37,8 @@ namespace TON
experience = 0; experience = 0;
hp = 100; hp = 100;
mp = 100; mp = 100;
attackPower = 50; attackPower = 50f;
defensivePower = 30; defensivePower = 30f;
critical = 30; critical = 30;
} }
} }

View File

@@ -77,8 +77,8 @@ namespace TON
characterHp.text = $"{player.hp}"; characterHp.text = $"{player.hp}";
characterMp.text = $"{player.mp}"; characterMp.text = $"{player.mp}";
characterLevel.text = $"Lv {player.level}"; characterLevel.text = $"Lv {player.level}";
characterAttck.text = $"{player.attackPower}"; characterAttck.text = $"{Mathf.RoundToInt(player.attackPower)}";
characterDefence.text = $"{player.defensivePower}"; characterDefence.text = $"{Mathf.RoundToInt(player.defensivePower)}";
characterCritical.text = $"{player.critical}"; characterCritical.text = $"{player.critical}";
characterExp.text = $"{player.experience}/{PlayerDataManager.Singleton.requireLevelUpExp}"; characterExp.text = $"{player.experience}/{PlayerDataManager.Singleton.requireLevelUpExp}";