CollegeProc.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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. default:
  28. Err(ErrCode::cmd_err);
  29. }
  30. }
  31. /**
  32. * 7301 激活
  33. */
  34. public static function ActiveTaskCard() {
  35. $req = req();
  36. list($taskCardId) = $req->paras;
  37. $collegeInfo = $req->userInfo->game->college;
  38. $compMissCardDic = $collegeInfo->compMissCardDic;
  39. if (!StlUtil::dictHasProperty($compMissCardDic, $taskCardId)) {
  40. return Resp::err(ErrCode::college_notExistTaskCard);
  41. }
  42. if ($compMissCardDic->$taskCardId->type > Enum_TaskCardStateType::notopen) {
  43. return Resp::err(ErrCode::college_TaskCardStateError);
  44. }
  45. $cid = StoreProc::PutTaskCardInStore($taskCardId); // 存入背包
  46. NormalEventProc::OnTaskCard_Actived($cid, null); # 带入事件
  47. $compMissCardDic->$taskCardId->indexId = $cid;
  48. $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::ing;
  49. $taskCard = new Ins_TaskCard($req->userInfo->game->store->taskcards->$cid); # 任务卡对象
  50. $taskCard->state = Enum_TaskCardStateType::ing;
  51. TaskProc::OnGetSchoolTask();
  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. TaskProc::OnFinishSchoolTask();
  62. NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件
  63. }
  64. $req->userInfo->game->college->compMissCardDic = $compMissCardDic;
  65. $req->userInfo->game->store->taskcards->$cid = $taskCard;
  66. UserProc::updateUserInfo();
  67. //$compMissCardDic->$taskCardId->type = 2;
  68. return Resp::ok(array('store' => $req->userInfo->game->store, 'college' => $req->userInfo->game->college)); # 返回值更新背包
  69. }
  70. /**
  71. * 7302 领取一个年级的奖励
  72. */
  73. public static function ReceiveCollegeReward() {
  74. $req = req();
  75. $collegeInfo = $req->userInfo->game->college;
  76. $dic = GameConfig::college_getItem($collegeInfo->collegeId);
  77. $tag = true;
  78. $cList = explode(',', $dic->cList);
  79. foreach ($cList as $cId) {
  80. if (!in_array($cId, $collegeInfo->comCourseList)) {
  81. $tag = false;
  82. }
  83. }
  84. if (!$tag) {
  85. return Resp::err(ErrCode::college_courseNumError);
  86. }
  87. StoreProc::AddMultiItemInStore(GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
  88. $college = new Info_College($req->userInfo->game->college);
  89. $college->updataCourseNew();
  90. $req->userInfo->game->college = $college;
  91. UserProc::updateUserInfo();
  92. return Resp::ok(array('store' => $req->userInfo->game->store,
  93. 'gold' => req()->userInfo->game->baseInfo->gold,
  94. 'cash' => req()->userInfo->game->baseInfo->cash,
  95. 'lvl' => req()->userInfo->game->baseInfo->level,
  96. 'college' => $req->userInfo->game->college));
  97. }
  98. /**
  99. * 7303 领取课程奖励
  100. */
  101. public static function ReceiveCourseReward() {
  102. $req = req();
  103. //list($taskCardId) = $req->paras;
  104. $collegeInfo = $req->userInfo->game->college;
  105. $tag = true;
  106. foreach ($collegeInfo->compMissCardDic as $key => $value) {
  107. if ($value->type != Enum_TaskCardStateType::drawed) {
  108. $tag = false;
  109. break;
  110. }
  111. }
  112. if (!$tag) {
  113. return Resp::err(ErrCode::college_taskCardNumError);
  114. }
  115. StoreProc::AddMultiItemInStore(GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
  116. TaskProc::OnFinishAllSchoolTaskOfGrade($collegeInfo->courseId);
  117. $college = new Info_College($req->userInfo->game->college);
  118. $college->updataCourse();
  119. $req->userInfo->game->college = $college;
  120. UserProc::updateUserInfo();
  121. return Resp::ok(array('store' => $req->userInfo->game->store,
  122. 'gold' => req()->userInfo->game->baseInfo->gold,
  123. 'cash' => req()->userInfo->game->baseInfo->cash,
  124. 'lvl' => req()->userInfo->game->baseInfo->level,
  125. 'college' => $req->userInfo->game->college
  126. ));
  127. }
  128. }