204 lines
5.3 KiB
JavaScript
204 lines
5.3 KiB
JavaScript
|
|
"use strict";
|
||
|
|
cc._RF.push(module, 'd4b7ckw27pAa7nYYZnrjCRo', 'cmp.guildmarket.main');
|
||
|
|
// Scripts/mod/guild/marketplace/cmp/cmp.guildmarket.main.js
|
||
|
|
|
||
|
|
"use strict";
|
||
|
|
|
||
|
|
var GuildMarketMod = require("guildmarketplace_controller");
|
||
|
|
var BridgeWindow = require("bridge.window");
|
||
|
|
var MarketEvent = require("guildmarketplace_event");
|
||
|
|
var MarketConst = require("guildmarketplace_const");
|
||
|
|
var NxExpand = require("nx.fx.sv.expand");
|
||
|
|
var NxTogs = require("nx.fx.togs");
|
||
|
|
var BackPackConst = require("backpack_const");
|
||
|
|
var BackPackController = require("backpack_controller");
|
||
|
|
var NxSpine = require("nx.fx.spine");
|
||
|
|
var BTT = BackPackConst.item_sub_type;
|
||
|
|
// 标签页对应关系
|
||
|
|
var TabPage = [{
|
||
|
|
key: "PROPS",
|
||
|
|
tab: BTT.PROPS,
|
||
|
|
"goto": 2
|
||
|
|
}, {
|
||
|
|
key: "EQUIPS",
|
||
|
|
tab: BTT.EQUIPS,
|
||
|
|
"goto": 1
|
||
|
|
}, {
|
||
|
|
key: "HERO",
|
||
|
|
tab: BTT.HERO,
|
||
|
|
"goto": 0
|
||
|
|
}, {
|
||
|
|
key: "SPECIAL",
|
||
|
|
tab: BTT.SPECIAL,
|
||
|
|
"goto": 3
|
||
|
|
}];
|
||
|
|
cc.Class({
|
||
|
|
"extends": BridgeWindow,
|
||
|
|
properties: {
|
||
|
|
placeList: {
|
||
|
|
"default": null,
|
||
|
|
type: NxExpand
|
||
|
|
},
|
||
|
|
bagList: {
|
||
|
|
"default": null,
|
||
|
|
type: NxExpand
|
||
|
|
},
|
||
|
|
pushBtn: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
returnBtn: {
|
||
|
|
"default": null,
|
||
|
|
type: cc.Node
|
||
|
|
},
|
||
|
|
topTog: {
|
||
|
|
"default": null,
|
||
|
|
type: NxTogs
|
||
|
|
},
|
||
|
|
roleSp: {
|
||
|
|
"default": null,
|
||
|
|
type: NxSpine
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// LIFE-CYCLE CALLBACKS:
|
||
|
|
onLoad: function onLoad() {
|
||
|
|
this.mod = GuildMarketMod.getInstance();
|
||
|
|
this.pType = MarketConst.PanelType.eMarket;
|
||
|
|
this.bagType = 0;
|
||
|
|
this.topTog.posTog = this.onTogMenu.bind(this);
|
||
|
|
this.topTog.togTo(0);
|
||
|
|
//放入物品,並從背包中刪除
|
||
|
|
this.bindGEvent(EventId.DELETE_GOODS, this.onUpdateGoods.bind(this));
|
||
|
|
//倉庫初始化刷新物品
|
||
|
|
this.bindGEvent(MarketEvent.GUILD_MARKET_PLACE_ITEM_EVENT, this.updateMarketItems.bind(this));
|
||
|
|
},
|
||
|
|
//倉庫相関/////////////////
|
||
|
|
updateMarketItems: function updateMarketItems(item_list) {
|
||
|
|
if (this.pType == MarketConst.PanelType.eMarket) {
|
||
|
|
var sub_type = TabPage[this.bagType];
|
||
|
|
var use_list = [];
|
||
|
|
for (var i in item_list) {
|
||
|
|
var cfg = this.mod.getModel().getMarketCfg(item_list[i].base_id);
|
||
|
|
if (cfg && cfg.type == sub_type["goto"]) {
|
||
|
|
use_list.push(item_list[i]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.placeList.rebuild(use_list);
|
||
|
|
}
|
||
|
|
},
|
||
|
|
freshMarketItems: function freshMarketItems() {
|
||
|
|
var items = this.mod.getModel().getMarketItems();
|
||
|
|
this.updateMarketItems(items);
|
||
|
|
},
|
||
|
|
//倉庫相関/////////////////
|
||
|
|
//背包相関/////////////////
|
||
|
|
onTogMenu: function onTogMenu(bag_type) {
|
||
|
|
this.bagType = bag_type;
|
||
|
|
if (this.pType == MarketConst.PanelType.eMarket) {
|
||
|
|
this.freshMarketItems();
|
||
|
|
} else {
|
||
|
|
this.freshItemList();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 更新
|
||
|
|
onUpdateGoods: function onUpdateGoods(_bagCode, _itemList) {
|
||
|
|
// 不处理: 列表为空
|
||
|
|
if (nx.dt.objEmpty(_itemList)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 当前页有改变
|
||
|
|
var upd = false;
|
||
|
|
for (var k in _itemList) {
|
||
|
|
var tm = _itemList[k];
|
||
|
|
if (tm && tm.sub_type == this.bagType) {
|
||
|
|
upd = true;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// 强刷
|
||
|
|
if (upd) {
|
||
|
|
this.freshItemList();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// 背包更新
|
||
|
|
freshItemList: function freshItemList() {
|
||
|
|
var page = TabPage[this.bagType];
|
||
|
|
var model = BackPackController.getInstance().getModel();
|
||
|
|
var list = model.getAllBackPackArray(page.tab);
|
||
|
|
|
||
|
|
//清除所有聚焦
|
||
|
|
this.bagList.cleanFocus();
|
||
|
|
if (nx.dt.arrEmpty(list)) {
|
||
|
|
this.bagList.rebuild([]);
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
var sell_list = [];
|
||
|
|
for (var i in list) {
|
||
|
|
var is_allow = this.mod.getModel().isAllowSell(list[i].base_id);
|
||
|
|
if (is_allow) {
|
||
|
|
sell_list.push(list[i]);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
this.bagList.rebuild(sell_list);
|
||
|
|
},
|
||
|
|
// 选中切换
|
||
|
|
onFocusChanged: function onFocusChanged(_item) {
|
||
|
|
// 空
|
||
|
|
if (nx.dt.objEmpty(_item) || nx.dt.objEmpty(_item.mdata)) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
|
||
|
|
// 聚焦
|
||
|
|
this.bagList.cleanFocus();
|
||
|
|
this.bagList.addFocus(_item.index);
|
||
|
|
nx.bridge.createPanel("WndGuildMarketBuy", {
|
||
|
|
data: _item.mdata,
|
||
|
|
is_sell: true
|
||
|
|
});
|
||
|
|
},
|
||
|
|
//背包相関/////////////////
|
||
|
|
onOpenConfigs: function onOpenConfigs(params) {
|
||
|
|
var _this = this;
|
||
|
|
this.changePanel();
|
||
|
|
this.roleSp.load("resDB/models/H30045/show", function (_e) {
|
||
|
|
if (!_e) {
|
||
|
|
_this.roleSp.action("action1", true);
|
||
|
|
} else {
|
||
|
|
_this.roleSp.stop();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
},
|
||
|
|
changePanel: function changePanel() {
|
||
|
|
if (this.pType == MarketConst.PanelType.eMarket) {
|
||
|
|
// this.topTog.node.active = false;
|
||
|
|
this.placeList.node.active = true;
|
||
|
|
this.bagList.node.active = false;
|
||
|
|
this.pushBtn.active = true;
|
||
|
|
this.returnBtn.active = false;
|
||
|
|
this.mod.sender26900();
|
||
|
|
} else if (this.pType == MarketConst.PanelType.eBag) {
|
||
|
|
// this.topTog.node.active = true;
|
||
|
|
this.placeList.node.active = false;
|
||
|
|
this.bagList.node.active = true;
|
||
|
|
this.pushBtn.active = false;
|
||
|
|
this.returnBtn.active = true;
|
||
|
|
this.freshItemList();
|
||
|
|
}
|
||
|
|
},
|
||
|
|
touchPush: function touchPush() {
|
||
|
|
this.pType = MarketConst.PanelType.eBag;
|
||
|
|
this.changePanel();
|
||
|
|
},
|
||
|
|
touchReturn: function touchReturn() {
|
||
|
|
this.pType = MarketConst.PanelType.eMarket;
|
||
|
|
this.changePanel();
|
||
|
|
},
|
||
|
|
onPreClosed: function onPreClosed() {
|
||
|
|
this.placeList.rebuild([]);
|
||
|
|
this.bagList.rebuild([]);
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
cc._RF.pop();
|