public void talk(IFriendly friendly) { if (isActivated) { if (friendly is Player) { var player = (Player)friendly; if (quest != null) { if (quest.isCleared()) { clearedTalk(player); } else { undertakingTalk(); } } else { requestTalk(player); } } } }