2025-04-24 17:03:28 +08:00

226 lines
5.8 KiB
JavaScript

import GameModel from "../../ts/core/GameModel";
import SKDataUtil from "../../ts/gear_2.3.4/util/SKDataUtil";
import GameUtil from "../../ts/core/GameUtil";
import VIPUtil from "../../ts/game/role/VIPUtil";
import MyModel from "../../ts/core/MyModel";
var SetRoleTitleUIMgr = require('../../game/SetRoleTitleUIMgr');
let CMainPlayerInfo = require('../../game/MainPlayerInfo');
cc.Class({
extends: cc.Component,
properties: {
content: cc.Node,
emojiAtlas: cc.SpriteAtlas,
propItem: cc.Prefab,
petItem: cc.Prefab,
roleTitleItem: cc.Prefab,
chatTaskItem: cc.Prefab,
chatEmotionItem: cc.Prefab,
emotionScrollView: cc.ScrollView,
propScrollView: cc.ScrollView,
petScrollView: cc.ScrollView,
taskScrollView: cc.ScrollView,
appelScrollView: cc.ScrollView,
},
onBottomToggle(event, type) {
// console.log("onBottomToggle")
let contents = this.content.children;
for (let i = 0; i < contents.length; i++) {
contents[i].active = false;
}
if (type == "emotion") {
this.emotionScrollView.node.active = true;
}
else if (type == "prop") {
this.propScrollView.node.active = true;
}
else if (type == "mount") {
this.petScrollView.node.active = true;
}
else if (type == "task") {
this.taskScrollView.node.active = true;
}
else if (type == "roletitle") {
this.appelScrollView.node.active = true;
}
},
initEmotion() {
// cc.log("初始化表情包");
this.isEmojiShow = false;
this.emotionScrollView.content.removeAllChildren();
for (let index = 0; index < 179; index++) {
let biaoqing = cc.instantiate(this.chatEmotionItem);
let data = { index: index };
biaoqing.getComponent("ChatEmotionItem").loadInfo(data);
if (biaoqing.getComponent("ChatEmotionItem").isEmpty) continue;
biaoqing.parent = this.emotionScrollView.content;
biaoqing.getComponent('ChatEmotionItem').setCallback(this.onPropCallback.bind(this));
}
},
initProp() {
this.propScrollView.content.removeAllChildren();
let list = [];
if (GameModel.equipData) {
let equipData = GameModel.equipData;
// cc.log(equipData);
for (const equip of equipData.list) {
if (equipData.info[equip]) {
let info = {
itemid: equip,
info: GameModel.equipData.info[equip],
type: 1
};
list.push(info);
}
}
for (let key in equipData.use) {
if (equipData.info[equipData.use[key]]) {
let info = {
itemid: equipData.use[key],
info: GameModel.equipData.info[equipData.use[key]],
type: 1
};
list.push(info);
}
}
}
let itemList = GameModel.player.itemList;
for (let itemId in itemList) {
let count = SKDataUtil.valueForKey(GameModel.player.itemList, itemId);
if (count != null && count > 0) {
let info = {
itemid: itemId,
count: count,
type: 0
};
list.push(info);
}
}
// cc.log(list);
let maxLength = list.length;
for (let index = 0; index < maxLength; index++) {
let item = null;
item = cc.instantiate(this.propItem);
item.parent = this.propScrollView.content;
item.getComponent('ChatPropItem').setData(list[index]);
item.getComponent('ChatPropItem').setCallback(this.onPropCallback.bind(this));
}
},
initPet() {
this.petScrollView.content.removeAllChildren();
// cc.log(this.mPetIndex);
if (this.mPetIndex == 0) {
let petInfo = GameModel.player.petInfo;
for (let index = 0; index < petInfo.list.length; index++) {
let pinfo = petInfo.list[index];
if (!pinfo || !pinfo.petid) {
cc.warn(`$警告:召喚獸面板加載列表數據錯誤${index}`);
continue;
}
pinfo.mType = 3;
let item = cc.instantiate(this.petItem);
item.parent = this.petScrollView.content;
item.getComponent('ChatPetItem').loadInfo(pinfo);
item.getComponent('ChatPetItem').setCallback(this.onPropCallback.bind(this));
}
} else {
let list = MyModel.shared.horseList.dict;
// cc.log(list);
for (let index in list) {
let pinfo = list[index];
if (!pinfo) {
cc.warn(`$警告:坐騎面板加載列表數據錯誤${index}`);
continue;
}
pinfo.mType = 4;
let item = cc.instantiate(this.petItem);
item.parent = this.petScrollView.content;
item.getComponent('ChatPetItem').loadInfo(pinfo);
item.getComponent('ChatPetItem').setCallback(this.onPropCallback.bind(this));
}
}
},
onTogglePetClick(event, petIndex) {
this.mPetIndex = petIndex;
this.initPet();
},
initRoleTitle() {
let roleTitles = SetRoleTitleUIMgr.roleTitles;
// cc.log(roleTitles);
this.appelScrollView.content.removeAllChildren();
for (let index = 0; index < roleTitles.length; index++) {
let pinfo = roleTitles[index];
if (!pinfo) {
cc.warn(`$警告:加載列表數據錯誤${index}`);
continue;
}
let item = cc.instantiate(this.roleTitleItem);
item.parent = this.appelScrollView.content;
item.getComponent('ChatRoleTitleItem').loadInfo(pinfo);
item.getComponent('ChatRoleTitleItem').setCallback(this.onPropCallback.bind(this));
}
},
initTask() {
let tasks = CMainPlayerInfo.vecTaskState;
// cc.log(tasks);
this.taskScrollView.content.removeAllChildren();
for (let index = 0; index < tasks.length; index++) {
let pinfo = tasks[index];
if (!pinfo) {
cc.warn(`$警告:加載列表數據錯誤${index}`);
continue;
}
let item = cc.instantiate(this.chatTaskItem);
item.parent = this.taskScrollView.content;
item.getComponent('ChatTaskItem').loadInfo(pinfo);
item.getComponent('ChatTaskItem').setCallback(this.onPropCallback.bind(this));
}
},
setCallback(callback) {
this.mCallback = callback;
},
onPropCallback(data) {
// cc.log(data);
if (this.mCallback) {
this.mCallback(data);
}
},
// LIFE-CYCLE CALLBACKS:
onLoad() {
this.mPropIndex = 0;
this.mPetIndex = 0;
this.initEmotion();
this.initProp();
this.initPet();
this.initRoleTitle();
this.initTask();
},
start() {
},
// update (dt) {},
});