123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453 |
- import Stage from "./stage/Stage";
- import Pack from "./pack/Pack";
- import ViewObject from "../../main/ViewObject";
- import { HttpStateType, ReveData } from "../../util/CHttp";
- import { AudioMgr, GameViewType } from "../../main/ViewManage";
- import ShopView from "./shop/ShopView";
- import Equip from "./equip/Equip";
- import FFCalAttr from "../data/FFCalAttr";
- import { PetAttr } from "../data/udata/Player";
- import RedPoint from "../data/RedPoint";
- import FirstPay from "./activity/FirstPay";
- import TopMenu from "./TopMenu";
- import Wish from "./activity/Wish";
- import Revenge from "./activity/Revenge";
- import CUtilTime from "../../util/CUtilTime";
- /**
- * 主页home
- */
- const { ccclass, property } = cc._decorator;
- @ccclass
- export default class Home extends ViewObject {
- @property(cc.Label)
- mZdl: cc.Label = null;
- @property(cc.Label)
- mPower: cc.Label = null;
- @property(cc.Label)
- mMoney: cc.Label = null;
- @property(cc.Label)
- mGold: cc.Label = null;
- @property(cc.Sprite)
- mIcon: cc.Sprite = null;
- @property(cc.Sprite)
- mFrame: cc.Sprite = null;
- @property(cc.Node)
- activityNode: cc.Node = null;
- @property(cc.Node)
- mEmailNode: cc.Node = null;
- @property(sp.Skeleton)
- mRole1: sp.Skeleton = null;
- @property(sp.Skeleton)
- mRole2: sp.Skeleton = null;
- @property(sp.Skeleton)
- mRole3: sp.Skeleton = null;
- @property(cc.Node)
- mEquipNode: cc.Node = null;
- @property(cc.Node)
- revengeBtn: cc.Node = null;
- public revengeTime: number = 0;
- public topMenu: TopMenu = null;
- public revengeView: Revenge = null;
- /**
- * 用户点击了冒险按钮回调
- */
- private mxCallback: () => void;
- onLoad() {
- //心跳60秒执行一次
- this.hit()
- this.schedule(this.hit, 15)
- this.flushActivity();
- this.topMenu = this.main.topNode.getComponent(TopMenu);
- this.topMenu.main = this.main;
- this.topMenu.home = this;
- this.main.topNode.active = true;
- this.main.playMusicByPath(AudioMgr.homeMusic);
- this.node.getChildByName("activity").getChildByName("1002").active = !this.main.player.isNew;
- this.getPay()
- }
- public hit() {
- this.main.gameHttp.sendJson('role/v1/resumePower', {}, (state, reve: ReveData) => { });
- }
- public onEnable() {
- this.flush()
- this.flushZdl()
- this.flushRole()
- this.flushEquipRedPoint();
- if (cc.sys.localStorage.getItem("showRevenge" + this.main.player.role.id) == 1) {
- this.activiteRevenge();
- } else {
- this.getRevengeData();
- }
- }
- private getPay() {
- let msg = {
- }
- this.main.gameHttp.sendJson('pay/v1/checkPay1', msg, (state, reve: ReveData) => {
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- this.main.showReward(reve)
- }
- } else {
- }
- });
- }
- public flushZdl() {
- this.main.player.flushZdl(this.main)
- let role = this.main.player.role;
- this.mZdl.string = '' + role.zdl;
- }
- public flush() {
- let role = this.main.player.role;
- let roleIcon = this.main.sManage.getRoleIconById(role.icon)
- if (roleIcon) {
- cc.resources.load('icon/role_head/' + roleIcon.icon, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => {
- if (err) {
- cc.error(err);
- } else {
- this.mIcon.spriteFrame = spriteFrame;
- }
- });
- }
- let roleFrame = this.main.sManage.getRoleIconById(role.frame)
- if (roleFrame) {
- cc.resources.load('icon/role_head/txk/' + roleFrame.icon, cc.SpriteFrame, (err, spriteFrame: cc.SpriteFrame) => {
- if (err) {
- cc.error(err);
- } else {
- this.mFrame.spriteFrame = spriteFrame;
- }
- });
- }
- }
- public flushRole() {
- let pet1 = this.main.player.getPet(1)
- this.updateRole(pet1, this.mRole1);
- let pet2 = this.main.player.getPet(2)
- this.updateRole(pet2, this.mRole2);
- let pet3 = this.main.player.getPet(3)
- this.updateRole(pet3, this.mRole3);
- }
- public flushActivity() {
- this.main.gameHttp.sendJson(`firstPay/v1/data`, {}, (state, reve: ReveData) => {
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- if (reve.data.firstPay.count == 3) {
- this.activityNode.getChildByName("1001").active = false;
- }
- } else {
- this.main.showTips(reve.message);
- }
- } else {
- this.main.showTips('网络异常');
- }
- });
- }
- private updateRole(pet: PetAttr, spine: sp.Skeleton) {
- if (pet == null) {
- spine.node.active = false
- } else {
- spine.node.active = true
- let mWeapon1: sp.spine.Bone = spine.findBone('control');
- if (mWeapon1) {
- // mWeapon1.data.rotation = 45;
- mWeapon1.rotation = -45;
- }
- // let attrData = FFCalAttr.getAttr(this.main, pet);
- // if (attrData.skin) {
- // spine.setSkin(attrData.skin)
- // }
- // if (attrData.weapon) {
- // Equip.chaneWeapon(spine, attrData.weapon)
- // }
- }
- }
- /**
- * 监听网络
- * @param reveData
- */
- public httpEvent(reveData: ReveData) {
- let data = reveData.data;
- if (data._role != undefined) {
- // this.flush();
- this.topMenu.refresh();
- }
- this.flushZdl();
- if (data._equip != undefined) {
- this.flushEquipRedPoint(true);
- }
- //['email']
- if (data._msgPush != undefined) {
- if (data._msgPush.indexOf('email') >= 0) {//有新邮件
- RedPoint.addRed(this.main, this.topMenu.mEmailNode, true)
- }
- }
- }
- /**
- * 刷新角色红点
- */
- public flushEquipRedPoint(force?: boolean) {
- if (RedPoint.petsRedPoint(this.main)) {
- RedPoint.addRed(this.main, this.mEquipNode, force)
- } else {
- RedPoint.removeRed(this.mEquipNode)
- }
- }
- /**
- * 角色查看
- */
- public onclickRoleIcon() {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.viewManage.loadFunc(GameViewType.tap_role, (viewObject: ViewObject) => {
- viewObject.show();
- });
- }
- public setMxCallback(callback: () => void) {
- this.mxCallback = callback
- }
- /**
- * 地图
- */
- public onclickMap() {
- this.main.playerEffectByPath(AudioMgr.click);
- let isNewGuide = false
- if (this.mxCallback) {
- this.mxCallback()
- isNewGuide = true
- }
- this.main.viewManage.loadFunc(GameViewType.stageView, (viewObject: ViewObject) => {
- let stage = viewObject as Stage;
- stage.load((result: number) => {
- if (result == 0) {
- if (isNewGuide) {
- stage.inGuide = 1
- }
- viewObject.show(this);
- } else {
- this.main.showTips('载入地图失败')
- }
- });
- });
- }
- /**
- * 背包
- */
- public onclickPack() {
- // if (Pack.instance) {
- // Pack.instance.flush();
- // Pack.instance.show();
- // } else {
- // }
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.startLoad();
- this.main.viewManage.loadFunc(GameViewType.pack, (viewObject: ViewObject) => {
- viewObject.show(this);
- });
- }
- /**
- * 神卡
- */
- public onclickJitan() {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.viewManage.loadFunc(GameViewType.god_card, (viewObject: ViewObject) => {
- viewObject.show(this);
- });
- }
- /**
- * 装备
- */
- public onclickEquip() {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.startLoad();
- RedPoint.removeRed(this.mEquipNode)
- this.main.viewManage.loadFunc(GameViewType.equip, (viewObject: ViewObject) => {
- viewObject.show(this);
- });
- }
- /**
- * 魔盒
- */
- public onclickMohe() {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.viewManage.loadFunc(GameViewType.mohe, (viewObject: ViewObject) => {
- viewObject.show(this);
- });
- }
- /**
- * 商城
- */
- public openShop(eventTouch: cc.Event.EventTouch, data: string) {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.startLoad();
- this.main.viewManage.loadFunc(GameViewType.tap_shop, (viewObject: ViewObject) => {
- let shopView = viewObject as ShopView;
- shopView.init(Number(data));
- shopView.show();
- });
- }
- /**
- * 首冲
- */
- public openFirstPay(eventTouch: cc.Event.EventTouch, data: string) {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.startLoad();
- this.main.viewManage.loadFunc(GameViewType.firstPay, (viewObject: ViewObject) => {
- let firstPayView = viewObject as FirstPay;
- firstPayView.getFirstPayData("data");
- });
- }
- /**
- * 每日祝福
- */
- public openWish(eventTouch: cc.Event.EventTouch, data: string) {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.startLoad();
- this.main.viewManage.loadFunc(GameViewType.wish, (viewObject: ViewObject) => {
- let wishView = viewObject as Wish;
- wishView.getWishData();
- });
- }
- /**
- * 复仇礼包
- */
- public openRevenge() {
- this.main.playerEffectByPath(AudioMgr.click);
- this.main.startLoad();
- this.main.viewManage.loadFunc(GameViewType.revenge, (viewObject: ViewObject) => {
- let revengeView = viewObject as Revenge;
- this.revengeView = revengeView;
- revengeView.getRevengeData();
- revengeView.refreshTime(this.revengeTime);
- revengeView.setBuyClickFunc(() => {
- this.showRevengeBtn(false);
- })
- });
- }
- // 激活复仇礼包
- public activiteRevenge() {
- let msg = {
- id: 1001,
- };
- this.main.gameHttp.sendJson(`revenge/v1/open`, msg, (state, reve: ReveData) => {
- this.main.stopLoad();
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- console.log("====复仇礼包激活成功===");
- this.getRevengeData();
- } else {
- this.main.showTips(reve.message);
- }
- } else {
- this.main.showTips('网络异常');
- }
- })
- }
- public getRevengeData() {
- let msg = {};
- let nowTime1 = CUtilTime.getNowTime();
- this.main.gameHttp.sendJson(`revenge/v1/data`, msg, (state, reve: ReveData) => {
- let nowTime2 = CUtilTime.getNowTime() - nowTime1;
- this.main.stopLoad();
- if (state == HttpStateType.SUCCESS) {
- if (reve.retCode == 0) {
- console.log("=home=reve=revengeData===", reve)
- let data = reve.data.data[reve.data.list[0].id];
- if (data) {
- if (data.value == 2) { // 购买过
- this.showRevengeBtn(false);
- return
- }
- let time = data.time;
- if (time > 0) {
- this.showRevengeBtn(true);
- this.revengeTime = time - nowTime2;
- this.revengeBtn.getChildByName("time").getComponent(cc.Label).string = `剩余 ${CUtilTime.getTimeString2(time - nowTime2)}`;
- } else {
- this.showRevengeBtn(false);
- }
- }
- if (cc.sys.localStorage.getItem("showRevenge" + this.main.player.role.id) == 1) {
- cc.sys.localStorage.setItem("showRevenge" + this.main.player.role.id, 2);
- this.main.viewManage.loadFunc(GameViewType.revenge, (viewObject: ViewObject) => {
- let revengeView = viewObject as Revenge;
- this.revengeView = revengeView;
- revengeView.revengeData = reve.data.list[0];
- revengeView.show();
- revengeView.initItem();
- revengeView.refreshTime(this.revengeTime);
- revengeView.setBuyClickFunc(() => {
- this.showRevengeBtn(false);
- })
- });
- }
- } else {
- this.main.showTips(reve.message);
- }
- } else {
- this.main.showTips('网络异常');
- }
- });
- }
- showRevengeBtn(show = false) {
- this.revengeBtn.active = show;
- }
- tempTime: number = 0;
- update(dt) {
- if (this.revengeTime <= 0) {
- this.showRevengeBtn(false);
- if (this.revengeView) {
- this.revengeView.exitDistroy();
- }
- return
- }
- this.tempTime += dt;
- if (this.tempTime >= 1) {
- this.revengeTime -= 1;
- this.revengeBtn.getChildByName("time").getComponent(cc.Label).string = `剩余 ${CUtilTime.getTimeString2(Math.floor(this.revengeTime))}`;
- this.tempTime = 0;
- if (this.revengeView) {
- this.revengeView.refreshTime(this.revengeTime);
- }
- }
- }
- }
|