NewPackOpenedLayer.ts 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { _decorator, Component, Node, MeshRenderer, instantiate } from 'cc';
  2. import platformSystem from '../platform/platformSystem';
  3. import BasePanel from '../core/component/BasePanel';
  4. import { audioMgr } from '../core/manager/AudioManager';
  5. import Data from '../core/manager/Data';
  6. import { ResUtil } from '../core/utils/ResUtil';
  7. import { GameConst } from '../core/common/GameConst';
  8. import { levelsData } from '../user/LevelsData';
  9. const { ccclass, property } = _decorator;
  10. @ccclass('NewPackOpenedLayer')
  11. export class NewPackOpenedLayer extends BasePanel {
  12. onBtnClicked(event: any, customEventData: any) {
  13. audioMgr.playOneShot(GameConst.audios.btnclick);
  14. this.close();
  15. }
  16. show() {
  17. platformSystem.platform.showInterstitialAd();
  18. let node_items = this.GetGameObject("node_items");
  19. node_items.children.map(a => a.active = false);
  20. let ids = [];
  21. let OpenItems:Array<any> = levelsData.getModesNames();
  22. for (var i = Data.user.openIndex; i < Data.user.openIndex + 8 && i < OpenItems.length; ++i) {
  23. ids.push(OpenItems[i]);
  24. }
  25. for (var i = 0; i < node_items.children.length; ++i) {
  26. let child = node_items.children[i];
  27. child.active = true;
  28. this.setMesh(child, ids[i]);
  29. }
  30. Data.user.openIndex += 8;
  31. Data.user.openIndex = Math.min(Data.user.openIndex, OpenItems.length - 1);
  32. Data.save();
  33. }
  34. private setMesh(node: Node, name: string) {
  35. ResUtil.loadModelPrefabName(name).then((tmp: Node) => {
  36. let render = tmp.getComponentInChildren(MeshRenderer) as MeshRenderer;
  37. let mesh = render.mesh;
  38. node.scale = render.node.scale.multiplyScalar(100);
  39. node.getComponent(MeshRenderer).mesh = mesh;
  40. tmp.destroy();
  41. })
  42. }
  43. }