[add] 在來一局機制
This commit is contained in:
parent
4d9134d381
commit
14505e26ee
@ -1,29 +1,29 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
QW5H+GVZyg==
|
||||
CisGAQQB1nkCBAIEgfUEgfIA8AB2ANq2v2s/tbYin5vCu1xr6HCRcWy7UYSFNL2k
|
||||
PTBI1/urAAABi26LYFYAAAQDAEcwRQIhAMAurxQPqlUiW9PYDOSsxPhhDum/Osv2
|
||||
MLcY+juSSa/3AiAhIma8L9EP1zoUTWcOxs6tHEnOAxaJIwSnk6kBZhLC0AB2ADtT
|
||||
d3U+LbmAToswWwb+QDtn2E/D9Me9AA0tcm/h+tQXAAABi26LYEgAAAQDAEcwRQIh
|
||||
AIhfbSv55vA0R/xwdUdlJ+Sc0xLGc3GigfeCBk9sqDkjAiBYltUa0XQu3y/aR1Ey
|
||||
C7qsiFbzpZP7Jyf+Z6HSQCUiEjANBgkqhkiG9w0BAQsFAAOCAQEAhHWDEE+6POUM
|
||||
u9tJVy8X5mPISvJ9KqDfqyCV/TmywX0we6uYuyEPAIyMeYh9lnpEhGDvHZVbvAuR
|
||||
A+edMYC2SVBtbAlNCi3hfmnPvTJXtFBsx2hq3aC20pOIuiRN8y9h3fqvGR5H5Qef
|
||||
Q7voM3YvEgThvx2/wrCobSk8vp5ljt9BFXFojv6mwfnp5dWHejOXpQDpB5tGv5pG
|
||||
7OeGN+jeZ+VKUnFaj5+BZ+pv8LXPeszBuOvqid4CGKYx6i0I0H9HIQKwhDHA10y1
|
||||
Fx/ZgmvuIm6MHNklCfUw5dTqgHfml7J+yEamHPXGRmofsVisJ6sC/l3fzTte2mZY
|
||||
Dcio0jTFBw==
|
||||
-----END CERTIFICATE-----
|
@ -1,28 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMu++EVscesee4
|
||||
WKrX8Utrm4Y6r64w/QwkVRwTAGuLrg+mVefPIf1suMjXeIFeKPCwz4FiOcicXNa6
|
||||
oCs6Ds33/D4X6P1GU0JeGItEW31qEJ24XBuhr5XT8Cxadvq/jQSose0F89Y1+kIr
|
||||
eBq3uAM2UQxVLdh7ncIteVEucy04SJ4s1Ptaqq22aT1x+z70/u2AvFBHMNoJ5c9m
|
||||
/bGsQTks1cJoeXrlb3AEnNsekdZuOYHDjIYNWeeZ+ig9YkwgeEcWLm62TBpfONrS
|
||||
1hVS5OHbtnBtkK3I6G5vEnpNhVTtzQ6mXjsL/rO4EaN4DAD4Lj0U+blHgwu1Uwib
|
||||
0YJhOYphAgMBAAECggEAKUIKT5oJQIdLkhvUOfY3Y7UQxMzYhqjIBJ5eLPodsiVe
|
||||
o/+V2mkYIAvQ9ZMkRuxrLMZ0ZW4Nnm0bHLrgWy/WlA3yGXFrcPugWUQK9LiXOoOk
|
||||
tR1iuB+hSveQiJ6Hg4iQkspgYJ214mTPZuEqSTG8+/ozSQsXIDo3gmB7Wqf9SeUD
|
||||
tBmItjTWY6XS31xhwzF6DBa5fzeN+D01pDrocl50MjNrXd0uUdy+SXYYud+N3SRs
|
||||
LxDBLFQHikWNt+YVaW7RG0ZlGIyRVvM2QF/rONFEOLbQLA6Wi2SdU4OX22miZkmJ
|
||||
TKs+kvlCsRvbUVE2jMYoTlQonTCWZ+vAIXfL3g1InQKBgQD9XZ2k1VvwJpnz2OpS
|
||||
IYx7EUPCsAQ2KD5YzoigmrY6xLIR5gjqbM5d5VKwH6EyLn9TQ3SeC33w28ceT/y2
|
||||
DaGGFlhShBMKmxo1LBOQfJess67q0g/NVbyks9mbGxcjZqCP5wj8G7IHWtzH28rV
|
||||
3T1EuMOFn/LZOrGO6g/oVj56LwKBgQDO3OCFr6tr7YGWc1cwQCVfd53RBwRgbimv
|
||||
XJv5127CnWnFEfIaDjsmC270WpmTRlTgVgM9GZS2SVVeECLclNI/Fpo6EUb2Ok+C
|
||||
ZonZUPOxcdxvKeaDVMY+Ec9+vmjiz//cz/QhBoQx0Dzk0HHJATmPdz4wXzg0BRXQ
|
||||
qiPP7rJwbwKBgG8AHJiigOztfHVAiygAWrNwFOeuhanUZ7wwf9sc7MlCc2E0DqPl
|
||||
l2O7nEZdFRoPFOk9nFHBZyOmpc257VU1E5bTI07DXjQ/T3QMI2Yhr7GR5wgpj5K+
|
||||
BS+DO8qgS7rOs3lYFq+c0po2TJOiz3JywuzgpYhdUt+ovzGFigKYBjcxAoGBALjk
|
||||
4WV8M5rfCXHBHBALdZwT3SIkxHuwW1/bRaqVLPGUIyK6vIsfZyzFEWIkzJm/RkPR
|
||||
fUmSYMJhX4UYpSBFgHpVKHp4UNXqHoDuR43O9lIG9EED0X5XOm3mG3EsnbEEuqvR
|
||||
z2HpYiTn/FWEHf/MMXeS3Cn+Ic0VMn90Y1gKAMHPAoGAD3g4Yx+pM5QX1yTO3gLs
|
||||
G3OlVJ1q5FyOFO/tQypHIkuJ24qndj98RkwGmwhH0RpoaOMFCK7ctPxlxRYLigwH
|
||||
RG92Bb4Ysfj6tf4+/9VtxiKIOLMtX+oCEOpjEzBkixpRg1s4ppRRcUiFfTOXVceH
|
||||
XoLPM/VWHQlZS1kmi7+wblE=
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC1lRK4Q4ynTz1+
|
||||
+BhjuqJv7M4Nr97a+hEDx4R39NrS2hOb3O9zwktryOLmBGJez/QILPmLun4yirlr
|
||||
vvibzU7HDgTJe6h3a0OnC8lKv6xAH+L1EUOHwzgpdsJKR/SmrCluYdhlcYh4uPcB
|
||||
VICUZbX2Tgq2fmL7Cf2YkK+qOHnVQgNqfePVl+fidqqW1jcpBzqfB3RUevA+w51/
|
||||
4fXo3CF2PsSfRnoE6N9Ss/PdPuvvfxmLr6gjak5L/6vHk68Ok2ubl3qTG1oyuhHr
|
||||
OYoaOHiUNuY4bO8G6cTY/yjDJwe3kYI3zyj/W3a1RymLDgY048g9z0ACvaymwxWb
|
||||
ei+z5TnpAgMBAAECggEAHbZ7DbPf/DC3O2OVehw8IFx7iznQGbz5s8ieIJLsi7wr
|
||||
oUGR3TtZ5BVHK6RkBGe64uuZGgg2Rkb0+HCTdcsurNvaZK3bb08aDuea1KRwpz2Q
|
||||
gdGFX13Oftp0CHulyPA7B1jzdAYT8s0xfgI52A6cq+UxU5Ny1ulXmfNzC0OajA6u
|
||||
WhstV+HYLswR04U3B6nZlhO1Zf2nlKIYlGdIoR2I2rTss/h+aZ17adLnA5OjqxHf
|
||||
N914XxSXGe0EXNfW7Z6oFcKgieScjaaBE7E7RZW8D8oZOi+Po5d6TcLAgSjCT8jC
|
||||
Gwrimif5yTd+0Ct7F7QD9/nkyyFckfPAjItqL01MAQKBgQDu2Ht27fXdKVpcMssz
|
||||
KfLQbfJuOBA05G9xZs1w55kaMFsH038bAiCPH+juaBqX3FKHSGi+5kxNGzRSpzkD
|
||||
T0QzvAVhpkVPcfzDwcIV0NetJ+GpKTBeo691/2ERKC7/lbFSM8hMipzB9Cy15Ikm
|
||||
0JzLCBRrZoeSiQk83cnUZnt7iQKBgQDCn7kazwRL1GnsDJmcqKSqXE6E+OsfwBPh
|
||||
dpCgr8KNPDP14C80LrV6UxuXlrCd0k1EyBUoJsAWzlg7YrZwaknUjqDwPEDtxDMS
|
||||
JNQBcb62222QOMEmzKqOINNR2rlPQcpfGG/z68Fhjo9sHXDWh+pHf7AFqnufn3wa
|
||||
PODMfB5TYQKBgHvTvkbNXe9YNiGgr9qJv/oxVkOwSy6w09ouGwqS97wtH7SyAK7G
|
||||
7oxlVcTsMgVTU3IRp0R5b0t2dCz5x0Qg/1H3A685natvhEUVGgNnb7m0+HhUA2C9
|
||||
agU57mAPvjYBrJnagNi18ElZxyhSII0AEJnuSW/ZCyZ8Z06oCbBVpWVJAoGBAJI0
|
||||
ConpGgEdALUiggL9bTXNQe8CTx762/RzbRJI9o3CvAXo84zvycSqyf+GZAcrBIC3
|
||||
Da2r7oEzYXS7IvIv5maW/q95lA0JZpQqtlifafVTwWqmN/M9rKI4ZocHGE5BzhTB
|
||||
9tf2Mr9mqLc/JpUCZSxw73pSJ6wx0rijIvx6AQ4BAoGAdxwdKeJUXCq2alk+n3uO
|
||||
hdp76TKLrmJE219ZMCg0hbACTchE8RgbOiPFcx8l9/tCNPytKL4GeeH5RUSE27Qy
|
||||
+jP0vck4Q4+QuUNCmzD4HpFtLLfEx2O4qRoPDd3C1NPc1qSlYIOJj89VoYwy52pr
|
||||
7/Bwa9Ci20NJo61Pit7Ghf4=
|
||||
-----END PRIVATE KEY-----
|
||||
|
@ -1,7 +1,11 @@
|
||||
import { ApiCall } from "tsrpc";
|
||||
import { ApiCall, BaseConnection } from "tsrpc";
|
||||
import Room from "../../component/Room/Room";
|
||||
import { ReqExit, ResExit } from "../../shared/protocols/room/PtlExit";
|
||||
import { ServiceType } from "../../shared/protocols/serviceProto";
|
||||
|
||||
export default async function (call: ApiCall<ReqExit, ResExit>) {
|
||||
// TODO
|
||||
call.error("API Not Implemented");
|
||||
call.succ(0);
|
||||
const conn: BaseConnection<ServiceType> = call.conn;
|
||||
const room: Room = conn.Room;
|
||||
room.Exit(conn);
|
||||
}
|
@ -28,12 +28,10 @@ export default class Lobby {
|
||||
|
||||
/** DelConns */
|
||||
public static DelConns(conn: BaseConnection): void {
|
||||
for (let i: number = 0; i < this.conns.length; i++) {
|
||||
if (this.conns[i] === conn) {
|
||||
this.conns.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
if (conn.Room) {
|
||||
conn.Room.Exit(conn);
|
||||
}
|
||||
this.conns.splice(this.conns.indexOf(conn), 1);
|
||||
}
|
||||
|
||||
// /** List */
|
||||
|
@ -60,7 +60,10 @@ export default class Room {
|
||||
|
||||
/** Exit */
|
||||
public Exit(conn: BaseConnection): void {
|
||||
this.conns.splice(this.conns.indexOf(conn), 1);
|
||||
server.broadcastMsg("room/Exit", 0, <WsConnection<ServiceType>[]>this.conns);
|
||||
Room.rooms[this.RoomId] = null;
|
||||
delete Room.rooms[this.RoomId];
|
||||
}
|
||||
|
||||
/** GotoGame */
|
||||
@ -102,6 +105,13 @@ export default class Room {
|
||||
}
|
||||
server.broadcastMsg("room/ChangeState", data, target);
|
||||
});
|
||||
if (conn) {
|
||||
this.setState(conn, state);
|
||||
} else {
|
||||
this.conns.forEach((conn: BaseConnection) => {
|
||||
this.setState(conn, state);
|
||||
});
|
||||
}
|
||||
switch (state) {
|
||||
case EGameState.Ready:
|
||||
this.Ready(conn);
|
||||
@ -111,6 +121,22 @@ export default class Room {
|
||||
this.TurnEnd(conn);
|
||||
break;
|
||||
|
||||
case EGameState.WaitNewGame: {
|
||||
let canStart: boolean = true;
|
||||
this.connData.forEach((connData: RoomConnData) => {
|
||||
if (connData.state !== EGameState.WaitNewGame) {
|
||||
canStart = false;
|
||||
}
|
||||
});
|
||||
if (canStart) {
|
||||
this.conns.forEach((conn: BaseConnection) => {
|
||||
this.setState(conn, EGameState.Ready);
|
||||
});
|
||||
this.Ready(conn);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -138,9 +164,7 @@ export default class Room {
|
||||
public Ready(conn: BaseConnection): void {
|
||||
const self: this = this;
|
||||
const cardCount: number = 24;
|
||||
const data: RoomConnData = this.connData.get(conn);
|
||||
data.state = EGameState.Ready;
|
||||
this.connData.set(conn, data);
|
||||
this.setState(conn, EGameState.Ready);
|
||||
let canStart: boolean = true;
|
||||
this.connData.forEach((connData: RoomConnData) => {
|
||||
if (connData.state === undefined || connData.state !== EGameState.Ready) {
|
||||
@ -179,6 +203,13 @@ export default class Room {
|
||||
|
||||
//#region Custom
|
||||
|
||||
/** setState */
|
||||
private setState(conn: BaseConnection, state: EGameState): void {
|
||||
const data: RoomConnData = this.connData.get(conn);
|
||||
data.state = state;
|
||||
this.connData.set(conn, data);
|
||||
}
|
||||
|
||||
/** Join */
|
||||
public Join(conn: BaseConnection): void {
|
||||
this.conns.push(conn);
|
||||
|
Loading…
Reference in New Issue
Block a user