126 lines
3.8 KiB
JavaScript
126 lines
3.8 KiB
JavaScript
import GameModel from "../ts/core/GameModel";
|
|
|
|
let GameDefine = require('../game/GameDefine');
|
|
let CPubFunction = require('../game/PubFunction');
|
|
let CNpcMgr = require('../game/NpcMgr');
|
|
|
|
cc.Class({
|
|
extends: cc.Component,
|
|
|
|
properties: {
|
|
emojiAtlas: cc.SpriteAtlas,
|
|
},
|
|
|
|
onLoad() {
|
|
},
|
|
|
|
start(){
|
|
|
|
},
|
|
|
|
//播放效果
|
|
playBrotherCreateShow(data){
|
|
|
|
let actionArrs = [];
|
|
let gameLogic = this.getGameLogic();
|
|
if(gameLogic){
|
|
|
|
let sayArr = GameDefine.relationMsg.filter(e =>{
|
|
return e.action == GameDefine.relationActionType.Bro_Create;
|
|
});
|
|
let members = JSON.parse(data.members);
|
|
if(sayArr.length > 0){
|
|
sayArr.forEach((e,index) =>{
|
|
if(e.target == 1){
|
|
//玩家說的話
|
|
members.forEach((i,index) => {
|
|
let curRole = null;
|
|
if (i.onlyid == GameModel.player.onlyid) {
|
|
curRole = gameLogic.mapLogic.roleNode;
|
|
}
|
|
if (curRole == null) {
|
|
curRole = gameLogic.GetPlayerObjs(i.onlyid);
|
|
}
|
|
|
|
//拼接顯示的話
|
|
|
|
let sayStr = e.msg1;
|
|
|
|
|
|
if(e.msg2 != ''){
|
|
let nameArrs = this.getOtherMembersName(members,i.name);
|
|
nameArrs.forEach((j,index)=>{
|
|
if(index > 0)
|
|
sayStr = sayStr + ',';
|
|
sayStr = sayStr + j;
|
|
});
|
|
sayStr = sayStr + e.msg2;
|
|
}
|
|
let sayFunc = cc.callFunc(() => {
|
|
CPubFunction.CreateRoleEmojBroadCast(curRole, sayStr,this.emojiAtlas);
|
|
});
|
|
actionArrs.push(sayFunc);
|
|
});
|
|
}else if(e.target == 2){
|
|
//NPC說的話
|
|
let sayStr = e.msg1;
|
|
|
|
|
|
if(e.msg2 != ''){
|
|
let memberCount = members.length;
|
|
sayStr = sayStr + memberCount + e.msg2;
|
|
}
|
|
let sayFunc = cc.callFunc(() => {
|
|
CPubFunction.CreateRoleEmojBroadCast(CNpcMgr.FindNpcByConfigID(30049), sayStr,this.emojiAtlas);
|
|
});
|
|
actionArrs.push(sayFunc);
|
|
|
|
}
|
|
actionArrs.push(cc.delayTime(4));
|
|
});
|
|
|
|
}
|
|
|
|
actionArrs.push(cc.delayTime(0.2));
|
|
|
|
actionArrs.push(cc.callFunc(() => {
|
|
this.closeShow();
|
|
}));
|
|
|
|
let mainNode = cc.find('Canvas/MainUI');
|
|
if(mainNode)
|
|
mainNode.runAction(cc.sequence(actionArrs));
|
|
|
|
}
|
|
|
|
},
|
|
|
|
getOtherMembersName(arr,name){
|
|
let arr1 = arr.filter(e =>{
|
|
return e.name != name;
|
|
})
|
|
|
|
|
|
let nameArrs = [];
|
|
arr1.forEach(e=>{
|
|
nameArrs.push(e.name);
|
|
});
|
|
|
|
return nameArrs;
|
|
},
|
|
|
|
getGameLogic() {
|
|
if (GameModel.currentScene == 'MainScene') {
|
|
let logic = cc.find('Canvas').getComponent('GameLogic');
|
|
if (logic != null) {
|
|
return logic;
|
|
}
|
|
}
|
|
return null;
|
|
},
|
|
|
|
closeShow(){
|
|
this.node.destroy();
|
|
}
|
|
});
|