664 lines
23 KiB
TypeScript
664 lines
23 KiB
TypeScript
import GameModel from "../core/GameModel";
|
||
import ItemUtil from "../core/ItemUtil";
|
||
import MsgAlert from "../game/msg/MsgAlert";
|
||
import FGAlert from "../gear_2.3.4/fgui/FGAlert";
|
||
import FGUtil from "../gear_2.3.4/fgui/FGUtil";
|
||
import SKDataUtil from "../gear_2.3.4/util/SKDataUtil";
|
||
import SKUIUtil from "../gear_2.3.4/util/SKUIUtil";
|
||
|
||
const { ccclass, property } = cc._decorator;
|
||
export default class Contact extends cc.Component {
|
||
|
||
/**
|
||
* 社交單例實例
|
||
*/
|
||
public static Instance: Contact = null;
|
||
/**
|
||
* 社交面板
|
||
*/
|
||
contactPanel: fgui.GComponent = null;
|
||
/**
|
||
* 需要加載的預製體
|
||
*/
|
||
prefabObject: any = {};
|
||
/**
|
||
* 幫派郵件數據
|
||
*/
|
||
bangEmailData: any = [];
|
||
/**
|
||
* 普通郵件數據
|
||
*/
|
||
NormalEmailData: any = []
|
||
/**
|
||
* 備份郵件數據(星標和非星標交替備份
|
||
*/
|
||
backupsEmailData: any = []
|
||
/**
|
||
* 當前是否展示的為星標郵件
|
||
*/
|
||
isShowStarEmail: boolean = false;
|
||
/**
|
||
* 選擇的郵件
|
||
*/
|
||
selectEmailIdx: number = 0;
|
||
/**
|
||
* 阻止點擊
|
||
*/
|
||
stopTap: boolean = false;
|
||
|
||
onLoad() {
|
||
if (Contact.Instance === null) {
|
||
Contact.Instance = this;
|
||
this.loadPrefab();
|
||
} else {
|
||
this.destroy();
|
||
return;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 加載預製體
|
||
*/
|
||
loadPrefab() {
|
||
// 加載所需的預製體
|
||
var prefabList = [
|
||
// { url: "Prefabs/UIRole", name: "UIRole" },
|
||
]
|
||
this.prefabObject = {}
|
||
for (let item of prefabList) {
|
||
cc.loader.loadRes(item.url, cc.Prefab, (err, prefab) => {
|
||
if (err)
|
||
console.warn(err);
|
||
else {
|
||
this.prefabObject[item.name] = prefab;
|
||
}
|
||
})
|
||
}
|
||
}
|
||
|
||
openContactPanel(list: any = [], refresh: Boolean = false) {
|
||
if (!this.contactPanel || (this.contactPanel && !this.contactPanel.node && !SKUIUtil.isValid(this.contactPanel.node))) {
|
||
this.contactPanel = FGUtil.create("main_ui", "contact_panel");
|
||
FGUtil.root().addChild(this.contactPanel);
|
||
this.contactPanel.makeFullScreen();
|
||
}
|
||
|
||
var mask = FGUtil.getComponent(this.contactPanel, "mask");
|
||
var close = FGUtil.getButton(this.contactPanel, "alert/close");
|
||
this.pushCloseEvent(mask, this.contactPanel, () => { this.unscheduleAllCallbacks(); });
|
||
this.pushCloseEvent(close, this.contactPanel, () => { this.unscheduleAllCallbacks(); });
|
||
|
||
if (!refresh) {
|
||
GameModel.send("c2s_mail_list", {})
|
||
return;
|
||
}
|
||
|
||
if (list.length > 0) {
|
||
this.NormalEmailData = [];
|
||
this.backupsEmailData = [];
|
||
this.isShowStarEmail = false
|
||
this.NormalEmailData = SKDataUtil.clone(list);
|
||
}
|
||
|
||
// 處理郵件
|
||
this.handleEmailData();
|
||
|
||
FGUtil.getButton(this.contactPanel, "alert/n136").onClick(this.openFriend, this)
|
||
FGUtil.getButton(this.contactPanel, "alert/n137").onClick(this.tipNo, this)
|
||
|
||
// 郵件左側列表
|
||
let emailList = FGUtil.getList(this.contactPanel, "alert/emailList");
|
||
// 設置初始化方法
|
||
emailList.itemRenderer = this.initEmailItem.bind(this);
|
||
// 虛擬列表
|
||
emailList.setVirtual();
|
||
emailList.numItems = this.NormalEmailData.length;
|
||
|
||
// 幫派郵件內容列表
|
||
let bangContentList = FGUtil.getList(this.contactPanel, "alert/bang_content");
|
||
// 設置初始化方法
|
||
bangContentList.itemRenderer = this.initBangEmailContent.bind(this);
|
||
// 虛擬列表
|
||
bangContentList.setVirtual();
|
||
|
||
// 一鍵領取
|
||
let oneKeyReceiveBtn = FGUtil.getButton(this.contactPanel, "alert/allReward");
|
||
oneKeyReceiveBtn.clearClick();
|
||
oneKeyReceiveBtn.onClick(this.oneKeyReceiveAllReward, this);
|
||
// 一鍵刪除
|
||
let oneKeyDeleteeBtn = FGUtil.getButton(this.contactPanel, "alert/oneKeyDel");
|
||
oneKeyDeleteeBtn.clearClick();
|
||
oneKeyDeleteeBtn.onClick(this.oneKeyDeleteAllEmail, this);
|
||
|
||
// 顯示星標郵件
|
||
FGUtil.getComponent(this.contactPanel, "alert/n75").clearClick();
|
||
FGUtil.getComponent(this.contactPanel, "alert/n75").onClick(() => {
|
||
if (this.backupsEmailData.length == 0)
|
||
MsgAlert.addMsg("大俠,星標郵件數量為0~")
|
||
else
|
||
this.exchangeEmailData()
|
||
})
|
||
// 顯示非星標郵件
|
||
FGUtil.getComponent(this.contactPanel, "alert/back").clearClick();
|
||
FGUtil.getComponent(this.contactPanel, "alert/back").onClick(() => {
|
||
this.exchangeEmailData()
|
||
})
|
||
if (this.NormalEmailData.length == 0) {
|
||
// 沒有郵件
|
||
FGUtil.getControl(this.contactPanel, "alert/noEmail").selectedIndex = 1;
|
||
} else {
|
||
// 有郵件
|
||
FGUtil.getControl(this.contactPanel, "alert/noEmail").selectedIndex = 0;
|
||
this.onEmailClick(null, 0);
|
||
}
|
||
|
||
// 調試功能
|
||
// var bangEmailBtn = FGUtil.getComponent(this.contactPanel, "alert/n95");
|
||
// bangEmailBtn.onClick(this.createBangEmail, this)
|
||
// var norEmailBtn = FGUtil.getComponent(this.contactPanel, "alert/n96");
|
||
// norEmailBtn.onClick(this.createNormalEmail, this)
|
||
// var rewardEmailBtn = FGUtil.getComponent(this.contactPanel, "alert/n121");
|
||
// rewardEmailBtn.onClick(this.createRewardEmail, this)
|
||
// var delAllEmailBtn = FGUtil.getComponent(this.contactPanel, "alert/n122");
|
||
// delAllEmailBtn.onClick(() => {
|
||
// this.bangEmailData = [];
|
||
// this.NormalEmailData = [];
|
||
// emailList.numItems = 0;
|
||
// bangContentList.numItems = 0;
|
||
// }, this)
|
||
|
||
}
|
||
|
||
checkHasNoRead(list) {
|
||
if (list.length <= 0) return
|
||
|
||
this.NormalEmailData = [];
|
||
this.backupsEmailData = [];
|
||
this.isShowStarEmail = false
|
||
this.NormalEmailData = SKDataUtil.clone(list);
|
||
|
||
// 處理郵件
|
||
this.handleEmailData();
|
||
|
||
var needTip = false
|
||
for (let i = this.NormalEmailData.length - 1; i >= 0; i--) {
|
||
if (this.NormalEmailData[i].type && this.NormalEmailData[i].type != "email2") {
|
||
needTip = true
|
||
}
|
||
}
|
||
if (needTip) {
|
||
var fp = cc.find("Canvas/MainUI/FriendPanel")
|
||
if (fp) {
|
||
let lg = fp.getComponent("FriendPanel")
|
||
if (lg)
|
||
lg.showEmailTip()
|
||
} else {
|
||
if (!SKUIUtil.isFGUIValid(this.contactPanel)) {
|
||
var mainui = cc.find("Canvas/MainUI")
|
||
if (mainui) {
|
||
let mlg = mainui.getComponent("MainUI")
|
||
if (mlg)
|
||
mlg.friendAddTip()
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 處理星標和非星標數據,默認是非星標
|
||
*/
|
||
handleEmailData() {
|
||
for (let i = this.NormalEmailData.length - 1; i >= 0; i--) {
|
||
this.NormalEmailData[i].isStar = false;
|
||
if (!this.NormalEmailData[i].type) {
|
||
this.NormalEmailData[i].type = "email0"
|
||
}
|
||
if (this.NormalEmailData[i].gets && this.NormalEmailData[i].gets.length > 0) {
|
||
|
||
this.NormalEmailData[i].isReward = true
|
||
this.NormalEmailData[i].countDown = 99
|
||
this.NormalEmailData[i].receive = this.NormalEmailData[i].state == 2 ? true : false
|
||
if (this.NormalEmailData[i].receive) {
|
||
this.NormalEmailData[i].type = "email2"
|
||
} else {
|
||
this.NormalEmailData[i].type = "email1"
|
||
}
|
||
}
|
||
if (this.NormalEmailData[i].isStar) {
|
||
this.backupsEmailData.push(this.NormalEmailData.splice(i, 1))
|
||
}
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 交換星標或非星標數據為當前顯示數據
|
||
*/
|
||
exchangeEmailData() {
|
||
var temp = SKDataUtil.clone(this.NormalEmailData);
|
||
this.NormalEmailData = SKDataUtil.clone(this.backupsEmailData);
|
||
this.backupsEmailData = temp;
|
||
this.isShowStarEmail = !this.isShowStarEmail;
|
||
FGUtil.getControl(this.contactPanel, "alert/isStar").selectedIndex = this.isShowStarEmail ? 1 : 0;
|
||
this.changeEmailListNum();
|
||
console.log("當前數據")
|
||
console.log(this.NormalEmailData)
|
||
}
|
||
|
||
/**
|
||
* 初始化郵件項目
|
||
* @param idx 下標
|
||
* @param obj fgui=》Obj
|
||
*/
|
||
initEmailItem(idx, obj: fairygui.GObject) {
|
||
let item = obj.asCom;
|
||
if (this.NormalEmailData[idx].type == "bang") {
|
||
// 幫派郵件
|
||
item.icon = `ui://main_ui/9043`
|
||
FGUtil.getControl(item, "isBang").selectedIndex = 1;
|
||
} else {
|
||
// 普通郵件
|
||
item.icon = `ui://main_ui/icon_${this.NormalEmailData[idx].type}`
|
||
FGUtil.getControl(item, "isBang").selectedIndex = 0;
|
||
// 已讀
|
||
if (this.NormalEmailData[idx].type == "email2")
|
||
FGUtil.getControl(item, "isRead").selectedIndex = 1;
|
||
}
|
||
|
||
// 發件人和日期
|
||
FGUtil.getTextField(item, "title").text = this.NormalEmailData[idx].title;
|
||
FGUtil.getTextField(item, "time").text = this.NormalEmailData[idx].date;
|
||
|
||
if (this.selectEmailIdx == idx) {
|
||
// 選中狀態
|
||
FGUtil.getControl(item, "selected").selectedIndex = 1;
|
||
item.asButton.touchable = false;
|
||
} else {
|
||
// 非選中狀態
|
||
FGUtil.getControl(item, "selected").selectedIndex = 0;
|
||
item.node["idx"] = idx
|
||
item.asButton.onClick(this.onEmailClick, this)
|
||
item.asButton.touchable = true;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 郵件點擊事件
|
||
*/
|
||
onEmailClick(e: Event, id: number = 0) {
|
||
// 改變選中的idx
|
||
var idx;
|
||
if (e && e.target && e.target["idx"])
|
||
idx = e.target["idx"];
|
||
else
|
||
idx = id;
|
||
this.selectEmailIdx = idx;
|
||
|
||
var contentData = this.NormalEmailData[idx];
|
||
if (contentData.type != "bang") {
|
||
// 無禮物郵件改為已讀圖標
|
||
if (this.NormalEmailData[idx].type == "email0") {
|
||
GameModel.send("c2s_mail_action", {
|
||
action: 4,
|
||
mailId: contentData.mailId
|
||
})
|
||
this.NormalEmailData[idx].type = "email2";
|
||
}
|
||
// 展示普通郵件內容
|
||
FGUtil.getControl(this.contactPanel, "alert/isBang").selectedIndex = 0;
|
||
this.showNormalEmailContent(contentData, idx);
|
||
} else {
|
||
// 顯示幫派郵件內容
|
||
FGUtil.getControl(this.contactPanel, "alert/isBang").selectedIndex = 1;
|
||
let bangContentList = FGUtil.getList(this.contactPanel, "alert/bang_content");
|
||
bangContentList.numItems = this.bangEmailData.length
|
||
}
|
||
|
||
// 刷新列表
|
||
this.refreshEmailList();
|
||
}
|
||
// 刷新郵件列表
|
||
refreshEmailList() {
|
||
let emailList = FGUtil.getList(this.contactPanel, "alert/emailList");
|
||
emailList.refreshVirtualList();
|
||
}
|
||
|
||
// 改變郵件列表數量(並刷新)
|
||
changeEmailListNum() {
|
||
if (this.NormalEmailData.length == 0) {
|
||
// 沒有郵件
|
||
FGUtil.getControl(this.contactPanel, "alert/noEmail").selectedIndex = 1;
|
||
return
|
||
}
|
||
|
||
// 有郵件
|
||
FGUtil.getControl(this.contactPanel, "alert/noEmail").selectedIndex = 0;
|
||
let emailList = FGUtil.getList(this.contactPanel, "alert/emailList");
|
||
emailList.numItems = this.NormalEmailData.length;
|
||
if (this.selectEmailIdx >= this.NormalEmailData.length) this.selectEmailIdx = this.NormalEmailData.length - 1;
|
||
if (this.selectEmailIdx != -1)
|
||
this.onEmailClick(null, this.selectEmailIdx);
|
||
}
|
||
/**
|
||
* 初始化幫派郵件內容
|
||
*/
|
||
initBangEmailContent(idx, obj: fairygui.GObject) {
|
||
let item = obj.asCom;
|
||
FGUtil.getRichTextField(item, "content").text = this.bangEmailData[idx].content;
|
||
FGUtil.getTextField(item, "fromTime").text = this.bangEmailData[idx].date;
|
||
FGUtil.getTextField(item, "fromPerson").text = this.bangEmailData[idx].signer;
|
||
}
|
||
|
||
/**
|
||
* 展示普通郵件內容
|
||
* @param contentData 郵件內容
|
||
*/
|
||
showNormalEmailContent(contentData: any, idx) {
|
||
// 顯示郵件內容
|
||
var contentPanle = FGUtil.getComponent(this.contactPanel, "alert/normal_content");
|
||
// 是否星標
|
||
FGUtil.getControl(contentPanle, "isStar").selectedIndex = contentData.isStar ? 1 : 0;
|
||
// 郵件類型
|
||
FGUtil.getTextField(contentPanle, "fromType").text = contentData.title;
|
||
FGUtil.getList(contentPanle, "content").removeChildrenToPool();
|
||
var con = FGUtil.getList(contentPanle, "content").addItemFromPool().asCom;
|
||
// 內容
|
||
FGUtil.getRichTextField(con, "content").text = contentData.content;
|
||
// 日期
|
||
FGUtil.getTextField(con, "fromTime").text = contentData.date;
|
||
// 落款人
|
||
FGUtil.getTextField(con, "fromPerson").text = contentData.title;
|
||
|
||
if (contentData.gets && contentData.gets.length > 0) {
|
||
// 是獎勵型郵件
|
||
FGUtil.getControl(contentPanle, "showReward").selectedIndex = 1;
|
||
// 過期時間
|
||
FGUtil.getControl(contentPanle, "showTime").selectedIndex = 1;
|
||
FGUtil.getTextField(contentPanle, "time").text = contentData.countDown + "天后過期";
|
||
// 是否領取
|
||
FGUtil.getControl(contentPanle, "isReceived").selectedIndex = contentData.receive ? 1 : 0;
|
||
// 獎勵內容
|
||
let rewardBox = FGUtil.getList(contentPanle, "rewardList");
|
||
rewardBox.removeChildren();
|
||
for (let i in contentData.gets) {
|
||
var itemData = ItemUtil.getItemData(contentData.gets[i].itemId)
|
||
if (contentData.gets[i].type == "score") {
|
||
var item = rewardBox.addItem("ui://main_ui/email_reward_score").asCom;
|
||
FGUtil.getLoader(item, "icon").texture = ItemUtil.getItemIcon(itemData.icon);
|
||
FGUtil.getTextField(item, "num").text = SKDataUtil.transform(contentData.gets[i].itemCount);
|
||
} else {
|
||
var item = rewardBox.addItem("ui://main_ui/email_reward_item").asCom;
|
||
FGUtil.getLoader(item, "icon").texture = ItemUtil.getItemIcon(itemData.icon);
|
||
FGUtil.getTextField(item, "title").text = SKDataUtil.transform(contentData.gets[i].itemCount);
|
||
}
|
||
}
|
||
rewardBox.ensureBoundsCorrect();
|
||
// 領取郵件中的獎勵
|
||
let receiveBtn = FGUtil.getButton(contentPanle, "reward");
|
||
receiveBtn.clearClick();
|
||
receiveBtn.onClick(() => {
|
||
if (this.stopTap) {
|
||
MsgAlert.addMsg("您操作過於頻繁");
|
||
return
|
||
}
|
||
this.stopTap = true
|
||
GameModel.send("c2s_mail_action", {
|
||
action: 0,
|
||
mailId: contentData.mailId
|
||
})
|
||
// this.NormalEmailData[idx].receive = true
|
||
// FGUtil.getControl(contentPanle, "isReceived").selectedIndex = 1;
|
||
this.scheduleOnce(() => {
|
||
this.stopTap = false
|
||
}, 0.5)
|
||
}, this)
|
||
} else {
|
||
// 普通郵件,没有积分或物品
|
||
FGUtil.getControl(contentPanle, "showReward").selectedIndex = 0;
|
||
FGUtil.getControl(contentPanle, "showTime").selectedIndex = 0;
|
||
FGUtil.getControl(contentPanle, "isReceived").selectedIndex = 0;
|
||
}
|
||
// 刪除郵件
|
||
let delBtn = FGUtil.getButton(contentPanle, "delete");
|
||
delBtn.clearClick();
|
||
delBtn.onClick(() => {
|
||
// 星標郵件刪除需要提示
|
||
if (contentData.isStar) {
|
||
FGAlert.show("是否刪除星標郵件,刪除後將不可恢復?", () => {
|
||
FGAlert.hide();
|
||
}, () => {
|
||
if (this.stopTap) {
|
||
MsgAlert.addMsg("您操作過於頻繁");
|
||
return
|
||
}
|
||
this.stopTap = true
|
||
FGAlert.hide();
|
||
GameModel.send("c2s_mail_action", {
|
||
action: 1,
|
||
mailId: contentData.mailId
|
||
})
|
||
this.NormalEmailData.splice(idx, 1)
|
||
// 星標數量為0,則切換為非星標郵件顯示
|
||
if (this.NormalEmailData.length == 0 && this.isShowStarEmail)
|
||
this.exchangeEmailData();
|
||
else
|
||
this.changeEmailListNum();
|
||
this.scheduleOnce(() => {
|
||
this.stopTap = false
|
||
}, 0.5)
|
||
})
|
||
return;
|
||
}
|
||
if (this.stopTap) {
|
||
MsgAlert.addMsg("您操作過於頻繁");
|
||
return
|
||
}
|
||
this.stopTap = true
|
||
GameModel.send("c2s_mail_action", {
|
||
action: 1,
|
||
mailId: contentData.mailId
|
||
})
|
||
this.NormalEmailData.splice(idx, 1)
|
||
this.changeEmailListNum();
|
||
this.scheduleOnce(() => {
|
||
this.stopTap = false
|
||
}, 0.5)
|
||
}, this)
|
||
FGUtil.getComponent(contentPanle, "n4").asButton.clearClick();
|
||
FGUtil.getComponent(contentPanle, "n5").asButton.clearClick();
|
||
FGUtil.getComponent(contentPanle, "n4").asButton.onClick(this.convertStarEmail, this)
|
||
FGUtil.getComponent(contentPanle, "n5").asButton.onClick(this.converNoStarEmail, this)
|
||
}
|
||
|
||
convertStarEmail() {
|
||
// console.log(SKDataUtil.clone(this.NormalEmailData))
|
||
this.NormalEmailData[this.selectEmailIdx].isStar = true;
|
||
this.backupsEmailData.push(this.NormalEmailData.splice(this.selectEmailIdx, 1)[0])
|
||
this.changeEmailListNum();
|
||
MsgAlert.addMsg("標記成功,此郵件已移入星標郵件中");
|
||
}
|
||
|
||
converNoStarEmail() {
|
||
this.NormalEmailData[this.selectEmailIdx].isStar = false;
|
||
this.backupsEmailData.push(this.NormalEmailData.splice(this.selectEmailIdx, 1)[0])
|
||
// 星標數量為0,則切換為非星標郵件顯示
|
||
if (this.NormalEmailData.length == 0 && this.isShowStarEmail)
|
||
this.exchangeEmailData();
|
||
else
|
||
this.changeEmailListNum();
|
||
MsgAlert.addMsg("取消成功,此郵件已移出星標郵件");
|
||
}
|
||
|
||
/**
|
||
* 一鍵領取所有獎勵
|
||
*/
|
||
oneKeyReceiveAllReward() {
|
||
if (this.stopTap) {
|
||
MsgAlert.addMsg("您操作過於頻繁");
|
||
return
|
||
}
|
||
this.stopTap = true
|
||
var count = 0;
|
||
for (let i in this.NormalEmailData) {
|
||
if (this.NormalEmailData[i].isReward) {
|
||
// this.NormalEmailData[i].type = "email2"
|
||
// this.NormalEmailData[i].receive = true
|
||
count++;
|
||
}
|
||
}
|
||
if (count > 0) {
|
||
// this.refreshEmailList();
|
||
// this.onEmailClick(null, this.selectEmailIdx)
|
||
GameModel.send("c2s_mail_action", {
|
||
action: 2
|
||
})
|
||
}
|
||
else
|
||
MsgAlert.addMsg("大俠,當前暫無可領取的獎勵")
|
||
this.scheduleOnce(() => {
|
||
this.stopTap = false
|
||
}, 0.5)
|
||
}
|
||
|
||
/**
|
||
* 一鍵刪除所有郵件
|
||
*/
|
||
oneKeyDeleteAllEmail() {
|
||
var count = 0;
|
||
for (let i = this.NormalEmailData.length - 1; i >= 0; i--) {
|
||
if (this.NormalEmailData[i].type != "bang" && (!this.NormalEmailData[i].isReward || (this.NormalEmailData[i].isReward && this.NormalEmailData[i].receive))) {
|
||
count++;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if (count == 0) {
|
||
MsgAlert.addMsg("大俠,當前暫無可刪除的郵件")
|
||
return;
|
||
}
|
||
|
||
FGAlert.show("確定將已領獎的非星標郵件一鍵刪除?", () => {
|
||
FGAlert.hide();
|
||
}, () => {
|
||
if (this.stopTap) {
|
||
MsgAlert.addMsg("您操作過於頻繁");
|
||
return
|
||
}
|
||
this.stopTap = true
|
||
FGAlert.hide();
|
||
for (let i = this.NormalEmailData.length - 1; i >= 0; i--) {
|
||
if (this.NormalEmailData[i].type != "bang" && (!this.NormalEmailData[i].isReward || (this.NormalEmailData[i].isReward && this.NormalEmailData[i].receive))) {
|
||
this.NormalEmailData.splice(i, 1)
|
||
continue;
|
||
}
|
||
}
|
||
GameModel.send("c2s_mail_action", {
|
||
action: 3
|
||
})
|
||
this.changeEmailListNum();
|
||
this.scheduleOnce(() => {
|
||
this.stopTap = false
|
||
}, 0.3)
|
||
})
|
||
|
||
}
|
||
|
||
/**
|
||
* 添加關閉事件
|
||
*/
|
||
pushCloseEvent(item: fairygui.GComponent, target: fairygui.GComponent, call: Function = null) {
|
||
item.clearClick();
|
||
item.onClick(() => {
|
||
call && call()
|
||
FGUtil.dispose(target);
|
||
}, this)
|
||
}
|
||
|
||
tipNo() {
|
||
MsgAlert.addMsg("暫未開放")
|
||
}
|
||
|
||
openFriend() {
|
||
var mainui = cc.find("Canvas/MainUI")
|
||
if (mainui) {
|
||
let mlg = mainui.getComponent("MainUI")
|
||
if (mlg)
|
||
mlg.onFriendBtnClicked()
|
||
}
|
||
FGUtil.dispose(this.contactPanel)
|
||
this.contactPanel = null
|
||
}
|
||
/**
|
||
* 造假郵件
|
||
*/
|
||
createBangEmail() {
|
||
return
|
||
var idxArr = Object.keys(GameModel.conf_npc)
|
||
var rand, num = Math.floor(Math.random() * 5 + 1);
|
||
var str = "";
|
||
for (let i = 0; i < num; i++) {
|
||
rand = Math.floor(Math.random() * idxArr.length)
|
||
str += GameModel.conf_npc[idxArr[rand]].talk
|
||
}
|
||
let item = {
|
||
from: "幫派郵件",
|
||
signer: "系統管理員",
|
||
content: str,
|
||
date: "2021-4-29"
|
||
}
|
||
this.bangEmailData.push(item)
|
||
if (this.NormalEmailData && this.NormalEmailData.length > 0) {
|
||
if (this.NormalEmailData[0].type != "bang")
|
||
this.NormalEmailData.unshift({ type: "bang", from: "幫派郵件", date: "2021-4-29" })
|
||
} else {
|
||
this.NormalEmailData = []
|
||
this.NormalEmailData.push({ type: "bang", from: "幫派郵件", date: "2021-4-29" })
|
||
}
|
||
this.changeEmailListNum();
|
||
}
|
||
createNormalEmail() {
|
||
return
|
||
var idxArr = Object.keys(GameModel.conf_npc)
|
||
var rand = Math.floor(Math.random() * idxArr.length)
|
||
let item = {
|
||
type: "email0",
|
||
isStar: false,
|
||
from: GameModel.conf_npc[idxArr[rand]].name,
|
||
signer: GameModel.conf_npc[idxArr[rand]].name,
|
||
content: GameModel.conf_npc[idxArr[rand]].talk,
|
||
date: "2021-4-29"
|
||
}
|
||
this.NormalEmailData.push(item)
|
||
this.changeEmailListNum();
|
||
}
|
||
createRewardEmail() {
|
||
return
|
||
var idxArr = Object.keys(GameModel.conf_npc)
|
||
var rand = Math.floor(Math.random() * idxArr.length)
|
||
var rand2 = Math.floor(Math.random() * 7) + 1
|
||
var rand3 = rand2 % 3 + 1;
|
||
var list = []
|
||
for (let i = 0; i < rand2; i++) {
|
||
if (i % rand3 == 1)
|
||
list.push({ id: 90002, num: 999999, type: "score" })
|
||
else
|
||
list.push({ id: 90002, num: 999999, type: "item" })
|
||
}
|
||
let item = {
|
||
type: "email1",
|
||
isStar: false,
|
||
isReward: true,
|
||
rewardList: list,
|
||
from: GameModel.conf_npc[idxArr[rand]].name,
|
||
signer: GameModel.conf_npc[idxArr[rand]].name,
|
||
content: GameModel.conf_npc[idxArr[rand]].talk,
|
||
date: "2021-4-29",
|
||
countDown: 99,
|
||
receive: false
|
||
}
|
||
this.NormalEmailData.push(item)
|
||
this.changeEmailListNum();
|
||
}
|
||
|
||
}
|