dialogmanager.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. window.dialogmanager = {
  2. InitDialgue() {
  3. this.nodeName = [];
  4. //文本打字速度 ms
  5. this.IntervalidTimeout = 50;
  6. this.nodeName.push("secretary");
  7. this.nodeName.push("worker");
  8. this.nodeName.push("businessman");
  9. this.nodeName.push("player");
  10. this.dialogName = [];
  11. this.dialogName.push("许默");
  12. this.dialogName.push("旅行者");
  13. this.dialogue = [];
  14. //0
  15. this.dialogue.push(" 总裁您好!今天公司准备开始建设这块商业用地,我是您的小助理淼淼.");
  16. //1
  17. this.dialogue.push(" 啊!惨了!今天公司新人来报道的事忘的一干二净了!");
  18. //2(2.1)
  19. this.dialogue.push(" 对不起!还要麻烦总裁亲自安排住宿这种事,真是不好意思。");
  20. //3
  21. this.dialogue.push(" 太好了,有房子了!也不知道这个公司的主管怎么想的!每一个员工都要有一个房子不是常识吗!");
  22. //4
  23. this.dialogue.push(" 你好啊!我来旅游路过这里,看到你的水果很新鲜啊!我想收购一点回去,这里有100个金币,你就收下吧!");
  24. //5
  25. this.dialogue.push(" 初期多种植果树,是一个赚钱的好办法。有了经济实力以后,可以建造更高级的商铺哦~");
  26. //6
  27. this.dialogue.push(" 果树生产的水果可以出售给游客,还可以作为原材料在加工厂加工,制作出利润更高的商品销售。现在来种植一棵果树吧!");
  28. //7 (7.1)
  29. this.dialogue.push(" 太好了!看来经过我的努力一切都已经走上了正轨了嘛~!");
  30. //8
  31. this.dialogue.push(" ");
  32. //9
  33. this.dialogue.push(" ");
  34. //10
  35. this.dialogue.push(" ");
  36. //11
  37. this.dialogue.push(" ");
  38. //12
  39. this.dialogue.push(" ");
  40. //13
  41. this.dialogue.push(" ");
  42. //14
  43. this.dialogue.push(" ");
  44. //15
  45. this.dialogue.push(" ");
  46. //16
  47. this.dialogue.push(" ");
  48. //17 (17.1)
  49. this.dialogue.push(" ");
  50. //18(2.2)
  51. this.dialogue.push(" 要注意,建筑只能建造在空地上哦!" +
  52. "不可以建造在其他建筑上,也不能" +
  53. "建造在道路上!");
  54. //19(19.1)
  55. this.dialogue.push(" 在你了解游戏的最基础功能后一定迫不及待的想要知道如何更快的成为首富吧~");
  56. //20(19.2)
  57. this.dialogue.push(" 初期我们的收入基本来自于自然资源的交易。后期我们有了更多商铺的时候," +
  58. "可以考虑在《管理》菜单中关闭自然资源的交易,防止加工厂出现原料短缺的情况。");
  59. //21(19.3)
  60. this.dialogue.push(" 优秀的建筑布局是提高商业利润的有效手段" +
  61. ",你可以尝试把附加值更高的上商店建在靠近客商往来的道路边。");
  62. //22(19.4)
  63. this.dialogue.push(" 同时你也可以重新规划道路,围绕着特殊建筑的加成效果来布局建筑," +
  64. "能显著提升房屋对工人的体力恢复以及者商铺中商品的价格。");
  65. //23(19.4)
  66. this.dialogue.push(" 好了!现在快快来建立你的商业帝国吧!");
  67. //24(7.2)
  68. this.dialogue.push(" …明明都是我亲力亲为的好吗!");
  69. //25 (17.2)
  70. this.dialogue.push(
  71. " 好了!我们快来点击“建造”,根据提示添加一个绿化带吧!");
  72. //26 (17.2)
  73. this.dialogue.push(
  74. " 总裁,我是您的助理许默.公司拍下的这块地已经可以开发了!");
  75. //27 (17.2)
  76. this.dialogue.push(
  77. " 现在我们先来规划一条道路吧!");
  78. //28 (17.2)
  79. this.dialogue.push(
  80. " 道路铺设成功~商业的繁华可是离不开道路的建设哦!");
  81. //29(7.3)
  82. // this.dialogue.push(" 哎呀,先不要在乎这些细节嘛!!\n 现在当务之急是先要多雇佣一些人手吧!");
  83. //29(7)
  84. this.dialogue.push(" 现在可以开始雇佣一些人手了!");
  85. //30(7.4)
  86. this.dialogue.push(" 太好了!今天第一天来上班,心里不知为何有点小兴奋呢!");
  87. //31(6.1)
  88. this.dialogue.push(" 太好了!公司终于正式开始运营了,许默以后也会帮助总裁运营公司的~");
  89. //32(6.2)
  90. this.dialogue.push(" 加油一起赚更多的钱、打造更繁华的商业街吧!");
  91. // //33(6.3)
  92. // this.dialogue.push(" 我所知的都以报告完毕,剩下的靠总裁自己经营了。");
  93. },
  94. init(nodeparent, callback, skipCallback, endCallback) {
  95. this.node = nodeparent;
  96. this.showDialogDetailTag = false;
  97. this.dialogNode = null;
  98. //创建引导面板预制
  99. task.addTaskTipsNoArr(this.node, "prefab/task/Dialog", 0, 0, "Dialog", (nodePrefabs) => {
  100. nodePrefabs.parent = this.node;
  101. this.dialogNode = nodePrefabs;
  102. if (callback != null) {
  103. callback(nodePrefabs);
  104. }
  105. var skipBtn = UtilsPrefabs.getNode("Skip", this.dialogNode);
  106. skipBtn.active = true;
  107. UtilsPrefabs.setOn(skipBtn, function () {
  108. UtilsPrefabs.setOff(skipBtn);
  109. if (skipCallback)
  110. skipCallback();
  111. if (this.Intervalid)
  112. clearInterval(this.Intervalid);
  113. this.removeNode();
  114. }.bind(this));
  115. var endBtn = UtilsPrefabs.getNode("End", this.dialogNode);
  116. endBtn.active = true;
  117. UtilsPrefabs.setOn(endBtn, function () {
  118. UtilsPrefabs.setOff(endBtn);
  119. if (endCallback)
  120. endCallback();
  121. //任务结束
  122. task.onSetTaskEnd();
  123. if (this.Intervalid)
  124. clearInterval(this.Intervalid);
  125. this.dialogNode.destroy();
  126. }.bind(this));
  127. });
  128. },
  129. //上来介绍 提示出来员工 准备去造房子
  130. //前三句话
  131. dialog1: function () {
  132. //出人
  133. this.showPersonnel(this.dialogNode, null, function () { }.bind(this));
  134. //美女助理:“xx总好!今天公司准备开业,我是您的小助理淼淼。”
  135. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  136. //打字效果
  137. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[0], function () {
  138. cc.find('GameNode/ManageTask').getComponent('ManageTask').onMoveCamera();
  139. //点击 点击之后
  140. this.showClick(function () {
  141. // this.Buildingdormitory1();
  142. }.bind(this));
  143. }.bind(this));
  144. }.bind(this));
  145. },
  146. Buildingdormitory1: function () {
  147. //出人
  148. this.showPersonnel(this.dialogNode, null, function () { }.bind(this));
  149. //美女助理:“啊!惨了耶!今天公司新人来报道的事忘的一干二净了!”
  150. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  151. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[1], function () {
  152. this.showClick(function () {
  153. this.PlayerTalk(' ...!', () => {
  154. this.Buildingdormitory2()
  155. });
  156. }.bind(this));
  157. }.bind(this));
  158. }.bind(this));
  159. },
  160. //玩家切入讲话
  161. PlayerTalk: function (_playerTalk, _talkEndCallback) {
  162. this.hidePersonnel(this.dialogNode, this.nodeName[0], function () {
  163. this.showPersonnel(this.dialogNode, this.nodeName[3], function () {
  164. }.bind(this));
  165. //玩家:“…”
  166. this.showDialogDetail(this.dialogNode, '我', function () {
  167. this.TypingAni(this.DialogDetail.getComponent(cc.Label), _playerTalk, function () {
  168. this.showClick(function () {
  169. if (_talkEndCallback)
  170. _talkEndCallback();
  171. }.bind(this));
  172. }.bind(this));
  173. }.bind(this));
  174. }.bind(this));
  175. },
  176. Buildingdormitory2: function () {
  177. this.hidePersonnel(this.dialogNode, this.nodeName[1], function () {
  178. this.showPersonnel(this.dialogNode, this.nodeName[0], function () {
  179. }.bind(this));
  180. //美女助理:“对不起!第一天上班还要麻烦总裁亲自安排住宿这种事,真是不好意思。”
  181. //美女助理心里嘀咕:“搞不好第一天上班就要被辞退了呀!我要打起120分的精神!”。
  182. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  183. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[2], function () {
  184. this.showClick(function () {
  185. this.removeNode();
  186. }.bind(this));
  187. }.bind(this));
  188. }.bind(this));
  189. }.bind(this));
  190. },
  191. //全恢复了就可以去劳动了。是不是
  192. pickUp: function (_pickUpDialogue) {
  193. this.hidePersonnel(this.dialogNode, this.nodeName[0], function () {
  194. //出人
  195. this.showPersonnel(this.dialogNode, this.nodeName[1], function () {
  196. }.bind(this));
  197. //出名字 说话内容
  198. this.showDialogDetail(this.dialogNode, '员工', function () {
  199. //打字效果
  200. this.TypingAni(this.DialogDetail.getComponent(cc.Label), _pickUpDialogue, function () {
  201. //点击 点击之后
  202. this.showClick(function () {
  203. this.removeNode();
  204. }.bind(this));
  205. }.bind(this));
  206. }.bind(this));
  207. }.bind(this));
  208. },
  209. //农田第一次被别人买的时候
  210. buyFarming: function () {
  211. //移动camera 到农田对应位置
  212. cc.find('GameNode/ManageTask').getComponent('ManageTask').onMovePayFarmland();
  213. //出人
  214. this.showPersonnel(this.dialogNode, this.nodeName[2], function () {
  215. }.bind(this));
  216. //出名字 说话内容
  217. this.showDialogDetail(this.dialogNode, this.dialogName[1], function () {
  218. //打字效果
  219. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[4], function () {
  220. this.showClick(function () {
  221. this.buyFarming1();
  222. }.bind(this));
  223. }.bind(this));
  224. }.bind(this));
  225. },
  226. buyFarming1: function (callback) {
  227. //出人
  228. this.hidePersonnel(this.dialogNode, this.nodeName[2], function () {
  229. //出人
  230. this.showPersonnel(this.dialogNode, null, function () {
  231. }.bind(this));
  232. //出名字 说话内容
  233. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  234. //打字效果
  235. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[5], function () {
  236. //点击 点击之后
  237. this.showClick(function () {
  238. this.removeNode();
  239. }.bind(this));
  240. }.bind(this));
  241. }.bind(this));
  242. }.bind(this));
  243. },
  244. //创建农田 任务1
  245. creatorFarming: function () {
  246. this.showPersonnel(this.dialogNode, null, function () {
  247. }.bind(this));
  248. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  249. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[6], function () {
  250. this.showClick(function () {
  251. this.removeNode();
  252. }.bind(this));
  253. }.bind(this));
  254. }.bind(this));
  255. },
  256. //铺路 任务
  257. pave: function () {
  258. this.showPersonnel(this.dialogNode, null, function () {
  259. }.bind(this));
  260. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  261. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[26], function () {
  262. this.showClick(function () {
  263. this.pave1();
  264. }.bind(this));
  265. }.bind(this));
  266. }.bind(this));
  267. },
  268. pave1: function () {
  269. this.showPersonnel(this.dialogNode, null, function () {
  270. }.bind(this));
  271. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  272. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[27], function () {
  273. this.showClick(function () {
  274. this.removeNode();
  275. }.bind(this));
  276. }.bind(this));
  277. }.bind(this));
  278. },
  279. //铺路结束
  280. paveEnd: function () {
  281. this.showPersonnel(this.dialogNode, null, function () {
  282. }.bind(this));
  283. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  284. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[28], function () {
  285. this.showClick(function () {
  286. this.removeNode();
  287. }.bind(this));
  288. }.bind(this));
  289. }.bind(this));
  290. },
  291. //招聘 任务开始
  292. // Recruit: function () {
  293. // this.showPersonnel(this.dialogNode, null, function () {
  294. //
  295. // }.bind(this));
  296. // this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  297. // this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[7], function () {
  298. // this.showClick(function () {
  299. // this.PlayerTalk(this.dialogue[24], () => {
  300. // this.Recruit2();
  301. // });
  302. // }.bind(this));
  303. // }.bind(this));
  304. // }.bind(this));
  305. // },
  306. Recruit: function () {
  307. this.showPersonnel(this.dialogNode, null, function () {
  308. }.bind(this));
  309. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  310. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[29], function () {
  311. this.showClick(function () {
  312. this.removeNode();
  313. }.bind(this));
  314. }.bind(this));
  315. }.bind(this));
  316. },
  317. Recruit2: function () {
  318. this.hidePersonnel(this.dialogNode, this.nodeName[1], function () {
  319. this.showPersonnel(this.dialogNode, this.nodeName[0], function () {
  320. }.bind(this));
  321. //美女助理:“对不起!第一天上班还要麻烦总裁亲自安排住宿这种事,真是不好意思。”
  322. //美女助理心里嘀咕:“搞不好第一天上班就要被辞退了呀!我要打起120分的精神!”。
  323. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  324. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[29], function () {
  325. this.showClick(function () {
  326. this.removeNode();
  327. }.bind(this));
  328. }.bind(this));
  329. }.bind(this));
  330. }.bind(this));
  331. },
  332. // Recruit1: function () {
  333. // this.showPersonnel(this.dialogNode, null, function () {
  334. // }.bind(this));
  335. // this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  336. // this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[24], function () {
  337. // this.showClick(function () {
  338. // this.removeNode();
  339. // }.bind(this));
  340. // }.bind(this));
  341. // }.bind(this));
  342. // },
  343. //任务分享游戏对话
  344. Share1: function () {
  345. this.showPersonnel(this.dialogNode, null, function () {
  346. }.bind(this));
  347. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  348. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[31], function () {
  349. this.showClick(function () {
  350. this.PlayerTalk(this.dialogue[32], () => {
  351. // this.Share2();
  352. this.removeNode();
  353. });
  354. }.bind(this));
  355. }.bind(this));
  356. }.bind(this));
  357. },
  358. // Share2: function () {
  359. // this.hidePersonnel(this.dialogNode, this.nodeName[1], function () {
  360. // this.showPersonnel(this.dialogNode, this.nodeName[0], function () {
  361. // }.bind(this));
  362. // //美女助理:“对不起!第一天上班还要麻烦总裁亲自安排住宿这种事,真是不好意思。”
  363. // //美女助理心里嘀咕:“搞不好第一天上班就要被辞退了呀!我要打起120分的精神!”。
  364. // this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  365. // this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[33], function () {
  366. // this.showClick(function () {
  367. // this.removeNode();
  368. // }.bind(this));
  369. // }.bind(this));
  370. // }.bind(this));
  371. // }.bind(this));
  372. // },
  373. //再创建一个农舍 任务3
  374. Buildingdormitorytoo: function () {
  375. this.showPersonnel(this.dialogNode, null, function () {
  376. }.bind(this));
  377. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  378. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[8], function () {
  379. this.showClick(function () {
  380. this.removeNode();
  381. }.bind(this));
  382. }.bind(this));
  383. }.bind(this));
  384. },
  385. //收取钻石 任务4
  386. getDiamonds: function () {
  387. this.showPersonnel(this.dialogNode, null, function () {
  388. }.bind(this));
  389. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  390. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[9], function () {
  391. this.showClick(function () {
  392. this.removeNode();
  393. }.bind(this));
  394. }.bind(this));
  395. }.bind(this));
  396. },
  397. //每日签到 任务5
  398. EveryDay: function () {
  399. this.showPersonnel(this.dialogNode, null, function () {
  400. }.bind(this));
  401. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  402. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[11], function () {
  403. this.showClick(function () {
  404. this.removeNode();
  405. }.bind(this));
  406. }.bind(this));
  407. }.bind(this));
  408. },
  409. //抽奖 任务6
  410. goodluck: function () {
  411. this.showPersonnel(this.dialogNode, null, function () {
  412. }.bind(this));
  413. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  414. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[12], function () {
  415. this.showClick(function () {
  416. this.removeNode();
  417. }.bind(this));
  418. }.bind(this));
  419. }.bind(this));
  420. },
  421. //得到3000元 任务7
  422. get3K: function () {
  423. this.showPersonnel(this.dialogNode, null, function () {
  424. }.bind(this));
  425. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  426. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[13], function () {
  427. this.showClick(function () {
  428. this.removeNode();
  429. }.bind(this));
  430. }.bind(this));
  431. }.bind(this));
  432. },
  433. //创建一个加工厂 任务8
  434. creatorProcessingfactory: function () {
  435. this.showPersonnel(this.dialogNode, null, function () {
  436. }.bind(this));
  437. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  438. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[14], function () {
  439. this.showClick(function () {
  440. this.removeNode();
  441. }.bind(this));
  442. }.bind(this));
  443. }.bind(this));
  444. },
  445. //创建商店 任务9
  446. creatorShop: function () {
  447. this.showPersonnel(this.dialogNode, null, function () {
  448. }.bind(this));
  449. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  450. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[15], function () {
  451. this.showClick(function () {
  452. this.removeNode();
  453. }.bind(this));
  454. }.bind(this));
  455. }.bind(this));
  456. },
  457. //创建绿化带 任务10
  458. creatorGreen: function () {
  459. this.showPersonnel(this.dialogNode, null, function () {
  460. }.bind(this));
  461. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  462. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[16], function () {
  463. this.showClick(function () {
  464. this.creatorGreen1();
  465. }.bind(this));
  466. }.bind(this));
  467. }.bind(this));
  468. },
  469. creatorGreen1: function () {
  470. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  471. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[17], function () {
  472. this.showClick(function () {
  473. this.creatorGreen2();
  474. }.bind(this));
  475. }.bind(this));
  476. }.bind(this));
  477. },
  478. creatorGreen2: function () {
  479. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  480. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[25], function () {
  481. this.showClick(function () {
  482. this.removeNode();
  483. }.bind(this));
  484. }.bind(this));
  485. }.bind(this));
  486. },
  487. creatorEnd: function () {
  488. this.showPersonnel(this.dialogNode, null, function () {
  489. }.bind(this));
  490. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  491. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[19], function () {
  492. this.showClick(function () {
  493. this.creatorEnd1();
  494. }.bind(this));
  495. }.bind(this));
  496. }.bind(this));
  497. },
  498. creatorEnd1: function () {
  499. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  500. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[20], function () {
  501. this.showClick(function () {
  502. this.creatorEnd2();
  503. }.bind(this));
  504. }.bind(this));
  505. }.bind(this));
  506. },
  507. creatorEnd2: function () {
  508. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  509. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[21], function () {
  510. this.showClick(function () {
  511. this.creatorEnd3();
  512. }.bind(this));
  513. }.bind(this));
  514. }.bind(this));
  515. },
  516. creatorEnd3: function () {
  517. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  518. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[22], function () {
  519. this.showClick(function () {
  520. this.creatorEnd4();
  521. }.bind(this));
  522. }.bind(this));
  523. }.bind(this));
  524. },
  525. creatorEnd4: function () {
  526. this.showDialogDetail(this.dialogNode, this.dialogName[0], function () {
  527. this.TypingAni(this.DialogDetail.getComponent(cc.Label), this.dialogue[23], function () {
  528. this.showClick(function () {
  529. this.removeNode();
  530. }.bind(this));
  531. }.bind(this));
  532. }.bind(this));
  533. },
  534. showClick: function (callback) {
  535. var infoclick = UtilsPrefabs.getNode("infoclick", this.BGDetail);
  536. infoclick.active = true;
  537. var SureBtn = UtilsPrefabs.getNode("SureBtn", this.dialogNode);
  538. SureBtn.active = true;
  539. UtilsPrefabs.setOn(SureBtn, function () {
  540. // console.log("显示完毕");
  541. SureBtn.active = false;
  542. infoclick.active = false;
  543. UtilsPrefabs.setOff(SureBtn);
  544. if (callback != null) {
  545. callback();
  546. }
  547. }.bind(this));
  548. },
  549. //渐变 人 左面或者 右面 用名字控制
  550. showPersonnel: function (node, nodeName, callback) {
  551. if (nodeName == null) {
  552. nodeName = "secretary";
  553. }
  554. node.getComponent('Dialog').onSetCharacterSprite(nodeName);
  555. var Character = UtilsPrefabs.getNode("character", node);
  556. var fadeIn = cc.fadeTo(0.5, 255);
  557. var finished = cc.callFunc(function () {
  558. if (callback != null) {
  559. callback();
  560. }
  561. }.bind(this));
  562. var s = cc.sequence(fadeIn, finished);
  563. Character.runAction(s);
  564. },
  565. hidePersonnel: function (node, nodeName, callback) {
  566. if (nodeName == null) {
  567. nodeName = "secretary";
  568. }
  569. node.getComponent('Dialog').onSetCharacterSprite(nodeName);
  570. var Character = UtilsPrefabs.getNode("character", node);
  571. var fadeIn = cc.fadeTo(0.5, 0);
  572. var finished = cc.callFunc(function () {
  573. if (callback != null) {
  574. callback();
  575. }
  576. }.bind(this));
  577. var s = cc.sequence(fadeIn, finished);
  578. Character.runAction(s);
  579. },
  580. //显示 对话
  581. showDialogDetail: function (node, name, callback) {
  582. var DialogBG = this.DialogBG = UtilsPrefabs.getNode("DialogBG", node);
  583. var BGname = UtilsPrefabs.getNode("BGname", DialogBG);
  584. var DialogName = UtilsPrefabs.getNode("DialogName", BGname);
  585. DialogName.getComponent(cc.Label).string = name;
  586. var fadeIn = cc.fadeIn(1);
  587. if (this.showDialogDetailTag) {
  588. if (callback != null) {
  589. callback();
  590. }
  591. }
  592. var finished = cc.callFunc(function () {
  593. if (!this.showDialogDetailTag) {
  594. this.showDialogDetailTag = true
  595. if (callback != null) {
  596. callback();
  597. }
  598. }
  599. // console.log("显示完毕写文字了吗");
  600. }.bind(this));
  601. var s = cc.sequence(fadeIn, finished);
  602. BGname.runAction(s);
  603. var BGDetail = this.BGDetail = UtilsPrefabs.getNode("BGDetail", DialogBG);
  604. var DialogDetail = this.DialogDetail = UtilsPrefabs.getNode("DialogDetail", BGDetail);
  605. DialogName.getComponent(cc.Label).string = name;
  606. var DetailfadeIn = cc.fadeIn(1);
  607. BGDetail.runAction(DetailfadeIn);
  608. },
  609. TypingAni: function (label, text, callback) {
  610. var self = this;
  611. var html = '';
  612. var arr = text.split('');
  613. var len = arr.length;
  614. var step = 0;
  615. self.func = function () {
  616. html += arr[step];
  617. label.string = html;
  618. if (++step == len) {
  619. // self.unschedule(self.func, self);
  620. clearInterval(this.Intervalid);
  621. callback && callback(self);
  622. }
  623. }.bind(this)
  624. this.Intervalid = setInterval(self.func, this.IntervalidTimeout)
  625. // self.schedule(self.func,0.05, cc.macro.REPEAT_FOREVER, 0)
  626. },
  627. removeNode: function (node) {
  628. if (node != null) {
  629. node.destroy();
  630. } else if (this.dialogNode != null) {
  631. this.dialogNode.destroy();
  632. if (this.closeDialogCallBack != null) {
  633. this.closeDialogCallBack();
  634. this.closeDialogCallBack = null;
  635. }
  636. }
  637. },
  638. //关闭dialog 的回调
  639. setOnCloseDialog: function (closeDialogCallBack) {
  640. this.closeDialogCallBack = closeDialogCallBack;
  641. },
  642. closeDialogCallBack: function () {
  643. },
  644. // update (dt) {},
  645. };