123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?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 CollegeProc
- *
- * @author cyzhao
- */
- class CollegeProc {
- /**
- * 逻辑分发
- * 所有的Proc中必须有这样一个方法
- * @param Req $req
- */
- public static function procMain($req) {
- switch ($req->cmd) {
- case CmdCode::cmd_college_ActiveTaskCard:
- return CollegeProc::ActiveTaskCard($req);
- case CmdCode::cmd_college_ReceiveCollegeReward:
- return CollegeProc::ReceiveCollegeReward($req);
- case CmdCode::cmd_college_ReceiveCourseReward:
- return CollegeProc::ReceiveCourseReward($req);
-
- default:
- Err(ErrCode::cmd_err);
- }
- }
-
- /**
- * 激活
- * @param Req $req
- */
- public static function ActiveTaskCard($req) {
- list($taskCardId) = $req->paras;
- $collegeInfo = $req->userInfo->game->college;
- $compMissCardDic = $collegeInfo->compMissCardDic;
- if(!StlUtil::dictHasProperty($compMissCardDic, $taskCardId)){
- return Resp::err(ErrCode::college_notExistTaskCard);
- }
-
- if($compMissCardDic->$taskCardId->type >Enum_TaskCardStateType::notopen){
- return Resp::err(ErrCode::college_TaskCardStateError);
- }
-
- $cid = StoreProc::PutTaskCardInStore($taskCardId, $req);//存入背包
- //NormalEventProc::OnTaskCard_Actived($cid, null); # 带入事件
- $compMissCardDic->$taskCardId->indexId = $cid;
- $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::ing;
-
- $taskCard = new Ins_TaskCard($req->userInfo->game->store->taskcards->$cid); # 任务卡对象
- $taskCard->state = Enum_TaskCardStateType::ing;
- foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务
- $tsp = new Ins_TaskStep($tsp);
- if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具
- $tsp->autoCalcStatusCur();
- }
- }
- if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成
- $taskCard->state = Enum_TaskCardStateType::finish;
- $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::finish;
- //NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件
- }
- $req->userInfo->game->college->compMissCardDic = $compMissCardDic;
- $req->userInfo->game->store->taskcards->$cid = $taskCard;
- UserProc::updateUserInfo();
-
- //$compMissCardDic->$taskCardId->type = 2;
-
- return Resp::ok(array('store' => $req->userInfo->game->store,'college'=>$req->userInfo->game->college)); # 返回值更新背包
- }
-
- /**
- *
- * @param Req $req
- */
- public static function ReceiveCollegeReward($req) {
- $collegeInfo = $req->userInfo->game->college;
- $dic = GameConfig::college_getItem($collegeInfo->collegeId);
- if(count(explode(',', $dic->cList)) != count($collegeInfo->comCourseList)){
- return Resp::err(ErrCode::college_courseNumError);
- }
- StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
-
- $college = new Info_College($req->userInfo->game->college);
- $college->updataCourseNew();
-
- $req->userInfo->game->college = $college;
- UserProc::updateUserInfo();
-
- return Resp::ok(array('college'=>$req->userInfo->game->college));
-
- }
-
- /**
- * 领取课程奖励
- * @param Req $req
- */
- public static function ReceiveCourseReward($req) {
- //list($taskCardId) = $req->paras;
- $collegeInfo = $req->userInfo->game->college;
-
- $tag = true;
- foreach ($collegeInfo->compMissCardDic as $key => $value) {
- if($value->type != Enum_TaskCardStateType::drawed){
- $tag = false;
- break;
- }
- }
-
- if(!$tag){
- return Resp::err(ErrCode::college_taskCardNumError);
- }
-
- StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
-
- $college = new Info_College($req->userInfo->game->college);
- $college->updataCourse();
-
- $req->userInfo->game->college = $college;
- UserProc::updateUserInfo();
-
- return Resp::ok(array('college'=>$req->userInfo->game->college));
-
- }
- }
|