dialogmanager.js 29 KB

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