ํ์์๋ ์์ดํ ๋ง๋ค ๋ ๋ถ๋ชจํด๋์ค์ธ ItemBase๋ฅผ ๋ง๋ค๊ณ , Use()ํจ์๋ฅผ ๊ฐ์ ์ ์ํ๋ ์์ผ๋ก ๋ง๋ค์์ต๋๋ค.
์ง๊ธ์ ๊ณต๋ถ์ผ์์ ์์ดํ ์ ์์ ๋ฐ์ดํฐ๋ก ๋ง๋๋๊ฑธ ํด๋ณด๊ณ ์๋๋ฐ, Use()ํจ์๋ฅผ ๋ง๋๋ ๋ถ๋ถ์ด ๊ณจ์น์ ๋๋ค.
ํ์ฌ๋ ์๋์ ๊ฐ์ด ๋ง๋ค์๋๋ฐ, ์คํฏ์ ๋ฐ๊พธ๊ฑฐ๋(hp๋ ์คํฏ์ ํฌํจ์์ผฐ์ต๋๋ค), ์ํ์ด์์ ํ๋ณตํ๊ฑฐ๋ ํ๋ ๋ถ๋ถ์ enumํ์ ์ผ๋ก ๋ถ๋ฅํ๊ณ ,
Use()ํจ์์์ enumํ์ ์ ๋ฐ๋ผ ์ค์ฌ์ฉ ํด์ฃผ๊ณ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ ๊ฒ๋๋ฉด ์๋ก์ด ํ์ ์ ์์ดํ ์ ๋ง๋ค๋๋ง๋ค ํด๋์ค๋ฅผ ์์ ํด์ผ ํ๋, ์ด๋ณด์ธ ์ ๊ฐ ๋ด๋ ๊น์ผํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์์ ๋ก ์์ดํ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ์ ๋ Use()ํจ์๋ ์ด๋ป๊ฒ ๋ง๋๋๊ฒ ๋ณดํต์ธ๊ฐ์? ์ ๋ฐฐ๋๋ค์ ๊ฐ๋ฅด์นจ ๋ถํํฉ๋๋ค.
public class Item
{
ย ย public enum ItemType
ย ย {
ย ย ย ย changeStats,
ย ย ย ย cureStatus
ย ย }
ย ย public string mName;
ย ย public ItemType mItemType;
ย ย public string mValue;
ย ย //์์ดํ ์ฌ์ฉ
ย ย public void Use()
ย ย {
ย ย ย ย switch (mItemType)
ย ย ย ย {
ย ย ย ย ย ย case ItemType.changeStats:
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย //์ฒซ๋ฒ์งธ๊ฐ ๋ฐ๊ฟ ์คํฏ, ๋๋ฒ์งธ๊ฐ ๊ฐ
ย ย ย ย ย ย ย ย ย ย string[] changeData = mValue.Split('_');
ย ย ย ย ย ย ย ย ย ย Player.Instance.AddStats(changeData[0], changeData[1]);
ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย ย break;
ย ย ย ย ย ย case ItemType.cureStatus:
ย ย ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย ย ย //์ฒซ๋ฒ์งธ๊ฐ ๋ฐ๊ฟ ์ํ์ด์, ๋๋ฒ์งธ๊ฐ ๊ฐ
ย ย ย ย ย ย ย ย ย ย string[] changeData = mValue.Split('_');
ย ย ย ย ย ย ย ย ย ย Player.Instance.ChangeStatus(changeData[0], changeData[1]);
ย ย ย ย ย ย ย ย }
ย ย ย ย ย ย ย ย break;
ย ย ย ย }
ย ย }
}
์์ ์ ์ฐ๊ณ ์๋๋ฐ ์ ๊ทธ๊ฑธ ํ์ฉ ์ํ๋. use๋ฅผ ์์ ํ๋๊ฒ ์๋๋ผ ํ์ผ ํ์ฑ๋ถ๋ถ์ ์์ ํด๋ผ. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐํ์ผ ๋ง๋ค๋ ์์ดํ ํ์์ ์ง์ ํด์ฃผ๊ณ ํ์ผ ํ์ฑํด์ค๋ ์์ดํ ํ์์ ๋ฐ๋ผ์ ๋ค๋ฅธ ํด๋์ค๋ก ์์ฑํด์ฃผ๋ฉด๋จ.
๊ฐ์ฌํฉ๋๋ค ๊ทธ๋ฐ์์ผ๋ก ํด๋ณด๊ฒ ์ต๋๋ค