import SKUIUtil from "../ts/gear_2.3.4/util/SKUIUtil"; import ItemUtil from "../ts/core/ItemUtil"; cc.Class({ extends: cc.Component, properties: { itemBg: cc.Node, itemIcon: cc.Sprite, transformationType: cc.Sprite, transformationChange: cc.Sprite, itemCount: cc.Label, selectedNode: cc.Node, itemDetail: cc.Prefab, EquipItemDetail: cc.Prefab, }, onLoad() { // this.node.on(cc.Node.EventType.TOUCH_START, this.onTouched.bind(this)); // this.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouched.bind(this)); // this.node.on(cc.Node.EventType.TOUCH_END, this.onTouched.bind(this)); // this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouched.bind(this)); // this.onTouch = false; this.panelLogic = null; this.type = 0; this.isequip = false; this.count = 0; this.itemBg.active = false; this.selectedNode.active = false; this.itemInfo = null; this.node.on(cc.Node.EventType.TOUCH_START, this.onTouched.bind(this)); this.node.on(cc.Node.EventType.TOUCH_MOVE, this.onTouched.bind(this)); this.node.on(cc.Node.EventType.TOUCH_END, this.onTouched.bind(this)); this.node.on(cc.Node.EventType.TOUCH_CANCEL, this.onTouched.bind(this)); }, loadInfo(itemid, itemcount) { this.onTouch = false; this.itemIcon.spriteFrame = null; this.itemBg.active = false; this.itemInfo = null this.itemCount.string = "" this.itemBg.getChildByName("maskIcon").getComponent(cc.Sprite).spriteFrame = null; let data = ItemUtil.getItemData(itemid); if (data) { this.count = itemcount; this.itemInfo = data; this.itemInfo.count = itemcount; this.itemBg.active = true; this.itemCount.string = itemcount; this.itemIcon.spriteFrame = ItemUtil.getItemIconBy(this.itemInfo); this.itemBg.getChildByName("frame").color = new cc.Color(112, 255, 115) if (data.type == 15) { if (data.level == 1003) { // 橘色 var typeArr = ["9CC2C05E", "44D85091", "4988966A"]//強 抗 物 this.transformationType.spriteFrame = ItemUtil.getItemIcon(typeArr[data.attrType - 1]); this.transformationChange.spriteFrame = ItemUtil.getItemIcon("743CB1F3") } else if (data.level == 1002) { // 紫色 var typeArr = ["A1519957", "7844A6C6", "A71F8CC7"]//強 抗 物 this.transformationType.spriteFrame = ItemUtil.getItemIcon(typeArr[data.attrType - 1]); this.transformationChange.spriteFrame = null } else if (data.level == 1001) { // 藍色 var typeArr = ["905A9C64", "56878EC7", "CD606498"]//強 抗 物 this.transformationType.spriteFrame = ItemUtil.getItemIcon(typeArr[data.attrType - 1]); this.transformationChange.spriteFrame = ItemUtil.getItemIcon("4FF0E3B9") } else if (data.level == 1000) { // 綠色 var typeArr = ["ECAE61A5", "6A45551C", "71EA9A95"]//強 抗 物 this.transformationType.spriteFrame = ItemUtil.getItemIcon(typeArr[data.attrType - 1]); this.transformationChange.spriteFrame = ItemUtil.getItemIcon("CE379C20") } else { return } this.transformationType.node.active = true; this.transformationChange.node.active = true; } } }, loadEquipInfo(info) { this.onTouch = false; this.itemBg.active = false; this.itemIcon.spriteFrame = null; this.itemCount.string = "" this.itemBg.getChildByName("maskIcon").getComponent(cc.Sprite).spriteFrame = null; this.itemInfo = null if (info == null) { return; } this.itemBg.getChildByName("frame").color = new cc.Color(255, 94, 97) this.itemBg.active = true; this.itemInfo = info; this.itemIcon.spriteFrame = ItemUtil.getItemIconBy(info); this.itemCount.string = info.Grade; if (info.flag == 1) { this.itemBg.getChildByName("maskIcon").getComponent(cc.Sprite).spriteFrame = ItemUtil.getItemIconBy({ icon: 1000 }); this.itemCount.string = "" } }, selected() { this.selectedNode.active = true; }, unSelected() { this.selectedNode.active = false; }, onTouched(e) { if (this.itemInfo == null) return if (e.type == cc.Node.EventType.TOUCH_START) { this.onTouch = true; this.beginPos = e.getLocation(); e.target.stopAllActions(); e.target.runAction(cc.scaleTo(0.1, 0.9)); this.scheduleOnce(this.showDetailInfo, 1); } else if (e.type == cc.Node.EventType.TOUCH_MOVE) { if (this.onTouch && SKUIUtil.distanceByVec2(this.beginPos, e.getLocation()) > 5) { this.onTouch = false; e.target.stopAllActions(); e.target.runAction(cc.scaleTo(0.1, 1)); this.unschedule(this.showDetailInfo); } } else if (e.type == cc.Node.EventType.TOUCH_CANCEL) { e.target.stopAllActions(); e.target.runAction(cc.scaleTo(0.1, 1)); this.unschedule(this.showDetailInfo); } else if (e.type == cc.Node.EventType.TOUCH_END) { e.target.stopAllActions(); e.target.runAction(cc.scaleTo(0.1, 1)); this.unschedule(this.showDetailInfo); if (!this.onTouch) { return; } if (this.panelLogic) { if (this.itemInfo != null) { if (this.isequip) { this.panelLogic.changeEquipType(this.type, this.itemInfo); } else { this.panelLogic.changeItemType(this.type, this.itemInfo.id); } } } } }, showDetailInfo() { this.onTouch = false; if (this.itemInfo != null) { let canvas = cc.find('Canvas'); // 是否為裝備 if (this.isequip) { // 是否為佩飾 if (ItemUtil.isBaldric(this.itemInfo.EIndex)) { if (!ItemUtil.isShowDetail()) { ItemUtil.showMenu = false; ItemUtil.showAccessDetail(this.itemInfo, false); } } else { if (canvas.getChildByName('EquipItemDetail') == null) { let detail = cc.instantiate(this.EquipItemDetail); detail.parent = canvas; detail.name = 'EquipItemDetail'; detail.getComponent('EquipItemDetail').loadInfo(this.itemInfo); } } } else { if (canvas.getChildByName('BagItemDetail') == null) { let detail = cc.instantiate(this.itemDetail); detail.parent = canvas; detail.name = 'BagItemDetail'; detail.getComponent('BagItemDetail').loadInfo(this.itemInfo); } } } } });