/// 所处的课程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::totalDays($this->funUnluckTs); $curDay = TimeUtil::totalDays(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(ctx()->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; //统计 StatisticsProc::TargetStatistics(Enum_TargetStatistics::collegeCouseId_UnlockUserNum, $cardId); ctx()->store->taskcards->$cid = $taskCard; } //$this->ingTaskCardDic->$courseId = $dic; $collegeDic->$courseId = $dic; } $this->ingTaskCardDic->$collegeId = $collegeDic; if ($index >= $num) { break 2; } $index += 1; } } ctx()->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(ctx()->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; // ctx()->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; } }