123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- <?php
- namespace loyalsoft;
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- namespace loyalsoft;
- /**
- * Description of CollegeInfo
- *
- * @author cyzhao
- */
- class Info_College extends Object_ext {
- /**
- * 当前所在的级别
- */
- public $collegeId = 1;
- /// <summary>
- /// 所处的课程id
- /// </summary>
- public $courseId = 1001;
- /**
- * 将领取课程奖励的保存在这
- * @var type
- */
- public $comCourseList = array();
- /// <summary>
- /// 任务卡信息
- /// </summary>
- //public List<missCourseItem> compMissCardList = new List<missCourseItem>();
- 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;
- }
- }
|