1467 lines
52 KiB
TypeScript
1467 lines
52 KiB
TypeScript
import AudioUtil from "../core/AudioUtil";
|
|
import GameModel from "../core/GameModel";
|
|
import ItemUtil from "../core/ItemUtil";
|
|
import MsgAlert from "../game/msg/MsgAlert";
|
|
import DugMgr from "../game/role/DugMgr";
|
|
import VIPUtil from "../game/role/VIPUtil";
|
|
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";
|
|
import RechargeReward from "../rechargeReward/RechargeReward";
|
|
import GameUtil from "../core/GameUtil";
|
|
import Shop from "../Shop";
|
|
const { ccclass, property } = cc._decorator;
|
|
|
|
@ccclass
|
|
export default class Welfare extends cc.Component {
|
|
|
|
/**
|
|
* 福利面板单例实例
|
|
*/
|
|
public static Instance: Welfare = null;
|
|
|
|
static vipBtnStart: number = 6;//VIP等级按钮起始下标
|
|
static maxMenuBtnNum: number = 20;//按钮列表数量
|
|
|
|
/**
|
|
* 福利面板
|
|
*/
|
|
welfarePanel: fgui.GComponent = null;
|
|
|
|
/**
|
|
* 首充面板
|
|
*/
|
|
firstChargeView: fgui.GComponent = null;
|
|
|
|
/**
|
|
* 每日首充面板
|
|
*/
|
|
dayChargeView: fgui.GComponent = null;
|
|
|
|
//累计充值面板
|
|
totalChargeView: fgui.GComponent = null;
|
|
|
|
/**
|
|
* 签到面板
|
|
*/
|
|
signInView: fgui.GComponent = null;
|
|
|
|
/**
|
|
* 等级奖励面板
|
|
*/
|
|
levelRewardView: fgui.GComponent = null;
|
|
levelRewardData: any = [];
|
|
/**
|
|
* 等级奖励面板
|
|
*/
|
|
vipView: fgui.GComponent = null;
|
|
|
|
/**
|
|
* 是否显示VIP等级按钮
|
|
*/
|
|
showVIPLeveListBtn: boolean = false;
|
|
|
|
/**
|
|
* 挖宝面板
|
|
*/
|
|
dugView: fgui.GComponent = null;
|
|
isDug: boolean = false;
|
|
|
|
/**
|
|
* 礼包面板
|
|
*/
|
|
giftCodeView: fgui.GComponent = null;
|
|
|
|
/**
|
|
* 绑定面板
|
|
*/
|
|
bindUserView: fgui.GComponent = null;
|
|
/**
|
|
* 充值奖励面板
|
|
*/
|
|
rewardPanel: fgui.GComponent = null;
|
|
isRewarding: boolean = false;
|
|
dayMap: any = null;
|
|
stopTap: boolean = false;
|
|
/**
|
|
* 需要加载的预制体
|
|
*/
|
|
prefabObject: any = {};
|
|
|
|
select_level: number = 0;
|
|
|
|
onLoad() {
|
|
if (Welfare.Instance === null) {
|
|
Welfare.Instance = this;
|
|
this.loadPrefab();
|
|
} else {
|
|
this.destroy();
|
|
return;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 加载预制体
|
|
*/
|
|
loadPrefab() {
|
|
// 加载所需的预制体
|
|
var prefabList = [
|
|
{ url: "Prefabs/particle", name: "particle" },
|
|
{ url: "Prefabs/BagItemDetail", name: "BagItemDetail" },
|
|
{ url: "Prefabs/dragonBones", name: "dragonBones" },
|
|
{ url: "Prefabs/Photo1102", name: "Photo1102" }
|
|
]
|
|
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;
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
openWelfareByAsync() {
|
|
let handler = new fgui.AsyncOperation();
|
|
handler.createObject("main_ui", "welfare_main_new",);
|
|
handler.callback = (obj) => {
|
|
this.openWelfare(obj)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 打开福利面板
|
|
*/
|
|
openWelfare(obj) {
|
|
console.log("openWelfare")
|
|
if (obj) {
|
|
this.welfarePanel = obj.asCom;
|
|
FGUtil.root().addChild(this.welfarePanel);
|
|
this.welfarePanel.makeFullScreen();
|
|
} else {
|
|
if (!this.welfarePanel || (this.welfarePanel && !this.welfarePanel.node && !SKUIUtil.isValid(this.welfarePanel.node))) {
|
|
this.welfarePanel = FGUtil.create("main_ui", "welfare_main_new");
|
|
FGUtil.root().addChild(this.welfarePanel);
|
|
this.welfarePanel.makeFullScreen();
|
|
}
|
|
}
|
|
console.log("openWelfare1111")
|
|
// 关闭按钮
|
|
let mask = FGUtil.getButton(this.welfarePanel, "mask")
|
|
let closeBtn = FGUtil.getComponent(this.welfarePanel, "alert/close_btn")
|
|
this.pushCloseEvent(mask, this.welfarePanel);
|
|
this.pushCloseEvent(closeBtn, this.welfarePanel);
|
|
|
|
if (this.dayMap == null) {
|
|
if (GameModel.player.dayMap != null) {
|
|
this.dayMap = SKDataUtil.clone(GameModel.player.dayMap);
|
|
GameModel.player.dayMap = null;
|
|
}
|
|
else
|
|
this.dayMap = {};
|
|
}
|
|
|
|
// 隐藏VIP等级按钮
|
|
// this.hideVIPBtnList();
|
|
console.log("hideBtn")
|
|
// 动态隐藏按钮
|
|
this.hideBtn();
|
|
|
|
console.log("openFirstChargeView")
|
|
// 默认打开首充面板
|
|
this.openFirstChargeView();
|
|
|
|
this.initEvent();
|
|
|
|
// 请求每日签到数据,显示签到提示
|
|
GameModel.send(`c2c_sign_in`, { roleId: GameModel.player.roleid });
|
|
GameModel.send(`c2s_bindinfo`, { roleId: GameModel.player.roleid });
|
|
this.showLevelRewardTip();
|
|
}
|
|
|
|
showDailySignInTip(data) {
|
|
if (!SKUIUtil.isFGUIValid(this.welfarePanel)) return;
|
|
// 根据当日有无签到显示圆点
|
|
let menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list");
|
|
let listData = JSON.parse(data.signInData);
|
|
let today = data.day;
|
|
menuList.getChildAt(3).asCom.getController("showDot").selectedIndex = listData[today - 1].flag == 0 ? 1 : 0;
|
|
}
|
|
|
|
showLevelRewardTip() {
|
|
var showDot = false;
|
|
let dataList: any = Object.values(SKDataUtil.clone(GameModel.conf_level));
|
|
for (let i in dataList) {
|
|
// 奖励道具
|
|
let cur_level = GameModel.player.level + '';
|
|
let level_reward = GameModel.player.level_reward.split(':');
|
|
|
|
if (cur_level >= dataList[i].level) {
|
|
if (level_reward.indexOf(dataList[i].level + '') == -1) {
|
|
showDot = true;
|
|
}
|
|
}
|
|
}
|
|
// 根据有无可领取奖励显示圆点
|
|
let menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list");
|
|
menuList.getChildAt(4).asCom.getController("showDot").selectedIndex = showDot ? 1 : 0;
|
|
}
|
|
|
|
initEvent() {
|
|
// 按钮列表
|
|
let menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list");
|
|
console.log("11111111")
|
|
|
|
// 首充奖励按钮
|
|
menuList.getChildAt(0).onClick(this.openFirstChargeView, this);
|
|
console.log("22222222")
|
|
// 每日首充按钮
|
|
menuList.getChildAt(1).onClick(this.openDayFirstChargeView, this);
|
|
console.log("33333333")
|
|
// 累计充值按钮
|
|
menuList.getChildAt(2).onClick(this.openTotalChargeView, this);
|
|
console.log("44444444")
|
|
// 每日签到按钮
|
|
menuList.getChildAt(3).onClick(this.openSignInView, this);
|
|
console.log("55555555")
|
|
// 等级奖励按钮
|
|
menuList.getChildAt(4).onClick(this.openLevelRewardView, this)
|
|
console.log("66666666")
|
|
// vip等级列表按钮
|
|
menuList.getChildAt(5).onClick(this.openVipView, this)
|
|
console.log("77777777")
|
|
// VIP等级按钮
|
|
this.select_level = 0
|
|
for (let i = Welfare.vipBtnStart; i < Welfare.vipBtnStart + 11; i++) {
|
|
menuList.getChildAt(i).clearClick();
|
|
menuList.getChildAt(i).onClick(() => {
|
|
this.selectVIPBtn(i);
|
|
})
|
|
}
|
|
console.log("8888888")
|
|
// 蓝色的梦按钮
|
|
menuList.getChildAt(17).onClick(this.openDugView, this);
|
|
console.log("99999999")
|
|
// 礼包激活码
|
|
menuList.getChildAt(18).onClick(this.openGiftPackCodeView, this);
|
|
|
|
console.log("AAAAAAA")
|
|
// 礼包激活码
|
|
menuList.getChildAt(19).onClick(this.openBindUserView, this)
|
|
// 累充奖励
|
|
// menuList.getChildAt(20).onClick(this.openRewardPanel, this)
|
|
console.log("BBBBBBBBBB")
|
|
}
|
|
|
|
selectBtn(idx) {
|
|
// 按钮列表
|
|
let menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list");
|
|
for (let i = 0; i <= Welfare.maxMenuBtnNum; i++) {
|
|
// for (let i = 0; i <= 6; i++) {
|
|
if (i >= Welfare.vipBtnStart && i < Welfare.vipBtnStart + 11) continue;
|
|
if (i == idx)
|
|
menuList.getChildAt(i).asCom.getController("selected").selectedIndex = 1;
|
|
else
|
|
menuList.getChildAt(i).asCom.getController("selected").selectedIndex = 0;
|
|
}
|
|
this.hideVIPBtnList();
|
|
}
|
|
|
|
showVIPBtnList() {
|
|
this.showVIPLeveListBtn = true;
|
|
let menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list");
|
|
for (let i = Welfare.vipBtnStart; i < Welfare.vipBtnStart + 11; i++) {
|
|
menuList.getChildAt(i).visible = true;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 隐藏VIP等级按钮
|
|
*/
|
|
hideVIPBtnList() {
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
this.showVIPLeveListBtn = false;
|
|
let menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list");
|
|
for (let i = Welfare.vipBtnStart; i < Welfare.vipBtnStart + 11; i++) {
|
|
menuList.getChildAt(i).visible = false;
|
|
}
|
|
}
|
|
|
|
selectVIPBtn(idx) {
|
|
this.select_level = idx - Welfare.vipBtnStart
|
|
// 按钮列表
|
|
let menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list")
|
|
for (let i = Welfare.vipBtnStart; i < Welfare.vipBtnStart + 11; i++) {
|
|
if (i == idx)
|
|
menuList.getChildAt(i).asCom.getController("selected").selectedIndex = 1;
|
|
else
|
|
menuList.getChildAt(i).asCom.getController("selected").selectedIndex = 0;
|
|
}
|
|
this.refreshVipInfo(idx - Welfare.vipBtnStart);
|
|
}
|
|
/**
|
|
* 动态隐藏按钮
|
|
*/
|
|
hideBtn() {
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
// 按钮列表
|
|
var menuList = FGUtil.getList(this.welfarePanel, "alert/welfare/menu_list");
|
|
// if (GameModel.player.hideIconList["vip"] == 1) {
|
|
menuList.getChildAt(1).visible = true;
|
|
menuList.getChildAt(5).visible = true;
|
|
// menuList.getChildAt(20).visible = false;
|
|
|
|
menuList.getChildAt(17).visible = false;
|
|
menuList.getChildAt(19).visible = false;
|
|
// }
|
|
// if (GameModel.player.hideIconList["dream"] == 1) {
|
|
// menuList.getChildAt(16).visible = false;
|
|
// }
|
|
if (GameModel.player.hideIconList["sign"] == 1) {
|
|
menuList.getChildAt(3).visible = false;
|
|
}
|
|
if (GameModel.player.hideIconList["level"] == 1) {
|
|
menuList.getChildAt(4).visible = false;
|
|
}
|
|
if (GameModel.player.hideIconList["kac"] == 0) {
|
|
menuList.getChildAt(18).visible = true;
|
|
} else {
|
|
menuList.getChildAt(19).visible = false;
|
|
}
|
|
// if (GameModel.player.hideIconList["tie"] == 0) {
|
|
// menuList.getChildAt(19).visible = true;
|
|
// } else {
|
|
// menuList.getChildAt(19).visible = false;
|
|
// }
|
|
}
|
|
|
|
/**
|
|
* 打开首充面板
|
|
*/
|
|
openFirstChargeView() {
|
|
this.clearPanel();
|
|
this.selectBtn(0);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.firstChargeView || (this.firstChargeView && !this.firstChargeView.node && !SKUIUtil.isValid(this.firstChargeView.node))) {
|
|
this.firstChargeView = FGUtil.create("main_ui", "first_charge");
|
|
this.firstChargeView.x = 180;
|
|
this.firstChargeView.y = 0;
|
|
pView.addChild(this.firstChargeView);
|
|
}
|
|
this.firstChargeView.visible = true;
|
|
FGUtil.getTextField(this.firstChargeView, "n20").font = "xiuweiNum";
|
|
FGUtil.getTextField(this.firstChargeView, "n20").fontSize = 30;
|
|
|
|
// 获取首充数据
|
|
let list = SKDataUtil.clone(GameModel.game_conf.firstCharge);
|
|
for (let i = 0; i < list.length; i++) {
|
|
let path = `item_${i + 1}`;
|
|
let item = FGUtil.getButton(this.firstChargeView, path);
|
|
let data = list[i];
|
|
let itemData = ItemUtil.getItemData(data.prop);
|
|
item.icon = `ui://main_ui/${itemData.icon}`;
|
|
let tip = FGUtil.getTextField(item, "tip");
|
|
tip.text = `${SKDataUtil.transform(data.count)}`;
|
|
tip.visible = true;
|
|
let anim = FGUtil.getAnim(item, "effect");
|
|
anim.visible = true;
|
|
anim.playing = true;
|
|
item.clearClick()
|
|
item.onClick((eve) => {
|
|
eve.stopPropagation()
|
|
this.showInfo(itemData)
|
|
})
|
|
// FGUtil.getControl(item, "check").selectedIndex = GameModel.player.getgift == 0 ? 1 : 0
|
|
}
|
|
|
|
// 是否已经首充
|
|
if (GameModel.player.chargesum >= 30) {
|
|
if (GameModel.player.getgift == 0)
|
|
FGUtil.getControl(this.firstChargeView, "isOver").selectedIndex = 1
|
|
else {
|
|
FGUtil.getButton(this.firstChargeView, "charge_btn").text = "领取奖励";
|
|
FGUtil.getButton(this.firstChargeView, "charge_btn").clearClick()
|
|
FGUtil.getButton(this.firstChargeView, "charge_btn").onClick(this.clickGetCharge, this);
|
|
}
|
|
} else {
|
|
// 充值按钮
|
|
FGUtil.getButton(this.firstChargeView, "charge_btn").text = "前往充值";
|
|
FGUtil.getButton(this.firstChargeView, "charge_btn").clearClick()
|
|
FGUtil.getButton(this.firstChargeView, "charge_btn").onClick(this.clickCharge, this);
|
|
}
|
|
|
|
// 显示龙骨 0.3秒延迟后加载
|
|
|
|
// if (this.prefabObject["Photo1102"] == null) return;
|
|
//var pNode = this.firstChargeView.node;
|
|
// if (pNode.getChildByName("Photo1102") || pNode.getChildByName("dbNode")) return;
|
|
// var img = cc.instantiate(this.prefabObject["Photo1102"]);
|
|
// pNode.name = "Photo1102";
|
|
// pNode.setPosition(115, 386)
|
|
// pNode.addChild(img)
|
|
|
|
this.scheduleOnce(() => {
|
|
if (this.prefabObject["dragonBones"] == null) return;
|
|
var dbNode = this.firstChargeView.node;
|
|
// if (dbNode.getChildByName("Photo1102")) {
|
|
// dbNode.destroy();
|
|
// }
|
|
if (dbNode.getChildByName("dbNode")) return;
|
|
var db = cc.instantiate(this.prefabObject["dragonBones"]);
|
|
db.name = "dbNode";
|
|
db.setPosition(110, -380)
|
|
dbNode.addChild(db)
|
|
}, 0.3)
|
|
}
|
|
|
|
refreshFirshCharge() {
|
|
if (!SKUIUtil.isFGUIValid(this.firstChargeView)) return;
|
|
GameModel.player.getgift = 0;
|
|
this.firstChargeView.visible = true;
|
|
// 获取首充数据
|
|
let list = SKDataUtil.clone(GameModel.game_conf.firstCharge);
|
|
for (let i = 0; i < list.length; i++) {
|
|
let path = `item_${i + 1}`;
|
|
let item = FGUtil.getButton(this.firstChargeView, path);
|
|
let data = list[i];
|
|
let itemData = ItemUtil.getItemData(data.prop);
|
|
item.icon = `ui://main_ui/${itemData.icon}`;
|
|
let tip = FGUtil.getTextField(item, "tip");
|
|
tip.text = `${SKDataUtil.transform(data.count)}`;
|
|
tip.visible = true;
|
|
let anim = FGUtil.getAnim(item, "effect");
|
|
anim.visible = true;
|
|
anim.playing = true;
|
|
item.clearClick()
|
|
item.onClick((eve) => {
|
|
eve.stopPropagation()
|
|
this.showInfo(itemData)
|
|
})
|
|
// FGUtil.getControl(item, "check").selectedIndex = GameModel.player.getgift == 0 ? 1 : 0
|
|
}
|
|
FGUtil.getControl(this.firstChargeView, "isOver").selectedIndex = 1
|
|
|
|
// 获取首充数据
|
|
for (let i = 0; i < list.length; i++) {
|
|
let id = list[i].prop;
|
|
this.scheduleOnce(() => {
|
|
this.dropItemToBag(id)
|
|
}, i * 0.3)
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* 打开每日首充
|
|
*/
|
|
openDayFirstChargeView() {
|
|
this.clearPanel();
|
|
this.selectBtn(1);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.dayChargeView || (this.dayChargeView && !this.dayChargeView.node && !SKUIUtil.isValid(this.dayChargeView.node))) {
|
|
this.dayChargeView = FGUtil.create("main_ui", "today_charge");
|
|
this.dayChargeView.x = 202;
|
|
this.dayChargeView.y = 24;
|
|
pView.addChild(this.dayChargeView);
|
|
}
|
|
this.dayChargeView.visible = true;
|
|
// 充值按钮
|
|
FGUtil.getButton(this.dayChargeView, "charge_btn").onClick(this.clickCharge, this);
|
|
|
|
let conf = GameModel.game_conf.today;
|
|
var dayReward = {};
|
|
for (let item of conf) {
|
|
if (dayReward[item.money] == null) {
|
|
dayReward[item.money] = [];
|
|
}
|
|
dayReward[item.money].push(item);
|
|
}
|
|
|
|
let list = FGUtil.getList(this.dayChargeView, "list");
|
|
list.removeChildrenToPool();
|
|
let index = 0;
|
|
|
|
if (this.dayMap == null) {
|
|
this.dayMap = {};
|
|
}
|
|
|
|
let daySum = (this.dayMap[`daySum`] || 0);
|
|
for (let key in dayReward) {
|
|
let data = dayReward[key];
|
|
let cell = list.addItemFromPool().asButton;
|
|
cell.title = `今日累计充值${key}元(${key}元/${daySum}元)`;
|
|
let i = 1;
|
|
let current = (this.dayMap[`day_${key}`] || 0);
|
|
let getBtn = FGUtil.getButton(cell, "get_btn");
|
|
getBtn.data = key;
|
|
getBtn.onClick(this.clickGet, this);
|
|
let flag = FGUtil.getComponent(cell, "flag");
|
|
if (current > 0) {
|
|
getBtn.visible = false;
|
|
flag.visible = true;
|
|
} else {
|
|
if (daySum >= SKDataUtil.toNumber(key)) {
|
|
getBtn.visible = true;
|
|
} else {
|
|
getBtn.visible = false;
|
|
}
|
|
flag.visible = false;
|
|
}
|
|
for (let item of data) {
|
|
let itemData = ItemUtil.getItemData(item.item_id);
|
|
let itemBtn = FGUtil.getButton(cell, `item_${i}`);
|
|
itemBtn.icon = `ui://main_ui/${itemData.icon}`;
|
|
let tip = FGUtil.getTextField(itemBtn, "tip");
|
|
tip.text = `${SKDataUtil.transform(item.count)}`;
|
|
tip.visible = true;
|
|
let anim = FGUtil.getAnim(itemBtn, "effect");
|
|
anim.visible = getBtn.visible;
|
|
anim.playing = getBtn.visible;
|
|
i++;
|
|
itemBtn.clearClick()
|
|
itemBtn.onClick((eve) => {
|
|
eve.stopPropagation()
|
|
this.showInfo(itemData)
|
|
})
|
|
}
|
|
if (daySum >= SKDataUtil.toNumber(key)) {
|
|
index++;
|
|
}
|
|
}
|
|
// list.scrollToView(Math.max(0, index - 1), true, false);
|
|
let refrestBtn = FGUtil.getList(this.dayChargeView, "refresh_btn");
|
|
refrestBtn.clearClick();
|
|
refrestBtn.onClick(() => {
|
|
GameModel.send("c2s_clear_day", {
|
|
roleid: GameModel.player.roleid
|
|
})
|
|
}, this);
|
|
}
|
|
|
|
/**
|
|
* 点击领取每日首充奖励
|
|
*/
|
|
clickGet(event: fgui.Event) {
|
|
let temp = fgui.GObject.cast(event.currentTarget);
|
|
let money = temp.data;
|
|
GameModel.send(`c2s_day_reward`, {
|
|
money: money
|
|
});
|
|
}
|
|
|
|
|
|
openTotalChargeView(){
|
|
this.clearPanel();
|
|
this.selectBtn(2);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
// 添加面板
|
|
if (!this.totalChargeView || (this.totalChargeView && !this.totalChargeView.node && !SKUIUtil.isValid(this.totalChargeView.node))) {
|
|
this.totalChargeView = FGUtil.create("main_ui", "rechargeReward");
|
|
this.totalChargeView.x = 180;
|
|
this.totalChargeView.y = 0;
|
|
pView.addChild(this.totalChargeView);
|
|
}
|
|
this.totalChargeView.visible = true;
|
|
|
|
var num = GameModel.player.chargesum;
|
|
|
|
FGUtil.getTextField(this.rewardPanel, "count").text = String(num);
|
|
this.initRewardList(num);
|
|
}
|
|
|
|
/**
|
|
* 打开每日签到
|
|
*/
|
|
openSignInView(event: any = null, refresh: boolean = false, data: any = []) {
|
|
this.clearPanel();
|
|
this.selectBtn(2);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.signInView || (this.signInView && !this.signInView.node && !SKUIUtil.isValid(this.signInView.node))) {
|
|
this.signInView = FGUtil.create("main_ui", "sign_in");
|
|
this.signInView.x = 174;
|
|
this.signInView.y = 0;
|
|
pView.addChild(this.signInView);
|
|
}
|
|
this.signInView.visible = true
|
|
// 请求签到数据
|
|
if (!refresh) {
|
|
GameModel.send(`c2s_ask_daily_info`, {});
|
|
GameModel.send(`c2c_sign_in`, { roleId: GameModel.player.roleid });
|
|
return;
|
|
}
|
|
|
|
// 签到道具列表
|
|
let rewardedList = FGUtil.getList(this.signInView, "n16");
|
|
// 签到数据
|
|
let listData = JSON.parse(data.signInData);
|
|
// 今天日期
|
|
let today = data.day;
|
|
|
|
// 显示转圈
|
|
if (listData[today - 1].flag == 0) {
|
|
var effNode = rewardedList.getChildAt(today - 1).asCom.node.getChildByName("effect8866")
|
|
if (!effNode)
|
|
this.showParticle(rewardedList.getChildAt(today - 1).asCom.node);
|
|
}
|
|
else {
|
|
var effNode = rewardedList.getChildAt(today - 1).asCom.node.getChildByName("effect8866")
|
|
if (effNode)
|
|
rewardedList.getChildAt(today - 1).asCom.node.removeChild(effNode);
|
|
}
|
|
for (let i = 0; i < 31; i++) {
|
|
let item = rewardedList.getChildAt(i).asCom;
|
|
if (i >= listData.length) {
|
|
item.visible = false;
|
|
continue
|
|
}
|
|
if (!listData[i]) {
|
|
item.visible = false;
|
|
continue
|
|
}
|
|
let itemData = ItemUtil.getItemData(listData[i].prop);
|
|
// 数量
|
|
FGUtil.getTextField(item, "item/num").text = listData[i].num;
|
|
// 日期
|
|
FGUtil.getTextField(item, "time").text = listData[i].day;
|
|
// 图标
|
|
FGUtil.getLoader(item, "item/img").url = `ui://main_ui/${itemData.icon}`;
|
|
// 图标按钮
|
|
let button = FGUtil.getButton(item, "item");
|
|
button.clearClick();
|
|
// 根据flag显示不同状态
|
|
FGUtil.getControl(item, "item/state").selectedIndex = listData[i].flag == 0 ? (listData[i].day < today ? 1 : 0) : 2;
|
|
button.onClick(() => {
|
|
// 点击的日期已经签到
|
|
if (listData[i].flag != 0) {
|
|
console.log("点击的日期已经签到")
|
|
this.showInfo(itemData);
|
|
return;
|
|
}
|
|
// 活跃度不足点击显示物品信息
|
|
if (GameModel.player.todayActive < 120 && listData[i].day < today) {
|
|
console.log("活跃度不足点击显示物品信息")
|
|
this.showInfo(itemData);
|
|
return;
|
|
}
|
|
// 活跃度足够可以补签
|
|
if (GameModel.player.todayActive >= 120 && listData[i].day < today) {
|
|
console.log("活跃度足够可以补签")
|
|
if (this.isSameDay(GameModel.player.mendDate, new Date().toLocaleDateString())) {
|
|
// 今日已经补签
|
|
console.log("今日您已经补签过哦")
|
|
MsgAlert.addMsg("今日您已经补签过哦!")
|
|
return
|
|
}
|
|
FGAlert.show(`是否进行补签?`, () => {
|
|
FGAlert.hide();
|
|
}, () => {
|
|
FGAlert.hide();
|
|
GameModel.send("c2c_check_in", {
|
|
roleId: GameModel.player.roleid,
|
|
type: 2,
|
|
signInData: SKDataUtil.toJson(listData[i])
|
|
});
|
|
});
|
|
return;
|
|
}
|
|
// 今日之后的显示信息
|
|
if (listData[i].day > today) {
|
|
console.log("今日之后的显示信息")
|
|
this.showInfo(itemData);
|
|
return;
|
|
}
|
|
// 今日未签到
|
|
if (listData[i].day == today && listData[i].flag == 0) {
|
|
console.log("今日未签到")
|
|
GameModel.send("c2c_check_in", {
|
|
roleId: GameModel.player.roleid,
|
|
type: 1,
|
|
signInData: SKDataUtil.toJson(listData[i])
|
|
})
|
|
}
|
|
}, this)
|
|
}
|
|
}
|
|
|
|
isSameDay(a, b) {
|
|
var arr1 = a.split("/")
|
|
var arr2 = b.split("/")
|
|
for (let i in arr1) {
|
|
if (parseInt(arr1[i]) != parseInt(arr2[i])) {
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
showInfo(itemInfo) {
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
|
|
if (itemInfo != null && this.prefabObject["BagItemDetail"] != null) {
|
|
let detail = cc.instantiate(this.prefabObject["BagItemDetail"]);
|
|
detail.parent = this.welfarePanel.node;
|
|
detail.setPosition(this.welfarePanel.node.width / 2, -this.welfarePanel.node.height / 2)
|
|
detail.name = 'BagItemDetail';
|
|
detail.getComponent('BagItemDetail').loadInfo(itemInfo);
|
|
}
|
|
}
|
|
|
|
showParticle(pNode) {
|
|
var effNode = null;
|
|
if (this.prefabObject["particle"]) {
|
|
effNode = cc.instantiate(this.prefabObject["particle"])
|
|
effNode.name = "effect8866"
|
|
pNode.addChild(effNode)
|
|
this.moveParticle(effNode.children[0])
|
|
this.moveParticle(effNode.children[1])
|
|
}
|
|
}
|
|
|
|
moveParticle(node) {
|
|
cc.tween(node)
|
|
.by(0.5, { y: -80 })
|
|
.by(0.5, { x: 80 })
|
|
.by(0.5, { y: 80 })
|
|
.by(0.5, { x: -80 })
|
|
.union()
|
|
.repeatForever()
|
|
.start()
|
|
}
|
|
|
|
dropItemToBag(id) {
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
|
|
var t = cc.tween;
|
|
var itemNode = new cc.Node("dropItem");
|
|
itemNode.addComponent(cc.Sprite).spriteFrame;
|
|
var data = ItemUtil.getItemData(id);
|
|
itemNode.getComponent(cc.Sprite).spriteFrame = ItemUtil.getItemIconBy(data);
|
|
itemNode.getComponent(cc.Sprite).sizeMode = cc.Sprite.SizeMode.CUSTOM
|
|
itemNode.width = 50;
|
|
itemNode.height = 50;
|
|
itemNode.setPosition(this.welfarePanel.node.width / 2 + 120, -this.welfarePanel.node.height + 80)
|
|
itemNode.opacity = 0;
|
|
itemNode.parent = this.welfarePanel.node;
|
|
|
|
t(itemNode)
|
|
.parallel(
|
|
t().by(0.4, { y: 80 }),
|
|
t().to(0.2, { opacity: 255 })
|
|
)
|
|
.delay(0.15)
|
|
.call(() => {
|
|
let bezerby = cc.bezierBy(0.5, [cc.v2(88, 10), cc.v2(130, 80), cc.v2(155, -350)]);
|
|
itemNode.runAction(cc.sequence(cc.spawn(bezerby, cc.rotateBy(0.3, 90)), cc.removeSelf()));
|
|
})
|
|
.start()
|
|
}
|
|
|
|
openLevelRewardView() {
|
|
this.clearPanel();
|
|
this.selectBtn(3);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.levelRewardView || (this.levelRewardView && !this.levelRewardView.node && !SKUIUtil.isValid(this.levelRewardView.node))) {
|
|
this.levelRewardView = FGUtil.create("main_ui", "level_reward");
|
|
this.levelRewardView.x = 175;
|
|
this.levelRewardView.y = 0;
|
|
pView.addChild(this.levelRewardView);
|
|
}
|
|
this.levelRewardView.visible = true
|
|
// 等级奖励列表
|
|
let rewardedList = FGUtil.getList(this.levelRewardView, "list");
|
|
rewardedList.itemRenderer = this.initLevelRewardItem.bind(this);
|
|
// 虚拟列表
|
|
rewardedList.setVirtual();
|
|
this.levelRewardData = Object.values(SKDataUtil.clone(GameModel.conf_level));
|
|
rewardedList.numItems = this.levelRewardData.length;
|
|
}
|
|
|
|
initLevelRewardItem(idx, obj: fairygui.GObject) {
|
|
var item = obj.asCom;
|
|
// 等级
|
|
FGUtil.getTextField(item, "level").text = this.levelRewardData[idx].des;
|
|
if (this.levelRewardData[idx].level > 100)
|
|
FGUtil.getTextField(item, "level").color = new cc.Color(255, 161, 42);
|
|
else
|
|
FGUtil.getTextField(item, "level").color = new cc.Color(34, 170, 81);
|
|
// 奖励道具
|
|
let reward_item_array = this.levelRewardData[idx].reward_item.split(';');
|
|
for (var j = 0; j < reward_item_array.length; j++) {
|
|
if (j >= 4) break;
|
|
// 道具图标
|
|
let itemData = ItemUtil.getItemData(reward_item_array[j].split(':')[0])
|
|
FGUtil.getButton(item, `r${j + 1}`).icon = `ui://main_ui/${itemData.icon}`;
|
|
// 道具数量
|
|
FGUtil.getButton(item, `r${j + 1}`).title = SKDataUtil.transform(reward_item_array[j].split(':')[1]);
|
|
FGUtil.getButton(item, `r${j + 1}`).clearClick();
|
|
FGUtil.getButton(item, `r${j + 1}`).onClick(() => {
|
|
this.showInfo(itemData);
|
|
}, this)
|
|
}
|
|
let cur_level = GameModel.player.level;
|
|
let cur_relive = GameModel.player.relive;
|
|
let level_reward = GameModel.player.level_reward.split(':');
|
|
if (cur_relive > this.levelRewardData[idx].relive || (cur_relive == this.levelRewardData[idx].relive && cur_level >= this.levelRewardData[idx].level)) {
|
|
if (level_reward.indexOf(this.levelRewardData[idx].level + '') == -1) {
|
|
// 没有领取
|
|
FGUtil.getControl(item, "state").selectedIndex = 2;
|
|
let btn = FGUtil.getButton(item, "n8");
|
|
btn.node["idx"] = idx;
|
|
btn.onClick(this.getLevelReward, this)
|
|
} else
|
|
// 已领取
|
|
FGUtil.getControl(item, "state").selectedIndex = 1;
|
|
}
|
|
else
|
|
// 未达标
|
|
FGUtil.getControl(item, "state").selectedIndex = 0;
|
|
}
|
|
getLevelReward(e: Event) {
|
|
var idx = -1;
|
|
if (e && e.target && !isNaN(e.target["idx"]))
|
|
idx = e.target["idx"];
|
|
if (idx < 0)
|
|
return;
|
|
GameModel.send('c2s_level_reward', {
|
|
roleid: GameModel.player.roleid,
|
|
level: parseInt(this.levelRewardData[idx].level),
|
|
});
|
|
}
|
|
/**
|
|
* 打开vip面板
|
|
*/
|
|
openVipView() {
|
|
this.clearPanel();
|
|
this.selectBtn(4);
|
|
this.showVIPBtnList();
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.vipView || (this.vipView && !this.vipView.node && !SKUIUtil.isValid(this.vipView.node))) {
|
|
this.vipView = FGUtil.create("main_ui", "vip");
|
|
this.vipView.x = 210;
|
|
this.vipView.y = 28;
|
|
pView.addChild(this.vipView);
|
|
}
|
|
|
|
let chargeSum = (GameModel.player.chargesum || 0);
|
|
let vipLevel = VIPUtil.getVipLevel(chargeSum);
|
|
FGUtil.getButton(this.vipView, "charge_btn").onClick(this.clickCharge, this);
|
|
// 打开充值面板
|
|
let titleRT = FGUtil.getRichTextField(this.vipView, "title_rt");
|
|
let money = VIPUtil.getNextMoney(vipLevel, chargeSum);
|
|
let title = `您已经是满级VIP!`;
|
|
if (money > 0) {
|
|
title = `再充值${money}元即可成为[img]ui://main_ui/vip_${vipLevel + 1}[/img]`;
|
|
}
|
|
titleRT.text = title;
|
|
|
|
if (this.vipView.visible == false) {
|
|
this.vipView.visible = true
|
|
this.refreshVipInfo(this.select_level)
|
|
} else {
|
|
this.selectVIPBtn(vipLevel + Welfare.vipBtnStart)
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 刷新vip等级信息显示
|
|
*/
|
|
refreshVipInfo(level) {
|
|
if (!this.vipView || !this.vipView.node) {
|
|
console.warn("未找到vip主面板");
|
|
return;
|
|
}
|
|
|
|
if (this.dayMap == null) {
|
|
this.dayMap = {};
|
|
}
|
|
|
|
let selectedLevel = level;
|
|
let reward = VIPUtil.getVipReward(selectedLevel);
|
|
let current = FGUtil.getComponent(this.vipView, "current");
|
|
let titleRT = FGUtil.getRichTextField(current, "title_rt");
|
|
titleRT.text = `[img]ui://main_ui/vip_${selectedLevel}[/img]每日福利奖励`;
|
|
let getBtn = FGUtil.getButton(current, "get_btn");
|
|
getBtn.data = selectedLevel;
|
|
getBtn.onClick(this.clickVipGet, this);
|
|
let flag = FGUtil.getComponent(current, "flag");
|
|
let chargeSum = (GameModel.player.chargesum || 0);
|
|
let vipLevel = VIPUtil.getVipLevel(chargeSum);
|
|
if (vipLevel >= selectedLevel) {
|
|
current.grayed = false;
|
|
current.touchable = true;
|
|
let receive = (this.dayMap[`vip_${selectedLevel}`] || 0);
|
|
if (receive > 0) {
|
|
getBtn.visible = false;
|
|
flag.visible = true;
|
|
} else {
|
|
getBtn.visible = true;
|
|
flag.visible = false;
|
|
}
|
|
} else {
|
|
current.grayed = true;
|
|
current.touchable = false;
|
|
getBtn.visible = false;
|
|
flag.visible = false;
|
|
}
|
|
let i = 1;
|
|
for (let itemData of reward) {
|
|
let itemBtn = FGUtil.getButton(current, `item_${i}`);
|
|
itemBtn.icon = `ui://main_ui/${itemData.icon}`;
|
|
let tip = FGUtil.getTextField(itemBtn, "tip");
|
|
tip.text = `${SKDataUtil.transform(itemData.count)}`;
|
|
tip.visible = true;
|
|
let anim = FGUtil.getAnim(itemBtn, "effect");
|
|
anim.visible = getBtn.visible;
|
|
anim.playing = getBtn.visible;
|
|
i++;
|
|
itemBtn.clearClick()
|
|
itemBtn.onClick((eve) => {
|
|
eve.stopPropagation()
|
|
this.showInfo(itemData)
|
|
})
|
|
}
|
|
}
|
|
|
|
clickVipGet(event: fgui.Event) {
|
|
let temp = fgui.GObject.cast(event.currentTarget);
|
|
let vipLevel = temp.data;
|
|
GameModel.send(`c2s_vip_reward`, {
|
|
type: 0,
|
|
vipLevel: vipLevel
|
|
});
|
|
}
|
|
|
|
|
|
// 刷新挖宝
|
|
openDugView() {
|
|
this.clearPanel();
|
|
this.selectBtn(16);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.dugView || (this.dugView && !this.dugView.node && !SKUIUtil.isValid(this.dugView.node))) {
|
|
this.dugView = FGUtil.create("main_ui", "treasure");
|
|
this.dugView.setScale(0.9, 0.9);
|
|
this.dugView.x = 196;
|
|
this.dugView.y = 59;
|
|
pView.addChild(this.dugView);
|
|
}
|
|
this.dugView.visible = true
|
|
let data = this.dayMap[`dug_1`];
|
|
if (data == null) {
|
|
GameModel.send(`c2s_dug_list`, { type: 1 });
|
|
return;
|
|
}
|
|
let count = data.count;
|
|
let i = 1;
|
|
for (let item of data.list) {
|
|
if (i > 32) {
|
|
continue;
|
|
}
|
|
let itemData = ItemUtil.getItemData(item.item_id);
|
|
if (itemData == null) {
|
|
continue;
|
|
}
|
|
let itemBtn = FGUtil.getButton(this.dugView, `item_${i}`);
|
|
itemBtn.touchable = (count > -1);
|
|
itemBtn.icon = `ui://main_ui/${itemData.icon}`;
|
|
itemBtn.data = i - 1;
|
|
let tip = FGUtil.getTextField(itemBtn, "tip");
|
|
tip.text = `${SKDataUtil.transform(item.count)}`;
|
|
tip.color = SKUIUtil.colorOfString(item.level > 1 ? "#FFFF00" : "#FFFFFF");
|
|
tip.visible = true;
|
|
let high_flag = FGUtil.getImage(itemBtn, "high_flag");
|
|
let high_border = FGUtil.getImage(itemBtn, "high_border");
|
|
high_flag.visible = item.level > 1;
|
|
high_border.visible = item.level > 1;
|
|
let dugBG = FGUtil.getImage(itemBtn, "dug_bg");
|
|
let done = (item.done != null ? item.done : 0);
|
|
dugBG.visible = (done == 0 && count > -1);
|
|
itemBtn.touchable = (done == 0 && count > -1);
|
|
i++;
|
|
}
|
|
|
|
var updateDug = FGUtil.getButton(this.dugView, "update_btn");
|
|
var startDug = FGUtil.getButton(this.dugView, "start_btn");
|
|
updateDug.onClick(this.clickUpdateDug, this);
|
|
if (count < 0) {
|
|
updateDug.visible = true;
|
|
startDug.visible = true;
|
|
startDug.enabled = true;
|
|
} else {
|
|
updateDug.visible = false;
|
|
startDug.visible = false;
|
|
}
|
|
this.refreshDugTitle(count + 1);
|
|
updateDug.enabled = true;
|
|
|
|
FGUtil.getButton(this.dugView, "start_btn").onClick(this.clickStartDug, this);
|
|
for (let i = 1; i <= 32; i++) {
|
|
let itemBtn = FGUtil.getButton(this.dugView, `item_${i}`);
|
|
itemBtn.onClick(this.clickDug, this);
|
|
}
|
|
}
|
|
|
|
clickUpdateDug(event: fgui.Event) {
|
|
if (!this.dugView || !this.dugView.node) {
|
|
console.warn("未找到挖宝面板")
|
|
return
|
|
}
|
|
var updateDug = FGUtil.getButton(this.dugView, "update_btn");
|
|
updateDug.enabled = false;
|
|
GameModel.send(`c2s_dug_list`, { type: 1 });
|
|
}
|
|
|
|
hideAllDug() {
|
|
if (!this.dugView || !this.dugView.node) {
|
|
console.warn("未找到挖宝面板")
|
|
return
|
|
}
|
|
for (let i = 1; i <= 32; i++) {
|
|
let itemBtn = FGUtil.getButton(this.dugView, `item_${i}`);
|
|
let dugBG = FGUtil.getImage(itemBtn, "dug_bg");
|
|
dugBG.visible = true;
|
|
itemBtn.touchable = true;
|
|
}
|
|
}
|
|
|
|
clickStartDug(event: fgui.Event) {
|
|
if (!this.dugView || !this.dugView.node) {
|
|
console.warn("未找到挖宝面板")
|
|
return
|
|
}
|
|
let updateDug = FGUtil.getButton(this.dugView, "update_btn");
|
|
let startDug = FGUtil.getButton(this.dugView, "start_btn");
|
|
FGAlert.show(`开始挖宝后,今日将不能再刷新!`, () => {
|
|
FGAlert.hide();
|
|
}, () => {
|
|
FGAlert.hide();
|
|
updateDug.visible = false;
|
|
startDug.visible = false;
|
|
this.hideAllDug();
|
|
GameModel.send("c2s_dug", { type: 1, index: -1 });
|
|
});
|
|
}
|
|
|
|
clickDug(event: fgui.Event) {
|
|
if (!this.dugView || !this.dugView.node) {
|
|
console.warn("未找到挖宝面板")
|
|
return
|
|
}
|
|
|
|
if (this.isDug) {
|
|
return;
|
|
}
|
|
let dug = this.dayMap[`dug_1`];
|
|
if (dug == null) {
|
|
this.isDug = false;
|
|
return;
|
|
}
|
|
let count = dug.count;
|
|
let myJade = GameModel.player.gameData.jade;
|
|
let needJade = DugMgr.shared.getJade(count);
|
|
if (myJade < needJade) {
|
|
FGAlert.show(`第${count + 1}次挖宝所需${needJade}仙玉不足!`, () => {
|
|
FGAlert.hide();
|
|
}, () => {
|
|
FGAlert.hide();
|
|
});
|
|
return;
|
|
}
|
|
this.isDug = true;
|
|
let itemBtn = fgui.GObject.cast(event.currentTarget).asButton;
|
|
var dugAnim = FGUtil.getAnim(this.dugView, "dug_anim");
|
|
dugAnim.x = itemBtn.x + 40;
|
|
dugAnim.y = itemBtn.y;
|
|
dugAnim.setPlaySettings(0, -1, 1, -1, () => {
|
|
let index = itemBtn.data;
|
|
GameModel.send(`c2s_dug`, { type: 1, index: index });
|
|
}, this);
|
|
dugAnim.playing = true;
|
|
dugAnim.visible = true;
|
|
}
|
|
|
|
dugEnd(data: any) {
|
|
if (!this.dugView || !this.dugView.node) {
|
|
console.warn("未找到挖宝面板")
|
|
return
|
|
}
|
|
var dugAnim = FGUtil.getAnim(this.dugView, "dug_anim");
|
|
this.isDug = false;
|
|
dugAnim.visible = false;
|
|
dugAnim.playing = false;
|
|
let state = data.state;
|
|
if (state != 1) {
|
|
return;
|
|
}
|
|
let index = data.index;
|
|
let itemBtn = FGUtil.getButton(this.dugView, `item_${index + 1}`);
|
|
let dug = this.dayMap[`dug_1`];
|
|
dug.count = dug.count + 1;
|
|
dug.list[index].done = 1;
|
|
let dugBG = FGUtil.getImage(itemBtn, "dug_bg");
|
|
dugBG.visible = false;
|
|
itemBtn.touchable = false;
|
|
this.refreshDugTitle(dug.count + 1);
|
|
}
|
|
|
|
refreshDugTitle(next: number) {
|
|
if (!this.dugView || !this.dugView.node) {
|
|
console.warn("未找到挖宝面板")
|
|
return
|
|
}
|
|
let title = FGUtil.getRichTextField(this.dugView, "title");
|
|
let myJade = GameModel.player.gameData.jade;
|
|
let jade_rt = FGUtil.getRichTextField(this.dugView, "jade_rt");
|
|
jade_rt.text = `当前[img]ui://main_ui/9004[/img] ${myJade}`;
|
|
if (next < 1) {
|
|
title.text = `挖宝活动每日零时重置!`;
|
|
jade_rt.visible = false;
|
|
} else if (next <= 32) {
|
|
title.text = `第${next}次挖宝将消耗${DugMgr.shared.getJade(next - 1)}[img]ui://main_ui/9004[/img]`;
|
|
jade_rt.visible = true;
|
|
} else {
|
|
title.text = `今日挖宝结束!`;
|
|
jade_rt.visible = true;
|
|
}
|
|
}
|
|
|
|
openGiftPackCodeView() {
|
|
this.clearPanel();
|
|
this.selectBtn(17);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
// 重置拦截点击
|
|
this.stopTap = false;
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.giftCodeView || (this.giftCodeView && !this.giftCodeView.node && !SKUIUtil.isValid(this.giftCodeView.node))) {
|
|
this.giftCodeView = FGUtil.create("main_ui", "gift_pack_code");
|
|
this.giftCodeView.x = 182;
|
|
this.giftCodeView.y = 15;
|
|
pView.addChild(this.giftCodeView);
|
|
}
|
|
this.giftCodeView.visible = true
|
|
|
|
let editBox = FGUtil.getList(this.giftCodeView, "n1");
|
|
let sendBtn = FGUtil.getButton(this.giftCodeView, "btn")
|
|
sendBtn.clearClick();
|
|
sendBtn.onClick(() => {
|
|
if (this.stopTap) {
|
|
MsgAlert.addMsg("请稍后再试")
|
|
return
|
|
}
|
|
if (editBox.text.length < 10 || editBox.text.length > 12) {
|
|
MsgAlert.addMsg("请输入正确的激活码")
|
|
} else {
|
|
this.stopTap = true
|
|
GameModel.send("c2s_convert", {
|
|
roleid: GameModel.player.roleid,
|
|
code: editBox.text
|
|
})
|
|
this.scheduleOnce(() => {
|
|
this.stopTap = false
|
|
}, 1)
|
|
}
|
|
}, this)
|
|
}
|
|
|
|
openBindUserView() {
|
|
this.clearPanel();
|
|
this.selectBtn(18);
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
// 重置拦截点击
|
|
this.stopTap = false;
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!this.bindUserView || (this.bindUserView && !this.bindUserView.node && !SKUIUtil.isValid(this.bindUserView.node))) {
|
|
this.bindUserView = FGUtil.create("main_ui", "bind_user");
|
|
this.bindUserView.x = 182;
|
|
this.bindUserView.y = 15;
|
|
pView.addChild(this.bindUserView);
|
|
}
|
|
this.bindUserView.visible = true
|
|
|
|
|
|
let editBox = FGUtil.getList(this.bindUserView, "n1");
|
|
let sendBtn = FGUtil.getButton(this.bindUserView, "btn")
|
|
sendBtn.clearClick();
|
|
sendBtn.onClick(() => {
|
|
if (editBox.text.length <= 0) {
|
|
MsgAlert.addMsg('请输入被绑定的账号')
|
|
return
|
|
}
|
|
GameModel.send("c2s_binding", {
|
|
roleid: GameModel.player.roleid,
|
|
broleId: editBox.text
|
|
})
|
|
this.closeAll()
|
|
}, this)
|
|
|
|
if (GameModel.player.bindInfo != null && Object.keys(GameModel.player.bindInfo).length > 0) {
|
|
FGUtil.getControl(this.bindUserView, "isbind").selectedIndex = 1;
|
|
FGUtil.getLoader(this.bindUserView, "head").texture = GameModel.getRoleHead(GameModel.player.bindInfo.resid);
|
|
FGUtil.getTextField(this.bindUserView, "name").text = GameModel.player.bindInfo.name;
|
|
FGUtil.getTextField(this.bindUserView, "level").text = GameUtil.getReliveText(GameModel.player.bindInfo.relive, GameModel.player.bindInfo.level);
|
|
}
|
|
|
|
if (GameModel.player.bplayerinfo != null && GameModel.player.bplayerinfo.length > 0) {
|
|
FGUtil.getControl(this.bindUserView, "beBind").selectedIndex = 1;
|
|
let list = FGUtil.getList(this.bindUserView, "list");
|
|
list.removeChildren();
|
|
|
|
for (let i in GameModel.player.bplayerinfo) {
|
|
var item = list.addItem().asCom;
|
|
FGUtil.getLoader(item, "head").texture = GameModel.getRoleHead(GameModel.player.bplayerinfo[i].resid);
|
|
FGUtil.getTextField(item, "name").text = GameModel.player.bplayerinfo[i].name;
|
|
FGUtil.getTextField(item, "level").text = GameUtil.getReliveText(GameModel.player.bplayerinfo[i].relive, GameModel.player.bplayerinfo[i].level);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 打开累充奖励面版
|
|
*/
|
|
openRewardPanel(refresh: Boolean = false) {
|
|
this.clearPanel();
|
|
this.selectBtn(19);
|
|
RechargeReward.Instance.openRewardPanel3();
|
|
return
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
|
|
// 获取主面板
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
|
|
// 添加面板
|
|
if (!SKUIUtil.isFGUIValid(this.rewardPanel)) {
|
|
this.rewardPanel = FGUtil.create("main_ui", "rechargeReward");
|
|
this.rewardPanel.x = 215;
|
|
this.rewardPanel.y = 10;
|
|
pView.addChild(this.rewardPanel);
|
|
}
|
|
this.rewardPanel.visible = true
|
|
|
|
// let charge = GameModel.conf_charge["1"];
|
|
// var num = GameModel.player.chargesum * (charge.jade / charge.money)
|
|
var num = GameModel.player.chargesum;
|
|
|
|
FGUtil.getTextField(this.rewardPanel, "count").text = String(num);
|
|
this.initRewardList(num);
|
|
}
|
|
|
|
/**
|
|
* 初始化奖励列表
|
|
*/
|
|
initRewardList(num) {
|
|
let reward_list = GameModel.conf_charge_reward2;
|
|
|
|
let list = [];
|
|
for (let i = 1; reward_list[i]; ++i) {
|
|
let item = reward_list[i];
|
|
list.push(item);
|
|
}
|
|
list.sort((a, b) => {
|
|
return a.money - b.money;
|
|
});
|
|
|
|
let rewardList = FGUtil.getList(this.rewardPanel, "list")
|
|
rewardList.removeChildrenToPool();
|
|
for (let i = 0; i < list.length; i++) {
|
|
let rewardItem = rewardList.addItemFromPool().asCom;
|
|
FGUtil.getTextField(rewardItem, "title").text = `累计充值${list[i].money}元(${num}元/${list[i].money}元)`
|
|
let has_gain = ((GameModel.player.rewardrecord & (1 << (i))) > 0);
|
|
let getBtn = FGUtil.getButton(rewardItem, "get_btn");
|
|
let flag = FGUtil.getComponent(rewardItem, "flag");
|
|
if (has_gain) {
|
|
flag.visible = true;
|
|
getBtn.visible = false;
|
|
} else {
|
|
flag.visible = false;
|
|
if (num >= list[i].money) {
|
|
getBtn.data = i + 1;
|
|
getBtn.onClick(this.clickRewardGet, this);
|
|
} else {
|
|
getBtn.visible = false
|
|
}
|
|
}
|
|
|
|
for (let j = 0; j < list[i].list.length; j++) {
|
|
let itemData = ItemUtil.getItemData(list[i].list[j].itemIid);
|
|
let itemBtn = FGUtil.getButton(rewardItem, `item_${j + 1}`);
|
|
itemBtn.icon = `ui://main_ui/${itemData.icon}`;
|
|
itemBtn.clearClick();
|
|
itemBtn.onClick((eve) => {
|
|
eve.stopPropagation()
|
|
this.showInfo(itemData)
|
|
})
|
|
let tip = FGUtil.getTextField(itemBtn, "tip");
|
|
tip.text = `${SKDataUtil.transform(list[i].list[j].count)}`;
|
|
tip.visible = true;
|
|
let anim = FGUtil.getAnim(itemBtn, "effect");
|
|
anim.visible = getBtn.visible;
|
|
anim.playing = getBtn.visible;
|
|
}
|
|
}
|
|
}
|
|
|
|
clickRewardGet(event: fgui.Event) {
|
|
if (this.isRewarding) {
|
|
MsgAlert.addMsg("您点击太快了")
|
|
return
|
|
}
|
|
|
|
|
|
this.isRewarding = true;
|
|
let temp = fgui.GObject.cast(event.currentTarget);
|
|
let idx = temp.data;
|
|
let rewardList = FGUtil.getList(this.rewardPanel, "list")
|
|
var rewardItem = rewardList.getChildAt(idx - 1).asCom;
|
|
let getBtn = FGUtil.getButton(rewardItem, "get_btn");
|
|
let flag = FGUtil.getComponent(rewardItem, "flag");
|
|
getBtn.visible = false
|
|
flag.visible = true
|
|
GameModel.send('c2s_charge_reward', { rewardid: idx });
|
|
this.scheduleOnce(() => {
|
|
this.isRewarding = false;
|
|
}, 0.5)
|
|
}
|
|
/**
|
|
* 点击充值
|
|
*/
|
|
clickCharge() {
|
|
Shop.Instance.openShopMainPanel(true);
|
|
this.clearPanel()
|
|
this.closeAll();
|
|
return;
|
|
let mainNode = cc.find('Canvas/MainUI');
|
|
if (mainNode) {
|
|
FGUtil.dispose(this.welfarePanel);
|
|
let mainUI = mainNode.getComponent("MainUI");
|
|
AudioUtil.playOpenAudio();
|
|
let shopNode = SKUIUtil.createSubNode(mainNode, cc.v2(0, 0), mainUI.shopUI, 'ShopUI');
|
|
let shopUI = shopNode.getComponent("ShopUI");
|
|
shopUI.selectedIndex = 2;
|
|
}
|
|
}
|
|
clickGetCharge() {
|
|
if (!SKUIUtil.isFGUIValid(this.firstChargeView)) return
|
|
FGUtil.getButton(this.firstChargeView, "charge_btn").clearClick()
|
|
GameModel.send("c2s_remunerate", {})
|
|
}
|
|
|
|
|
|
/**
|
|
* 清理面板
|
|
*/
|
|
clearPanel() {
|
|
if (!this.welfarePanel || !this.welfarePanel.node) {
|
|
console.warn("未找到奖励主面板");
|
|
return;
|
|
}
|
|
var pView = FGUtil.getComponent(this.welfarePanel, "alert/welfare");
|
|
for (let i = 1; i < pView._children.length; i++) {
|
|
var item = pView.getChildAt(i);
|
|
item.visible = false
|
|
}
|
|
}
|
|
closeAll() {
|
|
FGUtil.dispose(this.welfarePanel);
|
|
this.welfarePanel = null;
|
|
this.firstChargeView = null;
|
|
this.dayChargeView = null;
|
|
this.unscheduleAllCallbacks();
|
|
}
|
|
/**
|
|
* 添加关闭事件
|
|
*/
|
|
pushCloseEvent(item: fairygui.GComponent, target: fairygui.GComponent, call: Function = null) {
|
|
item.clearClick();
|
|
item.onClick(() => {
|
|
call && call();
|
|
this.unscheduleAllCallbacks();
|
|
FGUtil.dispose(target);
|
|
target = null;
|
|
}, this)
|
|
}
|
|
/**
|
|
* 182 15
|
|
* 182 15
|
|
*/
|
|
}
|