JG0111_3.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import BaseEvent from "../../fight/evnet/base/BaseEvent";
  2. import { SpriteActionType } from "../../fight/object/FSprite";
  3. const {ccclass, property} = cc._decorator;
  4. /**
  5. * 剧情
  6. * 落单的精灵:可怜的小鹿……居然被这么古老的机关捉住了。
  7. 角色触碰笼子,提示需要钥匙。
  8. 落单的精灵:这是我见过的排名第一的倒霉动物。
  9. 落单的精灵:我暂且留在这里守护它。
  10. */
  11. @ccclass
  12. export default class JG0111_3 extends BaseEvent {
  13. @property({
  14. displayName: '困住的宠物',
  15. type: cc.Node,
  16. })
  17. mPet: cc.Node = null;
  18. @property({
  19. displayName: '对话用NPC',
  20. type: cc.Node,
  21. })
  22. mNpc: cc.Node = null;
  23. @property({
  24. displayName: '显示的钥匙',
  25. type: cc.Node,
  26. })
  27. mKeyNode: cc.Node = null;
  28. public onBegin(tag: number) {
  29. this.pause()
  30. this.dialog1()
  31. }
  32. private dialog1() {
  33. let text = [
  34. '可怜的小鹿……居然被这么古老的机关捉住了。',
  35. ]
  36. this.showDialog(this.mNpc, text, () => {
  37. this.moveMainSprite()
  38. })
  39. }
  40. /**
  41. * 角色触碰笼子,提示需要钥匙。
  42. */
  43. private moveMainSprite(){
  44. let mainSprite = this.ff.mainSprite
  45. mainSprite.setLR(1)
  46. mainSprite.playAction(SpriteActionType.run, true)
  47. cc.tween(mainSprite.node).sequence(
  48. cc.moveTo(0.5,cc.v2(3336,4322)),
  49. cc.callFunc(()=>{
  50. mainSprite.setLR(-1)
  51. mainSprite.playAction(SpriteActionType.stand, true)
  52. this.mKeyNode.active = true
  53. }),
  54. cc.delayTime(1),
  55. cc.callFunc(()=>{
  56. mainSprite.playAction(SpriteActionType.stand, true)
  57. this.dialog2()
  58. this.mKeyNode.active = false
  59. }),
  60. ).start()
  61. }
  62. private dialog2() {
  63. let text = [
  64. '需要一把钥匙......',
  65. ]
  66. this.showDialog(this.ff.mainSprite.node, text, () => {
  67. this.dialog3()
  68. })
  69. }
  70. private dialog3() {
  71. let text = [
  72. '这是我见过的排名第一的倒霉动物。',
  73. '我暂且留在这里守护它。',
  74. ]
  75. this.showDialog(this.mNpc, text, () => {
  76. this.node.destroy()
  77. this.resume()
  78. })
  79. }
  80. }