89 lines
2.5 KiB
TypeScript
89 lines
2.5 KiB
TypeScript
|
|
|
|
import { _decorator, Component, EditBox, ScrollView } from 'cc';
|
|
const { ccclass, property } = _decorator;
|
|
|
|
import { MapCityData } from "../map/MapCityProxy";
|
|
import MapCommand from "../map/MapCommand";
|
|
import ChatCommand from "./ChatCommand";
|
|
import { ChatMsg } from "./ChatProxy";
|
|
import ListLogic from '../utils/ListLogic';
|
|
import { EventMgr } from '../utils/EventMgr';
|
|
|
|
@ccclass('ChatLogic')
|
|
export default class ChatLogic extends Component {
|
|
|
|
@property(EditBox)
|
|
editConent: EditBox = null;
|
|
|
|
@property(ScrollView)
|
|
chatView:ScrollView = null;
|
|
|
|
_type:number = 0;
|
|
|
|
protected onLoad():void{
|
|
EventMgr.on("update_chat_history", this.updateChat, this);
|
|
EventMgr.on("unionChange", this.updateChat, this);
|
|
}
|
|
|
|
protected onEnable():void{
|
|
console.log("onEnable")
|
|
this.updateUnion();
|
|
this.updateView();
|
|
}
|
|
|
|
protected updateUnion():void{
|
|
let city:MapCityData = MapCommand.getInstance().cityProxy.getMyMainCity();
|
|
if (city.unionId > 0){
|
|
//加入联盟频道
|
|
ChatCommand.getInstance().join(1, city.unionId);
|
|
}else{
|
|
ChatCommand.getInstance().exit(1, 0);
|
|
}
|
|
}
|
|
|
|
protected updateChat(data:any[]){
|
|
if(this._type == 0){
|
|
var comp = this.chatView.node.getComponent(ListLogic);
|
|
var list:ChatMsg[] = ChatCommand.getInstance().proxy.getWorldChatList();
|
|
comp.setData(list);
|
|
}else if (this._type == 1){
|
|
var comp = this.chatView.node.getComponent(ListLogic);
|
|
var list:ChatMsg[] = ChatCommand.getInstance().proxy.getUnionChatList();
|
|
console.log("list:", list)
|
|
comp.setData(list);
|
|
}
|
|
}
|
|
|
|
protected onClickClose(): void {
|
|
this.node.active = false;
|
|
}
|
|
|
|
public updateView():void{
|
|
console.log("type:", this._type)
|
|
ChatCommand.getInstance().chatHistory(this._type);
|
|
}
|
|
|
|
protected onClickChat(): void {
|
|
if (this._type == 0){
|
|
ChatCommand.getInstance().chat(this.editConent.string, this._type);
|
|
}else if (this._type == 1){
|
|
let city:MapCityData = MapCommand.getInstance().cityProxy.getMyMainCity();
|
|
if (city.unionId > 0){
|
|
ChatCommand.getInstance().chat(this.editConent.string, this._type);
|
|
}
|
|
}
|
|
this.editConent.string = "";
|
|
}
|
|
|
|
protected onClickWorld(): void {
|
|
this._type = 0;
|
|
this.updateView();
|
|
}
|
|
|
|
protected onClickUnion(): void {
|
|
this._type = 1;
|
|
this.updateView();
|
|
}
|
|
}
|