CollegeProc.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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. */
  19. public static function procMain() {
  20. switch (req()->cmd) {
  21. case CmdCode::cmd_college_ActiveTaskCard://废弃 # 7301 激活任务卡
  22. return CollegeProc::ActiveTaskCard();
  23. case CmdCode::cmd_college_ReceiveCollegeReward: # 7302 领取年级奖励
  24. return CollegeProc::ReceiveCollegeReward();
  25. case CmdCode::cmd_college_ReceiveCourseReward: # 7303 领取课程奖励
  26. return CollegeProc::ReceiveCourseReward();
  27. case cmd_college_ScoreExchangeItem: #7304 积分兑换道具
  28. return CollegeProc::ScoreExchangeItem();
  29. default:
  30. Err(ErrCode::cmd_err);
  31. }
  32. }
  33. /**
  34. * 7301 激活---废弃
  35. */
  36. public static function ActiveTaskCard() {
  37. $req = req();
  38. list($taskCardId) = $req->paras;
  39. $collegeInfo = $req->userInfo->game->college;
  40. $compMissCardDic = $collegeInfo->compMissCardDic;
  41. if (!StlUtil::dictHasProperty($compMissCardDic, $taskCardId)) {
  42. return Resp::err(ErrCode::college_notExistTaskCard);
  43. }
  44. if ($compMissCardDic->$taskCardId->type > Enum_TaskCardStateType::notopen) {
  45. return Resp::err(ErrCode::college_TaskCardStateError);
  46. }
  47. $cid = StoreProc::PutTaskCardInStore($taskCardId); // 存入背包
  48. NormalEventProc::OnTaskCard_Actived($cid, null); # 带入事件
  49. $compMissCardDic->$taskCardId->indexId = $cid;
  50. $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::ing;
  51. $taskCard = new Ins_TaskCard($req->userInfo->game->store->taskcards->$cid); # 任务卡对象
  52. $taskCard->state = Enum_TaskCardStateType::ing;
  53. TaskProc::OnGetSchoolTask();
  54. foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务
  55. $tsp = new Ins_TaskStep($tsp);
  56. if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具
  57. $tsp->autoCalcStatusCur();
  58. }
  59. }
  60. if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成
  61. $taskCard->state = Enum_TaskCardStateType::finish;
  62. $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::finish;
  63. TaskProc::OnFinishSchoolTask();
  64. NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件
  65. }
  66. $req->userInfo->game->college->compMissCardDic = $compMissCardDic;
  67. $req->userInfo->game->store->taskcards->$cid = $taskCard;
  68. UserProc::updateUserInfo();
  69. //$compMissCardDic->$taskCardId->type = 2;
  70. return Resp::ok(array('store' => $req->userInfo->game->store, 'college' => $req->userInfo->game->college)); # 返回值更新背包
  71. }
  72. /**
  73. * 7302 领取一个年级的奖励
  74. */
  75. public static function ReceiveCollegeReward() {
  76. $req = req();
  77. list($collegeId) = $req->paras;
  78. $collegeInfo = $req->userInfo->game->college;
  79. $mo = GameConfig::college_getItem($collegeId);
  80. my_Assert(count($collegeInfo->comCourseList) == count(explode(',', $mo->cList)), ErrCode::college_courseNumError);
  81. StoreProc::AddMultiItemInStore($mo->prize); # 发放奖励
  82. $collegeInfo->collegeRewardList[] = $collegeId;
  83. // $collegeInfo = $req->userInfo->game->college;
  84. // $dic = GameConfig::college_getItem($collegeInfo->collegeId);
  85. // $tag = true;
  86. // $cList = explode(',', $dic->cList);
  87. // foreach ($cList as $cId) {
  88. // if (!in_array($cId, $collegeInfo->comCourseList)) {
  89. // $tag = false;
  90. // }
  91. // }
  92. //
  93. // if (!$tag) {
  94. // return Resp::err(ErrCode::college_courseNumError);
  95. // }
  96. // StoreProc::AddMultiItemInStore($dic->prize); # 发放奖励
  97. //
  98. // $college = new Info_College($req->userInfo->game->college);
  99. // $college->updataCourseNew();
  100. $req->userInfo->game->college = $collegeInfo;
  101. UserProc::updateUserInfo();
  102. return Resp::ok(array('store' => $req->userInfo->game->store,
  103. 'gold' => req()->userInfo->game->baseInfo->gold,
  104. 'cash' => req()->userInfo->game->baseInfo->cash,
  105. 'lvl' => req()->userInfo->game->baseInfo->level,
  106. 'college' => $req->userInfo->game->college));
  107. }
  108. /**
  109. * 7303 领取课程奖励
  110. */
  111. public static function ReceiveCourseReward() {
  112. $req = req();
  113. list($courseId) = $req->paras;
  114. $collegeInfo = $req->userInfo->game->college;
  115. my_Assert(!in_array($courseId, $collegeInfo->comCourseList), ErrCode::college_CourseRewardRepeatReceive);
  116. $mo = GameConfig::course_getItem($courseId);
  117. $list = explode(',', $mo->misslist);
  118. my_Assert(StlUtil::dictHasProperty($collegeInfo->ingTaskCardDic, $courseId), ErrCode::college_CourseNotUnlocked);
  119. foreach ($list as $id) {
  120. my_Assert(StlUtil::dictHasProperty($collegeInfo->ingTaskCardDic->$courseId, $id) && $collegeInfo->ingTaskCardDic->$courseId->$id->type == Enum_TaskCardStateType::drawed, ErrCode::college_TaskCardStateError);
  121. }
  122. StoreProc::AddMultiItemInStore($mo->prize); # 发放奖励
  123. TaskProc::OnFinishAllSchoolTaskOfGrade($courseId);
  124. $collegeInfo->comCourseList[] = $courseId;
  125. // $tag = true;
  126. // foreach ($collegeInfo->compMissCardDic as $key => $value) {
  127. // if ($value->type != Enum_TaskCardStateType::drawed) {
  128. // $tag = false;
  129. // break;
  130. // }
  131. // }
  132. //
  133. // if (!$tag) {
  134. // return Resp::err(ErrCode::college_taskCardNumError);
  135. // }
  136. //
  137. // StoreProc::AddMultiItemInStore(GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
  138. // TaskProc::OnFinishAllSchoolTaskOfGrade($collegeInfo->courseId);
  139. //
  140. // $college = new Info_College($req->userInfo->game->college);
  141. // $college->updataCourse();
  142. $req->userInfo->game->college = $collegeInfo;
  143. UserProc::updateUserInfo();
  144. return Resp::ok(array('store' => $req->userInfo->game->store,
  145. 'gold' => req()->userInfo->game->baseInfo->gold,
  146. 'cash' => req()->userInfo->game->baseInfo->cash,
  147. 'lvl' => req()->userInfo->game->baseInfo->level,
  148. 'college' => $req->userInfo->game->college
  149. ));
  150. }
  151. /**
  152. * 7304 积分兑换道具
  153. */
  154. public static function ScoreExchangeItem() {
  155. $req = req();
  156. list($id) = $req->paras;
  157. $scoreRewardList = $req->userInfo->game->college->scoreRewardList;
  158. my_Assert(in_array($id,$scoreRewardList), ErrCode::college_taskScoreRewardRepeatReceive);
  159. $score = $req->userInfo->game->college->score;
  160. my_Assert($score >= $id, ErrCode::college_taskScoreRewardRepeatReceive);
  161. $mo = GameConfig::score_getItem($id);
  162. $req->userInfo->game->college->scoreRewardList[] = $id;
  163. StoreProc::AddMultiItemInStore($mo->items);
  164. UserProc::updateUserInfo();
  165. return Resp::ok(array('store' => $req->userInfo->game->store,
  166. 'college' => $req->userInfo->game->college,
  167. ));
  168. }
  169. }