import auto_obtainView from "../../../ui/uidata/Interface/auto_obtainView"; import UIBase from "../../../framework/ui/UIBase"; import UIHelp from "../../../framework/ui/UIHelp"; import UIAirdropItem from "./UIAirdropItem"; import itemDtManager from "../../../dataManager/itemDtManager"; import modelDtlManager from "../../../dataManager/modelDtlManager"; import gameData from "../../../gameLogic/utrl/gameData"; import gameEventManager from "../../../gameLogic/utrl/gameEventManager"; import {EVENT_TYPE} from "../../../gameLogic/utrl/gameEnum"; import AccountModel from "../../../data/Account/AccountModel"; import EventManager from "../../../framework/event/EventManager"; const {ccclass, menu, property} = cc._decorator; @ccclass @menu("UI/Interface/UIObtainView") export default class UIObtainView extends UIBase { ui: auto_obtainView = null; protected static prefabUrl = "Interface/obtainView"; protected static className = "UIObtainView"; @property(cc.Node) contentNode: cc.Node = null; @property(cc.Node) optionNode: cc.Node = null; @property(cc.Node) btn_doubleNode: cc.Node = null; @property(cc.Node) btnCollectNode: cc.Node = null; @property(cc.Prefab) itemPrefab: cc.Prefab = null; //是模块的子节点 private isChild = false; onUILoad() { // this.ui = this.node.addComponent(auto_obtainView); } private isSign = false; private param: { ids: [], nums: [], isHero?, modelIds?, type? } = null; onShow() { } /** * * @param params ids item的id nums 数量 isHero 是否全部是英雄 modelIds英雄id */ onInit(params: []) { // @ts-ignore let param: { ids: [], nums: [], isHero?, modelIds?, type? } = params[0]; this.param = param; let isHero = false; let ids = param.ids; let nums = param.nums; let modelIds = []; if (nums.length != ids.length) { console.error("长度不一致!"); return; } if (param.hasOwnProperty('isHero')) { isHero = param.isHero; } if (param.hasOwnProperty('modelIds')) { modelIds = param.modelIds; } if (param.type == 'sign') { this.refreshSign(); } ids.forEach((value, index) => { const node = cc.instantiate(this.itemPrefab); const item = node.getComponent(UIAirdropItem); this.contentNode.addChild(node); if (isHero) { const modelInfo = modelDtlManager.getDataByID(value); item.refreshRole({ itemname: modelInfo.desc, nums: 1, roleRes: modelInfo.modelname }); } else { const data = itemDtManager.getDataByID(value); let temp = {itemname: data.itemname, nums: nums[index], resPath1: data.resPath1} item.refresh(temp); } }) if (modelIds.length == 0) { return; } modelIds.forEach((value, index) => { const node = cc.instantiate(this.itemPrefab); const item = node.getComponent(UIAirdropItem); this.contentNode.addChild(node); const modelInfo = modelDtlManager.getDataByID(value); item.refreshRole({ itemname: modelInfo.desc, nums: 1, roleRes: modelInfo.modelname }); }) } refreshSign() { this.isSign = true; this.optionNode.active = true; this.btn_doubleNode.active = true; this.btnCollectNode.active = false; } showByWelfare(infos: any[]) { this.isChild = true; for (let viewInfo of infos) { if (!viewInfo) { continue; } const node = cc.instantiate(this.itemPrefab); const itemComponent = node.getComponent(UIAirdropItem); const data = itemDtManager.getDataByID(viewInfo.itemID); //英雄 if (viewInfo.type == 5) { const modelInfo = modelDtlManager.getDataByID(viewInfo.modelID); itemComponent.refreshRole({ itemname: viewInfo.name, nums: viewInfo.nums, roleRes: modelInfo.modelname }); } else { itemComponent.refresh({itemname: data.itemname, nums: viewInfo.nums, resPath1: data.resPath1}); } this.contentNode.addChild(node) } } onHide() { } onStart() { } clickOption() { } clickDouble() { if (!this.isSign) { return; } this.doDouble(); } clickClose() { if (this.isChild) { this.node.destroy(); return; } this.onClose(); } onClose() { EventManager.emit(EVENT_TYPE.closeObtain) UIHelp.CloseUI(UIObtainView); } private doDouble() { let self = this const params = { payType: zjSdk?.TYPE.VIDEO, success() { self.doubleReward(); }, fail() { // self.doSearch(); } }; zjSdk?.doPay(params); this.clickClose(); } private doubleReward() { const itemArr = this.param.ids; const numArr = this.param.nums; const modelIds = this.param.modelIds; itemArr.forEach((value, index) => { const data = itemDtManager.getDataByID(value); let damage: number = 0; // (食物1,药品2,子弹3,近战武器4, 远程武器5) switch (data.type) { case 1: gameData.curPowerNum += numArr[index]; break; case 2: break; case 3: gameData.curBulletNum += numArr[index]; break; case 4: for (let i = 0; i < numArr[index]; i++) { damage = itemDtManager.getDataByID(data.id).value; gameEventManager.emit(EVENT_TYPE.ADD_WEAPONS, data.id, damage, true); } break; case 5: for (let i = 0; i < numArr[index]; i++) { damage = itemDtManager.getDataByID(data.id).value; gameEventManager.emit(EVENT_TYPE.ADD_WEAPONS, data.id, damage, false); } break; } }) if (modelIds.length !== 0 && modelIds[0] != 52) { const fixedRoleIds = AccountModel.singleInstance.fixed_role_ids; fixedRoleIds.push(modelIds[0]) AccountModel.singleInstance.fixed_role_ids = fixedRoleIds; gameEventManager.emit(EVENT_TYPE.ADD_HERO_BY_ID, modelIds[0]); } } }