Character.cs


private Ability mAbility = new Examine(this);

private CharState mState = new Idle(this);


public void SetAbility(Ability ability)

{

ย  ย  if (!mAbility.Equals(ability))

ย  ย  {

ย  ย  ย  ย  mAbility = ability;

ย  ย  ย  ย  mAbility.Enter();

ย  ย  }

}


public void SetState(CharState state)

{

ย  ย  if (!mState.Equals(state))

ย  ย  {

ย  ย  ย  ย  ย mState.Exit();

ย  ย  ย  ย  ย mState = state;

ย  ย  ย  ย  ย mState.Enter();

ย  ย  }

}


public Message Attack(Damageable target)

{

ย  ย  mAbility.Attack(target);

}



ChaseState.cs


public void Update()

{

ย  ย  ๋Œ€์ถฉ ํƒ€๊ฒŸ๊นŒ์ง€ ์ ‘๊ทผํ•œ ํ›„ ๊ฐ–๊ณ ์žˆ๋Š” ํšจ๊ณผ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Idle๋กœ ๋ณต๊ท€

}