ManageTask.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. //AI类型枚举
  2. var taskEnumType = cc.Enum({
  3. //游戏开始,即开场
  4. GameStart: -1,
  5. //建造房子(住宅)
  6. BuildAHouse: -1,
  7. //增加一颗果树(环境)
  8. IncreaseFruitTrees: -1,
  9. //铺设道路
  10. PavedRoads: -1,
  11. //招聘员工
  12. RecruitStaff: -1,
  13. //分享
  14. Share: -1
  15. });
  16. cc.Class({
  17. extends: cc.Component,
  18. properties: {
  19. MainCamera: {
  20. default: null,
  21. type: cc.Node,
  22. serializable: true,
  23. },
  24. //类型
  25. taskEnum: {
  26. default: taskEnumType.GameStart,
  27. type: cc.Enum(taskEnumType),
  28. },
  29. //工人管理节点
  30. manageWorker: {
  31. default: null,
  32. type: cc.Node,
  33. serializable: true,
  34. },
  35. },
  36. onLoad() {
  37. // 开启碰撞检测系统,未开启时无法检测
  38. cc.director.getCollisionManager().enabled = true;
  39. GlobalD.ManageTask = this;
  40. this._uiCamera = cc.find("Canvas/UICamera");
  41. this.managerControl = this._uiCamera.getComponent('ManagerControl');
  42. //初始化人物对话
  43. dialogmanager.InitDialgue();
  44. },
  45. onStart() {
  46. //初始化任务
  47. switch (this.taskEnum) {
  48. case taskEnumType.GameStart:
  49. this.onInitGameStartTask();
  50. break;
  51. case taskEnumType.BuildAHouse:
  52. this.onInitBuildAHouse();
  53. break;
  54. case taskEnumType.IncreaseFruitTrees:
  55. this.onInitBuildAHouse();
  56. break;
  57. case taskEnumType.PavedRoads:
  58. this.onInitPavedRoads();
  59. break;
  60. case taskEnumType.RecruitStaff:
  61. this.onInitRecruitStaff();
  62. break;
  63. case taskEnumType.Share:
  64. this.onInitShare();
  65. break;
  66. // default:
  67. // break;
  68. }
  69. },
  70. InitTask(BFirstLoadGame) {
  71. // return;
  72. // todo 新手教学 初始化
  73. console.log("初始化真的假的", BFirstLoadGame);
  74. if (!BFirstLoadGame) {
  75. //首次初始化
  76. task.taskOnLoad();
  77. //创建员工
  78. // this.manageWorker.getComponent('ManageWorker').onRecruit();
  79. // this.manageWorker.getComponent('ManageWorker').onRecruit();
  80. this.onStart();
  81. } else {
  82. // console.log('task.TaskIconCountClick =====',task.TaskIconCountClick);
  83. task._init();
  84. task.addSeneceTaskIcon(() => {
  85. task.taskOnLoadno();
  86. //直接吊起记录的任务
  87. task.taskCallBack();
  88. });
  89. }
  90. },
  91. onInitGameStartTask() {
  92. //初始化的时候设置一个值
  93. task.TaskIconCountClick = -1;
  94. task._setTaskCount(0);
  95. setTimeout(() => {
  96. task.taskCallBack();
  97. }, 500);
  98. },
  99. //移动到工人位置
  100. onMoveCamera() {
  101. if (this.MainCamera == null) return;
  102. // let targetWorldPos = this.target.parent.convertToWorldSpaceAR(this.target.getPosition());
  103. // let moveToSpacePos = this.node.parent.convertToNodeSpaceAR(targetWorldPos);
  104. // cc.log('Node移动的位置:', moveToSpacePos);
  105. // 创建一个移动动作
  106. var action = cc.moveTo(0.5, cc.v2(0, 0));
  107. // 执行动作
  108. this.MainCamera.runAction(
  109. cc.sequence(
  110. cc.callFunc(this._startUpdateMap.bind(this)),
  111. action,
  112. cc.callFunc(this._endUpdateMap.bind(this))
  113. ));
  114. },
  115. onInitBuildAHouse() {
  116. task._setTaskCount(3);
  117. task.addSeneceTaskIcon();
  118. },
  119. //移动到游客在农田购买的位置
  120. onMovePayFarmland() {
  121. if (this.MainCamera == null) return;
  122. // 创建一个移动动作
  123. var action = cc.moveTo(0.5, cc.v2(0, -100));
  124. // 执行动作
  125. this.MainCamera.runAction(
  126. cc.sequence(
  127. cc.callFunc(this._startUpdateMap.bind(this)),
  128. action,
  129. cc.callFunc(this._endUpdateMap.bind(this))
  130. ));
  131. },
  132. //初始化铺路
  133. onInitPavedRoads() {
  134. task._setTaskIconCountClick(10);
  135. task.addSeneceTaskIcon();
  136. task.taskCallBack();
  137. },
  138. //初始化招聘员工
  139. onInitRecruitStaff() {
  140. task._setTaskIconCountClick(1);
  141. task.addSeneceTaskIcon();
  142. },
  143. //初始化游戏分享
  144. onInitShare() {
  145. task._setTaskIconCountClick(12);
  146. task.addSeneceTaskIcon();
  147. },
  148. /**
  149. * 初始相机到对应的tiled 位置
  150. * @method onMoveToTiledTile
  151. * @param {int} x
  152. * @param {int} y
  153. */
  154. onMoveToTiledTile(x, y) {
  155. if (this.MainCamera == null) return;
  156. let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(cc.v2(x, y));
  157. // 创建一个移动动作
  158. var action = cc.moveTo(0.5, endPos);
  159. // 执行动作
  160. this.MainCamera.runAction(
  161. cc.sequence(
  162. cc.callFunc(this._startUpdateMap.bind(this)),
  163. action,
  164. cc.callFunc(this._endUpdateMap.bind(this))
  165. ));
  166. },
  167. _startUpdateMap() {
  168. this.updateCallback = function () {
  169. //更新地图边界外的物体
  170. this.managerControl._deteItem();
  171. }
  172. this.schedule(this.updateCallback, 0.3);
  173. },
  174. _endUpdateMap() {
  175. this.unschedule(this.updateCallback);
  176. //更新地图边界外的物体
  177. this.managerControl._deteItem();
  178. },
  179. });