del_Info_MissInfo.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <?php
  2. /*
  3. * To change this license header, choose License Headers in Project Properties.
  4. * To change this template file, choose Tools | Templates
  5. * and open the template in the editor.
  6. */
  7. /**
  8. * Description of UserMissEx
  9. *
  10. * @author jgao
  11. */
  12. class Info_MissInfo {
  13. //put your code here
  14. /**
  15. * 正在进行中的任务
  16. * @var MisStatus
  17. */
  18. public $ingMissions = null;
  19. /// <summary>
  20. /// 已经完成的任务
  21. /// </summary>
  22. public $overMissions = null;
  23. /**
  24. * 未完待续的任务
  25. * @var type
  26. */
  27. public $contMissions = null;
  28. /**
  29. * 构造函数
  30. */
  31. function __construct() {
  32. $this->ingMissions = new stdClass();
  33. $this->overMissions = new stdClass();
  34. $this->contMissions = new stdClass();
  35. }
  36. function initialize($value) {
  37. CommUtil::loadObject($value, $this);
  38. foreach ($this->ingMissions as $id => $val) { // 强类型化
  39. $ing = new MisStatus();
  40. $ing->initialize($val);
  41. $this->ingMissions->$id = $ing;
  42. }
  43. }
  44. /// <summary>
  45. /// 设置任务数据
  46. /// </summary>
  47. /// <param name="id"></param>
  48. /// <param name="mo"></param>
  49. public function setMission($id, $ing) {
  50. if ($id == 0)
  51. return;
  52. $this->ingMissions->$id = $ing;
  53. }
  54. /**
  55. *
  56. * @param type $id
  57. * @return MisStatus
  58. */
  59. public function GetMission($id) {
  60. if (dict_exists($this->ingMissions, $id)) {
  61. return $this->ingMissions->$id;
  62. }
  63. return null;
  64. }
  65. /// <summary>
  66. /// 新增触发任务
  67. /// </summary>
  68. /// <param name="id"></param>
  69. public function addMission($id) {
  70. if ($id == 0) {
  71. return null;
  72. }
  73. $mo = dataCenter()->getMissionConst($id);
  74. $status = MisStatus::initFromMo($mo);
  75. $this->setMission($id, $status);
  76. return $status;
  77. }
  78. /// <summary>
  79. /// 是否挂载某个任务
  80. /// </summary>
  81. /// <param name="id"></param>
  82. /// <returns></returns>
  83. public function hasMission($id) {
  84. return dict_exists($this->ingMissions, $id);
  85. }
  86. /// <summary>
  87. /// 删除某个任务
  88. /// </summary>
  89. /// <param name="id"></param>
  90. public function delMission($id) {
  91. if ($this->hasMission($id)) {
  92. dict_remove($this->ingMissions, $id);
  93. }
  94. }
  95. /// <summary>
  96. /// 某任务是否曾经完成过
  97. /// </summary>
  98. /// <param name="id"></param>
  99. /// <returns></returns>
  100. public function onceFinished($id) {
  101. return dict_exists($this->overMissions, $id);
  102. }
  103. /// <summary>
  104. /// 完成某个任务
  105. /// </summary>
  106. /// <param name="id"></param>
  107. /// <param name="suc"></param>
  108. public function finishMission($id) {
  109. if ($this->hasMission($id)) {
  110. $this->delMission($id);
  111. $this->overMissions->$id = "ok";
  112. }
  113. }
  114. }