/// 已经完成的任务
///
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";
}
}
}