ManageTask.js 6.2 KB

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