import GameModel from "../ts/core/GameModel"; import GameUtil from "../ts/core/GameUtil"; cc.Class({ extends: cc.Component, properties: { pfpanel: cc.Prefab, }, onLoad () { this.pfdata = null; }, start () { this.node.active = false; }, showPalaceFightIcon () { this.node.getComponent(cc.Animation).play('huangchengPK'); this.node.active = true; }, unshowPalaceFightIcon () { this.node.getComponent(cc.Animation).stop('huangchengPK'); this.node.active = false; }, clickPalaceFightIcon () { let npcdata = GameModel.conf_npc['30060']; let posmsg = npcdata.auto_create.split(';'); GameUtil.myPlayerToDo(posmsg[0], parseInt(posmsg[1])-3, parseInt(posmsg[2])+3, () => { }); }, syncPalaceFightData (data) { cc.log('syncPalaceFightData', data); this.pfdata = data; /* 有人拒絕決鬥 */ if ((data.recipient.state == 2 || data.sponsor.state == 2) && (data.recipient.roleid == GameModel.player.roleid || data.sponsor.roleid == GameModel.player.roleid)) { this.unshowPalaceFightIcon(); this.deletePalaceFightPanel(); return; } /* 決鬥開始 */ if (data.recipient.state == 1 && data.sponsor.state == 1) { this.unshowPalaceFightIcon(); let palaceFightPanel = cc.find('Canvas/MainUI/PalaceFightPanel'); if (palaceFightPanel) { palaceFightPanel.getComponent('PalaceFightPanel').setTm(Math.floor(data.tm/1000)); } else if (this.canShowPalaceFightPanel()) { GameModel.send('c2s_palace_rolelist', { roleid: GameModel.player.roleid, }); } // this.pfdata = null; return; } if (data.sponsor.state == 1 && data.recipient.state == 0) { // 發起決鬥 if (GameModel.player.roleid == data.sponsor.roleid) { let pkpanel = cc.find('Canvas/MainUI/PKPanel'); if (pkpanel) { pkpanel.destroy(); } } this.showPalaceFightIcon(); } }, deletePalaceFightPanel () { this.pfdata = null; let pfpanel = cc.find('Canvas/MainUI/PalaceFightPanel'); if (pfpanel) { pfpanel.destroy(); } }, hasPalaceFight () { return (this.pfdata && this.pfdata.recipient.roleid == GameModel.player.roleid); }, /* * 能否顯示palaceFightPanel界面 */ canShowPalaceFightPanel () { let canshow = (this.pfdata.sponsor.roleid == GameModel.player.roleid || this.pfdata.recipient.roleid == GameModel.player.roleid); canshow = canshow && (GameModel.player.mapid == 1206 && !GameModel.player.getMainUILogic().isBattle); if (this.pfdata.sponsor.roleid == GameModel.player.roleid) { canshow = canshow && (this.pfdata.recipient.state == 1); } return canshow; }, getCurTm () { if (this.pfdata) { return Math.floor(this.pfdata.tm/1000); } return 0; }, getIsAllPrepare () { if (this.pfdata) { return (this.pfdata.sponsor.state == 1 && this.pfdata.recipient.state == 1); } return false; }, isSponsor () { return (this.pfdata && this.pfdata.sponsor.roleid == GameModel.player.roleid); }, /* * 能否關閉palaceFightPanel界面 */ canClosePalaceFight () { if (this.pfdata) { return (this.pfdata.recipient.state == 0); } return true; }, update (dt) { if (this.pfdata) { this.pfdata.tm -= dt*1000; if (this.pfdata.tm < 0) { this.pfdata = null; } } }, });