UsualCaidanNode.ts 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. import { MONEY_TYPE } from "../datas/CommonData";
  2. import UsualCaidanData from "../datas/UsualCaidanData";
  3. import Main from "../Main";
  4. import GameM, { AUDIO_TYPE } from "../manager/GameM";
  5. import UiM, { PANEL_NAME } from "../manager/UiM";
  6. import UsualEggItem from "../prefabs/UsualEggItem";
  7. import CashPro from "./CashPro";
  8. import EffectNode from "./EffectNode";
  9. import Gift from "./Gift";
  10. /** 常规彩蛋界面 */
  11. const { ccclass, property } = cc._decorator;
  12. @ccclass
  13. export default class UsualCaidanNode extends cc.Component {
  14. //常规彩蛋进度
  15. @property(cc.Label)
  16. labUsualPro: cc.Label = null
  17. @property(cc.ProgressBar)
  18. progressBar: cc.ProgressBar = null
  19. //常规彩蛋领取
  20. @property(cc.Node)
  21. btnUsualGet: cc.Node = null
  22. //常规彩蛋灰
  23. @property(cc.Node)
  24. btnUsualGrey: cc.Node = null
  25. //彩蛋动画
  26. @property(sp.Skeleton)
  27. usualCaidanAni: sp.Skeleton = null
  28. //彩蛋动画
  29. @property(cc.Node)
  30. usualCaidanBg: cc.Node = null
  31. @property(cc.Node)
  32. par: cc.Node = null
  33. @property(cc.Node)
  34. hongbaoPart: cc.Node = null
  35. @property(cc.Node)
  36. finishPart: cc.Node = null
  37. @property(cc.Label)
  38. labFinish: cc.Label = null
  39. start() {
  40. }
  41. init() {
  42. this.hasTap = false
  43. this.usualCaidanBg.active = false
  44. this.usualCaidanAni.node.active = false
  45. this.usualCaidanAni.node.scale = 1
  46. this.usualCaidanAni.timeScale = 1
  47. this.usualCaidanAni.setAnimation(0, "idle", true)
  48. this.usualCaidanAni.node.y = 60
  49. if (UsualCaidanData.Instance.userUsualEggInfo) {
  50. if (UsualCaidanData.Instance.userUsualEggInfo.isEnd == 1) {
  51. this.labFinish.string = '彩蛋已完成!'
  52. this.finishPart.active = true
  53. this.hongbaoPart.active = false
  54. }
  55. else {
  56. if (UsualCaidanData.Instance.userUsualEggInfo.isOpen) {
  57. if (UsualCaidanData.Instance.userUsualEggInfo.isTodayFinished == 1) {
  58. this.labFinish.string = '今日已完成,明日再来哦!'
  59. this.finishPart.active = true
  60. this.hongbaoPart.active = false
  61. }
  62. else {
  63. UsualCaidanData.Instance.setDot('usualCaidanStart')
  64. this.usualCaidanAni.node.y = 1000
  65. cc.tween(this.usualCaidanAni.node)
  66. .delay(1)
  67. .to(0.2, { y: 60 })
  68. .start()
  69. this.finishPart.active = false
  70. this.hongbaoPart.active = true
  71. let usualCondition = ''
  72. let usualNeed = 0
  73. let usualCurPro = 0
  74. usualCurPro = UsualCaidanData.Instance.userUsualEggInfo.progress
  75. usualNeed = UsualCaidanData.Instance.userUsualEggInfo.videoTimes
  76. if (usualCurPro >= usualNeed) {
  77. usualCurPro = usualNeed
  78. this.btnUsualGet.active = true
  79. this.btnUsualGrey.active = false
  80. }
  81. else {
  82. this.btnUsualGet.active = false
  83. this.btnUsualGrey.active = true
  84. }
  85. usualCondition = `${usualCurPro}/${usualNeed}次`
  86. this.labUsualPro.string = usualCondition
  87. this.progressBar.progress = usualCurPro / usualNeed
  88. }
  89. }
  90. else {
  91. this.labFinish.string = '今日已完成,明日再来哦!'
  92. this.finishPart.active = true
  93. this.hongbaoPart.active = false
  94. }
  95. }
  96. }
  97. else {
  98. this.labFinish.string = '今日已完成,明日再来哦!'
  99. }
  100. }
  101. hasTap = false
  102. /** 常规彩蛋确定 */
  103. clickUsualCaidanSure() {
  104. GameM.audioM.playEffect(AUDIO_TYPE.button)
  105. let curPro = UsualCaidanData.Instance.userUsualEggInfo.progress
  106. let need = UsualCaidanData.Instance.userUsualEggInfo.videoTimes
  107. if (curPro >= need) {
  108. if (UsualCaidanData.Instance.userUsualEggInfo.isEnd == 0 && UsualCaidanData.Instance.userUsualEggInfo.isOpen == 1) {
  109. if (this.hasTap) {
  110. return
  111. }
  112. this.hasTap = true
  113. //提现
  114. this.usualCaidanBg.active = true
  115. this.usualCaidanAni.node.active = true
  116. cc.tween(this.usualCaidanAni.node)
  117. .to(0.5, { y: -100, scale: 1.4 })
  118. .delay(1)
  119. .call(() => {
  120. this.usualCaidanAni.timeScale = 0.5
  121. this.usualCaidanAni.setAnimation(0, "boom", false)
  122. this.scheduleOnce(() => {
  123. this.scheduleOnce(() => {
  124. this.hasTap = false
  125. }, 0.5)
  126. let money = 0
  127. UiM.Instance.onPanel(PANEL_NAME.CashProNode, false, () => {
  128. UiM.Instance.cashProNode.getComponent(CashPro).init(2, money)
  129. })
  130. }, 2)
  131. })
  132. .start()
  133. }
  134. else {
  135. EffectNode.instance.PlayTip('已完成所有彩蛋任务')
  136. }
  137. }
  138. else {
  139. EffectNode.instance.PlayTip('达成以上条件即可领奖')
  140. }
  141. }
  142. /** 完成奖励 */
  143. completeAward(index) {
  144. // let cfg = UsualCaidanData.Instance.getUsualEggTaskByIndex(index)
  145. // /**奖励类型
  146. // * 1.现金 2.铜币 3.转盘卡 4.夺宝券 5.加速卡 6.高等级车
  147. // * */
  148. // let num = '0'
  149. // let moneyType = 0
  150. // switch (cfg.rewardType) {
  151. // case 2:
  152. // moneyType = MONEY_TYPE.gold
  153. // num = cfg.rewardValue.toString()
  154. // break
  155. // case 3:
  156. // moneyType = MONEY_TYPE.turnTableCard
  157. // num = cfg.rewardValue.toString()
  158. // break
  159. // case 4:
  160. // moneyType = MONEY_TYPE.treasureCard
  161. // num = cfg.rewardValue.toString()
  162. // break
  163. // case 5:
  164. // moneyType = MONEY_TYPE.speedCard
  165. // num = cfg.rewardValue.toString()
  166. // break
  167. // case 6:
  168. // UiM.Instance.hallNode.getComponent(Main).getEggCar(cfg.rewardValue)
  169. // break
  170. // }
  171. // if (cfg.rewardType != 6) {
  172. // let gift = UiM.Instance.giftNode.getComponent(Gift)
  173. // gift.init(moneyType, num, null, false, 0, null)
  174. // UiM.Instance.giftNode.x = 0
  175. // UiM.Instance.giftNode.active = true
  176. // }
  177. }
  178. clickClose() {
  179. GameM.audioM.playEffect(AUDIO_TYPE.button)
  180. this.hideEff()
  181. }
  182. hideEff() {
  183. let main = UiM.Instance.hallNode.getComponent(Main)
  184. let pos1 = main.caidanBtn.node.position
  185. let pos = cc.v2(pos1.x, pos1.y)
  186. cc.tween(this.par).to(0.2, { scale: 0, position: pos }).call(() => {
  187. UiM.Instance.offPanel(PANEL_NAME.UsualCaidanNode)
  188. if (UsualCaidanData.Instance.userUsualEggInfo.isEnd == 1 || UsualCaidanData.Instance.userUsualEggInfo.isOpen == 0) {
  189. //彩蛋飞走
  190. UiM.Instance.hallNode.getComponent(Main).caidanFlyAway()
  191. }
  192. }).start();
  193. }
  194. }