์์นจํ ๋ง๋ฒ ๋ฐ๋ ํ๋ฅ ์ ๋ํด ์ํค์ ์ฐ์ฌ์ ธ ์๋ ๊ฒ ๋ค ๋ง์ด ๋ฌ๋ผ์, ๊ทธ๋ฅ ์ฝ๋๋ฅผ ์ง์ ๋ดค๋ค.
์์นจํ ๋ฌด๊ธฐ์ ํ๋ฅ ์ ์ด๋ ๊ฒ ์๊ฒจ๋จน์๋ค.
Java์ ๋ํด 1๋ ๋ชจ๋ฅด๋ ๋๋ก์๋ ์ดํดํ๋๋ฐ ๊ฐ๊ณ ์์ ํ์ง๋ง ์ด๋ป๊ฒ๋ ์ฐพ์๋ณด๊ณ ์ดํดํ๋ค.
ํ๋ฆด ์๋ ์์ผ๋ ํ๋ ธ์ ๊ฒฝ์ฐ ์๋ฐ ์์, ๋
น์์์ ์์์ ๋ฑํํ ๊ฒ.
์ฝ๋ maxChance = 0.5f + .05*level
ํด์ maxChance = 0.5 + (0.05 ร ๊ฐํ์์น)
์ฝ๋ chanceMulti = (float)Math.pow( ((defender.HT - enemyHealth) / (float)defender.HT) , 2)
ํด์ chanceMulti = ((์ ์ต๋ ์ฒด๋ ฅ - ๋ฐ๋ฏธ์ง ์ ์ฉ ํ ์ ์ฒด๋ ฅ)/(์ ์ต๋ ์ฒด๋ ฅ))ยฒ
์ฝ๋ chance = maxChance * chanceMulti
ํด์ chance = maxChance ร chanceMulti
์ฝ๋ if (Random.float() < chance) {(์์นจํ ๋ง๋ฒ ์ดํํธ ๋ฐ์)}
ํด์ 0~1์ ๋๋คํ ์์ ๊ฐ N์ด chance๋ณด๋ค ๋ฎ์ ๊ฒฝ์ฐ ์์นจํ ๋ง๋ฒ ํจ๊ณผ ๋ฐ์, ์ฆ chanceร100%์ ํ๋ฅ ๋ก ์์นจํ ๋ง๋ฒ ๋ฐ๋
๋์ถฉ ์ด๋ฐ ๋๋์ด๋ค.
๋น์ฐํ ๋ญ ๊ฐ์๋ฆฌ์ธ๊ฐ ์ถ๊ฒ ์ง๋ง, ์ ๋ฆฌํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
chance =ย ย ย ย maxChanceย ย ย ย ย ย ย ย รย ย ย ย ย ย ย ย ย ย ย chanceMulti
ํ๋ฅ = (0.5 + 0.05 ร ๊ฐํ์์น) ร ((์ ์ต๋ ์ฒด๋ ฅ - ๋ฐ๋ฏธ์ง ์ ์ฉ ํ ์ ์ฒด๋ ฅ)/(์ ์ต๋ ์ฒด๋ ฅ))ยฒ
ํ๋ฅ ์ ร100%๋ฅผ ํ๋ฉด ํผ์ผํธ๋ก ํ๊ธฐ๊ฐ ๋๋๊ฑฐ๊ณ .
์ฌ๊ธฐ์ HT๊ฐ ์ต๋ ์ฒด๋ ฅ์ ์๋ฏธํ๋์ง๋ ๋ค์์์ ์ ์ ์๋ค.
์์
์ ์ต๋ ์ฒด๋ ฅ์ (20 + 5 ร (๋ ๋ฒจ - 1) + (์ต๋ ์ฒด๋ ฅ ์ฆ๊ฐ๋))์ด๊ธฐ ๋๋ฌธ.
์๋ฅผ ๋ค์ด, +3๊ฐ ์์นจํ ๋ฌด๊ธฐ๋ก ์ต๋ ์ฒด๋ ฅ์ด 60์ธ ์ ์ ๊ณต๊ฒฉํ์ฌ 20ํผํด๋ฅผ ์ฃผ์์ ๋ ์์นจํ ๋ง๋ฒ์ด ๋ฐ๋ํ ํ๋ฅ ์
(0.5 + 0.05 ร 3) ร ((60 - 40) / 60)ยฒ
=0.07(์ดํ ๋ฐ์ฌ๋ฆผ)
์ฆ, ์ด ๊ฒฝ์ฐ ์ฝ 7%ํ๋ฅ ๋ก ์์นจํ ๋ง๋ฒ์ด ๋ฐ๋ํ๋ค๋ ๊ฒ์ด๋ค.
๋ค๋ฅธ ์๋ก, +9 ์์นจํ ๋ฌด๊ธฐ๋ก ์ต๋ ์ฒด๋ ฅ์ด 100์ธ ์ ์๊ฒ 50ํผํด๋ฅผ ์ฃผ์์ ๋ ์์นจํ ๋ง๋ฒ์ด ๋ฐ๋ํ ํ๋ฅ ์
(0.5 + 0.05 ร 9) ร ((100-50) / 100)ยฒ
= 0.24(์ดํ ๋ฐ์ฌ๋ฆผ)
์ฆ, ์ด ๊ฒฝ์ฐ ์ฝ 24% ํ๋ฅ ๋ก ์์นจํ ๋ง๋ฒ์ด ๋ฐ๋ํ๋ค๋ ๊ฒ์ด๋ค.
๊ฐ์ ์กฐ๊ฑด์์ ๋ ์ ์ ํผํด๋ฅผ ์
ํ์ ๋๋ฅผ ์์๋ณด์.
๋๋ฒ์งธ ์์์ 50ํผํด ๋์ 30ํผํด๋ฅผ ์
ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด
์ฝ 9%ํ๋ฅ ๋ก ์์นจํ ๋ง๋ฒ์ด ๋ฐ๋ํ๋ค.
์ฐธ๊ณ ๋ก ๊ฐ์ ๊ฒฝ์ฐ์์ ๊ฐํ ์์น๋ง 5๊ฐ์ผ ๊ฒฝ์ฐ
ํ๋ฅ ์ด ์ฝ 7%๋ก ๋ด๋ ค๊ฐ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ๊ฐํ ์์น๊ฐ ๋๊ณ ๊ณต๊ฒฉ ์ ์
ํ๋ ํผํด๊ฐ ๋ง๊ณ ๋์์ ํ์ฌ ์ฒด๋ ฅ์ด ์ ์์๋ก ์์นจํ ๋ง๋ฒ์ ๋ฐ๋ ํ๋ฅ ์ด ์ฌ๋ผ๊ฐ๋ค.
๋ฐ๋ฏธ์ง ์ ์ฉํ ์ ์ฒด๋ ฅ์ผ๋ก ๋ฐ๊พธ๋ ๋๋๊ตฌ๋
๊ฐ์ถ