UICreateRoom.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { GameUILayers } from "../../scripts/GameUILayers";
  2. import { ModuleDef } from "../../scripts/ModuleDef";
  3. import { LobbyMgr } from "../scripts/LobbyMgr";
  4. import { GameSceneUtil } from "../scripts/GameSceneUtil";
  5. import { UserMgr } from "../scripts/UserMgr";
  6. import { Layout_UICreateRoom } from "./Layout_UICreateRoom";
  7. @tgx_class(ModuleDef.BASIC)
  8. export class UICreateRoom extends tgx.UIController {
  9. constructor() {
  10. super('ui_create_room/ui_create_room', GameUILayers.POPUP, Layout_UICreateRoom);
  11. }
  12. protected onCreated(): void {
  13. let layout = this._layout as Layout_UICreateRoom;
  14. this.onButtonEvent(layout.btnClose, () => {
  15. this.close();
  16. });
  17. this.onButtonEvent(layout.btnCreate, this.onBtnCreateClicked, this);
  18. layout.edtName.string = this.getDefaultRoomName();
  19. }
  20. private getDefaultRoomName() {
  21. return UserMgr.inst.name + '的好友局';
  22. }
  23. async onBtnCreateClicked() {
  24. let layout = this._layout as Layout_UICreateRoom;
  25. if (!layout.edtName.string) {
  26. layout.edtName.string = this.getDefaultRoomName();
  27. return;
  28. }
  29. if (layout.edtName.string.length > 14) {
  30. tgx.UIAlert.show('名称最多 14 个汉字');
  31. return;
  32. }
  33. if (layout.edtPassword.string.length > 16) {
  34. tgx.UIAlert.show('密码最多16个字符');
  35. return;
  36. }
  37. tgx.UIWaiting.show();
  38. let ret = await LobbyMgr.inst.rpc_CreateRoom('normal', layout.edtName.string, layout.edtPassword.string);
  39. tgx.UIWaiting.hide();
  40. if (ret.isSucc) {
  41. let password = layout.edtPassword.string;
  42. if (ret.isSucc) {
  43. let params = ret.res.enterRoomParams;
  44. return await GameSceneUtil.inst.enterGame(params);
  45. }
  46. else {
  47. tgx.UIAlert.show('创建失败');
  48. }
  49. this.close();
  50. }
  51. else {
  52. tgx.UIAlert.show(ret.err.message);
  53. }
  54. }
  55. }