1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import { _decorator, Component, Node, Label, Sprite, director } from 'cc';
- import { UserMgr } from './UserMgr';
- import { RoomEvent, RoomMgr } from './RoomMgr';
- import { MsgUserDataChangedPush } from '../shared/protocols/public/room/MsgUserDataChangedPush';
- const { ccclass, property } = _decorator;
- const aiLevelStr = ['初级', '中级', '高级'];
- @ccclass('GamePlayerInfo')
- export class GamePlayerInfo extends Component {
- @property(Label)
- userId: Label;
- @property(Sprite)
- icon: Sprite
- @property(Node)
- readyState: Node;
- private _defaultIcon;
- private _userId: string;
- onLoad() {
- this._defaultIcon = this.icon.spriteFrame;
- }
- protected start(): void {
- director.on(RoomEvent.USER_DATA_CHANGED, this.onUserDataChanged, this);
- }
- protected onDestroy(): void {
- director.off(RoomEvent.USER_DATA_CHANGED, this.onUserDataChanged, this);
- }
- onUserDataChanged(msg: MsgUserDataChangedPush) {
- if (msg.uid != this._userId) {
- return;
- }
- if (!msg.isOnline) {
- this.readyState.active = true;
- this.readyState.getComponent(Label).string = '离线';
- }
- else {
- this.readyState.active = (!RoomMgr.inst.isPlaying && RoomMgr.inst.getUser(this._userId).ready);
- }
- }
- setAILevel(level: number) {
- this.userId.string = '电脑-' + (aiLevelStr[level] || aiLevelStr[0]);
- this.icon.spriteFrame = this._defaultIcon;
- this.readyState.active = false;
- }
- setUserId(userId: string) {
- this._userId = userId;
- if (!userId) {
- this.userId.string = '等待加入...';
- this.icon.spriteFrame = this._defaultIcon;
- this.readyState.active = false;
- if (RoomMgr.inst.isWatcher) {
- this.readyState.active = true;
- this.readyState.getComponent(Label).string = '加入';
- }
- }
- else {
- UserMgr.inst.setUserIconAndName(userId, this.icon, this.userId);
- this.readyState.active = false;
- if (RoomMgr.inst.isOnline) {
- this.readyState.active = (!RoomMgr.inst.isPlaying && RoomMgr.inst.getUser(userId).ready);
- if (this.readyState.active) {
- this.readyState.getComponent(Label).string = '准备';
- }
- }
- }
- }
- update(deltaTime: number) {
- }
- }
|