CollegeProc.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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. TaskProc::OnGetSchoolTask();
  53. foreach ($taskCard->curSteps as &$tsp) { # 初期里面只有一个任务
  54. $tsp = new Ins_TaskStep($tsp);
  55. if ($tsp->isStatusType()) { # 如果是道具收集类的, 扣除所收集道具
  56. $tsp->autoCalcStatusCur();
  57. }
  58. }
  59. if ($taskCard->IsFinish()) { # 检查是否任务卡的所有步骤都已完成
  60. $taskCard->state = Enum_TaskCardStateType::finish;
  61. $compMissCardDic->$taskCardId->type = Enum_TaskCardStateType::finish;
  62. TaskProc::OnFinishSchoolTask();
  63. NormalEventProc::OnTaskCard_Finish($taskCard->uid, null); # 广播卡完成事件
  64. }
  65. $req->userInfo->game->college->compMissCardDic = $compMissCardDic;
  66. $req->userInfo->game->store->taskcards->$cid = $taskCard;
  67. UserProc::updateUserInfo();
  68. //$compMissCardDic->$taskCardId->type = 2;
  69. return Resp::ok(array('store' => $req->userInfo->game->store, 'college' => $req->userInfo->game->college)); # 返回值更新背包
  70. }
  71. /**
  72. * 领取一个年级的奖励
  73. * @param Req $req
  74. */
  75. public static function ReceiveCollegeReward($req) {
  76. $collegeInfo = $req->userInfo->game->college;
  77. $dic = GameConfig::college_getItem($collegeInfo->collegeId);
  78. $tag = true;
  79. $cList = explode(',', $newCollegeDic->cList);
  80. foreach ($cList as $cId) {
  81. if (!in_array($cId, $collegeInfo->comCourseList)) {
  82. $tag = false;
  83. }
  84. }
  85. if (!$tag) {
  86. return Resp::err(ErrCode::college_courseNumError);
  87. }
  88. StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
  89. $college = new Info_College($req->userInfo->game->college);
  90. $college->updataCourseNew();
  91. $req->userInfo->game->college = $college;
  92. UserProc::updateUserInfo();
  93. return Resp::ok(array('store' => $req->userInfo->game->store, 'college' => $req->userInfo->game->college));
  94. }
  95. /**
  96. * 领取课程奖励
  97. * @param Req $req
  98. */
  99. public static function ReceiveCourseReward($req) {
  100. //list($taskCardId) = $req->paras;
  101. $collegeInfo = $req->userInfo->game->college;
  102. $tag = true;
  103. foreach ($collegeInfo->compMissCardDic as $key => $value) {
  104. if ($value->type != Enum_TaskCardStateType::drawed) {
  105. $tag = false;
  106. break;
  107. }
  108. }
  109. if (!$tag) {
  110. return Resp::err(ErrCode::college_taskCardNumError);
  111. }
  112. StoreProc::AddMultiItemInStore($req, GameConfig::course_getItem($collegeInfo->courseId)->prize); # 发放奖励
  113. TaskProc::OnFinishAllSchoolTaskOfGrade($collegeInfo->courseId);
  114. $college = new Info_College($req->userInfo->game->college);
  115. $college->updataCourse();
  116. $req->userInfo->game->college = $college;
  117. UserProc::updateUserInfo();
  118. return Resp::ok(array('store' => $req->userInfo->game->store, 'college' => $req->userInfo->game->college));
  119. }
  120. }