CollegeProc.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?php
  2. namespace loyalsoft;
  3. /*
  4. * To change this license header, choose License Headers in Project Properties.
  5. * To change this template file, choose Tools | Templates
  6. * and open the template in the editor.
  7. */
  8. namespace loyalsoft;
  9. /**
  10. * Description of CollegeProc
  11. *
  12. * @author cyzhao
  13. */
  14. class CollegeProc {
  15. /**
  16. * 逻辑分发
  17. * 所有的Proc中必须有这样一个方法
  18. * @param Req $req
  19. */
  20. public static function procMain($req) {
  21. switch ($req->cmd) {
  22. case CmdCode::cmd_college_ActiveTaskCard:
  23. return CollegeProc::ActiveTaskCard($req);
  24. case CmdCode::cmd_college_ReceiveCollegeReward:
  25. return CollegeProc::ReceiveCollegeReward($req);
  26. case CmdCode::cmd_college_ReceiveCourseReward:
  27. return CollegeProc::ReceiveCourseReward($req);
  28. default:
  29. Err(ErrCode::cmd_err);
  30. }
  31. }
  32. /**
  33. * 激活
  34. * @param Req $req
  35. */
  36. public static function ActiveTaskCard($req) {
  37. list($taskCardId) = $req->paras;
  38. $collegeInfo = $req->userInfo->game->college;
  39. $compMissCardDic = $collegeInfo->compMissCardDic;
  40. if(!StlUtil::dictHasProperty($compMissCardDic, $taskCardId)){
  41. return Resp::err(ErrCode::college_notExistTaskCard);
  42. }
  43. if($compMissCardDic->$taskCardId->type >Enum_TaskCardStateType::notopen){
  44. return Resp::err(ErrCode::college_TaskCardStateError);
  45. }
  46. $cid = StoreProc::PutTaskCardInStore($taskCardId, $req);//存入背包
  47. //NormalEventProc::OnTaskCard_Actived($cid, null); # 带入事件
  48. $compMissCardDic->$taskCardId->indexId = $cid;
  49. $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::ing;
  50. $taskCard = new Ins_TaskCard($req->userInfo->game->store->taskcards->$cid); # 任务卡对象
  51. $taskCard->state = Enum_TaskCardStateType::ing;
  52. foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务
  53. $tsp = new Ins_TaskStep($tsp);
  54. if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具
  55. $tsp->autoCalcStatusCur();
  56. }
  57. }
  58. if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成
  59. $taskCard->state = Enum_TaskCardStateType::finish;
  60. $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::finish;
  61. //NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件
  62. }
  63. $req->userInfo->game->college->compMissCardDic = $compMissCardDic;
  64. $req->userInfo->game->store->taskcards->$cid = $taskCard;
  65. UserProc::updateUserInfo();
  66. //$compMissCardDic->$taskCardId->type = 2;
  67. return Resp::ok(array('store' => $req->userInfo->game->store,'college'=>$req->userInfo->game->college)); # 返回值更新背包
  68. }
  69. /**
  70. *
  71. * @param Req $req
  72. */
  73. public static function ReceiveCollegeReward($req) {
  74. $collegeInfo = $req->userInfo->game->college;
  75. $dic = GameConfig::college_getItem($collegeInfo->collegeId);
  76. if(count(explode(',', $dic->cList)) != count($collegeInfo->comCourseList)){
  77. return Resp::err(ErrCode::college_courseNumError);
  78. }
  79. StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
  80. $college = new Info_College($req->userInfo->game->college);
  81. $college->updataCourseNew();
  82. $req->userInfo->game->college = $college;
  83. UserProc::updateUserInfo();
  84. return Resp::ok(array('college'=>$req->userInfo->game->college));
  85. }
  86. /**
  87. * 领取课程奖励
  88. * @param Req $req
  89. */
  90. public static function ReceiveCourseReward($req) {
  91. //list($taskCardId) = $req->paras;
  92. $collegeInfo = $req->userInfo->game->college;
  93. $tag = true;
  94. foreach ($collegeInfo->compMissCardDic as $key => $value) {
  95. if($value->type != Enum_TaskCardStateType::drawed){
  96. $tag = false;
  97. break;
  98. }
  99. }
  100. if(!$tag){
  101. return Resp::err(ErrCode::college_taskCardNumError);
  102. }
  103. StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
  104. $college = new Info_College($req->userInfo->game->college);
  105. $college->updataCourse();
  106. $req->userInfo->game->college = $college;
  107. UserProc::updateUserInfo();
  108. return Resp::ok(array('college'=>$req->userInfo->game->college));
  109. }
  110. }