123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- import { Color, find, Node, sp, Sprite, _decorator } from 'cc';
- import { BaseLayer } from '../../common/BaseLayer';
- import { utilTools } from '../../utils/utilTools';
- import { constants } from '../data/constants';
- import { ItemLayer } from '../item/ItemLayer';
- import { designManager } from '../manager/designManager';
- import { iconManager } from '../manager/iconManager';
- import { levelManager } from '../manager/levelManager';
- import { sdkManager } from '../manager/sdkManager';
- import { playerModel } from '../model/playerModel';
- const { ccclass, property } = _decorator;
- @ccclass('SkinLayer')
- export class SkinLayer extends BaseLayer {
- roleBodySkeleon: sp.Skeleton;
- itemList: Node;
- btnGet: Node;
- onLoad() {
- super.onLoad();
- this.itemList = this.getNodeByPath("listBg/list");
- this.itemList.addComponent(ItemLayer);
- this.btnGet = this.getNodeByPath("btnGet");
- this.roleBodySkeleon = this.getNodeByPath("tribe/body").getComponent(sp.Skeleton);
- this.initUI();
- }
- initUI() {
- let tb = designManager.instance.getTable(constants.tableName.equip);
- this.itemList.getComponent(ItemLayer).initUI(this, tb, this.refreshEquipItem.bind(this));
- this.refreshRoleBodyLayer();
- this.refreshBtnGet();
- }
- refreshBtnGet() {
- this.btnGet.active = true;
- let tb = designManager.instance.getTable(constants.tableName.equip);
- for (let i in tb) {
- let row = tb[i];
- if (playerModel.instance.getEquipIdArr().indexOf(row.id) == -1) {
- return;
- }
- }
- this.btnGet.active = false;
- }
- refreshRoleBodyLayer() {
- let skinName = levelManager.instance.getSkinName(playerModel.instance.getEquipWeaponId(), playerModel.instance.getEquipDressId());
- this.roleBodySkeleon.setSkin(skinName);
- }
- refreshEquipItem(itemUI: Node, row: any) {
- let iconNode = find("icon", itemUI);
- iconManager.instance.setSprite(iconNode, row.icon);
- let getBg = find("getBg", itemUI);
- let noBg = find("noBg", itemUI);
- let wenhao = find("wenhao", itemUI);
- if (playerModel.instance.getEquipIdArr().indexOf(row.id) == -1) {
- // 还未获得
- noBg.active = true;
- getBg.active = false;
- wenhao.active = true;
- iconNode.getComponent(Sprite).color = Color.BLACK;
- } else {
- // 已获得
- getBg.active = true;
- noBg.active = false;
- wenhao.active = false;
- iconNode.getComponent(Sprite).color = Color.WHITE;
- }
- let choseWeapon = find("choseWeapon", itemUI);
- let choseDress = find("choseDress", itemUI);
- choseWeapon.active = false;
- choseDress.active = false;
- if (row.type == constants.equipTypes.weapon) {
- if (playerModel.instance.getEquipWeaponId() == row.id) {
- choseWeapon.active = true;
- }
- } else if (row.type == constants.equipTypes.dress) {
- if (playerModel.instance.getEquipDressId() == row.id) {
- choseDress.active = true;
- }
- }
- }
- onButtonClick(node: Node, name: string) {
- switch (name) {
- case "equipItem":
- this.onClickEquipItem(node);
- break;
- case "btnGet":
- this.onClickBtnGet(node);
- break;
- case "btnBack":
- this.onClickBtnBack(node);
- break;
- default:
- break;
- }
- }
- onClickEquipItem(node: Node) {
- let row = node["item"];
- if (playerModel.instance.getEquipIdArr().indexOf(row.id) == -1) {
- return;
- }
- if (row.type == constants.equipTypes.weapon) {
- playerModel.instance.setEquipWeaponId(row.id);
- } else if (row.type == constants.equipTypes.dress) {
- playerModel.instance.setEquipDressId(row.id);
- }
- this.itemList.getComponent(ItemLayer).refreshUI();
- this.refreshRoleBodyLayer();
- }
- onClickBtnGet(node: Node) {
- let tb = designManager.instance.getTable(constants.tableName.equip);
- let idArr = [];
- for (let i in tb) {
- let row = tb[i];
- if (playerModel.instance.getEquipIdArr().indexOf(row.id) != -1) {
- continue;
- }
- idArr.push(row.id);
- }
- if (idArr.length <= 0) {
- return;
- }
- sdkManager.instance.sendEvent("观看激励视频-解锁皮肤");
- sdkManager.instance.openAd((st: number) => {
- if (st != 1) {
- return;
- }
- let id = utilTools.getRandomItemByArr(idArr);
- playerModel.instance.addEquipId(id);
- this.itemList.getComponent(ItemLayer).refreshItemUIById(id);
- this.refreshBtnGet();
- sdkManager.instance.sendEvent("观看完激励视频-解锁皮肤");
- });
- }
- onClickBtnBack(node: Node) {
- this.closeLayer();
- }
- }
|