我有一个游戏,玩家可以完成一些任务。
我已将任务的行为部分分离到其ORM部分。 最终,任务的副本将保存在播放器文档的某个位置(对于此特定问题的位置并不重要)。
问题是,我不知道在哪里将我发送给客户端的额外信息放在行为本身不需要的地方,但是需要向玩家展示有关任务本身的信息。
这是我的任务界面:
C
这是我的抽象任务:
interface ITask
{
/**
* @param Player $player
*/
public function init(Player $player);
/**
* @param PlayerAction $action
*/
public function progress(PlayerAction $action);
public function reset();
/**
* @return bool
*/
public function isComplete();
}
现在我需要决定如何放置额外数据,例如描述,标题,主题等......
寻找其他建议。
答案 0 :(得分:0)
您应该从TaskBase继承CustomTask。
如果您对继承有限制,请将其他字段封装到名为TaskAdditionalInfoBase的类中并与TaskBase关联。
然后,各种类可以继承TaskAdditionalInfoBase,以向该任务提供自定义附加信息。