SamsaraGame/assets/Script/panel/RelationApplyPanel.js

145 lines
4.2 KiB
JavaScript
Raw Permalink Normal View History

2025-04-24 17:03:28 +08:00
import GameModel from "../ts/core/GameModel";
let GameDefine = require('../game/GameDefine');
let GameRes = require('../game/GameRes');
cc.Class({
extends: cc.Component,
properties: {
memberPanel: cc.Node,
loadingBar: cc.ProgressBar,
lblRelationDesc: cc.RichText,
btnCancel: cc.Button,
btnClose: cc.Button,
btnAgree:cc.Button,
lblWaitOthers: cc.Label,
lblLeftTime:cc.Label
},
onLoad() {
},
initApplyData(data){
console.log('初始化申請信息');
let leadId = data.leadId;
this.relationId = data.relationId;
this.relationType = data.relationType;
let members = JSON.parse(data.playersInfo);
let membersNum = members.length;
this.lblRelationDesc.string = `${membersNum}位少俠,確認要結拜為<color=#3CA1DF>${data.relationName}</color>嗎? `;
for(var i = 0;i < members.length;i++){
let member = members[i];
let str = 'player_' + i;
let playerPanel = this.memberPanel.getChildByName(str);
if(playerPanel){
this.setPlayerInfo(playerPanel,member);
}
}
this.leftTime = 60;
this.lblLeftTime.string = this.leftTime + '秒';
this.schedule(this.updateProgress,1,60,1);
},
updateProgress(){
this.leftTime = --this.leftTime;
if(this.leftTime < 0){
this.unschedule(this.checkPlayerMove);
this.onCloseBtnClicked();
}else{
this.loadingBar.progress = this.leftTime / 60;
this.lblLeftTime.string = this.leftTime + '秒';
}
},
setPlayerInfo(panel,data){
let headIcon = panel.getChildByName('headicon');
let sp = GameModel.getRoleHead(data.resid);
if (sp) {
headIcon.spriteFrame = sp;
headIcon.active = true;
}
let lblName = panel.getChildByName('LblName');
lblName.getComponent(cc.Label).string = data.name;
lblName.active = true;
let sp_ready = panel.getChildByName('IconReady');
if(data.agree){
if(sp_ready)
sp_ready.active = true;
panel.getChildByName('LblWait').active = false;
}else{
panel.getChildByName('LblWait').active = true;
}
panel.getChildByName('LblPlayerId').getComponent(cc.Label).string = data.playerid;
let sp_leader = panel.getChildByName('IconLeader');
if(sp_leader && data.isLeader){
sp_leader.active = true;
}
if(data.playerid == GameModel.player.roleid){
this.btnAgree.node.active = !data.agree;
this.lblWaitOthers.node.active = data.agree;
this.btnCancel.node.active = data.agree;
}
panel.active = true;
},
confirmBtnClicked(e,c){
GameModel.player.send('c2s_relation_agree',{
relationId:this.relationId,
roleId:GameModel.player.roleid,
agree:1
});
},
updateAgreeInfo(data){
let children = this.memberPanel.getChildren();
for(const child in children){
let playerPanel = children[child];
let lblPlayerId = playerPanel.getChildByName('LblPlayerId').getComponent(cc.Label).string;
if(data.playerId == Number(lblPlayerId)){
playerPanel.getChildByName('IconReady').active = true;
playerPanel.getChildByName('LblWait').active = false;
}
}
if(data.playerId == GameModel.player.roleid){
this.btnAgree.node.active = false;
this.btnCancel.node.active = true;
this.lblWaitOthers.node.active = true;
}
},
addLoadingBar(n) {
this.loadPercent += n;
// console.log('this.loadPercent', this.loadPercent);
this.loadingBar.progress = this.loadPercent;
},
onCloseBtnClicked(e, d) {
//關閉則默認拒絕加入
GameModel.player.send('c2s_relation_reject',{
roleId:GameModel.player.roleid,
relationId: this.relationId
});
AudioUtil.playCloseAudio();
this.node.destroy();
},
});