/// 已经完成的任务 /// public $overMissions = null; /** * 未完待续的任务 * @var type */ public $contMissions = null; /** * 构造函数 */ function __construct() { $this->ingMissions = new stdClass(); $this->overMissions = new stdClass(); $this->contMissions = new stdClass(); } function initialize($value) { CommUtil::loadObject($value, $this); foreach ($this->ingMissions as $id => $val) { // 强类型化 $ing = new MisStatus(); $ing->initialize($val); $this->ingMissions->$id = $ing; } } /// /// 设置任务数据 /// /// /// public function setMission($id, $ing) { if ($id == 0) return; $this->ingMissions->$id = $ing; } /** * * @param type $id * @return MisStatus */ public function GetMission($id) { if (dict_exists($this->ingMissions, $id)) { return $this->ingMissions->$id; } return null; } /// /// 新增触发任务 /// /// public function addMission($id) { if ($id == 0) { return null; } $mo = dataCenter()->getMissionConst($id); $status = MisStatus::initFromMo($mo); $this->setMission($id, $status); return $status; } /// /// 是否挂载某个任务 /// /// /// public function hasMission($id) { return dict_exists($this->ingMissions, $id); } /// /// 删除某个任务 /// /// public function delMission($id) { if ($this->hasMission($id)) { dict_remove($this->ingMissions, $id); } } /// /// 某任务是否曾经完成过 /// /// /// public function onceFinished($id) { return dict_exists($this->overMissions, $id); } /// /// 完成某个任务 /// /// /// public function finishMission($id) { if ($this->hasMission($id)) { $this->delMission($id); $this->overMissions->$id = "ok"; } } }