๋ฒํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด
Name์ด๋ Duration, Stack๋ฑ๋ฑ ๊ธฐ๋ณธ ์ ๋ณด๊ฐ ๋ด๊ธด Buffํด๋์ค๋ฅผ ๋ง๋ค๊ณ ,
ํ์๋ก ์์๋ฐ๋ Atk_Buff๋ Def_Buff์์ base๋ฅผ ํตํด Buff๋ฅผ ์ด๊ธฐํ ํ์์ผ๋ฉฐ, ์ผ๋ง๋ ์ฆ๊ฐ์์ผ์ฃผ๋์ง๋ ์์ฑ์๋ฅผ ํตํด ์ด๊ธฐํํ๊ฒ ํ์์ต๋๋ค.
์ด์ ๋ชจ๋ ๋ฒํ๋ฅผ ๊ด๋ฆฌํด, ์ด๋ค ์คํฌ ํน์ ์์ดํ
์ ์ฌ์ฉํ์ ๋, ์๋ง์ ๋ฒํ๋ฅผ ์ฐพ์์ฃผ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค ์๊ฐ์ผ๋ก staticํด๋์ค BuffRegistry๋ฅผ ๋ง๋ค์ด ์ฃผ์๋๋ฐ์,
Id์ ๋ฒํ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ๋์
๋๋ฆฌ์ ๋๋ฆฌ์๋ก DIctionary<int, Func<float, Buff>๋ก Dictionary[1] = value => new Atk_Buff(value);๋ฅผ ๊ตฌํํ๊ณ ์ ํ์์ต๋๋ค.
ํ์ง๋ง ๊ตฌํ ๊ณผ์ ์์ ๋งค๊ฐ๋ณ์๊ฐ ์๊ฑฐ๋, ํน์ ๋งค๊ฐ๋ณ์๊ฐ 2๊ฐ์ธ ๋ฒํ๊ฐ ๋์ค๊ฒ ๋์๋๋ฐ, ์ด๋ฅผ ํด๊ฒฐ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น์?
์ด๋ฏธ ๊ตฌ์กฐ๊ฐ ํ๊ฐ์ ํ๋ผ๋ฏธํฐ์ ํฝ์ค๋์ด ์๋๋ฐ, ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ํ๋ผ๋ฏธํฐ 2๊ฐ์ง๋ฆฌ ๋์ ๋๋ฆฌ ๋ง๋๋๊ฑฐ ๋ง๊ณค ๋ต ์์ ๋ฏ.
ํค-id์ func-๊ฐ์ ๋์ ๋๋ฆฌ๋ก ์ง์ buff๋ฅผ ์คํฌ ํ๋ํ๋์ ๋ฃ์ด์ฃผ๊ธฐ ๋ณด๋จ, id๊ฐ์ผ๋ก ์ ๊ทผํด new buff๋ฅผ ์์ฑํด์ฃผ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฐํ๊ณ ์ถ์๋ ๊ฒ์ธ๋ฐ.. ๊ทธ๋ ๋ค๋ฉด objectํ์ผ๋ก ๋งค๊ฐ์ธ์๋ฅผ ๋ฐ์ ๋งค๊ฐ ์ธ์๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์ฒ๋ฆฌํ ์ ์์ ๊ฒ ๊ฐ์๋ฐ, ์ธ์๊ฐ 2๊ฐ์ธ ๊ฒฝ์ฐ๋ ์์ ๋ต์ด ์๋ ๊ฒ์ด๊ฒ ์ฃ ? ๊ฐ๋ฐ ๋ฐฉํฅ์ ์๋ชป ์ก๊ณ ๋์๊ฐ๋ค๋ณด๋ ์ฝ๋๊น ๊ผฌ์ด๋ ์ํฉ์ด ๋์ค๋ ๊ฒ ๊ฐ๋ค์
๋์ ๋๋ฆฌ๊ฐ ์ธ์ด์ ๊ฐ์์ด์ new ๋ก ๋ฐ๋ก ์์ฑํ์๋ฉด๋ฉ๋๋ค
id๋ณ ๋ฒํ/๋๋ฒํ/๊ธฐํ ๊ด๋ฆฌํ๊ธฐ ์ํด์ id์ ๋ฒํ๋ฅผ 1:1 ๋งค์นญ์ํค๊ณ ์ถ์์ต๋๋ค..
๋์ ๋๋ฆฌ๋ ๋ฐฐ์ด์ ์์ฑ์ ๋ณ์๋ก ๋ฐ๊ฒํ๋ฉด ๋ ๋ฏ ๊ธฐ์กด ๊ตฌํ๊ณผ์ ํธํ์ฑ์ ์ํ๋ฉด ์๋์ฒ๋ผ object๋ก ๋ฐ๊ณ
์ ์์ buff์์ฑ์ ์์ ์ด๋ค ๋์ ๋๋ฆฌ์ธ์ง ์ฐธ์กฐ์ํค๋ผ๋ ๋ง์์ด์ ๊ฐ์?
์๋จ ์์ dictํค๊ฐ์ธ ํจ์๊ฐ float[]์ ๋ฐ๊ฑฐ๋ dictionary string to float์ ๋ฐ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค๋ ๊ฑฐ์์ด์. ์ฆ ํจ๊ตฌ ํ์ ์ด Func<array of float, buff> ๊ฑฐ๋ Func< dictionary, buff> ์ด๋ฐ์์ ๋์ ๋๋ฆฌ๋ฅผ ์ธ์๋ก ๋๊ธด๋ค๋ฉด { power: 10.0 } ๋ญ ์ด๋ฐ์์ผ๋ก.
์์ ๊ทธ๊ฒ๋ ๋ฐฉ๋ฒ์ด๊ฒ ๋ค์ ๊ฐ์ฌํฉ๋๋ค