๊ฐ์ด๋ณด๋ผ ์ฌ๊ธฐ์ ๊ธฐ์ ์ ํฝ, ๊ฐ์ ๋ฃ๊ณ
๋ด ๊ฒ์์์ ํ์ํ ๊ตฌ์กฐ๋ก ์คํฏ์ด๋ ์์ดํ ์ ์ผ๋จ ๊ตฌํ์ ํด๋จ๋๋ฐ
์ด๋ ๊ฒ ํด๋ ๋๋๊ฑด๊ฐ ํ์ ์ด ์์์
ํน์ ์ด๋ ๊ฒํ๋ฉด ๋ฆฌ์์ค๋ฅผ ๋๋ฌด ์ก์๋จน๋๋ค๋๊ฐ
๋์ค์ ํจ๊ณผ๊ฐ ๋ณต์กํ ์์ดํ ๋ฃ์ผ๋ฉด ๋ฒ๊ทธ๊ฐ ๋ง์์ง๊ฒ๊ฐ๋ค๋๊ฐ
์กฐ์ธ์ข ์ฃผ๋ฉด ์ข๊ฒ ์ ใ
์ฐ์ ์คํฏ์ ํฌ๊ฒ Health, Mana, Movement, Weapon๊ด๋ จ ์ผ๋ก ์๊ณ
๊ฐ๊ฐ์ ๋ฅ๋ ฅ์น๋ค์ Stat Class๋ฅผ ์์๋ฐ๊ฒ ํด๋จ๋๋ฐ
Stat Class๋ baseValue, finalValue ๊ฐ ์๊ณ
List๋ก ๋ Modifier๋ค์ ํตํด์ finalValue๋ฅผ ๋ง๋ค๊ณ
GetValue()๋ฅผ ํตํด ์ต์ข ๊ฐ๋ค์ ์ ์กํ๊ณ ์์.
์๋ฅผ ๋ค๋ฉด ๊ฒ์ด ์์๋๋ฉด
currentHealth = Health.GetValue().
Stat ํด๋์ค ๋ด์์๋
finalValue = baseValue
- foreach modifier in modifiers
- finalValue += modifier
return fanalValue
์๋ก ์.
์์ดํ ์ ์ฅ์ฐฉํ๊ฑฐ๋ ํ์ฐฉํ๋ฉด
Equipment์์ Health Stat๋กย ์ ๊ทผ,
Health.Addmodifier(20)ย ๋ฅผ ํตํดย modifier๋ฅผ ๋ํด์ฃผ๊ฑฐ๋ ๋นผ์ฃผ๊ณ ์์
์ด๋๋ง๋ค
Stat Class์์ Value๋ฅผ ์กฐ์ ํด์ฃผ๋ ํจ์๋ฅผ ์คํ์์ผ์ ๋ค์ ๊ณ์ฐํด์ฃผ๊ณ ์๊ณ ..
๋ด ๊ฒ์์์ Weapon์ ์ธ๊ฐ๋ ์ฐฉ์ฉํ๊ณ ,
๋ก๊ทธ๋ผ์ดํฌ ์์๋ก ๊ณ์ ๋ฅ๋ ฅ์ด ์ ๊ธ๋๊ฑฐ๋ ๋ค๋ฅธ ์์ดํ ์ ์ป๊ฑฐ๋ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์
์ด๋ฐ์์ผ๋ก ๋ณ์๋ค์ ์์ฃผ ์ฃผ๊ณ ๋ฐ์๋ ๋๋์ง?
๋ ๋์ค์ ๋ง ๊ผฌ์ฌ์ ๋ฒ๊ทธ๊ฐ ๋ง์์ง๋ ๊ฑด ์๋์ง ๊ฑฑ์ ๋จ
์คํฏ์ ์์ ๋์ ๋๋ฆฌ๋ก ์ง์ ๋ญ ๋ ํจ์จ์ ์ผ๋ก ํ๋ ๋ฐฉ๋ฒ๋ ์๋๊ฑฐ๊ฐ์๋ฐ ์ดํด๊ฐ ์๋์
์ผ๋จ์ ์ด ๊ตฌ์กฐ๋ก ๋ง๋ค์ด๋จ์..
๊ธด ๊ธ ์ฝ์ด์ค์ ๊ณ ๋ง๊ณ
๋ ๋จ๋จํ ์์คํ ์ด ๋ง๊ฒ ์ง๋ง
์ผ๋จ ๊ฐ์ด๋ณด๊ธฐ๋๋ฌธ์ ๊ฐ๋น๊ฐ๋ฅํ ์ ๋๋ก๋ง ๊ตฌ์กฐ ์ง๊ณ ๋ฐ๋ก ๋ค์ ์คํ ๋์ด๊ฐ๊ณ ์ถ์ด์..
์กฐ์ธ์ข ์ฃผ๋ฉด ์ข๊ฒ ์ ใ
์ ์๋๋งํ๋ฉด ๊ฑ ํด๋ผ
์ ์์ง๋ ๋ชปํ๋ฉด์ ๋ด๊ฐ ๋ง ๋ฐ๊พธ๋ค๋ณด๋ ์ด๋ฐ์์ผ๋ก ์ง๋ ๋๋ ์ถ์ด์ ๋ฌผ์ด๋ดค์ด ๋กํ!
์ ๋ํฐ ์ํ ํ๋ก์ ํธ์ธ BossRoom์ด๋ผ๋ ํ๋ก์ ํธ๋ฅผ ๋ณด๋ฉด ์ ์ค๋ช ๋์ด์์ ์ ๋ํฐ์์ ๊ถ์ฅํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ค์ด ๋ค์ด๊ฐ ์์ ์ ๋ณด๊ณ ๋ฐ๋ผํด๋ณด์
๋ง๋ง ๋ค์ด๋ณด๋ฉด ์ธ๋ฆฌ์ผ GAS์์ ์ฐ๋ ๋ฐฉ๋ฒ์ด๋ ๋น์ทํด
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ ๋ ๊ฒ ์๊ธด ์คํฏ ํด๋์ค์๋ ๋ํฐ ํ๋๊ทธ๋ฅผ ์ด๋ค ์์ผ๋ก ํด๋๋๊ฒ ์ข๋์??
์ํ bool isDirty ํ๋ ๋ง๋ค์ด๋๊ณ modifier ๋ณ๊ฒฝ์ด ์์ ๋ true, ๋ง์ฝ true๋ผ๋ฉด GetValue ํธ์ถ ์ finalValue ๋ค์ ๊ณ์ฐํด์ ๋ฆฌํด false๋ผ๋ฉด ๊ทธ๋ฅ ์ง๊ธ finalValue ๋ฆฌํด ์ด๋ฐ์ ๋ง์๊น์?
์ค ๊ฐ์ฌํฉ๋๋ค! ์ด๋ณด๋ผ ์ ์ดํด๋ ์๊ฐ์ ๊ทธ๋ฌ๋๋ฐ ์ด ํ๋๊ทธ ์ฌ์ด์ ํด๋๋ ์ด์ ๊ฐ ๋ญ๊น์??
์ค ํ์ํด์ ธ์ ์ฝ๊ธฐ์ ๊น์ง ๊ฐ๋ณ๊ฒฝ๋ง ํ๊ณ ์ข ๋๋๊ฑฐ๊ตฐ์ ๊ฐ์ฌํฉ๋๋ค!!
ํน์ ํ๊ฐ์ง๋ง ๋ ์ง๋ฌธ๋๋ ค๋ ๋ ๊น์ ใ ์ง๊ธ ์์ดํ ์ด AddModifier ํ๊ฒ ๋๋ฉด value ์ธ์๋ object _source ์๋ ๊ฒ ์์ค๋ฅผ ๊ฐ์ผ๋ก ๋ฐ๊ณ , ๊ทธ๋ฅ 'this' ๋ฃ์ด์ ํ์ํด๋จ๋ค๊ฐ RemoveModifier ํ ๋๋ this๋ก ์ ๊ฑฐํ๊ณ ์๋๋ฐ ์ด๋ ๊ฒ ์๋ณํด์ ์์ดํ ์ฅ์ฐฉ/ํ์ฐฉ ์ modifier ๊ด๋ฆฌํด๋ ์๊ด์์๊น์?