๋กœ์ง ๋ฆฌํŒฉํ† ๋ง (์ „ํˆฌ,๋ ˆ๋ฒจ์—… ๋กœ์ง)

์ž‘์„ฑ์ผ : 10/10/2025

๋ฆฌํŒฉํ† ๋ง ๋‚ด์šฉ

์š”์•ฝ

  • ์ „ํˆฌ ๋กœ์ง ๋ถ„๋ฆฌ : BattleField.tsx -> battle.ts
  • ๋ ˆ๋ฒจ์—… ๋กœ์ง ๋ถ„๋ฆฌ : useGameStore.ts -> battle.ts
  • storage ์ถ”์ƒํ™” ๊ณ„์ธต ์ถ”๊ฐ€ : storage.ts ํŒŒ์ผ ์ถ”๊ฐ€ (๋‹ค๋ฅธ ๊ธ€์—์„œ ๋‹ค๋ฃฌ๋‹ค)
  • encounter ์˜์กด์„ฑ ์ฃผ์ž… : encounter.ts (๋‹ค๋ฅธ ๊ธ€์—์„œ ๋‹ค๋ฃฌ๋‹ค)

์ „ํˆฌ ๋กœ์ง ๋ถ„๋ฆฌ

BattleField ์ปดํฌ๋„ŒํŠธ ์•ˆ์˜ ์ „ํˆฌ ๋กœ์ง์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ–ˆ๋‹ค. (UI๋ Œ๋”๋ง๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค๋กœ์ง์˜ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ)

๋ ˆ๋ฒจ์—… ๋กœ์ง ๋ถ„๋ฆฌ

useGameStore์˜ Store Action (์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜) ์•ˆ์— ๋”ฐ๋กœ ์ˆœ์ˆ˜ ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ๋กœ์ง์ด ์žˆ์—ˆ๋‹ค.

addExpToLeadPkmon: (exp) =>
  set((state) => {
    // ๋ ˆ๋ฒจ์—… ๋กœ์ง์ด action ์•ˆ์— ํฌํ•จ (30์ค„+)
    const newLevel = getLevelFromExp(newExp);
    if (newLevel > oldLevel) {
      const species = PKMON_SPECIES.find(...);
      const levelDiff = newLevel - oldLevel;
      // ๋ณต์žกํ•œ ์Šคํƒฏ ๊ณ„์‚ฐ...
    }
  })
  1. ํ˜„์žฌ ๊ฒฝํ—˜์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ƒˆ๋กœ์šด ๋ ˆ๋ฒจ์„ ๊ตฌํ•˜๊ณ 
  2. ๋ ˆ๋ฒจ์ด ์˜ฌ๋ž๋‹ค๋ฉด ๋Šฅ๋ ฅ์น˜๋ฅผ ๋”ํ•ด์ค€๋‹ค.
    ์ด ๊ธฐ๋Šฅ์„ ๊ทธ๋Œ€๋กœ battle.ts์— ์ž‘์„ฑํ•˜๊ณ  ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉ.