ManageTask.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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. // onStartTask()
  47. },
  48. /**
  49. * 调用任务
  50. */
  51. onStartTask(){
  52. //初始化任务
  53. switch (this.taskEnum) {
  54. case taskEnumType.GameStart:
  55. this.onInitGameStartTask();
  56. break;
  57. case taskEnumType.BuildAHouse:
  58. this.onInitBuildAHouse();
  59. break;
  60. case taskEnumType.IncreaseFruitTrees:
  61. this.onInitBuildAHouse();
  62. break;
  63. case taskEnumType.PavedRoads:
  64. this.onInitPavedRoads();
  65. break;
  66. case taskEnumType.RecruitStaff:
  67. this.onInitRecruitStaff();
  68. break;
  69. case taskEnumType.Share:
  70. this.onInitShare();
  71. break;
  72. // default:
  73. // break;
  74. }
  75. },
  76. InitTask(BFirstLoadGame) {
  77. // return;
  78. // todo 新手教学 初始化
  79. if (0 === BFirstLoadGame) {
  80. console.log("***首次初始化任务", BFirstLoadGame);
  81. //首次初始化
  82. task.taskOnLoad();
  83. //创建员工
  84. // this.manageWorker.getComponent('ManageWorker').onRecruit();
  85. // this.manageWorker.getComponent('ManageWorker').onRecruit();
  86. this.onStartTask();
  87. } else {
  88. console.log("***初始化任务", BFirstLoadGame);
  89. // this.onStartTask();
  90. // console.log('task.TaskIconCountClick =====',task.TaskIconCountClick);
  91. task._init();
  92. task.addSeneceTaskIcon(() => {
  93. task.taskOnLoadno();
  94. //直接吊起记录的任务
  95. task.taskCallBack();
  96. });
  97. }
  98. },
  99. onInitGameStartTask() {
  100. //初始化的时候设置一个值
  101. task.TaskIconCountClick = -1;
  102. task._setTaskCount(0);
  103. setTimeout(() => {
  104. task.taskCallBack();
  105. }, 500);
  106. },
  107. //移动到工人位置
  108. onMoveCamera() {
  109. if (this.MainCamera == null) return;
  110. // let targetWorldPos = this.target.parent.convertToWorldSpaceAR(this.target.getPosition());
  111. // let moveToSpacePos = this.node.parent.convertToNodeSpaceAR(targetWorldPos);
  112. // cc.log('Node移动的位置:', moveToSpacePos);
  113. // 创建一个移动动作
  114. var action = cc.moveTo(0.5, cc.v2(0, 0));
  115. // 执行动作
  116. this.MainCamera.runAction(
  117. cc.sequence(
  118. cc.callFunc(this._startUpdateMap.bind(this)),
  119. action,
  120. cc.callFunc(this._endUpdateMap.bind(this))
  121. ));
  122. },
  123. onInitBuildAHouse() {
  124. task._setTaskCount(3);
  125. task.addSeneceTaskIcon();
  126. },
  127. //移动到游客在农田购买的位置
  128. onMovePayFarmland() {
  129. if (this.MainCamera == null) return;
  130. // 创建一个移动动作
  131. var action = cc.moveTo(0.5, cc.v2(0, -100));
  132. // 执行动作
  133. this.MainCamera.runAction(
  134. cc.sequence(
  135. cc.callFunc(this._startUpdateMap.bind(this)),
  136. action,
  137. cc.callFunc(this._endUpdateMap.bind(this))
  138. ));
  139. },
  140. //初始化铺路
  141. onInitPavedRoads() {
  142. task._setTaskIconCountClick(10);
  143. task.addSeneceTaskIcon();
  144. task.taskCallBack();
  145. },
  146. //初始化招聘员工
  147. onInitRecruitStaff() {
  148. task._setTaskIconCountClick(1);
  149. task.addSeneceTaskIcon();
  150. },
  151. //初始化游戏分享
  152. onInitShare() {
  153. task._setTaskIconCountClick(12);
  154. task.addSeneceTaskIcon();
  155. },
  156. /**
  157. * 初始相机到对应的tiled 位置
  158. * @method onMoveToTiledTile
  159. * @param {int} x
  160. * @param {int} y
  161. */
  162. onMoveToTiledTile(x, y) {
  163. if (this.MainCamera == null) return;
  164. let endPos = GlobalD.TiledMap._getTheMiddleLocationFromtilePos(cc.v2(x, y));
  165. // 创建一个移动动作
  166. var action = cc.moveTo(0.5, endPos);
  167. // 执行动作
  168. this.MainCamera.runAction(
  169. cc.sequence(
  170. cc.callFunc(this._startUpdateMap.bind(this)),
  171. action,
  172. cc.callFunc(this._endUpdateMap.bind(this))
  173. ));
  174. },
  175. _startUpdateMap() {
  176. this.updateCallback = function () {
  177. //更新地图边界外的物体
  178. this.managerControl._deteItem();
  179. }
  180. this.schedule(this.updateCallback, 0.3);
  181. },
  182. _endUpdateMap() {
  183. this.unschedule(this.updateCallback);
  184. //更新地图边界外的物体
  185. this.managerControl._deteItem();
  186. },
  187. });