/// 所处的课程id /// public $courseId = 1001; /** * 将领取课程奖励的保存在这 * @var type */ public $comCourseList = array(); /// /// 任务卡信息 /// //public List compMissCardList = new List(); public $compMissCardDic=null; /** * 当前课程进度,进入下一个课程清0 * @var type */ public $progress = 0; /** * 年级奖励领取记录 * @var type */ public $collegeRewardList = array(); /** * * @var type */ public $maskCollege = 0; /** * * @var type */ public $ingTaskCardDic = null; /** * 圣哲学院功能结算时间 * @var type */ public $funUnluckTs = 0; /** * 累计积分 * @var type */ public $score = 0; /** * * @var type */ public $scoreRewardList = array(); /** * 构造函数 * @param type $args */ public function __construct($args = null) { if($args == null){ $this->compMissCardDic = new \stdClass(); $this->ingTaskCardDic = new \stdClass(); } else { parent::__construct($args); } } public function initialize() { // $this->compMissCardDic = new \stdClass(); // $dic = GameConfig::course_getItem($this->courseId); // $misslist = explode(',',$dic->misslist); // foreach ($misslist as $id) { // $item = new ins_missCourseItem(); // $item->initialize($id); // $this->compMissCardDic->$id = $item; // } $this->initCompMissCardDic(); } public function initCompMissCardDic() { $this->compMissCardDic = new \stdClass(); $dic = GameConfig::course_getItem($this->courseId); $misslist = explode(',',$dic->misslist); foreach ($misslist as $id) { $item = new ins_missCourseItem(); $item->initialize($id); $this->compMissCardDic->$id = $item; } } /** * 修改任务卡状态 * @param type $id * @param type $state */ public function modifyTaskCardState($id,$state) { $ingTaskCardDic = $this->ingTaskCardDic; foreach ($ingTaskCardDic as $collegeId => $courseDic) { foreach ($courseDic as $courseId => $cardDic) { foreach ($cardDic as $cardId => $val) { if($cardId == $id){ TaskProc::OnFinishSchoolTask(); $this->ingTaskCardDic->$collegeId->$courseId->$cardId->type = $state; break 3; } } } } // if(!StlUtil::dictHasProperty($this->compMissCardDic, $id)){ // return; // } // $this->compMissCardDic->$id->type = $state; // $this->progress += 1; } public function updataCourseNew() { //检测是否到下一年级 // $collegeDic = GameConfig::college_getItem($this->collegeId); // if(in_array($this->courseId +1,explode(',', $collegeDic->cList))){ // $this->courseId += 1; // $this->initCompMissCardDic(); // $this->progress = 0; // } else { $this->collegeRewardList[] = $this->collegeId; //TaskProc::OnFinishAllSchoolTaskOfGrade($this->collegeId); $this->collegeId += 1; $newCollegeDic = GameConfig::college_getItem($this->collegeId); if($newCollegeDic == null){ $this->maskCollege = Enum_College::finish; $this->collegeId -= 1; } elseif ($newCollegeDic != null && $newCollegeDic->cList == null) { $this->maskCollege = Enum_College::update; } else { $cList = explode(',', $newCollegeDic->cList); $this->courseId = $cList[0]; $this->initCompMissCardDic(); } // } } /** * */ public function updataCourse() { $this->comCourseList[] = $this->courseId; //检测是否到下一年级 $collegeDic = GameConfig::college_getItem($this->collegeId); if(in_array($this->courseId +1,explode(',', $collegeDic->cList))){ $this->courseId += 1; $this->initCompMissCardDic(); $this->progress = 0; } // else { // $this->collegeId += 1; // $newCollegeDic = GameConfig::college_getItem($this->collegeId); // $cList = explode(',', $newCollegeDic->cList); // $this->courseId = $cList[0]; // $this->initCompMissCardDic(); // $this->progress = 0; // } } public function checkCollege() { if($this->maskCollege == Enum_College::update){ $dic = GameConfig::college_getItem($this->collegeId); if($dic != null && $dic->cList != null){ $this->maskCollege = 0; $cList = explode(',', $dic->cList); $this->courseId = $cList[0]; $this->initCompMissCardDic(); } } } //------------------new--------------------- /** * 根据天 初始化 * @return type */ public function initTaskCard() { if($this->funUnluckTs == 0){ return; } $day = TimeUtil::tsDay($this->funUnluckTs); $curDay = TimeUtil::tsDay(time()); $num = $curDay - $day; $collegeMo = GameConfig::college(); $college = (array)$collegeMo; ksort($college); $index = 0; foreach ($college as $collegeId => $collegeMo) { $courseArr = explode(',',$collegeMo->cList); if(!StlUtil::dictHasProperty($this->ingTaskCardDic, $collegeId)){ $this->ingTaskCardDic->$collegeId = new \stdClass(); } $collegeDic = $this->ingTaskCardDic->$collegeId; foreach ($courseArr as $courseId) { if(!StlUtil::dictHasProperty($collegeDic, $courseId)){ $mo= GameConfig::course_getItem($courseId); $arr = explode(',',$mo->misslist); $dic = new \stdClass(); foreach ($arr as $cardId) { $item = new ins_missCourseItem(); $item->initialize($cardId); $cid = StoreProc::PutTaskCardInStore($cardId); // 存入背包 NormalEventProc::OnTaskCard_Actived($cid, null); # 带入事件 $item->indexId = $cid; $taskCard = new Ins_TaskCard(req()->userInfo->game->store->taskcards->$cid);# 任务卡对象 $taskCard->state = Enum_TaskCardStateType::ing; TaskProc::OnGetSchoolTask(); foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务 $tsp = new Ins_TaskStep($tsp); if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具 $tsp->autoCalcStatusCur(); } } if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成 $taskCard->state = Enum_TaskCardStateType::finish; $item->type = Enum_TaskCardStateType::finish; TaskProc::OnFinishSchoolTask(); NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件 } $dic->$cardId = $item; req()->userInfo->game->store->taskcards->$cid = $taskCard; } //$this->ingTaskCardDic->$courseId = $dic; $collegeDic->$courseId = $dic; } $this->ingTaskCardDic->$collegeId = $collegeDic; if($index >= $num){ break 2; } $index += 1; } } req()->userInfo->game->college->ingTaskCardDic = $this->ingTaskCardDic; //-------------------- //$courseDic = GameConfig::course(); // $index = 0; // foreach ($courseDic as $courseId => $mo) { // if(!StlUtil::dictHasProperty($this->ingTaskCardDic, $courseId)){ // $arr = explode(',',$mo->misslist); // $dic = new \stdClass(); // foreach ($arr as $cardId) { // $item = new ins_missCourseItem(); // $item->initialize($cardId); // // $cid = StoreProc::PutTaskCardInStore($cardId); // 存入背包 // NormalEventProc::OnTaskCard_Actived($cid, null); # 带入事件 // // $item->indexId = $cid; // $taskCard = new Ins_TaskCard(req()->userInfo->game->store->taskcards->$cid);# 任务卡对象 // $taskCard->state = Enum_TaskCardStateType::ing; // // TaskProc::OnGetSchoolTask(); // foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务 // $tsp = new Ins_TaskStep($tsp); // if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具 // $tsp->autoCalcStatusCur(); // } // } // // if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成 // $taskCard->state = Enum_TaskCardStateType::finish; // $item->type = Enum_TaskCardStateType::finish; // TaskProc::OnFinishSchoolTask(); // NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件 // } // $dic->$cardId = $item; // req()->userInfo->game->store->taskcards->$cid = $taskCard; // } // $this->ingTaskCardDic->$courseId = $dic; // } // // if($index >= $num){ // break; // } // $index += 1; // } } /** * 圣哲学院功能结算时间 */ public function setFunUnluckTs() { if($this->funUnluckTs != 0){ return; } $this->funUnluckTs = time(); $this->initTaskCard(); } /** * 记录已经领取奖励的课程 * @param type $id */ // public function addReceiveCourseList($id) { // $this->comCourseList[] = $id; // } /** * 累计积分 * @param type $val */ public function addScore($val) { $this->score += $val; } }