ShopSkinItem.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Learn TypeScript:
  2. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/typescript.html
  3. // Learn Attribute:
  4. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/reference/attributes.html
  5. // Learn life-cycle callbacks:
  6. // - https://docs.cocos.com/creator/2.4/manual/en/scripting/life-cycle-callbacks.html
  7. import { DataMgr } from "../manager/DataMgr";
  8. import Plat from "../utils/Palt";
  9. import PrefabUtil from "../utils/manager/PrefabUtil";
  10. import ShopUI from "./ShopUI";
  11. const { ccclass, property } = cc._decorator;
  12. @ccclass
  13. export default class ShopSkinItem extends cc.Component {
  14. @property(cc.Sprite)
  15. sprite: cc.Sprite = null;
  16. @property(cc.Node)
  17. lockNode: cc.Node = null;
  18. @property(cc.Node)
  19. useNode: cc.Node = null;
  20. @property(cc.Node)
  21. usingNode: cc.Node = null;
  22. @property(cc.Integer)
  23. id: number = 0
  24. setData() {
  25. cc.resources.load("/cat/cat_skin_" + this.id, cc.SpriteFrame, (error, frame) => {
  26. this.sprite.spriteFrame = frame
  27. })
  28. const isUnlock = DataMgr.ins.isUnlockSkin(this.id)
  29. this.usingNode.active = false
  30. this.useNode.active = false;
  31. this.lockNode.active = false;
  32. if (!isUnlock) {
  33. this.useNode.active = false;
  34. this.lockNode.active = true;
  35. } else {
  36. this.lockNode.active = false;
  37. const isuse = DataMgr.ins.isUseSkin(this.id);
  38. if (isuse) {
  39. this.useNode.active = false
  40. this.usingNode.active = true
  41. } else {
  42. this.useNode.active = true
  43. this.usingNode.active = false
  44. }
  45. }
  46. }
  47. onClickUnlock() {
  48. //todo ad
  49. Plat.showRewardVideo((success: boolean) => {
  50. if (success) {
  51. DataMgr.ins.unlockSkin(this.id)
  52. ShopUI.inst.updateNodesData()
  53. }
  54. })
  55. }
  56. onClickUse() {
  57. DataMgr.ins.setSkin(this.id)
  58. ShopUI.inst.updateNodesData()
  59. }
  60. // update (dt) {}
  61. }