From 457489075502f2e21c2aa8563dfb4a0d48fc3d21 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Wed, 19 Oct 2022 14:33:59 -0500 Subject: [PATCH 01/39] I need a better way to deal with this config thing --- src/config.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config.ts b/src/config.ts index 4bf4466..b581c0b 100755 --- a/src/config.ts +++ b/src/config.ts @@ -1,7 +1,7 @@ import { KeyLayouts } from "./keybindings"; -const useSsl = false; +const useSsl = true; const wsUrl = useSsl ? "wss://inharmonious.floomby.us:80" : "ws://localhost:8080"; -const defaultKeyLayout = KeyLayouts.Dvorak; +const defaultKeyLayout = KeyLayouts.Qwerty; export { useSsl, wsUrl, defaultKeyLayout }; From c538a2eae991d6fe2c29ee54c56c9e12816ff83b Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 25 Oct 2022 22:49:28 -0500 Subject: [PATCH 02/39] Add missing query for looking up available ships --- server/server.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/server/server.ts b/server/server.ts index b463577..543bff5 100644 --- a/server/server.ts +++ b/server/server.ts @@ -756,8 +756,19 @@ wss.on("connection", (ws) => { const state = sectors.get(client.currentSector)!; const player = state.players.get(client.id); if (player) { - purchaseShip(player, data.payload.index, ["Advanced Fighter", "Fighter"]); - // state.players.set(client.id, player); + Station.findOne({ id: player.docked }, (err, station) => { + if (err) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Server error loading station" } })); + console.log("Error loading station: " + err); + return; + } + if (!station) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Station not found" } })); + console.log("Error loading station: " + err); + return; + } + purchaseShip(player, data.payload.index, station.shipsAvailable); + }); } } } else if (data.type === "warp") { From fc6ce99cc4500786a1d2c758775edeabe562179e Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 28 Oct 2022 19:09:10 -0500 Subject: [PATCH 03/39] Fix text --- src/dialogs/cargo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/dialogs/cargo.ts b/src/dialogs/cargo.ts index 7a36cc4..801a6db 100644 --- a/src/dialogs/cargo.ts +++ b/src/dialogs/cargo.ts @@ -64,7 +64,7 @@ const dumpCargoPostUpdate = (cargo?: CargoEntry[]) => { } }; -const dumpCargoDialog = horizontalCenter(["

Dump Cargo

", "
", ""]); +const dumpCargoDialog = horizontalCenter(["

Cargo

", "
", ""]); const setupDumpCargoDialog = () => { dumpCargoPostUpdate(lastSelf?.cargo); From 1fc803f0b6916a52c6eaf3563568015305e21198 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 8 Nov 2022 21:03:27 -0700 Subject: [PATCH 04/39] NPCs can go to new sectors --- server/server.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/server.ts b/server/server.ts index e8391a7..b0a4e7d 100644 --- a/server/server.ts +++ b/server/server.ts @@ -1315,12 +1315,12 @@ setInterval(() => { const state = sectors.get(newSector); if (state) { const ws = idToWebsocket.get(transition.player.id); + const sectorInfo = { sector: newSector, resources: sectorAsteroidResources[newSector].map((value) => value.resource) }; if (ws) { const client = clients.get(ws)!; client.currentSector = newSector; client.sectorDataSent = false; client.sectorsVisited.add(newSector); - const sectorInfo = { sector: newSector, resources: sectorAsteroidResources[newSector].map((value) => value.resource) }; ws.send( JSON.stringify({ type: "warp", @@ -1333,11 +1333,11 @@ setInterval(() => { }, }) ); - transition.player.position = transition.coords; - transition.player.heading = headingFromCardinalDirection(transition.direction); - transition.player.speed = 0; - state.players.set(transition.player.id, transition.player); } + transition.player.position = transition.coords; + transition.player.heading = headingFromCardinalDirection(transition.direction); + transition.player.speed = 0; + state.players.set(transition.player.id, transition.player); } } From 322f1b331c3b83f3eb147cd702f9f491eaaa730d Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Thu, 15 Dec 2022 14:59:40 -0600 Subject: [PATCH 05/39] Add video preview image to repo --- workspace/video_preview_image.png | Bin 0 -> 1363638 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 workspace/video_preview_image.png diff --git a/workspace/video_preview_image.png b/workspace/video_preview_image.png new file mode 100755 index 0000000000000000000000000000000000000000..590d588d9cad58384fbfd525bdd44ca55c88c3c9 GIT binary patch literal 1363638 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®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%0DXcle*p$e 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 Q8S(+q&J%)^AdZ$UmpNwG7_x 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­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�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

`=KagPt2 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�F*zIV#pYCG9uCN&A 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

  • z;a{cjqG9g9i@K{{8zJjsx7OTRdI9FEli6 zapdYuT7TD4hr{i$MmR$fuC_vsMUzubw*uKlR2I^5QTUrT}pdL!Er^~WVO*QZOB@>;*wy3-i;6;b?kzXP?lgUTO; z?{8E-R)QZ77w$LRoh^hx5hlPLL{aM~a@gY;SV z_*M_Q*$ixM0bQrHn zWZdaEjMDJ}jjR8x1WkJ!TpnnB4b*7j@BytX2cU!YM;IAq#VV zr?4)$X6;%zhB+=Ca{-+R7j>p%kl-;%=;{ z%!U~RA%Xj%7+@|ScMdxC5{>_DE_-B zPiy1xN1@Y-SsF$T3wIv@xO)&s=IIJy{Vs84^X}drxvPSu+2nh4*2W@`Netq!pXKQ? zh%;CC`Kx!%DfAdM9YjKT2-58E*5|VV@)ZS*SNNy$!-eEe^zynMxu80`<)bM6({l$sr-wAWCBSY`F)A|GTLJ4eos@H3tyE;*o z|5Xtme!yeP3v@a#xa-!3o>N4qqmYeIDXuzoD)XW7Q?%JkJJf_nrnJ}KQdT#qL*TwAL`c$Xfb^3Gl?Ku#9>uh&FS1B8e@DF{M_+RRf!mI0{w;%CCVX_(Q4fu_V&!&{ zHXbxbdj<88dC;CNlfDj42l&!u=HSh)WyWY%LMG;?T9UFWGjZssgmYn29}Nu-(s--k z#{(;j-kxE?{azhSMvkY_94GLd%Om2oY&uC}<6|`NiEoJR-;p!rMe@o5_RJl?414#k z{`BFxQ^0+Ipxr6T4s$HV7#kb2W(I2C^(z%PGcQFh&%n_wMS9NV&!NL-w^MVbnP#%) zZmdGVq|XKXOOP3~L3#>oFFAu%{miSJSxsNeXJoJ^nNN$obl#NL7XA(tY(1CA<8EK> z&)M))o)p+!3}6Ql+>hSBTlk#XIV=nCQd|#c`XpWz>SY7tKm3CIIR4{%6yo}2a{&yT zqpScZOE@;#jfb0$W;cI1!qi8958xzRb^SQF$I#2}Z-(DKBJL>nsB-|s9SHKqx^vS2 zX!=k_@ow51Q#XjYeJZs7uKKHv$GE82{#xt4zdowwvomhi2x56&Lw_1^*M41bmhosD z(d7)|AbuXpZ@*kxc>>&aQSFtN%To7#81+KO7pikRge${1RRsB<@(8%;P;*~CQ#RjN zGh#n5O5w%8@lX8s+z0)6D<@(8$E2hQr!sIT>dt~&H2XGRh?WmUT>e$d*MJ{Y>-owk zk-3Ht!|wp~#ZOOsDCDgk#OaLF&qe-fs3$6cYjk;{oFN=vPU9B?+IVvMr9WuX>6Q(o zMRa)^f6cR!^1|`2f9x_uE&aR7s6T9^H^^5V-|@k6SxtrwLjJn;gZ?#Vj5}6<*b0xW z|2p10(^S3yHwqdC{KR`GKkA?T=_95-u5|iNEr<;-29T+-@o||r#3r}tY11zRB>sW? z8u|30@z;JeWL^T7D zSkrOCP9+>qW*FsI5pcHIH;3W&sladejmF^(Z+HVe`Q(!{oy|%|69cf7n1U>-WFe}M zx^UCv0_LES%eV2{z5~A7IKLW!hEvVQsv*v@1*^utD7bvUTP40!=h+ls1DAXt<�?cQznKpfS`li1aSe?7?jqVW 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

    o!JVLiUen0b}moB;FVtVM| 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

    5*j-lf%EOCr?%@ zCsy>+H&zEHm%D?T7n3kY&J=^~#}n}Em=V=0fou+^*5c>k>T(tb&A*uPN4;&W&jl%3 zwJ@|0@qoSP?gOcB$in(upY)S^F+{Brg7 z+i#oaNX$C^O74^C`Dw~M86j-67I_EkJ)i^L`ovVZ-iJwY%cZ$A<7S{(>^fSurd%K@p1H2Fq>p2U$!E8jgid2-b{P$>^y+j;%k^=c#Cgk_69)~H=)FGsHr`U5r`o_*%o z>XRS;q%Nl7@BIS$8tn%P()6T)wDKujdji!Uzg`rFir>j>wX;A1o^Y=OC`uU@6i zQYWvbw-?OI`#}Pmek_(g^uZ5Rue|a~s&(O)blQbJ_rpY)B=uwX=I?mW2YWZHi(lal z@l>Vu95O`cQ^C?_L(;jjo7*D&F07C)LL|N(w$VCeIq})s>0MRM?-b(@x<;wb&sS$1DQMdvpk9jsrGR# zr5v|Tdtu-0U6T5L2|sk6%xo~Mn8XQq?N)=b@tqW1DWEiGAw!)&&~WPdrk2<_V{lue&EQtqU2r zfnbz=MR~-zviDW7&+0?7@2lw;hl^9EPUYf#{PD;2tzfLH8PC}$zIE$Xb?44q3owAb zGMikEslEj;k0bqCGrqy-Fmd+m8U1{~#^$|=b$Z&mt9vsk4tCZW-26RtYOPvZGt#m; zBQ_lN&|;!l;CbNi=7*&Iee7c&)9YzL{e=`suCW;0=g=o~?cjLXPU#mi zscMF2{=N<8v?N?1osXsjv<_t6q95tM^DCVb`MSMMU)(!L;|LE4VZSi9niWjRprfyY zUGS1|>INm_6?K~-Z_bNJj-7O?!Hp4ZG&ArmkvWWNg#BS=mBizjn&jURcLtuC zKLNZTqmaoG$vZu{P>Bhf!s~xAwXd}>7H;yjXVd*MqZu)0bb)JPI(RI}kz5E(DG1q* zi+7n0=}*yB7YhDae}ZW5MdGQOH^Phw8nL+9$9LH9rfvD4q&yj61DeU$Ku9>J2=X); z?r(f{Wke+D$fm`!xCU8gEexff&=YKlNdpH?L|^)}j81?%WEz`JK&`KI<5!3Y7!%d= z7tU8FR(KNI+6oInO+|vIqEWlk5V~|0!M6%GHa7GGAvc20o;_P#xbTQRja~M?O&DJW z)QEO^&Fhwby6)oRI;!mk>Znihmk7l+yRi0Yf&vY&J`YARQO=ouUThh&L4iuMTQ zojiHf5l^ge!0KLlb)G9%0_rtdt)z{CEfzx)lUm%G)wSKbp9 z!p*4U<=5y~yZls6>Y_${4RU;s=hqqTKc5Dzyq$lWmybv7^k)N`*o^TUu7PEPtt8(+ zpXz~b0CnpeP$bbEd%UhwGd}Le|Hv)cBWhMt%AGJ2D~Q?v^(a~9!)#&)^fSmZCN#m!rGlN5a-1QYtB4mk#?-hSlrDkEggWS(oej zOWjzX@98zE*;B&f<%M6QcV4NaJqSrjIm+=o4L+zd9DT5uEo9dbww?;k< z<#mm2ch=;#KBpbn`uya{wd(Yl)4D#lc=jfudC)JH6)|t;;;BXQx4g{QeMWBrvoC;~ z&qMn#oNwB8JB&x;_DV(w7WrcJ>WF*v)ACqc(sf(jzf}ZgJqTVG_$P_R%ESs_66VO6VyON2{L&MO>3JUNG83eHM?`;a#A!bzPU;%t1{BHm zV=zE-{N}(iubHK;v9C%0#35Vz2D;2{#ox;gbW3*_n4FPZ4%0%$1=iHdE6b9{o%ES8 za%DN|&e=C?cXnBe#zV$fp&U5*6pA7QAoB@tfj5+?m6XoATu^*tZT!#RXXJh~v_C<}e-l3eiCN8TK8`SNA) z?OsRqVb<}NyqoE88)gTk{FFrLy1ffu|Jv8|bCULH$5=;_+{Df4)Np>YJOPY;sSx^! zl%8mmEMT26sBRcTb*s3M9z z9h54tcl64uhF^0M*|W%mq0VlRE*=GsNf;lp4{(^Ce4|XeK$Tf9r-Je*^2$v(>is+K zypvo4LeQw^Qs-SDj1$oB2yJhR2a_Tz6FrucST*?@HIX{-0IeVCHw+JBd?aN>OsC9O zc@4ZA+885)pf{M5Y^tYBB<%)uJFRhfZ2~s%Vq)qyeosh$$J5x)fA}NS$+flI*Ku>! zV6se$E}cc(y}PapNuW=KKlN1g(T{$#x+;qq25yt13&yvcV7Ak1UbprgUE6aw;*>9Mh$atS-kw)`92uv)31_W>H*_m zZ*`v;2hMOb(3sJ%4y`S=C&yiFau{_So5GF<{lFuSKB}kkDVH7TLv<1^a`+(@77pOB z>cl}}=mxMZn57M_uive1-@cv80pcc-6&*VCvJrbyDe-8(Y*s z8xzicdUlgzcpYU!Q2vR7m_mA@SnXU|A7!M$HJu|}ALYMBqSi5<|-Aj_EGdRHX-G&g`Xl!o2c z?=?UB+_Tl0)2H)m1KD&Xl-4C^Bws_3kDhF$8Z|evWNF-(1m4V}8~vWQh&kFnC^h8l zOZWbKySqr2HaaN>`g?_36N0*68>BcHcZ@Es_~RanFv`=cFWB!VfpG0k30?V%$id5U z?E!t|r$6;+=|A7J`c5>GZRlhGq?M>Hi`rCT-X!ZXUZDzne&h9Ts`NUM;!B+{U{2tf z<%8;Qvu;3-#ZY@^4$k3aWGX{uT?TpE==S6Aw;zCDjm~=W^y#(ggHJuJH-UkSnj;QG zPR3-}>=nBDStcoe*6Do4d7SZ^LKa2V}}kr+N2x6{5U9r9<=&s z0q~Evr7cxo`Kd2gw{G1QIX9)8-d{I>9i+{?Wkc5H^-35=EV&G1up50Tq8KhaZZ0SNqniB0^t#}7nE17lMmIicN}8DD z(@gae*tLG6-hwsAIAG5aGSuG#z*ELBU5BBol-5|xKK`1dAOFOss%M^gR_C~P*Y74* z0rEu(P`xBrUWxz#9AILuWCx{08!`@9_$0U3lh*Az!Fi6q0Ze_6IXdGJVTEvSPtS#4 zYHXDM(uqetG{+6#F0@jdj5!w&gHT<_zrJMVOx`yTP3N^%)E=%!LBjLSaKKFwCU z7prf4<1bgQ{qTo2pra2GNf||F5vo)791S|*)UgV2+8F6=0|B1umH0Ak>f+y&8DKu7r!q2~0^ERC{z9}PPVg~+@w65Trn`6Vs>vkQ z;1iJP>RFf0BDm42rz4R=h!f~Mv3FhCI15kjA9QoJ!OQHq7!%t1XkNF(N%gSgZ0iDh2af%(%N z&hbP9S*8WD(``=DA$cv`adW~i>O&DO%l@GZ>+O3i_)hvWANo-B{70VGdC48=qeTd< z4~S`tC~Mmf1KRDbfT%~upaNPy)na7%6>Yma&}b<@CWDm&V~dsJ%*b&mY4|C}SJf(8=z4!E5CVys* zd&q6P|nStk8oBj>A6 zu#q6TB{5?@a{t#xSzj90$*MPi%{mA#5Ax2Fzd;uoK8PLTxJ`P+WNU(GgzwJvcr@gk z0gDSuI;XvUc({B6SpNsOdkUuq zp%Nc{>L%A}Yt&zmWD%P43E(bFS)~1pMxj=yKug1{8R=S;(Lr6E!!+o-0Sxr2aGL~` zMTjTSnB=U>>z4mUA~XVp0RwZnGOgmO~8VooYa%k%WmJPTts z;`K(WK)*L3KVH+xD^nSe>;8GNoPC(&r%$spb6VD+??m0VW2rNl7K{UFFZlD`2O3SQDof#1s8EWlk=H_nh*Zr#R z3zZeWFFf3@3v+XGb9w#V%QCk9 zFTLz;-MYzR0qQChinj?R`AF{ZmqYtPq=ng|`8(zoJa31;*SoP$iRDK4g7N(WIN9BC zpLz8ackSv`caP>6YY!gKoJY7;!)+;CFPuo}Nk1t0 z`gmk^cDCHPbLZUWKL0t6e)rB@o^!`ne;*ZOa`F7D(f+Rn#1gc}Q{YLNn``Goj;EwAUApAH`1vomM}E^E2PAL~sGmZevL2vN zg}fCxU&(dC3mMpQISiDzRQ|DOTWgjfdDnPQUxbh0v#b4-_FWWx^2_ICoE`i5v|b)I zjt^m2cM*PEtAi*opAv6-2ZuA(+0jQM3J;dOD2^vFYlWmaj znVC3G9%9hzlErQ*pcu`c4TopO`$^1xDCvVd;Y(DwU3=Qra5&t;uNu8Ut?L8Jdtwk) zHT0i|qZT+1zoucC;1B#_OvaDgFj)8K!)Gv9)dfS>Opk0KAbl3+B-s&5-r=FWqofhQ zZ8+rrim(UZ{Uv+@uK>@MBigb7?Q56zlm{j0h={lLn^BRhfI+VXn4)w6HT!eJg zaej3DBX{ra9rxftJhgjZ(DGLXTItHj_VQj^rv*QC-itKh<3&GrC?&<(crUm1n3roqrQ1*&Eb6|oE8H(BC2{R4?pjt#8z72RlKHO%> zVErjK@sJmF#iQCp9DvleDESG*AN(QTT09PGGgKbfJW#_nu!ChD7U1QqY8+9CpQELo zs(Bg^XWlgo;8)1YB46rM{2x8q zT+@#a@A&pD^CI7m8hYrQN7Wy zp*Mg5#7FeuTn)(v?w8lN z9xXHqmH^{o8=?f;;{hoD2CX^n-nkR@p)l`)j-+j^NvqKodmz`xAvBsiZrEsv!MoIFS=6a(NJZ}659{3k6HmkOAO|==UxWQ;e6RY}EqOa2<}`RS3+AMV z4ucyWUYeXfU$t0Xa=w!5B%XJSK}&uI1Ie?NxBBWnTUUJph@C*R^FN~>mK;wKi|J#u8lDKsL$cGt{(@(J~iB!!zdm8FF;sc3s66f zi8htQmiW1P!Y@S{ArD7rPIm~J`Sk37 z8^9hM=KaIEoc(MZ7%N#Vk1sce(eLz&znK+%C^{PMOh5+Aq;%-_~S zgEoAD$B>8GBl*@FmoxsGWO}Wz3x_<+VzwjuF1ezEM4Y-7wCfK)F)#rl|7AMbC92$U z(gz!l{Ovx-MH`_1mLJzk#*>vL8Xdj|hh$uC3gX5{4xC!HuPN*Ue1oinu6mgkcD39Y zuq8VLs$;6-*c`*_(Deyml|S0HY!pKFBscFr6hSXBf}xF4+r;aD10P-d`+jTBZ@{9& zIqc2L2A_WBiFfu3e0pEr5}-RdN)sn3o2TClPB0rr@Q#T41g&rM*J=Z(V=SoT20wA< z`_WKu2Dk}|Hi?BPPU5Pld2x#P>W_ws9=98 z{~nbM2L%|uJV*y<+D?6CNLz>`Hy9({D6ls2bd zLM|iAv&t;bzg8|AZ*~Itp|9?vKdsPyyeA(`8OQ5fclyXxfmB20GHAKrMZ51Av(Rrv zHXje|-^22pAHI=|EP0hwi02QWU_yhZ8F3I3b8fV@uYBbz?xmMrbnm_YzWbZM`5Sll z?j4%fZp%#|^aJ=&--a=Yzl}@&=;u)~atK`l>y{CXX8rv0&+{P|ye$O$U|v<4KOrA% zgxIpFJ72&KM=B$Wbo|$TMl;m@v!1>c*^OWBM{Irtx*E>vL3f9U?d|L6b7H@-2i!%a0jS%x-= zC$ihnRWEI8(;P|r@beQ|ZKq{uD^JD?c;mEW(C^^Twx-wi*Q)=Z7x+)hVdqFz2DU|l zw(9?A{q^hrT1SZDlt|;r7I2{B2d#?P?hBPq-do2pFlLIf={h+tC)UjX%boze!a7c0 zjgER|S*kq!_@{L6EqY5*^T(T^YdK=Fl{Z@2pYF_Q#h91UkH03(L- z1LSk0Awa$9K1r0NFSCb+EAsFzbjeKD*NUz~oy*J1+;7WaWE{}%rjH-q6vR)^&&TyS z0DU=o_ME$SPd;VTmOp4AT=s;7h-zmum4uh(K^F36lO|MdiOv*csrzrdM#o%O8Pd39 z+4iaWqWz})2mk8w$m@kJOFB)nH18^-CQVBV<$CmJ+kcv3n2zo3jeBDw#DGJim}g=> z3Z2ULXfVE^{_y>2?2RhGUuZ8rjz#O3I{=`I_MgiG^3ra#Dt%3(dQg*T*Zq&K`zKxK z%DaLP9KqmU>S1%d&n!_n&!9PGR~0 z8SfXepWk2f>pSd^BF;S3*H^ysRrmZ$pK@yt*4&T&;)nd^l=Ur&MEpF0WXN9HeaJRg z;Pn~i>~sy50o)1!a1Hv~Xveh1KfQX&z3{>d?%soY?#(yf;5QiJUY)jarUBVgdc56s zVIdwQO6N1yEns`3Z|PCK>9OrBeXLl9l-FQ zL<1W(4IXZ0uQ&5RGi)0A*8-jBYd-r0P~Jc42M0_pFv-V;KFl_5@{^4DhCrchK&JeP zH@IpI1YkHqSWpD7+p?mF!lec8^6rO6P zfY6_jg?c%E;XJpog95iZ8uwA}_+B5Lki<8v0M!5X&Nl1Y*486_qBV@U1u!jR4jQVn zZMxeRd0G0Frxw@xQHE)N)DH^N4 z^rbJk-~2nj>7M`83qDpIP$%Bh;!VCLwA>IEZZ19h+;jY9oYKu-&|-50bWwEU@ajz4 zY2WsK(7>Aov@NKa3ies#&`13xQ2z6B;CgJ?G_5s99GI`)ym^DhemRf@mN6#dX27vS z)^-|g>4>(iNg!%Q+U?C@VNAc3Zp6XC! zjx`_-`RWFAUx1F9q2NvR%uExdo5%Z^-z31zSLi?1rHqDPD{5p5qb+zC9t)-7Pdx6&H2d!?98J4VBUwX-1#3y)Yo&MeLeb+rlYw0#{ z|D5p}o;vp47@t>9opNjIYi{M#D(7+a>XYP;{n$sm52yU_*g)y@<}da@hVFw*4&-Oe z!C=z9Op}AoP+EwtN#+(VJTvMQ(ETAo&Bd&SSmFO;fl1W+@4xSE-?_sRl$SsKY4-}5 zH{W=}ZP8?fAsHozUiFRNp-Ae%+#H0$b49h3HQc$Ucve2S(M{a0ii-^u5!AS!c^{LL3SJyHx0-` zY!2pl4URJpTQ}$wu3Wj|KDz#)v`t?q z$n4bVQ+)aii%)DihOkg@KY{UbtIIh@MyGEw532d#io9e<{82x)j`UjMpuM91Xfq0s zMV_{uhw&%Cdl(*=Pfpi}T!zmWlgt-he8GME@yGmT3yYqVMgbGzZ+-h)G{OBee{T`r z)Yr);`VB06p*PSA^n3gn34J1lAmg^g#p!6o&u0yyX)85JaHu zzt*<7&NBnd&iXv)66;g&_0+Yi?(hEH@3`}4&$)AFPP-*q;H@q%yKA%%{I7rYW62*0 zmi4>pJAu#hBwu*M5!YOh!mp#37Q zJ~@J)BD%(+jY2(4k?YVtyM(UfSmjuNQ{kD=Lbor%H^4Zbx{*9p0MS4$ zzq6-jv<9@r3`b6LN?;w6v2$&0-LKE*+^e5?)xGlSEAF+|UgLvdIFvUTCMY-RU!Q>S zN)hFWdi9@$|Tj!I>N8s}KMS zpaz&6BpeJ#A^u8W-nf7A+(0b8zY2`_wv0I+bPntJM7IpT39|k-hLUWI{MD8BMK;bj zWc+jh^Hbfk2y=HIRs^vp^^=yTKbqxb!xGUj*kaC~zu=yJ`f2{gIS%zuWR5X5Z;V;! zC;q{I^WV77eeSdF*S~&^{bJr_XnwV9L%a16&=P>ir<60#MXn>!apf||^eM-r?Y)b? zq^}~>as!))i6?p64$J1ae95oRpSa?#e{`MGTApyT05=hqmsj`=F?xu*1n>&}IK8%8 zCDmYD0y@jjx>SHqXVaHxVU!4YCp_SS4B9BU)UY7A&c)yj9HIh3JLKUl0DdTLDgUNV zUr0*OJb&&St8GCN z&mV3)+~9p2e*0nu%q!+eZx(RKpJ>*`kum6^l(!#6e-1iouw#M?y=XOv(-P0lUxolJ z5p;=!M_CU#*R`PH-7>Zwv{8K@Y0zH4cbh4tQ^T(|fqN()B6%IR6qx&43E{%v>e{5f~_)T-Nh_|Pp=+q!c3vitE*f5zmwUn9)z%6^@;DVZn2 zEi+aWAFsJr@1313ntNf5xa&T?@v*yg^CtD{cR3wCsR63sNuNxfr?v}Tv92F8x9St8 z4N?*q`3YbPUG>v;9<%d~aEWzT{5B{M0I zuMV;uEIiiGhK;8PVR+H#J0&q3+zGz<%Z{=zxz0L>p-x~*3;u&fmtGz=FbTvWQ{7{M zP8bH|#dq0$^rIiUKlzhC3I1J(Z4vgkdQ0njJe?e*z41py=~0|R$5_4F-r8|*zx|GT z>#aBC)#^s3xC!vgGf%s3fBQGw)vH&%@8bpSJN5%smSX|d@C5F~ix<7m!2rCYU;pus ze&qi15B`iNp*Rqx{l4OrS6+2bJaL)ZyxoM&fz$5jZ+L;ZPx3wvn1)WAAVS+OpWYo{ zH0@zRbpe|QI+m@{g7V2HpX5Uo>+5Uo#*Lf&O)6|$^DFr~Ao74CwlmCEgW&^elGojP zclo=N$cu0O0th3cCzEwvr<>+J__2YMsa_xrx8?)~57O$!*fS067u{)qw2fc+e*OA& zeya=c=9_Q1AN<)5+^N-5Zex9&{f;v7HiNz{G1G2S=-=_1djh}vejxS3apvU;-K;7EvOy<<^*-@N6q7)5#FT3>+=ItE$A`U13&ulkKLdB*?)3xl78TU4gh+Aa2()y z_0?DTkoNo>ZtgbqPvSZX$02Q6pC9nJX?59}6P%zIpew91!P(FFeSo3*h66XcKEHeS z9zUtOxVXe)5ATtJw*S>&$Dllaeg!pOOPm`wZ?KIt4>vZFxbVY66)*t5p^=*J0XN|T z2aoh59wSD9@d)!98xeCVm?>gz@xrqQ@&s@VrAf~aK%sE67xp$yHXdzl@hctmbv;&D z%V_6s2-2+Nf(J6*w3>Bi&YX7t-GBG{e4^>jojY!m7RB>86+v-^axqqFJ0v5#CL1|! zZ9Z}{b3}>qZ|9&MHkOY7(;-+yy3?zl5^!h$H;$gXc9nC&`|G7sqnv30i8_Tpo?QFl z7ryAe{*ABkX|;QI@37ng|6thbAnPQ;U;vHdAy@L>#~`F}`eOJK!026(mzp#t1_r&c zy0pAR`qKW5gXTaX*Y*5sh;+~%uxV=t3k5clv7ngzMhwz|dpR+TN{H{X2I-M)RBuVa1qcq29v1UVhC`U0DW>Z;Wl1$ajZ8rDDKSaxy4NUh^PEu?62 zAz?60xo~bM`(`VcpZ@eL4{C^6V8ll5MN%j`Cx>JlUzOE9y zJ$5WmJ?LPwiuQR^H#GHNDq7xPXYERXV2+|AjW;+73a2l>9>`8kh^lNX*bD!p-Jv;g zU*WrpEoy6X^KD=Pk>&lK@@1aje`)a9a~F7VDpGZsFlND zX1L&xa5-PqC60zZ9hbQQ5}g}^Nz*@`z|8`PUj9K{HsZL?<;!PR2WIxbPIf&(nE})Cg@ksOO0?LH)p+DOMHkw}d5faLxT&8Y#jpZ@u@VTS7+pO;X2T?ZsIp3Oex#k-XrN|c4;IxW4# zvq;m7K(X#3{OHX2C_n1%lXq8~JiNw@j;DR{w7`B6_BwTqrF^Tob?Y{-sjxoRJZeCE zEkFHdzpOe8BtYV}fF=mVINr~O^7t#@~QR8NkP-k;PCW|4@nKBsbw#NYUZiyMG;Y7+e)2c+22Auz z+~dq{%U6#5&1RGnHmYln+AUWbmk};%qvYf{7v+Ke1P3=1Seq|VUia?bbEl}Se*0VB zbk9EX9PiPtt*tT7(*J-S@!sQRXQ@vZ14vIKs8Dz6AG7lgbDi*F+za!#DL&)2wzqih zhQlhVIS?HmR`+F<+{lgeN!jAH<|BNmA6v5CHIO(FdHCVq0B#FT1W-m>jD8(bpE&)H zvP&17M}LV3zQgtL z2>{!%1u(nPkE#W@fzct56SyK(`Ib@feY8s_-pPu z@K54xY;Lf9;o^CIt>5a(3eB;0`QX-n{qc|8M>jqumcffp04Etexz9o5RvodM+rcTB zQ{H4^Fni;GBj$2A7J*4O?`k5-b{q#Ng>6SGE2sDg zn!iVLRBWhX^K4}mvTq*XL*7_`vaR(Gc?O;Uy^emG&LZl6D%WYkmNUS6b+x}@S`P$i z`nd5h%+%W5fg!20ql2JJhCkLHBd=rwZ8XNoKd_bE0KRkQE`L%AudhY_B~M(|xlG&4 zP{i_s3~0eD&M(M1jC2y=Hj7-}C&?Y?Y`>NDk>*=T)f+YbRZsBRK)hlQ{WtbbaKIk| z!MK1pyVTzUSDw7$e&=_->puO;%kHzE`K_lc?7<_aUL#!w#x7gPyV8jEYhOpzyNuW!Q=nm{MNU4afw$deNw@b2W&LLrbz@&AU>o{ ziQh$!Ud`(d>k)NI+*zJF#ZQ6Z#`zXC>K#g}K%+$G`_@};yN^Eln6G(~;^lsLzzAzi z8PLa>S^37L9#p`hyFXCIKIO!Qq&4FZWP6CPlh>mJ=w2}X_qf8|AV7K5&W-vXX@I{e z^EiVA#0<52n9v89b`!$7QEGETn&3gV*F3+rb^zV5@l|hdIvV!c+5;bw!ah-~?oTo> zp0=T(16To$F-UsA`gAbpQznU{#V?)O=Vp)a0qq;WCyCU^-UHHthI(MZLJKuCC8CQu z*xTFTc@u!|edBvwKmN-fyTADJ|Kk4a2S0GX{N*p*pZ@8ey1)LLzox2_cnW=u6}z+g z)V>{-21z>=w~Y?HLwX#(1234v;HER?F?>jf<~0x3H)MWi(j7%;-_r|O-23-pKZR4( z$EA&M{n;P!eO!1yK?_VB>QnnUjzm3!1v2lv^A10)hJFHL|3UGl`u^-Q&$@4Y``d1P zW5dnQ&a?QAf_M%Z+6Uql;#gOI^zldT{)78IRKn4(<0daQ4Y5{TS;2v$Qyd?gZn#mZ za#h^Cans$qcc1&1;|M%agZ&4r)7czR<(MX0c76kQX}&WlbPR<~smW3BIzbnVB50eo zW)u!l=e0kveacY+*uq>_0WNEts{A<({X>6pm}t|7+S7ozp@cU$;+x|u%gc>5J`O@E zPS)oI==yM|`2=8e|8$^0U3lZy=hEW6AHVTrht~77W+!vz)T-Ov-g1Bb=l_}3=s$FS zPV4hu|LT|SkN?fTcE9@7-?}-9gZEO-QC~2Nw`$Q?iz8<6n;|-Q=9i!QCDGvFae0;% zw0-u3&^MBey@9|B(o$R9q`B?F;v&Bp0*CR?F8Q#d9~00_kE-l>>d}`s#3O^X1lAPy z?%_>jc*E)^3>$$Kq*mg30A0s(dI$Q1pQX8B=a7 z7O)}q-n;L)vu958<{O^+1ki}0bC0ZCA|Z@-OKme2x|{J0}5luvx*|D@&Yege3QZj6cY zoj-rxz4FQ{{NxN4)abCeQ?BGwTS%8<19^O%ltq8!1zGl)WY_rW4IQ<5Ak9i-g5giE z6Zpu=Uz5#~CxG`0DogaUDr4AI#=$*$Q6T9f9kKd?G(5PJ20zipPWoqfEknc0@wB}5 zsaEn4+lO(!Fyb4XjFc|gInu|4SPW0orAWexDmGs4z>l>{;4*q7Je3o3#N-w71x@LJVGDkwtn38fqei zl(ItmAC7C3KWQ6q`|(lR4SSKEN4NOn0yZ|0uxXF^5}urY_uY5g>ud*6Sw9 zz5q$YyP8m%dHRr-pa0-G#uf1O?3^4dML7L%iW`f|x8Hf&zr_Y`wTYWwia^Vcdq@2V z;FPBb_3dhZU0hAde^>tdj*5Ja1i+i&4|=MQ-U@z`Vr0E(#^woN^lSWzHd^m#+kyVo zbP#9@>xOMjQVwhs;c2EbXUbdFF};&?76e{;&X+W{Sup9N_3Lna4G$0ngyDnlGM4+EOFWg+Fq zyVWnm*EnL^k|C%u{v|X=pfSNok`7|5!i^QaifBH( zATdgLv_tymvB>!d8J;gpyZX#D>(LteW ze{wKKh$52pIng$cz^d3eWQK}bTKz9_%YadA_-@_s%B|Cf2y zu6sc1ajb{me(N>&`s=T`>(@V)_A|T4@%92?-=;8+g2n#{#4g8RTk}Ac(JhGOLKyC) zpbcU?IDPuG+gRJ+hwGBV899j-*!(OXL!oI!c4{K`x~IU|@xLfvFYE zLzb>C)=QY#ZO^~!gzBtc;N^(YXiq;0P)2l^{4E`yPcq&T6T3V3rriShYe3{zLE|caG%T|nA@TQSx@DXo>%prF z7!N%SYNg0B_2n+<^+BSmeun_ER{i0A4#v~3_Ct;K(-)FX>o*@*J3$FBX#iW`O%9=W z9+lNrn#y;xegWlcW@gTBk~#OyZ+^@D$)EgtYS*|ivc&oFCt$ek5j~$q0F5PiW<2ar zzlHDW;V8@P?bBkN&nn zv)`ezpbR`=_cGPP77d-`a>Ifx>GJtQZ@%;fh(|o&0Yo?Inc1Rnv;#C7@dFQ(8;wJ< zprNu*{~)h)A|69pF{&qf)bU^*G_yn3Qr#F6gXZ`$x=%5}cRIUlQ4mXGioUaK7Xaw`Fa{DXQokeH3w{z$`9VgREu;YDe z9%dds1~?%<399pwo`~zYqYtZ#S|{*n6+wr5k!k9EiLq#3iyZIN9ZA^59O@LF%5 zf1%5LDQJKUWa{OtbZ0ODHf4xnPvdDnW7wGz%H{7u?|y?SO7*X#zunar`D1+{S!2%x zqXn+PMyq}w5@K6si;=X|JueGCe#V0!K8~MQ*y$l?<|VDQ|2|-OdfBO-<<)^NqgpiU zUHI4ZIlB2vOH`wyXwoa_R0~*VXnuzI7^aJ+o9hjvBTm>|?|-!Z+slvjaTSynA$!BPavrXa1Vg zdmHT#z}%N@zu&WkSLGAtmli38#3{*QX6XJ?hP}P611Mcc^(WWA63-ThFQ2ZHdeob| zO6TImi|+g1|DOA||MuVUfhz1>3_-1Wb^L4Rt_QRqs-a_lGL_bFOgewn8-w7pu}(b( zkiMi0s2bVN9KUfE%t?&a2AnN-U+&J_R*oy6B#;vTZ zx~*L~WXK2Q2#=n5nr;}B*T}QjcD&WS5xgmN&hx$P?;mn}FJmClkwBX*;*$(rz#q?7 zGh%cG!ceEX{{9F<^XH$Y!#yZSNv?T1YcQMjFM0SBo&fF=x`fwaSwS5NCQzCjQF(x7 zx!A|V;jHyCN!yKKu>~oAGO>s^fX2x|2f`Y}(`Bfq5g8T=QL4rN^^2@Kd?|tvP%pl$>fSV`%Xlh`&WblQ7-rQ<5Pk)Nj*{i zdD>i@91JOma6!-Tn%Q^Xeb+r88;fq4qY;q_czPTlH+@wL%fR?JcH9dek#Dp-K$rx zx>sI(mEWAxOj4)OMqk792{c^m4Ovfh-J z(Es5Y{e$>Jufz>M*-R^;=AWXCM<152Ln=w~+~V~}Ie5Ewh92rYF4u^z@n7Ye%UQ3Y zZ%)Tt!>McWOwRqE08X!`hjDa!r{dyi?5N-Uk;#G5voVq%TZa8a)El-KY1zG7{meM% z9f<`XeO}U(=5TcBRXRH>NxD7%ZvKYVU6WqF@?%Pir1&%k4kSO?+@wC10zADTa+IhN zzs`L>y2V2gfKT`Q^Uu5A{?2!Je(>?fAIrWT`K!@$?a=WdM?7VB?Ww2S)oa(>-MjZ#230u-Bf$)*2SK{eG92ys z_2P%3SUFhvU>^Pc`yYfiLJXegRkBy_9^7@HgTjFQ$uXE@T!So?`=fXWs1K^mg7svE z--dbV@+E4c54o&dW|OE}e(m9b)aZH^0^kXT*We)Puh}gTycPR9>{o4V<50vlw-Y{W z?BnsxU;O;~oc?i1BAf8X_*CAf*K85Qyvb#Vi))digorzaM>J_$EG;ha`ux+ceA>PH z&bww0Vi+`kwUsZMJ0G@2S;#SpO7@H*{m%CepB)9J;W_ z6=01(IT;V_XxgE2OW~hn@_;O)qb$Xh4$eLmk9;NX=$9kLnGl%*gKx{bh0X53Zvb=8 zP4W=S82qb)>xZHww`1s9^=*#a;*$R*pbm0b!w)xI>!}VF;0NX!EqYF$In6gF$-{@X zl&(X5bx67(mjPsu1}E`wlI-rid+x&zue+PKZn(`&d~*&p<#oH2rUrJ^z@A%LUUVDl z>+UB%{VVt2!96!im5!%&x3(WK4+7+8GxY9UK8QxY^|f_*mEMHNs1HJDTRD#d&`6t$ z6Xng~;2J)73K|ixfai$l_aINiM?Fr!*Kvm2{H=ozMtM0;EFs^<%i~ZtYJGiQOv?Xn z{N``Eg+=-1{`xxf$oI9DaG_`#EHL)%ECRou^C43kSmx!lCfv3-Qq| z7dF!1l5O%(Ta3iR#yozzI9ZIJ1_U}9F-720ExHbVK8aoeB|0H~3-A=~sZ*zDOgZD; zfA9T-rl3xvjlPEEHz4?J3iR9Fk(1c=3D1y*Y`p<2b5+Qd0t%wCJiyHc@xA}y-vCDb zprVx29SskOT0U^2$qlYbkJKFsUy?zS8N!rVgilVWHTy2x{j*KK*!(V0Ha&_lh)ka{k7>$o&R{P za%AM|y{!K=sk|+iw4bPB99_tyS4t`#;))D)4A#R95iFz3PoTM=ok$#xmt?+QvKbF8 zi!D-GKJQjPGY)!3VgX2>mo%k03?j!4+4*|my}CmF34;Z6^Ea&Sn)LdWAGyHbhALif zk9DuS7PF>zb=c^2?j=$e?XDZZcW&QyH$MK@-MV#)*5{j%UZC4fzXqLuZ9Up{tE(&S zA+7y?@{^yqJGXB0A@-R$`Hs0#&$_7qnX^Sep4e-{`W%Ooaovuz{6p(Pc9teVdwzZR z$z@=H`8(ED^9u{^A+4|YCe9F4NUL`@cU|b9Fk)Ui1o{T8aiF$~|EyzJyRqjW3|6-( zqb+~v-Z#GS4Y#zs>~7z@>9)3U(=U}*_bA*R9`YYs&qzlGbYQTz#~?LlKdvLthCkUn z_QMG`)tP^Q4NuYYffF1+=dc}khInFd*cLyrK~mV}e+kgaB%3|z&*s=>J@LFERN6LQ zw4h1b0&gLd_4#S{-h1zv8?wWo{Y>m{#J0I327)`mHXiwGMP_`NkvVgYz#iVfhtT91v{%b4S^#TX}wMaqFm03@1aX z%XO$8r9gLNWI+Q5zMWi_hjefV*Vj-;-Z8!91@6AQ^+Kk=rTz%n}kZa(xUqJ>M)WV)?1HLzSVgt8$zs3$BY0e&^BPl9h#?C6sbh@Hs7yNw_7Mam-l zdA)`5lv(Hno8wThjEp@7jkI}Le6W<+*9)%szhHZNTjYvx|AYIJiw=b_!IMadH^l<6 zaZ1Q_H37z^R$cn#FMsLYdG{T+#y5Wf^tHlQC{dwkny=VV4ukp0#vj#hL39hhYR4yl z5ry6CkMSgKF2ly>HDsKScgTAV#OvhTkF0m)CG>w~PO3Ku zJo?GMjYl8m^_Sm@L2Y*zoBvEZ(#K_)Q=IL|#)53VV&<{0LDoOD$Ho^n3#h{P3W37a<%Nq?7cgRybJ*v4M8nhgt zID}X>z`NDYjDy~hSOC)JB~59LKsL|GsUb(rx0HV~MT&0zhSgn@-mvmN`Q($lWc={@ z_0h7k$?Duoq^>-=ZUDo^+8M8YPG|*pJN+7T{gG@-d-a}-JD`KY$a!sFlzNmQ zh}@5(Ghy{kjJEvI27mqQU%R*8ddofJ{W)FR#zfunYYz|kPgu|33r2LDi2CaQ^e<#_ zE*Nus|H2QDk&Sk;Fpp0TZF9LLO4bJv>|B9j@hgTk4y<6<2XP$V0N(XC&cps;h@o~3 zF+T-Tz@V?gr=PGs|KNiU0v}@#%b+y8?fGRk$o!*!^pD(yi&&p;xHVd%;}dv{>{ZrU zKFd?W9$g@eB~3xGViOgBUn@P+=yP=O(Iwql z2RgQVBLU#FfmIdq}guDre9(5Jm*U{C`~Cb4_? z_Aki+H%N3cra(Bp$+1O~YrM+gpZ?Q-%5iSrzQs3Hu!)Il0O`{9H7#WI;PXJosXvXv zJg6TVSkePmZvgvvP2SV=Rd5B9c8JwLw@ie2L{o!W(NtKB31N*#9FtM0;4~^0Ksc?7 z$;HEm4{4%6{RheNmM4jbU*#*G_%x|lB5PhZ)jP=15l)E*2;7wL%A8_Wj&QT+$E z0&b~?IyB6tYXUS-e_BnpzR<>~hRIXvTmGx@dg*ykUN|1PRj-k1A{c&Zkf)+8Z)#%R z?Xs$)kq%@nDrBuUUTKDjXd`VOjAQ%ALh7oHyuX;F_@V(yZ;bGfezFRfwECE9`iC>M zb}j*R3doDb?GIxqF2u$)nCa$6+mgf-()h22{Jpc*q->kf;fw15bw7*5$OGd)*;EkB zIdL;{p4y2lFvWjw7q7bWV>}OVAVL0KM}p0!OAFw6QnO<+$baK#ew_VfhV+vuDq`H{N)|-M(|1<$`$1M?#O?;0wmnLR`HfZ~IDV0HI0( zZz_O4z6pf-VF@G9@Wa=dfWW~*Js`Hfu`u)uDV8~|E96ry2>C)%`(yB29X|*fZzQ0b zmf~RJb!#ZJPBH&h*Ws8J7~KJsXA7ye4mzzEmp1Z}&U129yaVdtefffJT1X26e^3oe zAAWguQSC>{!Q0jJmGY_gxLhM9?LX@Lr*aMPg22SiKfNcdxrxd9xf-TJmvzG%OHtks zW+B%+p3r)3abc0y-gvr6(Yz^!jpZ5l&;HpzqeQxQaem! zJk(z-AeSwW(i{Qb|AUUw;{WPThCd5Z$QuZLh*&Zm=n*ABUfvQ;>O%R$H!+!}r|YX}FgP60;3rlkUvH?_G*X3;r41tSKc<%a%~T{l5y6Dm@q z>2Dkc`U1=xZUI<@ZS#`6dhd=(&kNK55_aCfJ^}uwDy z#NhCuvd}Wwa^whd>y%#&KCeJWtp3pSTK|z(nZ&U}Jc`h;e)0z?tBa9uzYs^bl4N+k zavt=WvJEsQLLdIiacurwys!@YIO>+mEM1;eg{<|KiKiqSER%uJk1AxmE7wz7A2CVs zK{bw>^*q|3ZDK4Yu0Bry<2XvdW%BNTLecVa>vcCjnoeV;De7%X+KaRs-#@|EbQ3VR zpT=2ugSy8}-$!H?XuQTrU{(hhfNV|!r#f2Ds4vR&(xprM)a>f&D&GXIq0}~O?X~9L zL_J;`4Gpt5fZ?^Zwe9ZQxy=XT*w4^U=&746{F7@N2kzt=KfUx7x9j6zgqOH!`j|kR zy3kZaJsgXaUJ0fCgQw+WLjH*3{VYp*K(Pu>yEc#QLO1vO3#pUw20AerTGAWc0jw@6 zCe2++F&u#x+kq8O;@P4ryc;S1ptioT&TFEroh?3`p+H`FZt;4g9K2mkpJ(Wy-s5tO z=;}YX%q=Ezkkd)8Lovd7UhMi4z$qs0=W3Wf-Gri+m-;!K_X20no^#79%WiRgkq`Ca zvkr)<;m|v{w@C*VY1~Ht_`@Im(A~Uw)2*$ou{<^IL8DK;8pp;>(|Nc0g?>P+7%moo z^m%Rd;iVOYu?+xS7~HeMQ%03&gqS~~@L1`2>ciPk?wjQuN}&l*=*6p-iMrcSiPyOF z_1*$2`amzx%?S3ztbg!_`X8B3lkq{8XWU-_#7{V};gs6D6mlK;6swN3{FZhUlf9yvntadalF<4Mt#eHVX|&kKC| z>^{R#XnT=i3_KHOWJUhda)kR6lr8pi@yQ`P$gsUd>rV2+crRlK;tFp_qs>SCW_$EbTVkZF?*3`$erBC3lFD#{L#nqopvuD zxkrSAk@qIO=*M7sM4u}u`URj|{+iSIa>ghc#uo7@j%+$hzNtqZPQ#E40YeSfTwZ%8 zC<8(#gUZN%lLE@oW^&-B8D7JJlWeC>pZ30=JU}#J%5qbqar;0zNdM$Z1-n_8HlbZ= z;MSOyw$HG6O=6nBP2J0vpKzakbvq|Ekwja0&^p?ptm4y5}3i0xgzp%$Yead#vzHwyO`q(UfiQxWVW_;-OB1I85z96hy6+7-Ux6C8TEoq zd_e8PhHa~AaO1aj^H<|U*g73zrUTnw=t8gol%-)XQNv9Fa>HN}QZrc`Y>H2(?GRO> z(`NP^MsG`oMQg5EzUuGmk)JyBW++fbJtU#mLtv|Ex`r0fY*K$|^(2SPf4q@=v{mE= zpO`55t2sdvL(~ut-10-W2MFo2#Jz(zb)es(+MIRsT&Mh55pNK(w7Be^IDgsgZc=|m zZAEng1>M_0JZg-)zCU9_*JShZ3$KtSo6o}{E%ja2;6U-^OBdYBFTNmj$RJ(WG}D6z z=lMAH$TxJ%Wt?LV116Y zIS&6qCvhNqn!4EsHoqB%Z|2vH+oMsaWGM7l^l!xC3J%DdGHV@KKh%!CW>b;KiQKt4 z%IM3l?#(pK6w8Rd5@uTT40s$SvP_xUn9hrkpUyGV4_aG;mDAM9eLw)aIv(j^YRuiH zQ4Fa%8Sh4odDx`%W(PWFwF2&y^4MAM!J{wB!(**-B zRU%_-n|tc1r`=OeKTZB59tvi?@#!HgYt+9HPGh#3SsK^X93(K_Zme(c8+7q4VBip| zy9m3sd#|b#qs7T!V(6*-|8pwN$=|Z14lf&wXH77XUu!kZ_)w#1R`i0K|plPAb`2Y@$ z+Ze}bCgr~K+rRC;|NZZi-wq!nk~o}yP@rK;|Ex{f{)WcGFdp#=cS8wL#<~RegRr#uWjJ(IBd0a5n zvL6vS;`?HM{~!E)UN>QmZQK7R5r8KjIs|uYCFyei|6a56?md zy8gqH!Z?(G!wDN38zBs1{Xs(4{gdj&(Da8j=Cpm*VrhAqXG!?H#uHCmcF#Qh48L*{ z^)eeasUMI2Lv{U7%Y(cRS)Thj|H?cu-JfK`!sx4`|b9 z!$0}SPu!pVr$2Kae|!VJO}T0Y1!x=A-?X9Q31m~0j|oWTM&u>qvi4Wq>+!s;^R?z# z%v^vxH7zVl#?IBoU}p8XZ;qzG9dw=V)3m(rPFUR>m(6*Gru1 z!nYqV9E?Ft?a**7v>aEjUUgTmU335SFMsH^cDCK(oJ=lp(jL&_rsa;bn)2u;pDL=8 z2+1=_tsHMpyhtO&$r;TH_UxW?nzad;dTScIYT?xCsylP; zoV$JN7BBLF>S?OZV^-yS)6*X%c+F7(j)gD391n`+EVT#tX}AKHe5;Wd)`cYE!RWP3 zgV#xX>C0bsmoHs%fBeUPObZ=(T4p$;{1_f{VDYrDfDM>OY_}rZTuNJ_79WEz5KrrB zJhAbv|B|diweV@>{lhL^Gv^o7khAg<)o#~qkv#CdgXf=r!Ck(5$^H7*uep17?np32 zY#W5~`W}jsY%JuA*f0o9DRUS7PWXzNv>5^UroO##*?`YbUlBC~qLV%^yWqm<+aMRV zSU&|7J?)VHr1jqk(?90?#mgCP%coAACVh`Lp}_rKCcp;2mHt<~b=;JGSY@StJy0e; z9Vm~~zVZ4U0H1xBbke9u#=I7iB^}VZnw`N@d`;LiW7yqyz4O2!nMu&M-$>*^zu9cQ zQJa6{kf$b%{ubJF5fl$&82`{O;g9+Te2xK|$k4BC8YedS(3Z@Z!1Kbw9KV`*o7&vk z+5@*s(*=wr+Sh43EuUCum!`a?Y_^YtKd#e$67HBbMINsnvoB)**bXaaaZ)-sas}wY zy2^kLXK4V@N%HVAQ9no!?ij_(-}me224#*S{(jpau(yXNs$$~64xc0^^jX26jzMFd z)*Q3*vu^X@rrX)`-;(rnhJfk$Q{X{IykeI&C(&*cs{i~n@dVhz)5{Y;^}Ylv?@0;Sv1X^5x}8%HC1`mJ6FM?+5!rd6Bm*RZ0*3P5Um@$4K!r zSbshL*suehdg>{Do&8UL@)OQ4t{W7xAqUv>UGbwGCdcmeWlwkk?&crkCFpp= z$mO8?`==gNCoqE*sEu#VljZ4aeQAH8*{VE12jdkEG~K2(j=zUiEw8dM76p|Wj2aIp z)1DSk^^D?jo<5D$d+rko^YRJ= zrI+|~7(e~#PkC=?mF8vnKA?r|1BTQwAhM%$Xra062BBScmUbzhu6vNZ>!zUhjE?;m zUNd(wk%8xCVczHIBOm&Ul(4eE_~S1LC_k=KF|_k%)Azyfx@^zC50E9=6W%JfL;V!q zDx~_TYFX3IIR2HOytTw>O;5{GIC_sE2>FF1%idLXZGhVjdT zV|-L*S9R4<$dw^V(j$}cAeOHZu_gdQ z5V1#EN8XL{!ykXt!c=ZN{bF~_S5l;W@M{Da75>uRk~-KOca0YLU;5$~-QWJ=7n}#+ zxoKkTz~Jp}^p9DFFTa(OFH?@HKYk{t6c2v5QMpY6*!%Ck=RWx01Nj!wX!a!`7BB!h zZ?pw0q*j(!+{(%dpYXxE{##KillMp2*lxu0ojds#sOR8{!NxKBfE**JI(+PfCW6^FrLR&66*P*_wdi z8B0DsoypVYuX(58-eHh+ZwHU0-|-F)$PKSW!z6fdaf#dXEa~m$=0oa7cBnsrK1e&X z6Wj!q{#Uc&1t>D+^lFX(v^>Py+JiOs4+bnxe0aB%Ws5yZ@tj{DX}o{u&3^aPxPG+83Vq<---U z7({#01rx?>9OlB|H%u4cr{Nai+ITlN77!?Om3QzF0B1@z!WLCmTGnq2JP%#4(S&bn zEDZCASBRqJWpQyI2ETN%7-ZvZMCEw?8Y$FP`zosh!@j@kd}5L zh~ee?6;K-U>U}#6%Ei0-L(*tEn?7|j z|Hg}p!(O>(3p#>x43gOtp!v-$%)8U4Pw~xPyj=k61w7r31KWaf{j_#hAU$AQEWyq@ ztlVXMqR>&|0!>OwWyCyegU0$xmoK?jUwPGi_~CVl(hFT>>&7Vdi^$h$8ReYSX=OYy zohE_24Yalizdpr2hD7rP?WmfRB1LY=q7BMh(9Mij>~pQIuDFH8MQT&DKBxA@+4*=_ zzhfVFdwYxB>W{d9F29p?m^u-a+~qZz_*G?zhC@;E@CfzK?G$1Es79s>S-Qwi8UXpS zj4>bNI9NZyjZpAFq3jk^i=_zR>AKxYlA|OvW&R;NYJM31V4H{xOQ{JBotr;<^`Fb- zFe90g+cO2j0+5T@ zKzfI7K}ozObNsUxJXLSuBtY=<8qJfA4v5X6nkG<|7Mf!{U;Fp7dnB17{X zTn?X4NJkSgqK}h^@|5wH_?42JUmGgr)p96bQ7&rxa+7~iX2GivHbqp}XR%^pFgHKT zPYq&&9}@&Ty@ea(d*B=KC?aSyYil~_)TgfSDkNPe{Z9Dwlae9Sc#)eRkT7JO#Tk{a z(xU&I9<2ZuyzS!VC;Q=0!VZP| ziF>7-UFCs}06I?EKBCq5{4`r`11;eCKpfN!T}y1VEq}2$>rS0M!=D8}1eA?=!p%9K z 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 z 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≀^*n3@AS;zQy7=iECy^~awO78Y=K{$lv&kKj%}wI8}k=Z5Zw3)p#>%0D|i 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 z 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 Date: Tue, 20 Dec 2022 17:21:03 -0600 Subject: [PATCH 06/39] Fix cloaking weapon text rasterization --- src/defs/armaments.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/defs/armaments.ts b/src/defs/armaments.ts index 9f130ef..bedd658 100644 --- a/src/defs/armaments.ts +++ b/src/defs/armaments.ts @@ -627,7 +627,7 @@ const initArmaments = () => { }, equipMutator: (player, slotIndex) => { player.cloak = 0; - player.slotData[slotIndex] = { sinceFired: 1000 }; + player.slotData[slotIndex] = { sinceFired: 1000, active: false }; }, // NOTE right now you can equip and use multiple cloaking generators to get faster cloaking (probably fine to leave it like this) frameMutator: (player, slotIndex) => { From e2b63423a2cad99a7139d5ccee7d8d053ace5e8c Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 10 Jan 2023 13:48:40 -0600 Subject: [PATCH 07/39] Update certs --- server/settings.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server/settings.ts b/server/settings.ts index 84b6eef..600c08d 100644 --- a/server/settings.ts +++ b/server/settings.ts @@ -5,9 +5,9 @@ import { useSsl } from "../src/config"; const credentials: { key?: string; cert?: string; ca?: string } = {}; if (useSsl) { - credentials.key = readFileSync("/etc/letsencrypt/live/inharmonious.floomby.us/privkey.pem", "utf8"); - credentials.cert = readFileSync("/etc/letsencrypt/live/inharmonious.floomby.us/cert.pem", "utf8"); - credentials.ca = readFileSync("/etc/letsencrypt/live/inharmonious.floomby.us/chain.pem", "utf8"); + credentials.key = readFileSync("/etc/letsencrypt/live/spacequest.io/privkey.pem", "utf8"); + credentials.cert = readFileSync("/etc/letsencrypt/live/spacequest.io/cert.pem", "utf8"); + credentials.ca = readFileSync("/etc/letsencrypt/live/spacequest.io/chain.pem", "utf8"); } const wsPort = 8080; From 367de881488d4f4447472fc76805d867faad6381 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 10 Jan 2023 16:45:16 -0600 Subject: [PATCH 08/39] Use SNI --- server/routes.ts | 6 ++++-- server/settings.ts | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/server/routes.ts b/server/routes.ts index 3d3e919..2a96aa4 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -12,7 +12,7 @@ import { User, Station } from "./dataModels"; import { addNpc } from "../src/npc"; import { market } from "./market"; import { clients, friendlySectors, idToWebsocket, sectorFactions, sectorHasStarbase, sectorList, sectors, uid } from "./state"; -import { adminHash, credentials, hash, httpPort } from "./settings"; +import { adminHash, hash, httpPort, sniCallback } from "./settings"; import { recipeMap, recipes } from "../src/recipes"; import { isFreeArm } from "../src/defs/armaments"; import { createReport, generatePlayedIntervals, statEpoch, sumIntervals } from "./reports"; @@ -773,7 +773,9 @@ export default () => { app.use(express.static("resources")); app.use(express.static("shaders")); - const httpsServer = createSecureServer(credentials, app); + const httpsServer = createSecureServer({ + SNICallback: sniCallback, + }, app); httpsServer.listen(httpPort, () => { console.log(`Running secure http server on port ${httpPort}`); }); diff --git a/server/settings.ts b/server/settings.ts index 600c08d..cb9ece3 100644 --- a/server/settings.ts +++ b/server/settings.ts @@ -3,13 +3,28 @@ import { readFileSync } from "fs"; import { useSsl } from "../src/config"; const credentials: { key?: string; cert?: string; ca?: string } = {}; +const oldCredentials: { key?: string; cert?: string; ca?: string } = {}; if (useSsl) { credentials.key = readFileSync("/etc/letsencrypt/live/spacequest.io/privkey.pem", "utf8"); credentials.cert = readFileSync("/etc/letsencrypt/live/spacequest.io/cert.pem", "utf8"); credentials.ca = readFileSync("/etc/letsencrypt/live/spacequest.io/chain.pem", "utf8"); + + oldCredentials.key = readFileSync("/etc/letsencrypt/live/inharmonious.floomby.us/privkey.pem", "utf8"); + oldCredentials.cert = readFileSync("/etc/letsencrypt/live/inharmonious.floomby.us/cert.pem", "utf8"); + oldCredentials.ca = readFileSync("/etc/letsencrypt/live/inharmonious.floomby.us/chain.pem", "utf8"); } +const sniCallback = (servername: string, cb: (err: Error | null, ctx: any) => void) => { + if (servername === "spacequest.io") { + cb(null, credentials); + } else if (servername === "inharmonious.floomby.us") { + cb(null, oldCredentials); + } else { + cb(new Error("Unknown servername"), null); + } +}; + const wsPort = 8080; const httpPort = 8081; @@ -24,4 +39,4 @@ const hash = (str: string) => { const adminHash = "77bf8af9b1f3f51c07556c529623732cb1feb23fae82b5fdaea68c7488362a91"; -export { credentials, wsPort, httpPort, hash, adminHash }; +export { sniCallback, wsPort, httpPort, hash, adminHash }; From 02727dd12a60c11ba177f25c036e4dde58041c72 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 10 Jan 2023 16:55:43 -0600 Subject: [PATCH 09/39] Maybe this works --- server/routes.ts | 7 +++---- server/server.ts | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/server/routes.ts b/server/routes.ts index 2a96aa4..5479ca3 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -1,5 +1,5 @@ import { createServer } from "http"; -import { createServer as createSecureServer } from "https"; +import https from "https"; import { ClientFriendRequest, maxNameLength } from "../src/game"; import { armDefMap, asteroidDefMap, defMap, Faction, factionList, UnitKind } from "../src/defs"; import { useSsl } from "../src/config"; @@ -773,9 +773,8 @@ export default () => { app.use(express.static("resources")); app.use(express.static("shaders")); - const httpsServer = createSecureServer({ - SNICallback: sniCallback, - }, app); + const httpsServer = new https.Server({ SNICallback: sniCallback}, app); + httpsServer.listen(httpPort, () => { console.log(`Running secure http server on port ${httpPort}`); }); diff --git a/server/server.ts b/server/server.ts index c9b1567..6824e14 100644 --- a/server/server.ts +++ b/server/server.ts @@ -1,5 +1,5 @@ import { createServer } from "http"; -import { createServer as createSecureServer } from "https"; +import https from "https"; import { WebSocketServer, WebSocket } from "ws"; import { GlobalState, @@ -76,7 +76,7 @@ import { warpList, } from "./state"; import { CardinalDirection, headingFromCardinalDirection, mirrorAngleHorizontally, mirrorAngleVertically } from "../src/geometry"; -import { credentials, hash, wsPort } from "./settings"; +import { hash, sniCallback, wsPort } from "./settings"; import Routes from "./routes"; import { advanceTutorialStage, sendTutorialStage } from "./tutorial"; import { assignPlayerIdToConnection, logWebSocketConnection } from "./logging"; @@ -130,9 +130,9 @@ const initFromDatabase = async () => { }; // Websocket server stuff -let server: ReturnType | ReturnType; +let server: ReturnType | https.Server; if (useSsl) { - server = createSecureServer(credentials); + server = new https.Server({ SNICallback: sniCallback }); } else { server = createServer(); } From 41f40cde87ba21939b47247b4bb0ee4ac9faeb02 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 10 Jan 2023 17:04:01 -0600 Subject: [PATCH 10/39] Return the tls context --- server/settings.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/server/settings.ts b/server/settings.ts index cb9ece3..9bf0718 100644 --- a/server/settings.ts +++ b/server/settings.ts @@ -1,6 +1,7 @@ import { createHash } from "crypto"; import { readFileSync } from "fs"; import { useSsl } from "../src/config"; +import * as tls from "tls"; const credentials: { key?: string; cert?: string; ca?: string } = {}; const oldCredentials: { key?: string; cert?: string; ca?: string } = {}; @@ -17,9 +18,9 @@ if (useSsl) { const sniCallback = (servername: string, cb: (err: Error | null, ctx: any) => void) => { if (servername === "spacequest.io") { - cb(null, credentials); + cb(null, tls.createSecureContext(credentials)); } else if (servername === "inharmonious.floomby.us") { - cb(null, oldCredentials); + cb(null, tls.createSecureContext(oldCredentials)); } else { cb(new Error("Unknown servername"), null); } From 7b747d68c606b9b91f83e2bd17b763a020aa2118 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 13 Jan 2023 14:56:13 -0600 Subject: [PATCH 11/39] Server peering and pre rework refactoring --- .vscode/settings.json | 1 + server/killPeers.sh | 3 + server/misc.ts | 151 +++++ server/package-lock.json | 503 ++++++++++++++- server/package.json | 3 +- server/peers.ts | 109 ++++ server/server.ts | 1286 ++++++-------------------------------- server/testPeer.sh | 4 + server/websockets.ts | 738 ++++++++++++++++++++++ src/config.ts | 2 +- 10 files changed, 1716 insertions(+), 1084 deletions(-) create mode 100755 server/killPeers.sh create mode 100644 server/misc.ts create mode 100644 server/peers.ts create mode 100755 server/testPeer.sh create mode 100644 server/websockets.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index d7d9f0d..6361a6f 100755 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -18,6 +18,7 @@ "Russanite", "Russium", "unselectable", + "websockets", "Zirathium" ], "files.associations": { diff --git a/server/killPeers.sh b/server/killPeers.sh new file mode 100755 index 0000000..7fb33e1 --- /dev/null +++ b/server/killPeers.sh @@ -0,0 +1,3 @@ +#! /bin/bash + +ps -e | grep node | awk '{ print $1 }' | xargs kill -9 diff --git a/server/misc.ts b/server/misc.ts new file mode 100644 index 0000000..fdd8d8c --- /dev/null +++ b/server/misc.ts @@ -0,0 +1,151 @@ +import { clientUid, defMap, defs, emptyLoadout, Faction } from "../src/defs"; +import { effectiveInfinity, Player, SectorInfo, SectorKind, TargetKind, TutorialStage } from "../src/game"; +import { clients, knownRecipes, secondaries, secondariesToActivate, sectorAsteroidResources, sectors, targets, tutorialRespawnPoints } from "./state"; +import { WebSocket } from "ws"; +import { sendInventory } from "./inventory"; +import { sendTutorialStage } from "./tutorial"; +import { Station } from "./dataModels"; + +const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) => { + let defIndex: number; + if (faction === Faction.Alliance) { + // defIndex = defMap.get("Fighter")!.index; + defIndex = defMap.get("Advanced Fighter")!.index; + } else if (faction === Faction.Confederation) { + // defIndex = defMap.get("Drone")!.index; + defIndex = defMap.get("Seeker")!.index; + } else { + console.log(`Invalid faction ${faction}`); + return; + } + + const sectorToWarpTo = faction === Faction.Alliance ? 12 : 15; + + let tutorialSector = clientUid(); + while (sectors.has(tutorialSector)) { + tutorialSector = clientUid(); + } + + clients.set(ws, { + id: id, + name, + input: { up: false, down: false, primary: false, secondary: false, right: false, left: false }, + angle: 0, + currentSector: tutorialSector, + lastMessage: "", + lastMessageTime: Date.now(), + sectorsVisited: new Set(), + inTutorial: TutorialStage.Move, + }); + + let player = { + position: { x: 0, y: 0 }, + radius: defs[defIndex].radius, + speed: 0, + heading: 0, + health: defs[defIndex].health, + id: id, + sinceLastShot: [effectiveInfinity], + energy: defs[defIndex].energy, + defIndex: defIndex, + arms: emptyLoadout(defIndex), + slotData: new Array(defs[defIndex].slots.length).fill({}), + cargo: [], + credits: 500, + team: faction, + side: 0, + isPC: true, + v: { x: 0, y: 0 }, + iv: { x: 0, y: 0 }, + ir: 0, + }; + + // player = equip(player, 0, "Basic Mining Laser", true); + // player = equip(player, 1, "Laser Beam", true); + // player = equip(player, 1, "Tomahawk Missile", true); + + const state = { + players: new Map(), + projectiles: new Map(), + asteroids: new Map(), + missiles: new Map(), + collectables: new Map(), + asteroidsDirty: false, + mines: new Map(), + projectileId: 1, + delayedActions: [], + sectorKind: SectorKind.Tutorial, + }; + + sectors.set(tutorialSector, state); + state.players.set(id, player); + + // Idk the right way to handle this right now + // Just delete the tutorial sector after a while + setTimeout(() => { + sectors.delete(tutorialSector); + tutorialRespawnPoints.delete(tutorialSector); + }, 1000 * 60 * 60 * 3); + + targets.set(id, [TargetKind.None, 0]); + secondaries.set(id, 0); + secondariesToActivate.set(id, []); + knownRecipes.set(id, new Set()); + + const sectorInfos: SectorInfo[] = []; + sectorInfos.push({ + sector: sectorToWarpTo, + resources: sectorAsteroidResources[sectorToWarpTo].map((value) => value.resource), + }); + + ws.send( + JSON.stringify({ + type: "init", + payload: { + id: id, + sector: tutorialSector, + faction, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos, + recipes: [], + }, + }) + ); + sendInventory(ws, id); + sendTutorialStage(ws, TutorialStage.Move); +}; + +// This is for loading the stations from the database on server startup +const initFromDatabase = async () => { + const stations = await Station.find({}); + for (const station of stations) { + const def = defs[station.definitionIndex]; + const player: Player = { + position: station.position, + radius: def.radius, + speed: 0, + heading: 0, + health: def.health, + id: station.id, + sinceLastShot: [effectiveInfinity, effectiveInfinity, effectiveInfinity, effectiveInfinity], + energy: def.energy, + defIndex: station.definitionIndex, + arms: [], + slotData: [], + team: station.team, + side: 0, + isPC: true, + v: { x: 0, y: 0 }, + iv: { x: 0, y: 0 }, + ir: 0, + }; + const sector = sectors.get(station.sector); + if (sector) { + sector.players.set(station.id, player); + } + } +}; + +export { setupPlayer, initFromDatabase }; diff --git a/server/package-lock.json b/server/package-lock.json index baad48e..c2dd7b5 100755 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -12,7 +12,18 @@ "cors": "^2.8.5", "express": "^4.18.2", "mongoose": "^6.6.5", - "ws": "^8.9.0" + "ws": "^8.9.0", + "zeromq": "^6.0.0-beta.16" + } + }, + "node_modules/@aminya/node-gyp-build": { + "version": "4.5.0-aminya.4", + "resolved": "https://registry.npmjs.org/@aminya/node-gyp-build/-/node-gyp-build-4.5.0-aminya.4.tgz", + "integrity": "sha512-2c2+BqZOxfTz/m+1MNWncMyMgil2WOg8cHhKPf1qUo1t9ohOWOgSeb7TVVD4fnTxIcAcpWdmXBpFkjPRyBVS9g==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, "node_modules/@types/body-parser": { @@ -129,6 +140,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -171,6 +187,15 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "node_modules/bson": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", @@ -225,6 +250,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -269,6 +299,36 @@ "node": ">= 0.10" } }, + "node_modules/cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -402,6 +462,11 @@ "node": ">= 0.6" } }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -420,6 +485,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -487,11 +571,28 @@ } ] }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -505,6 +606,22 @@ "node": ">= 0.10" } }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, "node_modules/kareem": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", @@ -567,6 +684,25 @@ "node": ">= 0.6" } }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/mongodb": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.9.1.tgz", @@ -672,6 +808,11 @@ "node": ">= 0.6" } }, + "node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -699,6 +840,14 @@ "node": ">= 0.8" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -707,6 +856,27 @@ "node": ">= 0.8" } }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -768,6 +938,33 @@ "node": ">= 0.8" } }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -851,6 +1048,56 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -908,6 +1155,17 @@ "node": ">= 0.8" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -983,6 +1241,25 @@ "node": ">=12" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, "node_modules/ws": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", @@ -1002,9 +1279,30 @@ "optional": true } } + }, + "node_modules/zeromq": { + "version": "6.0.0-beta.16", + "resolved": "https://registry.npmjs.org/zeromq/-/zeromq-6.0.0-beta.16.tgz", + "integrity": "sha512-taPr+V2synMrybR4H4YBJkjQ1tIi0CPuXsO6Jm2O1IbgnfJ0o3qYqi0QuhT9/oFwiTNr/yQiCze9OU2szGlp7w==", + "hasInstallScript": true, + "dependencies": { + "@aminya/node-gyp-build": "4.5.0-aminya.4", + "cross-env": "^7.0.3", + "node-addon-api": "^5.0.0", + "shelljs": "^0.8.5", + "shx": "^0.3.4" + }, + "engines": { + "node": ">= 10.2" + } } }, "dependencies": { + "@aminya/node-gyp-build": { + "version": "4.5.0-aminya.4", + "resolved": "https://registry.npmjs.org/@aminya/node-gyp-build/-/node-gyp-build-4.5.0-aminya.4.tgz", + "integrity": "sha512-2c2+BqZOxfTz/m+1MNWncMyMgil2WOg8cHhKPf1qUo1t9ohOWOgSeb7TVVD4fnTxIcAcpWdmXBpFkjPRyBVS9g==" + }, "@types/body-parser": { "version": "1.19.2", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", @@ -1116,6 +1414,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1140,6 +1443,15 @@ "unpipe": "1.0.0" } }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, "bson": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", @@ -1171,6 +1483,11 @@ "get-intrinsic": "^1.0.2" } }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -1203,6 +1520,24 @@ "vary": "^1" } }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1308,6 +1643,11 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -1323,6 +1663,19 @@ "has-symbols": "^1.0.3" } }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1361,11 +1714,25 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, "ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -1376,6 +1743,19 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, "kareem": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", @@ -1420,6 +1800,19 @@ "mime-db": "1.52.0" } }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, "mongodb": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.9.1.tgz", @@ -1500,6 +1893,11 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -1518,11 +1916,34 @@ "ee-first": "1.1.1" } }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -1566,6 +1987,24 @@ "unpipe": "1.0.0" } }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1628,6 +2067,38 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -1671,6 +2142,11 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -1722,11 +2198,36 @@ "webidl-conversions": "^7.0.0" } }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, "ws": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "requires": {} + }, + "zeromq": { + "version": "6.0.0-beta.16", + "resolved": "https://registry.npmjs.org/zeromq/-/zeromq-6.0.0-beta.16.tgz", + "integrity": "sha512-taPr+V2synMrybR4H4YBJkjQ1tIi0CPuXsO6Jm2O1IbgnfJ0o3qYqi0QuhT9/oFwiTNr/yQiCze9OU2szGlp7w==", + "requires": { + "@aminya/node-gyp-build": "4.5.0-aminya.4", + "cross-env": "^7.0.3", + "node-addon-api": "^5.0.0", + "shelljs": "^0.8.5", + "shx": "^0.3.4" + } } } } diff --git a/server/package.json b/server/package.json index e361342..4404a32 100755 --- a/server/package.json +++ b/server/package.json @@ -7,7 +7,8 @@ "cors": "^2.8.5", "express": "^4.18.2", "mongoose": "^6.6.5", - "ws": "^8.9.0" + "ws": "^8.9.0", + "zeromq": "^6.0.0-beta.16" }, "scripts": { "dev": "concurrently \"tsc --watch --project config.json\" \"nodemon -e js,ts --exec node server.js\"" diff --git a/server/peers.ts b/server/peers.ts new file mode 100644 index 0000000..f21735f --- /dev/null +++ b/server/peers.ts @@ -0,0 +1,109 @@ +import mongoose from "mongoose"; +import { Reply, Request } from "zeromq"; +import { initFromDatabase } from "./misc"; +import { initInitialAsteroids } from "./state"; +import Routes from "./routes"; +import { startWebSocketServer } from "./websockets"; +import { setupTimers } from "./server"; + +interface IPeer { + name: string; + ip: string; + port: number; + updated: Date; + sectors: number[]; +} + +const peerSchema = new mongoose.Schema({ + name: { + type: String, + required: true, + }, + ip: { + type: String, + required: true, + }, + port: { + type: Number, + required: true, + }, + // have the schema drop old dates + updated: { + type: Date, + expires: "2m", + default: Date.now, + }, + sectors: { + type: [Number], + default: [], + }, +}); + +const Peer = mongoose.model("Peer", peerSchema); + +// Get our name from the command line options +const name = process.argv[2]; +const port = process.argv[3]; +// For development +const ip = "127.0.0.1"; +// Will just keep using this port for now +const sectors = JSON.parse(process.argv[4]) as number[]; + +// Sets ourselves in the database +const setPeer = async () => { + await Peer.findOneAndUpdate({ name }, { ip, port, updated: Date.now(), sectors }, { upsert: true }); +}; + +// Global stuff +const peerMap = new Map(); +const socket = new Reply(); + +let interval: NodeJS.Timer | null = null; + +const setupSelf = async () => { + await setPeer(); + // Probably will just protect this with iptables + await socket.bind(`tcp://${ip}:${port}`); + syncPeers(); + interval = setInterval(() => { + setPeer(); + syncPeers(); + }, 20 * 1000); +}; + +// Roughly keeps things synced +const syncPeers = async () => { + const peers = await Peer.find({ name: { $ne: name } }); + peers.forEach((peer) => { + if (peerMap.has(peer.name)) { + return; + } + console.log(`Connecting to peer ${peer.name} at ${peer.ip}:${peer.port}`); + const peerSocket = new Request(); + peerSocket.connect(`tcp://${peer.ip}:${peer.port}`); + peerMap.set(peer.name, peerSocket); + }); + for (const name of peerMap.keys()) { + if (!peers.find((peer) => peer.name === name)) { + peerMap.get(name)?.close(); + peerMap.delete(name); + console.log(`Disconnected from peer ${name}`); + } + } +}; + +mongoose + .connect("mongodb://127.0.0.1:27017/SpaceGame", {}) + .catch((err) => { + console.log("Error connecting to database: " + err); + }) + .then(async () => { + console.log("Connected to database"); + await setupSelf(); + await initFromDatabase(); + initInitialAsteroids(); + setupTimers(); + startWebSocketServer(); + }); + +Routes(); diff --git a/server/server.ts b/server/server.ts index 6824e14..0a4712e 100644 --- a/server/server.ts +++ b/server/server.ts @@ -1,6 +1,3 @@ -import { createServer } from "http"; -import https from "https"; -import { WebSocketServer, WebSocket } from "ws"; import { GlobalState, Player, @@ -9,58 +6,24 @@ import { applyInputs, Ballistic, ticksPerSecond, - maxNameLength, - canDock, - copyPlayer, randomAsteroids, - TargetKind, EffectTrigger, - equip, Missile, - purchaseShip, - effectiveInfinity, processAllNpcs, - canRepair, - removeAtMostCargo, - isNearOperableEnemyStation, SectorTransition, findSectorTransitions, sectorBounds, - SectorInfo, - CloakedState, - TutorialStage, mapSize, - applyUndockingOffset, - removeCargoFractions, - SectorKind, } from "../src/game"; -import { defs, defMap, Faction, armDefs, ArmUsage, emptyLoadout, UnitKind, clientUid } from "../src/defs"; -import { appendFile } from "fs"; -import { useSsl } from "../src/config"; - -import { User, Station, Checkpoint } from "./dataModels"; -import mongoose from "mongoose"; +import { defs, Faction, UnitKind } from "../src/defs"; import { addNpc, NPC } from "../src/npc"; -import { inspect } from "util"; -import { - depositItemsIntoInventory, - depositCargo, - manufacture, - sellInventory, - sendInventory, - transferToShip, - discoverRecipe, - compositeManufacture, -} from "./inventory"; -import { market } from "./market"; +import { discoverRecipe } from "./inventory"; import { clients, friendlySectors, idToWebsocket, - initInitialAsteroids, knownRecipes, - saveCheckpoint, secondaries, secondariesToActivate, sectorAsteroidResources, @@ -71,850 +34,11 @@ import { sectors, sectorTriggers, targets, - tutorialRespawnPoints, uid, warpList, } from "./state"; -import { CardinalDirection, headingFromCardinalDirection, mirrorAngleHorizontally, mirrorAngleVertically } from "../src/geometry"; -import { hash, sniCallback, wsPort } from "./settings"; -import Routes from "./routes"; -import { advanceTutorialStage, sendTutorialStage } from "./tutorial"; -import { assignPlayerIdToConnection, logWebSocketConnection } from "./logging"; -import { selectMission, startPlayerInMission } from "./missions"; -import { enemyCount, allyCount, flashServerMessage } from "./stateHelpers"; -import { createFriendRequest, friendWarp, revokeFriendRequest, unfriend } from "./friends"; - -mongoose - .connect("mongodb://127.0.0.1:27017/SpaceGame", {}) - .catch((err) => { - console.log("Error connecting to database: " + err); - }) - .then(async () => { - console.log("Connected to database"); - // Initialize the server state stuff - await initFromDatabase(); - initInitialAsteroids(); - }); - -Routes(); - -// This is for loading the stations from the database on server startup -const initFromDatabase = async () => { - const stations = await Station.find({}); - for (const station of stations) { - const def = defs[station.definitionIndex]; - const player: Player = { - position: station.position, - radius: def.radius, - speed: 0, - heading: 0, - health: def.health, - id: station.id, - sinceLastShot: [effectiveInfinity, effectiveInfinity, effectiveInfinity, effectiveInfinity], - energy: def.energy, - defIndex: station.definitionIndex, - arms: [], - slotData: [], - team: station.team, - side: 0, - isPC: true, - v: { x: 0, y: 0 }, - iv: { x: 0, y: 0 }, - ir: 0, - }; - const sector = sectors.get(station.sector); - if (sector) { - sector.players.set(station.id, player); - } - } -}; - -// Websocket server stuff -let server: ReturnType | https.Server; -if (useSsl) { - server = new https.Server({ SNICallback: sniCallback }); -} else { - server = createServer(); -} - -// Websocket stuff (TODO Move to its own file) -const wss = new WebSocketServer({ server }); - -const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) => { - let defIndex: number; - if (faction === Faction.Alliance) { - // defIndex = defMap.get("Fighter")!.index; - defIndex = defMap.get("Advanced Fighter")!.index; - } else if (faction === Faction.Confederation) { - // defIndex = defMap.get("Drone")!.index; - defIndex = defMap.get("Seeker")!.index; - } else { - console.log(`Invalid faction ${faction}`); - return; - } - - const sectorToWarpTo = faction === Faction.Alliance ? 12 : 15; - - let tutorialSector = clientUid(); - while (sectors.has(tutorialSector)) { - tutorialSector = clientUid(); - } - - clients.set(ws, { - id: id, - name, - input: { up: false, down: false, primary: false, secondary: false, right: false, left: false }, - angle: 0, - currentSector: tutorialSector, - lastMessage: "", - lastMessageTime: Date.now(), - sectorsVisited: new Set(), - inTutorial: TutorialStage.Move, - }); - - let player = { - position: { x: 0, y: 0 }, - radius: defs[defIndex].radius, - speed: 0, - heading: 0, - health: defs[defIndex].health, - id: id, - sinceLastShot: [effectiveInfinity], - energy: defs[defIndex].energy, - defIndex: defIndex, - arms: emptyLoadout(defIndex), - slotData: new Array(defs[defIndex].slots.length).fill({}), - cargo: [], - credits: 500, - team: faction, - side: 0, - isPC: true, - v: { x: 0, y: 0 }, - iv: { x: 0, y: 0 }, - ir: 0, - }; - - // player = equip(player, 0, "Basic Mining Laser", true); - // player = equip(player, 1, "Laser Beam", true); - // player = equip(player, 1, "Tomahawk Missile", true); - - const state = { - players: new Map(), - projectiles: new Map(), - asteroids: new Map(), - missiles: new Map(), - collectables: new Map(), - asteroidsDirty: false, - mines: new Map(), - projectileId: 1, - delayedActions: [], - sectorKind: SectorKind.Tutorial, - }; - - sectors.set(tutorialSector, state); - state.players.set(id, player); - - // Idk the right way to handle this right now - // Just delete the tutorial sector after a while - setTimeout(() => { - sectors.delete(tutorialSector); - tutorialRespawnPoints.delete(tutorialSector); - }, 1000 * 60 * 60 * 3); - - targets.set(id, [TargetKind.None, 0]); - secondaries.set(id, 0); - secondariesToActivate.set(id, []); - knownRecipes.set(id, new Set()); - - const sectorInfos: SectorInfo[] = []; - sectorInfos.push({ - sector: sectorToWarpTo, - resources: sectorAsteroidResources[sectorToWarpTo].map((value) => value.resource), - }); - - ws.send( - JSON.stringify({ - type: "init", - payload: { - id: id, - sector: tutorialSector, - faction, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos, - recipes: [], - }, - }) - ); - sendInventory(ws, id); - sendTutorialStage(ws, TutorialStage.Move); -}; - -// TODO Need to go over this carefully, checking to make sure that malicious clients can't do anything bad -wss.on("connection", (ws, req) => { - (ws as any).isAlive = true; - - const ipAddr = req.socket.remoteAddress; - - logWebSocketConnection(ipAddr); - - ws.on("message", (msg) => { - try { - const data = JSON.parse(msg.toString()); - if (data.type === "heartbeat") { - (ws as any).isAlive = true; - return; - } else if (data.type === "login") { - const name = data.payload.name; - const password = data.payload.password; - - const hashedPassword = hash(password); - - // Check if the user is in the database - User.findOne({ name, password: hashedPassword }, (err, user) => { - if (err) { - ws.send(JSON.stringify({ type: "loginFail", payload: { error: "Database error" } })); - console.log(err); - return; - } - if (!user) { - ws.send(JSON.stringify({ type: "loginFail", payload: { error: "Username/password combination not found" } })); - return; - } - - if (idToWebsocket.has(user.id)) { - ws.send(JSON.stringify({ type: "loginFail", payload: { error: "User already logged in" } })); - return; - } - - idToWebsocket.set(user.id, ws); - assignPlayerIdToConnection(ipAddr, user.id); - - const sectorInfos: SectorInfo[] = []; - if (!user.sectorsVisited) { - user.sectorsVisited = [user.currentSector]; - } - user.loginCount++; - user.loginTimes.push(Date.now()); - try { - user.save(); - } catch (err) { - console.log(err); - } - - const sectorsVisited: Set = new Set(user.sectorsVisited); - for (const sector of sectorsVisited) { - sectorInfos.push({ - sector, - resources: sectorAsteroidResources[sector].map((value) => value.resource), - }); - } - - Checkpoint.findOne({ id: user.id }, (err, checkpoint) => { - if (err) { - ws.send(JSON.stringify({ type: "loginFail", payload: { error: "Database error" } })); - console.log(err); - return; - } - if (!checkpoint) { - setupPlayer(user.id, ws, name, user.faction); - } else { - const state = sectors.get(checkpoint.sector); - if (!state) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Bad checkpoint sector" } })); - console.log("Warning: Checkpoint sector not found"); - setupPlayer(user.id, ws, name, user.faction); - return; - } - const playerState = JSON.parse(checkpoint.data) as Player; - if (isNearOperableEnemyStation(playerState, state.players.values()) || enemyCount(playerState.team, checkpoint.sector) > 2) { - playerState.position.x = -5000; - playerState.position.y = 5000; - } - // All these "fixes" are for making old checkpoints work with new code - // Update the player on load to match what is expected - if (playerState.defIndex === undefined) { - playerState.defIndex = (playerState as any).definitionIndex; - (playerState as any).definitionIndex = undefined; - } - // fix the cargo - if (playerState.cargo === undefined || playerState.cargo.some((c) => !Number.isInteger(c.amount))) { - playerState.cargo = [{ what: "Teddy Bears", amount: 30 }]; - } - // fix the credits - if (playerState.credits === undefined) { - playerState.credits = 500; - } - playerState.credits = Math.round(playerState.credits); - // fix the slot data - const def = defs[playerState.defIndex]; - while (playerState.slotData.length < def.slots.length) { - playerState.arms.push(def.slots[playerState.slotData.length]); - playerState.slotData.push({}); - } - // fix the impulse - if (playerState.ir === undefined) { - playerState.ir = 0; - } - if (playerState.iv === undefined) { - playerState.iv = { x: 0, y: 0 }; - } - // fix the health and energy - if (playerState.health > def.health) { - playerState.health = def.health; - } - if (playerState.energy > def.energy) { - playerState.energy = def.energy; - } - (playerState as any).projectileId = undefined; - // fix the arms - if (playerState.arms === undefined) { - playerState.arms = (playerState as any).armIndices; - (playerState as any).armIndices = undefined; - } - - playerState.v = { x: 0, y: 0 }; - state.players.set(user.id, playerState); - clients.set(ws, { - id: user.id, - name, - input: { up: false, down: false, primary: false, secondary: false, right: false, left: false }, - angle: 0, - currentSector: checkpoint.sector, - lastMessage: "", - lastMessageTime: Date.now(), - sectorsVisited, - inTutorial: TutorialStage.Done, - }); - targets.set(user.id, [TargetKind.None, 0]); - secondaries.set(user.id, 0); - secondariesToActivate.set(user.id, []); - knownRecipes.set(user.id, new Set(user.recipesKnown)); - ws.send( - JSON.stringify({ - type: "init", - payload: { - id: user.id, - sector: checkpoint.sector, - faction: playerState.team, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos, - recipes: user.recipesKnown, - }, - }) - ); - sendInventory(ws, user.id); - // log to file - appendFile("log", `${new Date().toISOString()} ${name} logged in\n`, (err) => { - if (err) { - console.log(err); - } - }); - } - }); - }); - } else if (data.type === "register") { - const name = data.payload.name; - const password = data.payload.password; - const faction = data.payload.faction; - - // Check if the user is in the database - User.findOne({ name }, (err, user) => { - if (err) { - ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Database error" } })); - console.log(err); - return; - } - if (user) { - ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Username already taken" } })); - return; - } - if (name.length > maxNameLength) { - ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Username too long" } })); - return; - } - User.create({ name, password: hash(password), faction, id: uid(), loginTimes: [Date.now()] }, (err, user) => { - if (err) { - ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Database error" } })); - console.log(err); - return; - } - setupPlayer(user.id, ws, name, faction); - idToWebsocket.set(user.id, ws); - assignPlayerIdToConnection(ipAddr, user.id); - }); - }); - } else if (data.type === "input") { - const client = clients.get(ws); - if (client) { - client.input = data.payload.input; - } else { - console.log("Warning: Input data from unknown client"); - } - } else if (data.type === "angle") { - const client = clients.get(ws); - if (client) { - client.angle = data.payload.angle; - } else { - console.log("Warning: Angle data from unknown client"); - } - } else if (data.type === "dock") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - if (player.docked) { - return; - } - removeCargoFractions(player); - const station = state.players.get(data.payload.stationId); - if (canDock(player, station, false)) { - const def = defs[player.defIndex]; - player.docked = data.payload.stationId; - player.heading = 0; - player.speed = 0; - player.side = 0; - player.energy = def.energy; - player.health = def.health; - player.warping = 0; - player.ir = 0; - player.iv.x = 0; - player.iv.y = 0; - player.cloak = CloakedState.Uncloaked; - player.position = { x: station!.position.x, y: station!.position.y }; - for (let i = 0; i < player.arms.length; i++) { - const armDef = armDefs[player.arms[i]]; - if (armDef && armDef.usage === ArmUsage.Ammo) { - player.slotData[i].ammo = armDef.maxAmmo; - } - } - - state.players.set(client.id, player); - - if (!client.inTutorial) { - saveCheckpoint(client.id, client.currentSector, player, client.sectorsVisited); - } else { - tutorialRespawnPoints.set(client.id, copyPlayer(player)); - } - } - } - } - } else if (data.type === "undock") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - player.docked = undefined; - applyUndockingOffset(player); - state.players.set(client.id, player); - - if (!client.inTutorial) { - saveCheckpoint(client.id, client.currentSector, player, client.sectorsVisited); - } else { - tutorialRespawnPoints.set(client.id, copyPlayer(player)); - } - } - } - } else if (data.type === "repair") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - const station = state.players.get(data.payload.station)!; - if (canRepair(player, station, false)) { - if (!station.repairs || station.repairs.length !== Faction.Count) { - console.log(`Warning: Station repairs array is not correctly initialized (${station.id})`); - } else { - const stationDef = defs[station.defIndex]; - const repairsNeeded = stationDef.repairsRequired! - station.repairs[player.team]; - const amountRepaired = removeAtMostCargo(player, "Spare Parts", repairsNeeded); - station.repairs[player.team] += amountRepaired; - } - } - } - } - } else if (data.type === "respawn") { - const client = clients.get(ws); - if (client) { - if (client.inTutorial) { - const state = sectors.get(client.currentSector); - if (state) { - const playerState = tutorialRespawnPoints.get(client.id); - if (playerState) { - state.players.set(client.id, copyPlayer(playerState)); - } else { - ws.send(JSON.stringify({ type: "error", payload: { message: "Missing tutorial respawn checkpoint" } })); - } - } else { - ws.send(JSON.stringify({ type: "error", payload: { message: "Tutorial sector invalid" } })); - } - return; - } - Checkpoint.findOne({ id: client.id }, (err, checkpoint) => { - if (err) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Server error loading checkpoint" } })); - console.log("Error loading checkpoint: " + err); - return; - } - if (!checkpoint) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Checkpoint not found" } })); - console.log("Error loading checkpoint: " + err); - return; - } - const state = sectors.get(checkpoint.sector); - if (!state) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Bad checkpoint sector" } })); - console.log("Warning: Checkpoint sector not found (programming error)"); - return; - } - const playerState = JSON.parse(checkpoint.data) as Player; - // So I don't have to edit the checkpoints in the database right now - playerState.isPC = true; - if ( - isNearOperableEnemyStation(playerState, state.players.values()) || - enemyCount(playerState.team, checkpoint.sector) - allyCount(playerState.team, checkpoint.sector) > 2 - ) { - playerState.position.x = -5000; - playerState.position.y = 5000; - } - playerState.v = { x: 0, y: 0 }; - playerState.iv = { x: 0, y: 0 }; - playerState.ir = 0; - state.players.set(client.id, playerState); - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to: checkpoint.sector, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [], - }, - }) - ); - client.currentSector = checkpoint.sector; - }); - } - } else if (data.type === "target") { - const client = clients.get(ws); - if (client) { - targets.set(client.id, data.payload.target); - } - } else if (data.type === "secondary") { - const client = clients.get(ws); - if (client) { - if (typeof data.payload.secondary === "number" && data.payload.secondary >= 0) { - secondaries.set(client.id, data.payload.secondary); - } - } - } else if (data.type === "secondaryActivation") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - if (typeof data.payload.secondary === "number" && data.payload.secondary < player.arms.length && data.payload.secondary >= 0) { - secondariesToActivate.get(client.id)?.push(data.payload.secondary); - } - } - } - } else if (data.type === "sellCargo") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player && player.cargo) { - if (player.credits === undefined) { - player.credits = 0; - } - const price = market.get(data.payload.what); - if (price) { - player.credits += removeAtMostCargo(player, data.payload.what, Math.round(data.payload.amount)) * price; - } - } - } - } else if (data.type === "transferToShip") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - transferToShip(ws, player, data.payload.what, Math.round(data.payload.amount), flashServerMessage); - } - } - } else if (data.type === "sellInventory") { - const client = clients.get(ws); - if (client) { - const player = sectors.get(client.currentSector)!.players.get(client.id); - if (player) { - sellInventory(ws, player, data.payload.what, Math.round(data.payload.amount)); - } - } - } else if (data.type === "depositCargo") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player && player.cargo) { - depositCargo(player, data.payload.what, Math.round(data.payload.amount), ws); - } - } - } else if (data.type === "dumpCargo") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player && player.cargo) { - removeAtMostCargo(player, data.payload.what, Math.round(data.payload.amount)); - } - } - } else if (data.type === "equip") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - // equip does the bounds checking for the index for us - let newPlayer = equip(player, data.payload.slotIndex, data.payload.what, data.payload.fromInventory); - if (newPlayer !== player) { - state.players.set(client.id, newPlayer); - const toTake = data.payload.fromInventory ? [armDefs[newPlayer.arms[data.payload.slotIndex]].name] : []; - // There is technically a bug here, if the player equips and then logs off, but the database has an error after they log off then - // they what is deposited will be lost. I don't want to deal with it though (the correct thing is to pull their save from the database - // and deal with it that way, but if we just had a database error this is unlikely to work anyways) - depositItemsIntoInventory(ws, player, [armDefs[player.arms[data.payload.slotIndex]].name], toTake, flashServerMessage, () => { - console.log("Error depositing armament into inventory, reverting player"); - try { - const otherState = sectors.get(clients.get(idToWebsocket.get(player.id)!)!.currentSector)!; - otherState.players.set(player.id, player); - } catch (e) { - console.log("Warning: unable to revert player" + e); - } - }); - } - } - } - } else if (data.type === "chat") { - const client = clients.get(ws); - if (client) { - data.payload.message = data.payload.message.trim().substring(0, 200); - for (const [otherClient, otherClientData] of clients) { - if (otherClientData.currentSector === client.currentSector) { - otherClient.send(JSON.stringify({ type: "chat", payload: { id: client.id, message: data.payload.message } })); - } - } - } - } else if (data.type === "manufacture") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - manufacture(ws, player, data.payload.what, Math.round(data.payload.amount), flashServerMessage); - } - } - } else if (data.type === "compositeManufacture") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - compositeManufacture(ws, player, data.payload.what, Math.round(data.payload.amount), flashServerMessage); - } - } - } else if (data.type === "purchase") { - const client = clients.get(ws); - if (client) { - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - Station.findOne({ id: player.docked }, (err, station) => { - if (err) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Server error loading station" } })); - console.log("Error loading station: " + err); - return; - } - if (!station) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Station not found" } })); - console.log("Error loading station: " + err); - return; - } - const newPlayer = purchaseShip(player, data.payload.index, station.shipsAvailable, data.payload.fromInventory); - if (newPlayer !== player) { - state.players.set(client.id, newPlayer); - const items = [defs[player.defIndex].name]; - if (player.arms) { - for (const armIndex of player.arms) { - items.push(armDefs[armIndex].name); - } - } - const toTake = data.payload.fromInventory ? [defs[newPlayer.defIndex].name] : []; - // There is technically a bug here, if the player equips and then logs off, but the database has an error after they log off then - // they what is deposited will be lost. I don't want to deal with it though (the correct thing is to pull their save from the database - // and deal with it that way, but if we just had a database error this is unlikely to work anyways) - depositItemsIntoInventory(ws, player, items, toTake, flashServerMessage, () => { - console.log("Error depositing ship into inventory, reverting player"); - try { - const otherState = sectors.get(clients.get(idToWebsocket.get(player.id)!)!.currentSector)!; - otherState.players.set(player.id, player); - } catch (e) { - console.log("Warning: unable to revert player" + e); - } - }); - } - }); - } - } - } else if (data.type === "warp") { - const client = clients.get(ws); - if (client) { - if (client.currentSector !== data.payload.warpTo && sectorList.includes(data.payload.warpTo)) { - if (!client.sectorsVisited.has(data.payload.warpTo)) { - flashServerMessage(client.id, "You must visit a sector before you can warp to it"); - return; - } - const state = sectors.get(client.currentSector)!; - const player = state.players.get(client.id); - if (player) { - player.warpTo = data.payload.warpTo; - player.warping = 1; - } - } - } - } else if (data.type === "tutorialStageComplete") { - const client = clients.get(ws); - if (client) { - if (client.inTutorial === data.payload.stage) { - if (client.inTutorial !== data.payload.stage) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Tutorial stage mismatch" } })); - } - client.inTutorial = advanceTutorialStage(client.id, data.payload.stage, ws); - sendTutorialStage(ws, client.inTutorial); - } - } - } else if (data.type === "selectMission") { - const client = clients.get(ws); - if (client) { - if (client.inTutorial) { - flashServerMessage(client.id, "You cannot select a mission while in the tutorial", [1.0, 0.0, 0.0, 1.0]); - return; - } - const state = sectors.get(client.currentSector); - if (state) { - const player = state.players.get(client.id); - if (player) { - selectMission(ws, player, data.payload.missionId); - } - } - } - } else if (data.type === "startMission") { - const client = clients.get(ws); - if (client) { - if (client.inTutorial) { - flashServerMessage(client.id, "You cannot start a mission while in the tutorial", [1.0, 0.0, 0.0, 1.0]); - return; - } - const state = sectors.get(client.currentSector); - if (state) { - const player = state.players.get(client.id); - if (player) { - startPlayerInMission(ws, player, data.payload.missionId); - } - } - } - } else if (data.type === "friendRequest") { - const client = clients.get(ws); - if (client) { - createFriendRequest(ws, client.id, data.payload.name); - } - } else if (data.type === "revokeFriendRequest") { - const client = clients.get(ws); - if (client) { - revokeFriendRequest(ws, client.id, data.payload.name); - } - } else if (data.type === "unfriend") { - const client = clients.get(ws); - if (client) { - unfriend(ws, client.id, data.payload.id); - } - } else if (data.type === "friendWarp") { - const client = clients.get(ws); - if (client) { - const player = sectors.get(client.currentSector)?.players.get(client.id); - if (player) { - friendWarp(ws, player, data.payload.id); - } - } - } else { - console.log("Unknown message from client: ", data); - } - } catch (e) { - console.log("Error in message handler: " + e); - appendFile("errorlog", `Error: ${e}\nmessage: ${msg}\n${inspect(clients, { depth: null })}\n${Array.from(sectors.values())}\n`, (err) => { - if (err) { - console.log("Error writing to log: " + err); - } - }); - } - }); - - ws.on("close", () => { - const removedClient = clients.get(ws); - if (removedClient) { - const player = sectors.get(removedClient.currentSector)?.players.get(removedClient.id); - const state = sectors.get(removedClient.currentSector)!; - state.players.delete(removedClient.id); - targets.delete(removedClient.id); - secondaries.delete(removedClient.id); - secondariesToActivate.delete(removedClient.id); - clients.delete(ws); - idToWebsocket.delete(removedClient.id); - knownRecipes.delete(removedClient.id); - if (player) { - if (player.docked) { - if (!removedClient.inTutorial) { - saveCheckpoint(removedClient.id, removedClient.currentSector, player, removedClient.sectorsVisited, true); - } - } else { - User.findOneAndUpdate( - { id: removedClient.id }, - { - $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, - $push: { logoffTimes: Date.now() }, - }, - (err) => { - if (err) { - console.log("Error saving user: " + err); - } - } - ); - } - } else if (!player) { - console.log("Warning: player not found on disconnect"); - } - } - }); -}); - -const interval = setInterval(function ping() { - wss.clients.forEach(function each(ws) { - if ((ws as any).isAlive === false) return ws.terminate(); - - (ws as any).isAlive = false; - ws.ping(); - }); -}, 30000); - -wss.on("close", function close() { - clearInterval(interval); -}); +import { CardinalDirection, mirrorAngleHorizontally, mirrorAngleVertically } from "../src/geometry"; +import { allyCount, flashServerMessage } from "./stateHelpers"; const informDead = (player: Player) => { if (player.npc) { @@ -990,177 +114,6 @@ const discoverer = (id: number, recipe: string) => { } }; -// Updating the game state -setInterval(() => { - frame++; - const sectorTransitions: SectorTransition[] = []; - - for (const [sector, state] of sectors) { - for (const [client, data] of clients) { - const player = state.players.get(data.id); - if (data.input && player) { - applyInputs(data.input, player, data.angle); - } - } - const triggers: EffectTrigger[] = []; - const mutated = update( - state, - frame, - targets, - secondaries, - (trigger) => triggers.push(trigger), - warpList, - informDead, - flashServerMessage, - (id, collected) => removeCollectable(sector, id, collected), - (id, detonated) => removeMine(sector, id, detonated), - knownRecipes, - discoverer, - secondariesToActivate - ); - processAllNpcs(state, sector); - findSectorTransitions(state, sector, sectorTransitions); - - // TODO Consider culling the state information to only send nearby players and projectiles (this trades networking bandwidth for server CPU) - // TODO I should not be sending the players out of range or the cloaked players to the clients that should not be able to have that information - const playerData: Player[] = []; - const npcs: (NPC | undefined)[] = []; - for (const player of state.players.values()) { - npcs.push(player.npc); - player.npc = undefined; - playerData.push(player); - } - - const projectileData: Ballistic[] = Array.from(state.projectiles.values()); - let asteroidData: Asteroid[] = state.asteroidsDirty ? Array.from(state.asteroids.values()) : Array.from(mutated.asteroids); - const missileData: Missile[] = Array.from(state.missiles.values()); - - const serialized = JSON.stringify({ - type: "state", - payload: { - players: playerData, - frame, - projectiles: projectileData, - asteroids: asteroidData, - effects: triggers, - missiles: missileData, - collectables: mutated.collectables, - mines: mutated.mines, - }, - }); - - for (const [client, data] of clients) { - if (data.currentSector === sector) { - client.send(serialized); - } - } - for (const player of state.players.values()) { - player.npc = npcs.shift()!; - } - - if (frame % 60 === 0) { - const trigger = sectorTriggers.get(sector); - if (trigger) { - trigger(state); - } - } - } - - // Handle all sector transitions - for (const transition of sectorTransitions) { - const newSector = sectorInDirection(transition.from, transition.direction) ?? transition.from; - - if (newSector === transition.from) { - if (transition.direction === CardinalDirection.Up) { - transition.player.position.y = sectorBounds.y + 200; - transition.direction = CardinalDirection.Down; - transition.player.heading = mirrorAngleHorizontally(transition.player.heading); - } else if (transition.direction === CardinalDirection.Down) { - transition.player.position.y = sectorBounds.y + sectorBounds.height - 200; - transition.direction = CardinalDirection.Up; - transition.player.heading = mirrorAngleHorizontally(transition.player.heading); - } else if (transition.direction === CardinalDirection.Left) { - transition.player.position.x = sectorBounds.x + 200; - transition.direction = CardinalDirection.Right; - transition.player.heading = mirrorAngleVertically(transition.player.heading); - } else if (transition.direction === CardinalDirection.Right) { - transition.player.position.x = sectorBounds.x + sectorBounds.width - 200; - transition.direction = CardinalDirection.Left; - transition.player.heading = mirrorAngleVertically(transition.player.heading); - } - } - - const state = sectors.get(newSector); - if (state) { - const ws = idToWebsocket.get(transition.player.id); - const sectorInfo = { - sector: newSector, - resources: newSector < mapSize * mapSize ? sectorAsteroidResources[newSector].map((value) => value.resource) : [], - }; - if (ws) { - const client = clients.get(ws)!; - client.currentSector = newSector; - if (newSector < mapSize * mapSize) { - client.sectorsVisited.add(newSector); - } - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to: newSector, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [sectorInfo], - }, - }) - ); - } - transition.player.position = transition.coords; - // transition.player.heading = headingFromCardinalDirection(transition.direction); - state.players.set(transition.player.id, transition.player); - } - } - - // Handle all warps - while (warpList.length > 0) { - const { player, to } = warpList.shift()!; - const state = sectors.get(to); - if (state) { - const ws = idToWebsocket.get(player.id); - if (ws) { - const client = clients.get(ws)!; - client.currentSector = to; - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [], - }, - }) - ); - // const enemies = enemyCount(player.team, to); - // const allies = allyCount(player.team, to); - // const count = enemies - allies; - // if (count > 3 && isEnemySector(player.team, to)) { - // spawnAllyForces(player.team, to, count); - // flashServerMessage(player.id, `${getFactionString(player.team)} forces have arrived to assist!`); - // } - } - // Lets just keep the coords and momentum of the player on warping - // player.position.x = Math.random() * 6000 - 3000; - // player.position.y = Math.random() * 6000 - 3000; - // player.heading = (3 * Math.PI) / 2; - // player.speed = 0; - state.players.set(player.id, player); - } - } -}, 1000 / ticksPerSecond); - const spawnIncrementalGuardians = (sector: number) => { const state = sectors.get(sector); if (!state) { @@ -1254,18 +207,6 @@ const spawnSectorGuardians = (sector: number) => { } }; -setInterval(() => { - for (let i = 0; i < sectorList.length; i++) { - spawnIncrementalGuardians(i); - } -}, 20 * 990); - -setInterval(() => { - for (let i = 0; i < sectorList.length; i++) { - spawnSectorGuardians(i); - } -}, 120 * 60 * 1000); - const repairStationsInSectorForTeam = (sector: number, team: Faction) => { const state = sectors.get(sector); if (!state) { @@ -1278,16 +219,6 @@ const repairStationsInSectorForTeam = (sector: number, team: Faction) => { } }; -setInterval(() => { - for (const sector of sectorList) { - const faction = sectorFactions[sector]; - if (faction === null) { - continue; - } - repairStationsInSectorForTeam(sector, faction); - } -}, 2 * 60 * 1000); - const respawnEmptyAsteroids = (state: GlobalState, sector: number) => { let removedCount = 0; const removed: number[] = []; @@ -1323,12 +254,205 @@ const respawnEmptyAsteroids = (state: GlobalState, sector: number) => { } }; -setInterval(() => { - for (const [sector, state] of sectors) { - respawnEmptyAsteroids(state, sector); - } -}, 1 * 60 * 1000); +const setupTimers = () => { + setInterval(() => { + for (let i = 0; i < sectorList.length; i++) { + spawnIncrementalGuardians(i); + } + }, 20 * 990); + + setInterval(() => { + for (let i = 0; i < sectorList.length; i++) { + spawnSectorGuardians(i); + } + }, 120 * 60 * 1000); + + setInterval(() => { + for (const sector of sectorList) { + const faction = sectorFactions[sector]; + if (faction === null) { + continue; + } + repairStationsInSectorForTeam(sector, faction); + } + }, 2 * 60 * 1000); + + setInterval(() => { + for (const [sector, state] of sectors) { + respawnEmptyAsteroids(state, sector); + } + }, 1 * 60 * 1000); + + // Updating the game state + setInterval(() => { + frame++; + const sectorTransitions: SectorTransition[] = []; + + for (const [sector, state] of sectors) { + for (const [client, data] of clients) { + const player = state.players.get(data.id); + if (data.input && player) { + applyInputs(data.input, player, data.angle); + } + } + const triggers: EffectTrigger[] = []; + const mutated = update( + state, + frame, + targets, + secondaries, + (trigger) => triggers.push(trigger), + warpList, + informDead, + flashServerMessage, + (id, collected) => removeCollectable(sector, id, collected), + (id, detonated) => removeMine(sector, id, detonated), + knownRecipes, + discoverer, + secondariesToActivate + ); + processAllNpcs(state, sector); + findSectorTransitions(state, sector, sectorTransitions); + + // TODO Consider culling the state information to only send nearby players and projectiles (this trades networking bandwidth for server CPU) + // TODO I should not be sending the players out of range or the cloaked players to the clients that should not be able to have that information + const playerData: Player[] = []; + const npcs: (NPC | undefined)[] = []; + for (const player of state.players.values()) { + npcs.push(player.npc); + player.npc = undefined; + playerData.push(player); + } + + const projectileData: Ballistic[] = Array.from(state.projectiles.values()); + let asteroidData: Asteroid[] = state.asteroidsDirty ? Array.from(state.asteroids.values()) : Array.from(mutated.asteroids); + const missileData: Missile[] = Array.from(state.missiles.values()); + + const serialized = JSON.stringify({ + type: "state", + payload: { + players: playerData, + frame, + projectiles: projectileData, + asteroids: asteroidData, + effects: triggers, + missiles: missileData, + collectables: mutated.collectables, + mines: mutated.mines, + }, + }); + + for (const [client, data] of clients) { + if (data.currentSector === sector) { + client.send(serialized); + } + } + for (const player of state.players.values()) { + player.npc = npcs.shift()!; + } + + if (frame % 60 === 0) { + const trigger = sectorTriggers.get(sector); + if (trigger) { + trigger(state); + } + } + } + + // Handle all sector transitions + for (const transition of sectorTransitions) { + const newSector = sectorInDirection(transition.from, transition.direction) ?? transition.from; + + if (newSector === transition.from) { + if (transition.direction === CardinalDirection.Up) { + transition.player.position.y = sectorBounds.y + 200; + transition.direction = CardinalDirection.Down; + transition.player.heading = mirrorAngleHorizontally(transition.player.heading); + } else if (transition.direction === CardinalDirection.Down) { + transition.player.position.y = sectorBounds.y + sectorBounds.height - 200; + transition.direction = CardinalDirection.Up; + transition.player.heading = mirrorAngleHorizontally(transition.player.heading); + } else if (transition.direction === CardinalDirection.Left) { + transition.player.position.x = sectorBounds.x + 200; + transition.direction = CardinalDirection.Right; + transition.player.heading = mirrorAngleVertically(transition.player.heading); + } else if (transition.direction === CardinalDirection.Right) { + transition.player.position.x = sectorBounds.x + sectorBounds.width - 200; + transition.direction = CardinalDirection.Left; + transition.player.heading = mirrorAngleVertically(transition.player.heading); + } + } + + const state = sectors.get(newSector); + if (state) { + const ws = idToWebsocket.get(transition.player.id); + const sectorInfo = { + sector: newSector, + resources: newSector < mapSize * mapSize ? sectorAsteroidResources[newSector].map((value) => value.resource) : [], + }; + if (ws) { + const client = clients.get(ws)!; + client.currentSector = newSector; + if (newSector < mapSize * mapSize) { + client.sectorsVisited.add(newSector); + } + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to: newSector, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [sectorInfo], + }, + }) + ); + } + transition.player.position = transition.coords; + // transition.player.heading = headingFromCardinalDirection(transition.direction); + state.players.set(transition.player.id, transition.player); + } + } + + // Handle all warps + while (warpList.length > 0) { + const { player, to } = warpList.shift()!; + const state = sectors.get(to); + if (state) { + const ws = idToWebsocket.get(player.id); + if (ws) { + const client = clients.get(ws)!; + client.currentSector = to; + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [], + }, + }) + ); + // const enemies = enemyCount(player.team, to); + // const allies = allyCount(player.team, to); + // const count = enemies - allies; + // if (count > 3 && isEnemySector(player.team, to)) { + // spawnAllyForces(player.team, to, count); + // flashServerMessage(player.id, `${getFactionString(player.team)} forces have arrived to assist!`); + // } + } + // Lets just keep the coords and momentum of the player on warping + // player.position.x = Math.random() * 6000 - 3000; + // player.position.y = Math.random() * 6000 - 3000; + // player.heading = (3 * Math.PI) / 2; + // player.speed = 0; + state.players.set(player.id, player); + } + } + }, 1000 / ticksPerSecond); +}; -server.listen(wsPort, () => { - console.log(`${useSsl ? "Secure" : "Unsecure"} websocket server running on port ${wsPort}`); -}); +export { setupTimers }; diff --git a/server/testPeer.sh b/server/testPeer.sh new file mode 100755 index 0000000..170d871 --- /dev/null +++ b/server/testPeer.sh @@ -0,0 +1,4 @@ +#! /bin/bash + +node peers.js carter 5555 "[1,2,3]" & +node peers.js shepard 5556 "[4,5,6]" & diff --git a/server/websockets.ts b/server/websockets.ts new file mode 100644 index 0000000..ecaea81 --- /dev/null +++ b/server/websockets.ts @@ -0,0 +1,738 @@ +import { appendFile } from "fs"; +import { createServer } from "http"; +import https from "https"; +import { inspect } from "util"; +import { WebSocketServer, WebSocket } from "ws"; +import { useSsl } from "../src/config"; +import { armDefs, ArmUsage, defs, Faction } from "../src/defs"; +import { + applyUndockingOffset, + canDock, + canRepair, + CloakedState, + copyPlayer, + equip, + isNearOperableEnemyStation, + maxNameLength, + Player, + purchaseShip, + removeAtMostCargo, + removeCargoFractions, + SectorInfo, + TargetKind, + TutorialStage, +} from "../src/game"; +import { Checkpoint, Station, User } from "./dataModels"; +import { createFriendRequest, friendWarp, revokeFriendRequest, unfriend } from "./friends"; +import { + compositeManufacture, + depositCargo, + depositItemsIntoInventory, + manufacture, + sellInventory, + sendInventory, + transferToShip, +} from "./inventory"; +import { assignPlayerIdToConnection, logWebSocketConnection } from "./logging"; +import { market } from "./market"; +import { setupPlayer } from "./misc"; +import { selectMission, startPlayerInMission } from "./missions"; +import { hash, sniCallback, wsPort } from "./settings"; +import { + clients, + idToWebsocket, + knownRecipes, + saveCheckpoint, + secondaries, + secondariesToActivate, + sectorAsteroidResources, + sectorList, + sectors, + targets, + tutorialRespawnPoints, + uid, +} from "./state"; +import { allyCount, enemyCount, flashServerMessage } from "./stateHelpers"; +import { advanceTutorialStage, sendTutorialStage } from "./tutorial"; + +export function startWebSocketServer() { + // Websocket server stuff + let server: ReturnType | https.Server; + if (useSsl) { + server = new https.Server({ SNICallback: sniCallback }); + } else { + server = createServer(); + } + + // Websocket stuff (TODO Move to its own file) + const wss = new WebSocketServer({ server }); + + // TODO Need to go over this carefully, checking to make sure that malicious clients can't do anything bad + wss.on("connection", (ws, req) => { + (ws as any).isAlive = true; + + const ipAddr = req.socket.remoteAddress; + + logWebSocketConnection(ipAddr); + + ws.on("message", (msg) => { + try { + const data = JSON.parse(msg.toString()); + if (data.type === "heartbeat") { + (ws as any).isAlive = true; + return; + } else if (data.type === "login") { + const name = data.payload.name; + const password = data.payload.password; + + const hashedPassword = hash(password); + + // Check if the user is in the database + User.findOne({ name, password: hashedPassword }, (err, user) => { + if (err) { + ws.send(JSON.stringify({ type: "loginFail", payload: { error: "Database error" } })); + console.log(err); + return; + } + if (!user) { + ws.send(JSON.stringify({ type: "loginFail", payload: { error: "Username/password combination not found" } })); + return; + } + + if (idToWebsocket.has(user.id)) { + ws.send(JSON.stringify({ type: "loginFail", payload: { error: "User already logged in" } })); + return; + } + + idToWebsocket.set(user.id, ws); + assignPlayerIdToConnection(ipAddr, user.id); + + const sectorInfos: SectorInfo[] = []; + if (!user.sectorsVisited) { + user.sectorsVisited = [user.currentSector]; + } + user.loginCount++; + user.loginTimes.push(Date.now()); + try { + user.save(); + } catch (err) { + console.log(err); + } + + const sectorsVisited: Set = new Set(user.sectorsVisited); + for (const sector of sectorsVisited) { + sectorInfos.push({ + sector, + resources: sectorAsteroidResources[sector].map((value) => value.resource), + }); + } + + Checkpoint.findOne({ id: user.id }, (err, checkpoint) => { + if (err) { + ws.send(JSON.stringify({ type: "loginFail", payload: { error: "Database error" } })); + console.log(err); + return; + } + if (!checkpoint) { + setupPlayer(user.id, ws, name, user.faction); + } else { + const state = sectors.get(checkpoint.sector); + if (!state) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Bad checkpoint sector" } })); + console.log("Warning: Checkpoint sector not found"); + setupPlayer(user.id, ws, name, user.faction); + return; + } + const playerState = JSON.parse(checkpoint.data) as Player; + if (isNearOperableEnemyStation(playerState, state.players.values()) || enemyCount(playerState.team, checkpoint.sector) > 2) { + playerState.position.x = -5000; + playerState.position.y = 5000; + } + // All these "fixes" are for making old checkpoints work with new code + // Update the player on load to match what is expected + if (playerState.defIndex === undefined) { + playerState.defIndex = (playerState as any).definitionIndex; + (playerState as any).definitionIndex = undefined; + } + // fix the cargo + if (playerState.cargo === undefined || playerState.cargo.some((c) => !Number.isInteger(c.amount))) { + playerState.cargo = [{ what: "Teddy Bears", amount: 30 }]; + } + // fix the credits + if (playerState.credits === undefined) { + playerState.credits = 500; + } + playerState.credits = Math.round(playerState.credits); + // fix the slot data + const def = defs[playerState.defIndex]; + while (playerState.slotData.length < def.slots.length) { + playerState.arms.push(def.slots[playerState.slotData.length]); + playerState.slotData.push({}); + } + // fix the impulse + if (playerState.ir === undefined) { + playerState.ir = 0; + } + if (playerState.iv === undefined) { + playerState.iv = { x: 0, y: 0 }; + } + // fix the health and energy + if (playerState.health > def.health) { + playerState.health = def.health; + } + if (playerState.energy > def.energy) { + playerState.energy = def.energy; + } + (playerState as any).projectileId = undefined; + // fix the arms + if (playerState.arms === undefined) { + playerState.arms = (playerState as any).armIndices; + (playerState as any).armIndices = undefined; + } + + playerState.v = { x: 0, y: 0 }; + state.players.set(user.id, playerState); + clients.set(ws, { + id: user.id, + name, + input: { up: false, down: false, primary: false, secondary: false, right: false, left: false }, + angle: 0, + currentSector: checkpoint.sector, + lastMessage: "", + lastMessageTime: Date.now(), + sectorsVisited, + inTutorial: TutorialStage.Done, + }); + targets.set(user.id, [TargetKind.None, 0]); + secondaries.set(user.id, 0); + secondariesToActivate.set(user.id, []); + knownRecipes.set(user.id, new Set(user.recipesKnown)); + ws.send( + JSON.stringify({ + type: "init", + payload: { + id: user.id, + sector: checkpoint.sector, + faction: playerState.team, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos, + recipes: user.recipesKnown, + }, + }) + ); + sendInventory(ws, user.id); + // log to file + appendFile("log", `${new Date().toISOString()} ${name} logged in\n`, (err) => { + if (err) { + console.log(err); + } + }); + } + }); + }); + } else if (data.type === "register") { + const name = data.payload.name; + const password = data.payload.password; + const faction = data.payload.faction; + + // Check if the user is in the database + User.findOne({ name }, (err, user) => { + if (err) { + ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Database error" } })); + console.log(err); + return; + } + if (user) { + ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Username already taken" } })); + return; + } + if (name.length > maxNameLength) { + ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Username too long" } })); + return; + } + User.create({ name, password: hash(password), faction, id: uid(), loginTimes: [Date.now()] }, (err, user) => { + if (err) { + ws.send(JSON.stringify({ type: "registerFail", payload: { error: "Database error" } })); + console.log(err); + return; + } + setupPlayer(user.id, ws, name, faction); + idToWebsocket.set(user.id, ws); + assignPlayerIdToConnection(ipAddr, user.id); + }); + }); + } else if (data.type === "input") { + const client = clients.get(ws); + if (client) { + client.input = data.payload.input; + } else { + console.log("Warning: Input data from unknown client"); + } + } else if (data.type === "angle") { + const client = clients.get(ws); + if (client) { + client.angle = data.payload.angle; + } else { + console.log("Warning: Angle data from unknown client"); + } + } else if (data.type === "dock") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + if (player.docked) { + return; + } + removeCargoFractions(player); + const station = state.players.get(data.payload.stationId); + if (canDock(player, station, false)) { + const def = defs[player.defIndex]; + player.docked = data.payload.stationId; + player.heading = 0; + player.speed = 0; + player.side = 0; + player.energy = def.energy; + player.health = def.health; + player.warping = 0; + player.ir = 0; + player.iv.x = 0; + player.iv.y = 0; + player.cloak = CloakedState.Uncloaked; + player.position = { x: station!.position.x, y: station!.position.y }; + for (let i = 0; i < player.arms.length; i++) { + const armDef = armDefs[player.arms[i]]; + if (armDef && armDef.usage === ArmUsage.Ammo) { + player.slotData[i].ammo = armDef.maxAmmo; + } + } + + state.players.set(client.id, player); + + if (!client.inTutorial) { + saveCheckpoint(client.id, client.currentSector, player, client.sectorsVisited); + } else { + tutorialRespawnPoints.set(client.id, copyPlayer(player)); + } + } + } + } + } else if (data.type === "undock") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + player.docked = undefined; + applyUndockingOffset(player); + state.players.set(client.id, player); + + if (!client.inTutorial) { + saveCheckpoint(client.id, client.currentSector, player, client.sectorsVisited); + } else { + tutorialRespawnPoints.set(client.id, copyPlayer(player)); + } + } + } + } else if (data.type === "repair") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + const station = state.players.get(data.payload.station)!; + if (canRepair(player, station, false)) { + if (!station.repairs || station.repairs.length !== Faction.Count) { + console.log(`Warning: Station repairs array is not correctly initialized (${station.id})`); + } else { + const stationDef = defs[station.defIndex]; + const repairsNeeded = stationDef.repairsRequired! - station.repairs[player.team]; + const amountRepaired = removeAtMostCargo(player, "Spare Parts", repairsNeeded); + station.repairs[player.team] += amountRepaired; + } + } + } + } + } else if (data.type === "respawn") { + const client = clients.get(ws); + if (client) { + if (client.inTutorial) { + const state = sectors.get(client.currentSector); + if (state) { + const playerState = tutorialRespawnPoints.get(client.id); + if (playerState) { + state.players.set(client.id, copyPlayer(playerState)); + } else { + ws.send(JSON.stringify({ type: "error", payload: { message: "Missing tutorial respawn checkpoint" } })); + } + } else { + ws.send(JSON.stringify({ type: "error", payload: { message: "Tutorial sector invalid" } })); + } + return; + } + Checkpoint.findOne({ id: client.id }, (err, checkpoint) => { + if (err) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Server error loading checkpoint" } })); + console.log("Error loading checkpoint: " + err); + return; + } + if (!checkpoint) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Checkpoint not found" } })); + console.log("Error loading checkpoint: " + err); + return; + } + const state = sectors.get(checkpoint.sector); + if (!state) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Bad checkpoint sector" } })); + console.log("Warning: Checkpoint sector not found (programming error)"); + return; + } + const playerState = JSON.parse(checkpoint.data) as Player; + // So I don't have to edit the checkpoints in the database right now + playerState.isPC = true; + if ( + isNearOperableEnemyStation(playerState, state.players.values()) || + enemyCount(playerState.team, checkpoint.sector) - allyCount(playerState.team, checkpoint.sector) > 2 + ) { + playerState.position.x = -5000; + playerState.position.y = 5000; + } + playerState.v = { x: 0, y: 0 }; + playerState.iv = { x: 0, y: 0 }; + playerState.ir = 0; + state.players.set(client.id, playerState); + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to: checkpoint.sector, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [], + }, + }) + ); + client.currentSector = checkpoint.sector; + }); + } + } else if (data.type === "target") { + const client = clients.get(ws); + if (client) { + targets.set(client.id, data.payload.target); + } + } else if (data.type === "secondary") { + const client = clients.get(ws); + if (client) { + if (typeof data.payload.secondary === "number" && data.payload.secondary >= 0) { + secondaries.set(client.id, data.payload.secondary); + } + } + } else if (data.type === "secondaryActivation") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + if (typeof data.payload.secondary === "number" && data.payload.secondary < player.arms.length && data.payload.secondary >= 0) { + secondariesToActivate.get(client.id)?.push(data.payload.secondary); + } + } + } + } else if (data.type === "sellCargo") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player && player.cargo) { + if (player.credits === undefined) { + player.credits = 0; + } + const price = market.get(data.payload.what); + if (price) { + player.credits += removeAtMostCargo(player, data.payload.what, Math.round(data.payload.amount)) * price; + } + } + } + } else if (data.type === "transferToShip") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + transferToShip(ws, player, data.payload.what, Math.round(data.payload.amount), flashServerMessage); + } + } + } else if (data.type === "sellInventory") { + const client = clients.get(ws); + if (client) { + const player = sectors.get(client.currentSector)!.players.get(client.id); + if (player) { + sellInventory(ws, player, data.payload.what, Math.round(data.payload.amount)); + } + } + } else if (data.type === "depositCargo") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player && player.cargo) { + depositCargo(player, data.payload.what, Math.round(data.payload.amount), ws); + } + } + } else if (data.type === "dumpCargo") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player && player.cargo) { + removeAtMostCargo(player, data.payload.what, Math.round(data.payload.amount)); + } + } + } else if (data.type === "equip") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + // equip does the bounds checking for the index for us + let newPlayer = equip(player, data.payload.slotIndex, data.payload.what, data.payload.fromInventory); + if (newPlayer !== player) { + state.players.set(client.id, newPlayer); + const toTake = data.payload.fromInventory ? [armDefs[newPlayer.arms[data.payload.slotIndex]].name] : []; + // There is technically a bug here, if the player equips and then logs off, but the database has an error after they log off then + // they what is deposited will be lost. I don't want to deal with it though (the correct thing is to pull their save from the database + // and deal with it that way, but if we just had a database error this is unlikely to work anyways) + depositItemsIntoInventory(ws, player, [armDefs[player.arms[data.payload.slotIndex]].name], toTake, flashServerMessage, () => { + console.log("Error depositing armament into inventory, reverting player"); + try { + const otherState = sectors.get(clients.get(idToWebsocket.get(player.id)!)!.currentSector)!; + otherState.players.set(player.id, player); + } catch (e) { + console.log("Warning: unable to revert player" + e); + } + }); + } + } + } + } else if (data.type === "chat") { + const client = clients.get(ws); + if (client) { + data.payload.message = data.payload.message.trim().substring(0, 200); + for (const [otherClient, otherClientData] of clients) { + if (otherClientData.currentSector === client.currentSector) { + otherClient.send(JSON.stringify({ type: "chat", payload: { id: client.id, message: data.payload.message } })); + } + } + } + } else if (data.type === "manufacture") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + manufacture(ws, player, data.payload.what, Math.round(data.payload.amount), flashServerMessage); + } + } + } else if (data.type === "compositeManufacture") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + compositeManufacture(ws, player, data.payload.what, Math.round(data.payload.amount), flashServerMessage); + } + } + } else if (data.type === "purchase") { + const client = clients.get(ws); + if (client) { + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + Station.findOne({ id: player.docked }, (err, station) => { + if (err) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Server error loading station" } })); + console.log("Error loading station: " + err); + return; + } + if (!station) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Station not found" } })); + console.log("Error loading station: " + err); + return; + } + const newPlayer = purchaseShip(player, data.payload.index, station.shipsAvailable, data.payload.fromInventory); + if (newPlayer !== player) { + state.players.set(client.id, newPlayer); + const items = [defs[player.defIndex].name]; + if (player.arms) { + for (const armIndex of player.arms) { + items.push(armDefs[armIndex].name); + } + } + const toTake = data.payload.fromInventory ? [defs[newPlayer.defIndex].name] : []; + // There is technically a bug here, if the player equips and then logs off, but the database has an error after they log off then + // they what is deposited will be lost. I don't want to deal with it though (the correct thing is to pull their save from the database + // and deal with it that way, but if we just had a database error this is unlikely to work anyways) + depositItemsIntoInventory(ws, player, items, toTake, flashServerMessage, () => { + console.log("Error depositing ship into inventory, reverting player"); + try { + const otherState = sectors.get(clients.get(idToWebsocket.get(player.id)!)!.currentSector)!; + otherState.players.set(player.id, player); + } catch (e) { + console.log("Warning: unable to revert player" + e); + } + }); + } + }); + } + } + } else if (data.type === "warp") { + const client = clients.get(ws); + if (client) { + if (client.currentSector !== data.payload.warpTo && sectorList.includes(data.payload.warpTo)) { + if (!client.sectorsVisited.has(data.payload.warpTo)) { + flashServerMessage(client.id, "You must visit a sector before you can warp to it"); + return; + } + const state = sectors.get(client.currentSector)!; + const player = state.players.get(client.id); + if (player) { + player.warpTo = data.payload.warpTo; + player.warping = 1; + } + } + } + } else if (data.type === "tutorialStageComplete") { + const client = clients.get(ws); + if (client) { + if (client.inTutorial === data.payload.stage) { + if (client.inTutorial !== data.payload.stage) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Tutorial stage mismatch" } })); + } + client.inTutorial = advanceTutorialStage(client.id, data.payload.stage, ws); + sendTutorialStage(ws, client.inTutorial); + } + } + } else if (data.type === "selectMission") { + const client = clients.get(ws); + if (client) { + if (client.inTutorial) { + flashServerMessage(client.id, "You cannot select a mission while in the tutorial", [1.0, 0.0, 0.0, 1.0]); + return; + } + const state = sectors.get(client.currentSector); + if (state) { + const player = state.players.get(client.id); + if (player) { + selectMission(ws, player, data.payload.missionId); + } + } + } + } else if (data.type === "startMission") { + const client = clients.get(ws); + if (client) { + if (client.inTutorial) { + flashServerMessage(client.id, "You cannot start a mission while in the tutorial", [1.0, 0.0, 0.0, 1.0]); + return; + } + const state = sectors.get(client.currentSector); + if (state) { + const player = state.players.get(client.id); + if (player) { + startPlayerInMission(ws, player, data.payload.missionId); + } + } + } + } else if (data.type === "friendRequest") { + const client = clients.get(ws); + if (client) { + createFriendRequest(ws, client.id, data.payload.name); + } + } else if (data.type === "revokeFriendRequest") { + const client = clients.get(ws); + if (client) { + revokeFriendRequest(ws, client.id, data.payload.name); + } + } else if (data.type === "unfriend") { + const client = clients.get(ws); + if (client) { + unfriend(ws, client.id, data.payload.id); + } + } else if (data.type === "friendWarp") { + const client = clients.get(ws); + if (client) { + const player = sectors.get(client.currentSector)?.players.get(client.id); + if (player) { + friendWarp(ws, player, data.payload.id); + } + } + } else { + console.log("Unknown message from client: ", data); + } + } catch (e) { + console.log("Error in message handler: " + e); + appendFile("errorlog", `Error: ${e}\nmessage: ${msg}\n${inspect(clients, { depth: null })}\n${Array.from(sectors.values())}\n`, (err) => { + if (err) { + console.log("Error writing to log: " + err); + } + }); + } + }); + + ws.on("close", () => { + const removedClient = clients.get(ws); + if (removedClient) { + const player = sectors.get(removedClient.currentSector)?.players.get(removedClient.id); + const state = sectors.get(removedClient.currentSector)!; + state.players.delete(removedClient.id); + targets.delete(removedClient.id); + secondaries.delete(removedClient.id); + secondariesToActivate.delete(removedClient.id); + clients.delete(ws); + idToWebsocket.delete(removedClient.id); + knownRecipes.delete(removedClient.id); + if (player) { + if (player.docked) { + if (!removedClient.inTutorial) { + saveCheckpoint(removedClient.id, removedClient.currentSector, player, removedClient.sectorsVisited, true); + } + } else { + User.findOneAndUpdate( + { id: removedClient.id }, + { + $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, + $push: { logoffTimes: Date.now() }, + }, + (err) => { + if (err) { + console.log("Error saving user: " + err); + } + } + ); + } + } else if (!player) { + console.log("Warning: player not found on disconnect"); + } + } + }); + }); + + const interval = setInterval(function ping() { + wss.clients.forEach(function each(ws) { + if ((ws as any).isAlive === false) return ws.terminate(); + + (ws as any).isAlive = false; + ws.ping(); + }); + }, 30000); + + wss.on("close", function close() { + clearInterval(interval); + }); + + server.listen(wsPort, () => { + console.log(`${useSsl ? "Secure" : "Unsecure"} websocket server running on port ${wsPort}`); + }); +} diff --git a/src/config.ts b/src/config.ts index 78d327a..d224aaa 100755 --- a/src/config.ts +++ b/src/config.ts @@ -1,6 +1,6 @@ import { KeyLayouts } from "./keybindings"; -const useSsl = true; +const useSsl = false; const wsUrl = useSsl ? "wss://spacequest.io:80" : "ws://localhost:8080"; const defaultKeyLayout = KeyLayouts.Qwerty; From a7980f13a6ccb216164f8fb1c2c1740d8f7ba9e3 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 13 Jan 2023 15:40:17 -0600 Subject: [PATCH 12/39] Disable things that the map rework will break --- server/misc.ts | 5 +- server/routes.ts | 75 +++-------------- server/server.ts | 64 ++++++++------- server/state.ts | 181 ++++++++++++++++++++++-------------------- server/websockets.ts | 5 +- src/dialogs/map.ts | 33 +++++--- src/dialogs/social.ts | 3 +- src/game.ts | 1 + 8 files changed, 174 insertions(+), 193 deletions(-) diff --git a/server/misc.ts b/server/misc.ts index fdd8d8c..850c58d 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -1,6 +1,6 @@ import { clientUid, defMap, defs, emptyLoadout, Faction } from "../src/defs"; import { effectiveInfinity, Player, SectorInfo, SectorKind, TargetKind, TutorialStage } from "../src/game"; -import { clients, knownRecipes, secondaries, secondariesToActivate, sectorAsteroidResources, sectors, targets, tutorialRespawnPoints } from "./state"; +import { clients, knownRecipes, secondaries, secondariesToActivate, sectors, targets, tutorialRespawnPoints } from "./state"; import { WebSocket } from "ws"; import { sendInventory } from "./inventory"; import { sendTutorialStage } from "./tutorial"; @@ -95,7 +95,8 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) const sectorInfos: SectorInfo[] = []; sectorInfos.push({ sector: sectorToWarpTo, - resources: sectorAsteroidResources[sectorToWarpTo].map((value) => value.resource), + // resources: sectorAsteroidResources[sectorToWarpTo].map((value) => value.resource), + resources: [], }); ws.send( diff --git a/server/routes.ts b/server/routes.ts index 5479ca3..8b1cd66 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -6,12 +6,10 @@ import { useSsl } from "../src/config"; import express from "express"; import { resolve } from "path"; import cors from "cors"; - import { User, Station } from "./dataModels"; - import { addNpc } from "../src/npc"; import { market } from "./market"; -import { clients, friendlySectors, idToWebsocket, sectorFactions, sectorHasStarbase, sectorList, sectors, uid } from "./state"; +import { clients, friendlySectors, idToWebsocket, /* sectorFactions, sectorHasStarbase, */ sectorList, sectors, uid } from "./state"; import { adminHash, hash, httpPort, sniCallback } from "./settings"; import { recipeMap, recipes } from "../src/recipes"; import { isFreeArm } from "../src/defs/armaments"; @@ -148,6 +146,7 @@ app.get("/clearAllFriendsAndRequests", async (req, res) => { } }); +// UNSAFE app.get("/currentSectorOfPlayer", (req, res) => { const idParam = req.query.id; if (!idParam || typeof idParam !== "string") { @@ -271,11 +270,13 @@ app.get("/init", (req, res) => { // Create a bunch of stations const stationObjects = sectorList .map((sector) => { - if (!sectorHasStarbase[sector]) { - return []; - } + return []; + // if (!sectorHasStarbase[sector]) { + // return []; + // } - const faction = sectorFactions[sector]; + // const faction = sectorFactions[sector]; + const faction: Faction = Faction.Alliance; switch (faction) { case Faction.Rogue: return [ @@ -327,35 +328,6 @@ app.get("/init", (req, res) => { }); }); -// Probably don't need this anymore -app.get("/resetEverything", (req, res) => { - const password = req.query.password; - if (!password || typeof password !== "string") { - res.send("Invalid get parameters"); - return; - } - const hashedPassword = hash(password); - if (hashedPassword !== adminHash) { - res.send("Invalid password"); - return; - } - // Delete all the stations - Station.deleteMany({}, (err) => { - if (err) { - res.send("Database error: " + err); - return; - } - // Delete all the users - User.deleteMany({}, (err) => { - if (err) { - res.send("Database error: " + err); - return; - } - res.send("true"); - }); - }); -}); - app.get("/unlockEverything", (req, res) => { const password = req.query.password; if (!password || typeof password !== "string") { @@ -450,6 +422,7 @@ app.get("/unlockEverything", (req, res) => { }); }); +// UNSAFE app.get("/addNPC", (req, res) => { const password = req.query.password; if (!password || typeof password !== "string") { @@ -520,6 +493,7 @@ app.get("/stopProfiling", (req, res) => { res.send("true"); }); +// UNSAFE app.get("/totalPlayers", (req, res) => { const ret = `Total: ${Array.from(sectors.values()) @@ -532,32 +506,7 @@ app.get("/totalPlayers", (req, res) => { res.send(ret); }); -app.get("/fixDataBase", (req, res) => { - const password = req.query.password; - if (!password || typeof password !== "string") { - res.send("Invalid get parameters"); - return; - } - const hashedPassword = hash(password); - if (hashedPassword !== adminHash) { - res.send("Invalid password"); - return; - } - // Round all the inventory number to the nearest integer - User.find({}, (err, users) => { - if (err) { - res.send("Database error: " + err); - return; - } - users.forEach((user) => { - const newInventory = Object.fromEntries(Object.entries(user.inventory).map(([key, value]) => [key, Math.round(value as number)])); - user.inventory = newInventory; - user.save(); - }); - res.send("true"); - }); -}); - +// UNSAFE (sort of, market prices are fixed right now so it is really fine) app.get("/priceOf", (req, res) => { const what = req.query.what; if (!what || typeof what !== "string") { @@ -572,6 +521,7 @@ app.get("/priceOf", (req, res) => { res.send(JSON.stringify({ value: price })); }); +// UNSAFE app.get("/kill", (req, res) => { const password = req.query.password; if (!password || typeof password !== "string") { @@ -612,6 +562,7 @@ app.get("/kill", (req, res) => { res.send("true"); }); +// UNSAFE app.get("/usersOnline", (req, res) => { res.send(JSON.stringify(Array.from(clients.values()).map((client) => client.name))); }); diff --git a/server/server.ts b/server/server.ts index 0a4712e..8ef21f7 100644 --- a/server/server.ts +++ b/server/server.ts @@ -20,15 +20,16 @@ import { defs, Faction, UnitKind } from "../src/defs"; import { addNpc, NPC } from "../src/npc"; import { discoverRecipe } from "./inventory"; import { + allResources, clients, friendlySectors, idToWebsocket, knownRecipes, secondaries, secondariesToActivate, - sectorAsteroidResources, - sectorFactions, - sectorGuardianCount, + // sectorAsteroidResources, + // sectorFactions, + // sectorGuardianCount, sectorInDirection, sectorList, sectors, @@ -120,7 +121,8 @@ const spawnIncrementalGuardians = (sector: number) => { return; } - const faction = sectorFactions[sector]; + // const faction = sectorFactions[sector]; + const faction = (Math.floor(Math.random() * 4) as Faction); if (faction === null) { return; } @@ -162,13 +164,15 @@ const spawnSectorGuardians = (sector: number) => { return; } - const faction = sectorFactions[sector]; + // const faction = sectorFactions[sector]; + const faction: Faction = Math.floor(Math.random() * 4) as Faction; if (faction === null) { return; } const allies = allyCount(faction, sector); - const count = sectorGuardianCount[sector] - allies; + // const count = sectorGuardianCount[sector] - allies; + const count = 0; if (count <= 0) { return; } @@ -236,7 +240,8 @@ const respawnEmptyAsteroids = (state: GlobalState, sector: number) => { sectorBounds, Date.now(), uid, - sectorAsteroidResources[sectorList.findIndex((s) => s === sector)], + // sectorAsteroidResources[sectorList.findIndex((s) => s === sector)], + allResources, Array.from(state.players.values()).filter((a) => { const def = defs[a.defIndex]; return def.kind === UnitKind.Station; @@ -255,27 +260,27 @@ const respawnEmptyAsteroids = (state: GlobalState, sector: number) => { }; const setupTimers = () => { - setInterval(() => { - for (let i = 0; i < sectorList.length; i++) { - spawnIncrementalGuardians(i); - } - }, 20 * 990); - - setInterval(() => { - for (let i = 0; i < sectorList.length; i++) { - spawnSectorGuardians(i); - } - }, 120 * 60 * 1000); - - setInterval(() => { - for (const sector of sectorList) { - const faction = sectorFactions[sector]; - if (faction === null) { - continue; - } - repairStationsInSectorForTeam(sector, faction); - } - }, 2 * 60 * 1000); + // setInterval(() => { + // for (let i = 0; i < sectorList.length; i++) { + // spawnIncrementalGuardians(i); + // } + // }, 20 * 990); + + // setInterval(() => { + // for (let i = 0; i < sectorList.length; i++) { + // spawnSectorGuardians(i); + // } + // }, 120 * 60 * 1000); + + // setInterval(() => { + // for (const sector of sectorList) { + // const faction = sectorFactions[sector]; + // if (faction === null) { + // continue; + // } + // repairStationsInSectorForTeam(sector, faction); + // } + // }, 2 * 60 * 1000); setInterval(() => { for (const [sector, state] of sectors) { @@ -388,7 +393,8 @@ const setupTimers = () => { const ws = idToWebsocket.get(transition.player.id); const sectorInfo = { sector: newSector, - resources: newSector < mapSize * mapSize ? sectorAsteroidResources[newSector].map((value) => value.resource) : [], + // resources: newSector < mapSize * mapSize ? sectorAsteroidResources[newSector].map((value) => value.resource) : [], + resources: [], }; if (ws) { const client = clients.get(ws)!; diff --git a/server/state.ts b/server/state.ts index a2e4bca..323c70d 100644 --- a/server/state.ts +++ b/server/state.ts @@ -8,14 +8,13 @@ import { mapSize, sectorBounds, TutorialStage, - copyPlayer, removeCargoFractions, SectorKind, } from "../src/game"; import { WebSocket } from "ws"; -import { armDefs, defs, Faction, initDefs, UnitKind } from "../src/defs"; +import { defs, Faction, initDefs, UnitKind } from "../src/defs"; import { CardinalDirection } from "../src/geometry"; -import { market, initMarket } from "./market"; +import { initMarket } from "./market"; import { NPC } from "../src/npc"; import { Checkpoint, User } from "./dataModels"; @@ -31,104 +30,110 @@ const uid = () => { return ret; }; -// This data will ultimately be stored in the database -// TODO Make the sector list have names like 1-1, 1-2, 2-1, 2-2, etc. const sectorList = new Array(mapSize * mapSize).fill(0).map((_, i) => i); -const sectorAsteroidResources = sectorList.map((_) => [{ resource: "Prifecite", density: 1 }]); -const sectorAsteroidCounts = sectorList.map((_) => 15); - -sectorAsteroidResources[0] = [ +// const sectorAsteroidResources = sectorList.map((_) => [{ resource: "Prifecite", density: 1 }]); +// const sectorAsteroidCounts = sectorList.map((_) => 15); + +// sectorAsteroidResources[0] = [ +// { resource: "Russanite", density: 1 }, +// { resource: "Hemacite", density: 1 }, +// ]; +// sectorAsteroidResources[1] = [ +// { resource: "Aziracite", density: 1 }, +// { resource: "Hemacite", density: 1 }, +// ]; +// sectorAsteroidResources[2] = [ +// { resource: "Aziracite", density: 1 }, +// { resource: "Hemacite", density: 1 }, +// ]; +// sectorAsteroidResources[3] = [ +// { resource: "Russanite", density: 1 }, +// { resource: "Hemacite", density: 1 }, +// ]; + +// sectorAsteroidResources[5] = [ +// { resource: "Prifecite", density: 1 }, +// { resource: "Russanite", density: 1 }, +// ]; +// sectorAsteroidResources[6] = [ +// { resource: "Prifecite", density: 1 }, +// { resource: "Russanite", density: 1 }, +// ]; + +// sectorAsteroidCounts[6] = 35; +// sectorAsteroidCounts[1] = 22; +// sectorAsteroidCounts[2] = 22; + +// sectorAsteroidCounts[12] = 30; +// sectorAsteroidCounts[15] = 30; + +const allResources = [ + { resource: "Prifecite", density: 1 }, { resource: "Russanite", density: 1 }, - { resource: "Hemacite", density: 1 }, -]; -sectorAsteroidResources[1] = [ { resource: "Aziracite", density: 1 }, { resource: "Hemacite", density: 1 }, ]; -sectorAsteroidResources[2] = [ - { resource: "Aziracite", density: 1 }, - { resource: "Hemacite", density: 1 }, -]; -sectorAsteroidResources[3] = [ - { resource: "Russanite", density: 1 }, - { resource: "Hemacite", density: 1 }, -]; - -sectorAsteroidResources[5] = [ - { resource: "Prifecite", density: 1 }, - { resource: "Russanite", density: 1 }, -]; -sectorAsteroidResources[6] = [ - { resource: "Prifecite", density: 1 }, - { resource: "Russanite", density: 1 }, -]; -sectorAsteroidCounts[6] = 35; -sectorAsteroidCounts[1] = 22; -sectorAsteroidCounts[2] = 22; +// const sectorFactions: (Faction | null)[] = sectorList.map((_) => null); +// sectorFactions[0] = Faction.Scourge; +// sectorFactions[3] = Faction.Scourge; -sectorAsteroidCounts[12] = 30; -sectorAsteroidCounts[15] = 30; +// sectorFactions[1] = Faction.Rogue; +// sectorFactions[2] = Faction.Rogue; +// sectorFactions[5] = Faction.Rogue; +// sectorFactions[6] = Faction.Rogue; -const sectorFactions: (Faction | null)[] = sectorList.map((_) => null); -sectorFactions[0] = Faction.Scourge; -sectorFactions[3] = Faction.Scourge; +// sectorFactions[12] = Faction.Alliance; +// sectorFactions[13] = Faction.Alliance; +// sectorFactions[8] = Faction.Alliance; +// sectorFactions[4] = Faction.Alliance; +// sectorFactions[9] = Faction.Alliance; -sectorFactions[1] = Faction.Rogue; -sectorFactions[2] = Faction.Rogue; -sectorFactions[5] = Faction.Rogue; -sectorFactions[6] = Faction.Rogue; - -sectorFactions[12] = Faction.Alliance; -sectorFactions[13] = Faction.Alliance; -sectorFactions[8] = Faction.Alliance; -sectorFactions[4] = Faction.Alliance; -sectorFactions[9] = Faction.Alliance; - -sectorFactions[14] = Faction.Confederation; -sectorFactions[15] = Faction.Confederation; -sectorFactions[11] = Faction.Confederation; -sectorFactions[7] = Faction.Confederation; -sectorFactions[10] = Faction.Confederation; +// sectorFactions[14] = Faction.Confederation; +// sectorFactions[15] = Faction.Confederation; +// sectorFactions[11] = Faction.Confederation; +// sectorFactions[7] = Faction.Confederation; +// sectorFactions[10] = Faction.Confederation; const friendlySectors = (faction: Faction) => { const ret: number[] = []; - for (let i = 0; i < sectorFactions.length; i++) { - if (sectorFactions[i] === faction) { - ret.push(i); - } - } return ret; + // for (let i = 0; i < sectorFactions.length; i++) { + // if (sectorFactions[i] === faction) { + // ret.push(i); + // } + // } + // return ret; }; -const sectorGuardianCount = sectorList.map((_) => 0); +// const sectorGuardianCount = sectorList.map((_) => 0); -sectorGuardianCount[0] = 6; -sectorGuardianCount[3] = 6; +// sectorGuardianCount[0] = 6; +// sectorGuardianCount[3] = 6; -sectorGuardianCount[1] = 6; -sectorGuardianCount[2] = 6; -sectorGuardianCount[5] = 15; -sectorGuardianCount[6] = 15; +// sectorGuardianCount[1] = 6; +// sectorGuardianCount[2] = 6; +// sectorGuardianCount[5] = 15; +// sectorGuardianCount[6] = 15; -sectorGuardianCount[12] = 24; -sectorGuardianCount[13] = 15; -sectorGuardianCount[8] = 15; -sectorGuardianCount[4] = 6; -sectorGuardianCount[9] = 6; +// sectorGuardianCount[12] = 24; +// sectorGuardianCount[13] = 15; +// sectorGuardianCount[8] = 15; +// sectorGuardianCount[4] = 6; +// sectorGuardianCount[9] = 6; -sectorGuardianCount[14] = 15; -sectorGuardianCount[15] = 24; -sectorGuardianCount[11] = 15; -sectorGuardianCount[7] = 6; -sectorGuardianCount[10] = 6; +// sectorGuardianCount[14] = 15; +// sectorGuardianCount[15] = 24; +// sectorGuardianCount[11] = 15; +// sectorGuardianCount[7] = 6; +// sectorGuardianCount[10] = 6; -const sectorHasStarbase = sectorList.map((_) => false); -sectorHasStarbase[5] = true; +// const sectorHasStarbase = sectorList.map((_) => false); +// sectorHasStarbase[5] = true; -sectorHasStarbase[12] = true; +// sectorHasStarbase[12] = true; -sectorHasStarbase[15] = true; +// sectorHasStarbase[15] = true; type ClientData = { id: number; @@ -151,6 +156,7 @@ type ClientData = { 12 13 14 15 */ +// UNSAFE const sectorInDirection = (sector: number, direction: CardinalDirection) => { if (sector >= mapSize * mapSize) { return null; @@ -223,7 +229,8 @@ const initInitialAsteroids = () => { const def = defs[a.defIndex]; return def.kind === UnitKind.Station; }); - const asteroids = randomAsteroids(sectorAsteroidCounts[i], sectorBounds, sectorList[i], uid, sectorAsteroidResources[i], stationsInSector); + // const asteroids = randomAsteroids(sectorAsteroidCounts[i], sectorBounds, sectorList[i], uid, sectorAsteroidResources[i], stationsInSector); + const asteroids = randomAsteroids(10, sectorBounds, Math.floor(Math.random() * 100), uid, allResources, stationsInSector); for (const asteroid of asteroids) { sector.asteroids.set(asteroid.id, asteroid); } @@ -233,6 +240,9 @@ const initInitialAsteroids = () => { const tutorialRespawnPoints = new Map(); const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisited: Set, isLogoff = false) => { + console.log("Checkpoint saving is disabled due to server rework!"); + return; + if (player.health <= 0) { console.log("Warning: attempt to save checkpoint of dead player"); return; @@ -260,11 +270,12 @@ const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisit export { sectorList, - sectorAsteroidResources, - sectorAsteroidCounts, - sectorFactions, - sectorGuardianCount, - sectorHasStarbase, + // sectorAsteroidResources, + // sectorAsteroidCounts, + allResources, + // sectorFactions, + // sectorGuardianCount, + // sectorHasStarbase, clients, idToWebsocket, sectors, diff --git a/server/websockets.ts b/server/websockets.ts index ecaea81..7082c15 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -45,7 +45,7 @@ import { saveCheckpoint, secondaries, secondariesToActivate, - sectorAsteroidResources, + // sectorAsteroidResources, sectorList, sectors, targets, @@ -123,7 +123,8 @@ export function startWebSocketServer() { for (const sector of sectorsVisited) { sectorInfos.push({ sector, - resources: sectorAsteroidResources[sector].map((value) => value.resource), + // resources: sectorAsteroidResources[sector].map((value) => value.resource), + resources: [], }); } diff --git a/src/dialogs/map.ts b/src/dialogs/map.ts index 97a0205..7314a20 100644 --- a/src/dialogs/map.ts +++ b/src/dialogs/map.ts @@ -58,7 +58,8 @@ const sectorNumberToXY = (sector: number) => { const setCurrentSectorText = () => { const currentSectorText = document.getElementById("currentSectorText"); if (currentSectorText) { - currentSectorText.innerText = `Current Sector: ${sectorNumberToXY(currentSector)}`; + // currentSectorText.innerText = `Current Sector: ${sectorNumberToXY(currentSector)}`; + currentSectorText.innerText = `Current Sector: ${currentSector}`; } }; @@ -66,14 +67,10 @@ const mapDialog = () => { return `

    `; @@ -86,11 +83,23 @@ const setupMapDialog = () => { document.getElementById("seeActiveMissions")?.addEventListener("click", () => { push(selectedMissionsDialog(), setupSelectedMissionsDialog, "selectedMissions"); }); - for (let i = 0; i < mapSize * mapSize; i++) { - document.getElementById(`sector-${i}`)?.addEventListener("click", () => { - populateSectorInfo(i); - }); - } + // for (let i = 0; i < mapSize * mapSize; i++) { + // document.getElementById(`sector-${i}`)?.addEventListener("click", () => { + // populateSectorInfo(i); + // }); + // } + document.getElementById("warpButton")?.addEventListener("click", () => { + try { + const toSector = parseInt((document.getElementById("sectorInput") as HTMLInputElement)?.value); + abortWrapper(() => { + sendWarp(toSector); + pop(); + }); + } catch (e) { + console.log(e); + } + }); + setCurrentSectorText(); }; diff --git a/src/dialogs/social.ts b/src/dialogs/social.ts index 9159951..ffa3846 100644 --- a/src/dialogs/social.ts +++ b/src/dialogs/social.ts @@ -30,7 +30,8 @@ const sectorLocationTemplate = (value: SectorOfPlayerResult) => { if (value.sectorKind === SectorKind.Mission) { return "In Mission"; } - return sectorNumberToXY(value.sectorNumber); + // return sectorNumberToXY(value.sectorNumber); + return value.sectorNumber.toString(); }; const warpIfNotDocked = (id: number) => { diff --git a/src/game.ts b/src/game.ts index 07063b4..67d6470 100644 --- a/src/game.ts +++ b/src/game.ts @@ -1516,6 +1516,7 @@ const randomNearbyPointInSector = (point: Position, distance: number) => { return ret; }; +// UNSAFE const isValidSectorInDirection = (sector: number, direction: CardinalDirection) => { if (direction === CardinalDirection.Up) { return sector >= mapSize; From 1cc59732e29d9718fab9869dfb7e570689b5a166 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 13 Jan 2023 18:07:22 -0600 Subject: [PATCH 13/39] Can switch servers at will (no warping even required) --- server/peers.ts | 37 +++++++++-- server/server.ts | 61 +++++++++-------- server/state.ts | 153 +++++++++++++++++++++++++++++++++++++++---- server/testPeer.sh | 4 +- server/websockets.ts | 37 +++++++---- src/index.ts | 35 ++++++---- src/net.ts | 61 ++++++++++------- 7 files changed, 293 insertions(+), 95 deletions(-) diff --git a/server/peers.ts b/server/peers.ts index f21735f..29c65e8 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,15 +1,17 @@ import mongoose from "mongoose"; import { Reply, Request } from "zeromq"; import { initFromDatabase } from "./misc"; -import { initInitialAsteroids } from "./state"; +import { deserializeClientData, initInitialAsteroids, sendServerWarp, SerializedClient } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; +import { Player } from "../src/game"; interface IPeer { name: string; ip: string; port: number; + wsPort: number; updated: Date; sectors: number[]; } @@ -27,6 +29,10 @@ const peerSchema = new mongoose.Schema({ type: Number, required: true, }, + wsPort: { + type: Number, + required: true, + }, // have the schema drop old dates updated: { type: Date, @@ -46,12 +52,13 @@ const name = process.argv[2]; const port = process.argv[3]; // For development const ip = "127.0.0.1"; +const wsPort = parseInt(process.argv[4]); // Will just keep using this port for now -const sectors = JSON.parse(process.argv[4]) as number[]; +const sectors = JSON.parse(process.argv[5]) as number[]; // Sets ourselves in the database const setPeer = async () => { - await Peer.findOneAndUpdate({ name }, { ip, port, updated: Date.now(), sectors }, { upsert: true }); + await Peer.findOneAndUpdate({ name }, { ip, port, updated: Date.now(), sectors, wsPort }, { upsert: true }); }; // Global stuff @@ -74,7 +81,7 @@ const setupSelf = async () => { // Roughly keeps things synced const syncPeers = async () => { const peers = await Peer.find({ name: { $ne: name } }); - peers.forEach((peer) => { + peers.forEach(async (peer) => { if (peerMap.has(peer.name)) { return; } @@ -82,6 +89,11 @@ const syncPeers = async () => { const peerSocket = new Request(); peerSocket.connect(`tcp://${peer.ip}:${peer.port}`); peerMap.set(peer.name, peerSocket); + // dispatch messages from the socket + for await (const [key] of peerSocket) { + console.log(`Received data from ${peer.name}`, key.toString()); + sendServerWarp(key.toString(), `ws://${peer.ip}:${peer.wsPort}`); + } }); for (const name of peerMap.keys()) { if (!peers.find((peer) => peer.name === name)) { @@ -92,6 +104,8 @@ const syncPeers = async () => { } }; +const waitingData = new Map(); + mongoose .connect("mongodb://127.0.0.1:27017/SpaceGame", {}) .catch((err) => { @@ -103,7 +117,18 @@ mongoose await initFromDatabase(); initInitialAsteroids(); setupTimers(); - startWebSocketServer(); + startWebSocketServer(wsPort); + for await (const [msg] of socket) { + const data = JSON.parse(msg.toString()) as SerializedClient; + // console.log("Received data from client", data?.key, name); + // console.log(data); + waitingData.set(data.key, data); + await socket.send(data.key); + } }); -Routes(); +if (wsPort === 8080) { + Routes(); +} + +export { peerMap, waitingData }; diff --git a/server/server.ts b/server/server.ts index 8ef21f7..e135020 100644 --- a/server/server.ts +++ b/server/server.ts @@ -34,6 +34,8 @@ import { sectorList, sectors, sectorTriggers, + serializeAllClientData, + serverChangePlayer, targets, uid, warpList, @@ -402,22 +404,25 @@ const setupTimers = () => { if (newSector < mapSize * mapSize) { client.sectorsVisited.add(newSector); } - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to: newSector, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [sectorInfo], - }, - }) - ); + // console.log(serializeAllClientData(ws, transition.player)); + serverChangePlayer(ws, transition.player); + // ws.send( + // JSON.stringify({ + // type: "warp", + // payload: { + // to: newSector, + // asteroids: Array.from(state.asteroids.values()), + // collectables: Array.from(state.collectables.values()), + // mines: Array.from(state.mines.values()), + // sectorInfos: [sectorInfo], + // }, + // }) + // ); + } transition.player.position = transition.coords; // transition.player.heading = headingFromCardinalDirection(transition.direction); - state.players.set(transition.player.id, transition.player); + // state.players.set(transition.player.id, transition.player); } } @@ -430,18 +435,22 @@ const setupTimers = () => { if (ws) { const client = clients.get(ws)!; client.currentSector = to; - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [], - }, - }) - ); + + // console.log(serializeAllClientData(ws, player)); + serverChangePlayer(ws, player); + + // ws.send( + // JSON.stringify({ + // type: "warp", + // payload: { + // to, + // asteroids: Array.from(state.asteroids.values()), + // collectables: Array.from(state.collectables.values()), + // mines: Array.from(state.mines.values()), + // sectorInfos: [], + // }, + // }) + // ); // const enemies = enemyCount(player.team, to); // const allies = allyCount(player.team, to); // const count = enemies - allies; @@ -455,7 +464,7 @@ const setupTimers = () => { // player.position.y = Math.random() * 6000 - 3000; // player.heading = (3 * Math.PI) / 2; // player.speed = 0; - state.players.set(player.id, player); + // state.players.set(player.id, player); } } }, 1000 / ticksPerSecond); diff --git a/server/state.ts b/server/state.ts index 323c70d..a507fe0 100644 --- a/server/state.ts +++ b/server/state.ts @@ -17,6 +17,7 @@ import { CardinalDirection } from "../src/geometry"; import { initMarket } from "./market"; import { NPC } from "../src/npc"; import { Checkpoint, User } from "./dataModels"; +import { peerMap, waitingData } from "./peers"; // Initialize the definitions (Do this before anything else to avoid problems) initDefs(); @@ -148,6 +149,26 @@ type ClientData = { tutorialNpc?: NPC; }; +type SerializableClientData = Omit & { + sectorsVisited: number[]; +}; + +const serializableClientData = (client: ClientData): SerializableClientData => { + if (client.inTutorial) { + throw new Error("Cannot serialize client data while in tutorial"); + } + client = { ...client }; + client.tutorialNpc = undefined; + (client as any).sectorsVisited = Array.from(client.sectorsVisited); + return client as unknown as SerializableClientData; +}; + +const repairClientData = (client: SerializableClientData): ClientData => { + const ret = { ...client } as unknown as ClientData; + ret.sectorsVisited = new Set(client.sectorsVisited); + return ret; +}; + /* x -> y 0 1 2 3 @@ -181,6 +202,116 @@ const sectorInDirection = (sector: number, direction: CardinalDirection) => { const clients: Map = new Map(); const idToWebsocket = new Map(); +// Targeting is handled by the clients, but the server needs to know +// Same pattern with secondaries +// BTW I do not like this design +const targets: Map = new Map(); +const secondaries: Map = new Map(); +const secondariesToActivate: Map = new Map(); +const knownRecipes: Map> = new Map(); + +const serializeAllClientData = (ws: WebSocket, player: Player, key: string) => { + const client = clients.get(ws); + if (!client) return null; + const target = targets.get(client.id); + const secondary = secondaries.get(client.id); + const toActivate = secondariesToActivate.get(client.id); + const recipesKnown = knownRecipes.get(client.id) || new Set(); + + return JSON.stringify({ + clientData: serializableClientData(client), + target, + secondary, + toActivate, + recipesKnown: Array.from(recipesKnown), + player, + key, + }); +}; + +type SerializedClient = { + clientData: SerializableClientData; + target: [TargetKind, number] | undefined; + secondary: number | undefined; + toActivate: number[] | undefined; + recipesKnown: string[]; + player: Player; + key: string; +}; + +const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { + // console.log("Deserializing client data for key", data); + console.log(waitingData); + const client = repairClientData(data.clientData); + const sector = sectors.get(client.currentSector); + if (!sector) { + console.warn("Missing sector", client.currentSector); + return; + } + clients.set(ws, client); + idToWebsocket.set(client.id, ws); + if (data.target) { + targets.set(client.id, data.target); + } else { + console.warn("Missing client target"); + } + if (data.secondary) { + secondaries.set(client.id, data.secondary); + } else { + console.warn("Missing client secondary"); + } + if (data.toActivate) { + secondariesToActivate.set(client.id, data.toActivate); + } else { + console.warn("Missing client toActivate"); + } + if (data.recipesKnown) { + knownRecipes.set(client.id, new Set(data.recipesKnown)); + } else { + console.warn("Missing client recipesKnown"); + } + sector.players.set(client.id, data.player); + // BROKEN + const sectorInfo = { + sector: client.currentSector, + resources: [], + }; + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to: client.currentSector, + asteroids: Array.from(sector.asteroids.values()), + collectables: Array.from(sector.collectables.values()), + mines: Array.from(sector.mines.values()), + sectorInfos: [sectorInfo], + }, + }) + ); +}; + +const serverWarps = new Map(); + +const serverChangePlayer = (ws: WebSocket, player: Player) => { + const key = uid().toString(); + const serialized = serializeAllClientData(ws, player, key); + serverWarps.set(key, ws); + console.log(peerMap); + peerMap.get("sheppard")!.send(serialized); +}; + +const sendServerWarp = (key: string, to: string) => { + if (!serverWarps.has(key)) { + console.warn("No server warp for key", key); + return; + } + try { + const ws = serverWarps.get(key)!; + ws.send(JSON.stringify({ type: "changeServers", payload: { to, key } })); + } catch (e) { + console.error("Error sending server warp", e); + } +}; const getPlayerFromId = (id: number) => { const ws = idToWebsocket.get(id); @@ -209,19 +340,6 @@ sectorList.forEach((sector) => { }); }); -// Server state - -// Targeting is handled by the clients, but the server needs to know -// Same pattern with secondaries -// BTW I do not like this design -const targets: Map = new Map(); -const secondaries: Map = new Map(); -const secondariesToActivate: Map = new Map(); - -const knownRecipes: Map> = new Map(); - -// const asteroidBounds = { x: -3000, y: -3000, width: 6000, height: 6000 }; - const initInitialAsteroids = () => { for (let i = 0; i < sectorList.length; i++) { const sector = sectors.get(sectorList[i])!; @@ -269,6 +387,12 @@ const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisit }; export { + // ClientData, + // SerializableClientData, + // serializableClientData, + // repairClientData, + SerializedClient, + deserializeClientData, sectorList, // sectorAsteroidResources, // sectorAsteroidCounts, @@ -292,4 +416,7 @@ export { friendlySectors, initInitialAsteroids, getPlayerFromId, + serializeAllClientData, + sendServerWarp, + serverChangePlayer, }; diff --git a/server/testPeer.sh b/server/testPeer.sh index 170d871..58244ea 100755 --- a/server/testPeer.sh +++ b/server/testPeer.sh @@ -1,4 +1,4 @@ #! /bin/bash -node peers.js carter 5555 "[1,2,3]" & -node peers.js shepard 5556 "[4,5,6]" & +node peers.js carter 5555 8080 "[0,1,2]" & +node peers.js sheppard 5556 8082 "[3,4,5]" & diff --git a/server/websockets.ts b/server/websockets.ts index 7082c15..17af9dd 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -37,9 +37,11 @@ import { assignPlayerIdToConnection, logWebSocketConnection } from "./logging"; import { market } from "./market"; import { setupPlayer } from "./misc"; import { selectMission, startPlayerInMission } from "./missions"; +import { waitingData } from "./peers"; import { hash, sniCallback, wsPort } from "./settings"; import { clients, + deserializeClientData, idToWebsocket, knownRecipes, saveCheckpoint, @@ -55,7 +57,7 @@ import { import { allyCount, enemyCount, flashServerMessage } from "./stateHelpers"; import { advanceTutorialStage, sendTutorialStage } from "./tutorial"; -export function startWebSocketServer() { +export function startWebSocketServer(wsPort: number) { // Websocket server stuff let server: ReturnType | https.Server; if (useSsl) { @@ -73,6 +75,7 @@ export function startWebSocketServer() { const ipAddr = req.socket.remoteAddress; + // BROKEN logWebSocketConnection(ipAddr); ws.on("message", (msg) => { @@ -81,6 +84,9 @@ export function startWebSocketServer() { if (data.type === "heartbeat") { (ws as any).isAlive = true; return; + } else if (data.type === "serverHopKey") { + const key = data.payload.key; + deserializeClientData(ws, waitingData.get(key)!); } else if (data.type === "login") { const name = data.payload.name; const password = data.payload.password; @@ -105,6 +111,8 @@ export function startWebSocketServer() { } idToWebsocket.set(user.id, ws); + + // BROKEN assignPlayerIdToConnection(ipAddr, user.id); const sectorInfos: SectorInfo[] = []; @@ -261,6 +269,8 @@ export function startWebSocketServer() { } setupPlayer(user.id, ws, name, faction); idToWebsocket.set(user.id, ws); + + // BROKEN assignPlayerIdToConnection(ipAddr, user.id); }); }); @@ -700,18 +710,19 @@ export function startWebSocketServer() { saveCheckpoint(removedClient.id, removedClient.currentSector, player, removedClient.sectorsVisited, true); } } else { - User.findOneAndUpdate( - { id: removedClient.id }, - { - $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, - $push: { logoffTimes: Date.now() }, - }, - (err) => { - if (err) { - console.log("Error saving user: " + err); - } - } - ); + // UNSAFE + // User.findOneAndUpdate( + // { id: removedClient.id }, + // { + // $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, + // $push: { logoffTimes: Date.now() }, + // }, + // (err) => { + // if (err) { + // console.log("Error saving user: " + err); + // } + // } + // ); } } else if (!player) { console.log("Warning: player not found on disconnect"); diff --git a/src/index.ts b/src/index.ts index 27cc9fc..1fedb12 100755 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -import { connect, bindAction, sendDock, sendTarget, sendSecondary, sendAngle, sendRepair, sendTutorialStageComplete } from "./net"; +import { connect, bindAction, sendDock, sendTarget, sendSecondary, sendAngle, sendRepair, sendTutorialStageComplete, changeServers, sendServerHopKey } from "./net"; import { Player, Ballistic, @@ -355,12 +355,7 @@ const initMine = (mine: Mine) => { mine.pitch = Math.random(); }; -const run = () => { - addLoadingText("Initializing client game state"); - initBlankState(); - - addLoadingText("Binding network handlers"); - +const bindAllActions = () => { bindAction( "init", (data: { @@ -433,8 +428,6 @@ const run = () => { console.error("Error from server: " + data.message); }); - bindDockingUpdaters(); - bindAction("state", (data: any) => { state.players.clear(); state.projectiles.clear(); @@ -533,7 +526,6 @@ const run = () => { initMine(mine); state.mines.set(mine.id, mine); } - // initStars(data.to); clearEffects(); setCurrentSector(data.to); setCurrentSectorText(); @@ -582,9 +574,6 @@ const run = () => { } }); - bindManufacturingUpdaters(); - bindInventoryUpdaters(); - bindAction("inventory", (entries: CargoEntry[]) => { clearInventory(); for (const entry of entries) { @@ -627,9 +616,29 @@ const run = () => { bindAction("setMissionTarget", (targetId) => { setMissionTargetId(targetId); }); + + bindAction("changeServers", (data: { to: string, key: string }) => { + changeServers(data.to, () => { + bindAllActions(); + sendServerHopKey(data.key); + }); + }); +}; + +const run = () => { + addLoadingText("Initializing client game state"); + initBlankState(); + + addLoadingText("Binding network handlers"); + bindAllActions(); + bindDockingUpdaters(); + bindPostUpdater("arms", rasterizeWeaponText); + bindManufacturingUpdaters(); + bindInventoryUpdaters(); + addLoadingText("Launching..."); displayLoginDialog(); diff --git a/src/net.ts b/src/net.ts index 5713ae9..0b80487 100644 --- a/src/net.ts +++ b/src/net.ts @@ -5,40 +5,22 @@ import { addLoadingText } from "./globals"; let serverSocket: WebSocket; -const login = (name: string, password: string) => { - serverSocket.send( - JSON.stringify({ - type: "login", - payload: { name, password }, - }) - ); -}; - -const register = (name: string, password: string, faction: Faction) => { - serverSocket.send( - JSON.stringify({ - type: "register", - payload: { name, password, faction }, - }) - ); -}; - const bindings: Map void> = new Map(); let heartbeatInterval: number; // Client connection code -const connect = (callback: (socket: WebSocket) => void) => { +const connect = (callback: () => void, to: string = wsUrl) => { addLoadingText("Connecting to server..."); - const socket = new WebSocket(wsUrl); + const socket = new WebSocket(to); socket.onopen = () => { - console.log(`Connected to the server at ${wsUrl}`); + console.log(`Connected to the server at ${to}`); serverSocket = socket; addLoadingText("Connected to server!"); heartbeatInterval = window.setInterval(() => { socket.send(JSON.stringify({ type: "heartbeat" })); }, 25 * 1000); - callback(socket); + callback(); }; socket.onclose = () => { console.log("Disconnected from the server"); @@ -55,6 +37,12 @@ const connect = (callback: (socket: WebSocket) => void) => { }; }; +const changeServers = (url: string, callback: () => void) => { + serverSocket.close(); + clearInterval(heartbeatInterval); + connect(callback, url); +}; + const bindAction = (action: string, callback: (data: any) => void) => { bindings.set(action, callback); }; @@ -63,6 +51,24 @@ const unbindAllActions = () => { serverSocket.onmessage = null; }; +const login = (name: string, password: string) => { + serverSocket.send( + JSON.stringify({ + type: "login", + payload: { name, password }, + }) + ); +}; + +const register = (name: string, password: string, faction: Faction) => { + serverSocket.send( + JSON.stringify({ + type: "register", + payload: { name, password, faction }, + }) + ); +}; + const sendInput = (input: Input) => { const inputToSend = { up: input.up, @@ -324,8 +330,19 @@ const sendFriendWarp = (id: number) => { ); }; +const sendServerHopKey = (key: string) => { + serverSocket.send( + JSON.stringify({ + type: "serverHopKey", + payload: { key }, + }) + ); +}; + export { connect, + changeServers, + sendServerHopKey, bindAction, unbindAllActions, login, From bd45c91abd06961ed984bb7f6b64dd5adbc515d9 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 13 Jan 2023 19:33:28 -0600 Subject: [PATCH 14/39] Server sector assignments --- server/peers.ts | 16 ++++++- server/server.ts | 105 +++++++++++++++++++++++++++---------------- server/state.ts | 44 ++++++++++-------- server/testPeer.sh | 1 + server/websockets.ts | 83 +++++++++++++++++++--------------- 5 files changed, 153 insertions(+), 96 deletions(-) diff --git a/server/peers.ts b/server/peers.ts index 29c65e8..c565562 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,7 +1,7 @@ import mongoose from "mongoose"; import { Reply, Request } from "zeromq"; import { initFromDatabase } from "./misc"; -import { deserializeClientData, initInitialAsteroids, sendServerWarp, SerializedClient } from "./state"; +import { initInitialAsteroids, initSectors, sendServerWarp, SerializedClient } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; @@ -78,6 +78,8 @@ const setupSelf = async () => { }, 20 * 1000); }; +const serversForSectors = new Map(); + // Roughly keeps things synced const syncPeers = async () => { const peers = await Peer.find({ name: { $ne: name } }); @@ -89,6 +91,9 @@ const syncPeers = async () => { const peerSocket = new Request(); peerSocket.connect(`tcp://${peer.ip}:${peer.port}`); peerMap.set(peer.name, peerSocket); + peer.sectors.forEach((sector) => { + serversForSectors.set(sector, peer.name); + }); // dispatch messages from the socket for await (const [key] of peerSocket) { console.log(`Received data from ${peer.name}`, key.toString()); @@ -99,6 +104,12 @@ const syncPeers = async () => { if (!peers.find((peer) => peer.name === name)) { peerMap.get(name)?.close(); peerMap.delete(name); + // remove from the map + serversForSectors.forEach((server, sector) => { + if (server === name) { + serversForSectors.delete(sector); + } + }); console.log(`Disconnected from peer ${name}`); } } @@ -115,6 +126,7 @@ mongoose console.log("Connected to database"); await setupSelf(); await initFromDatabase(); + initSectors(sectors); initInitialAsteroids(); setupTimers(); startWebSocketServer(wsPort); @@ -131,4 +143,4 @@ if (wsPort === 8080) { Routes(); } -export { peerMap, waitingData }; +export { peerMap, waitingData, serversForSectors }; diff --git a/server/server.ts b/server/server.ts index e135020..9a0cb13 100644 --- a/server/server.ts +++ b/server/server.ts @@ -42,6 +42,7 @@ import { } from "./state"; import { CardinalDirection, mirrorAngleHorizontally, mirrorAngleVertically } from "../src/geometry"; import { allyCount, flashServerMessage } from "./stateHelpers"; +import { serversForSectors } from "./peers"; const informDead = (player: Player) => { if (player.npc) { @@ -124,7 +125,7 @@ const spawnIncrementalGuardians = (sector: number) => { } // const faction = sectorFactions[sector]; - const faction = (Math.floor(Math.random() * 4) as Faction); + const faction = Math.floor(Math.random() * 4) as Faction; if (faction === null) { return; } @@ -405,7 +406,29 @@ const setupTimers = () => { client.sectorsVisited.add(newSector); } // console.log(serializeAllClientData(ws, transition.player)); - serverChangePlayer(ws, transition.player); + console.log("warping player", transition.player.id, "to sector", newSector); + if (sectorList.includes(newSector)) { + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to: newSector, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [], + }, + }) + ); + state.players.set(transition.player.id, transition.player); + } else { + const serverName = serversForSectors.get(newSector); + if (serverName) { + serverChangePlayer(ws, transition.player, serverName); + } else { + flashServerMessage(transition.player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); + } + } // ws.send( // JSON.stringify({ // type: "warp", @@ -418,7 +441,6 @@ const setupTimers = () => { // }, // }) // ); - } transition.player.position = transition.coords; // transition.player.heading = headingFromCardinalDirection(transition.direction); @@ -429,43 +451,50 @@ const setupTimers = () => { // Handle all warps while (warpList.length > 0) { const { player, to } = warpList.shift()!; - const state = sectors.get(to); - if (state) { - const ws = idToWebsocket.get(player.id); - if (ws) { - const client = clients.get(ws)!; - client.currentSector = to; - - // console.log(serializeAllClientData(ws, player)); - serverChangePlayer(ws, player); - - // ws.send( - // JSON.stringify({ - // type: "warp", - // payload: { - // to, - // asteroids: Array.from(state.asteroids.values()), - // collectables: Array.from(state.collectables.values()), - // mines: Array.from(state.mines.values()), - // sectorInfos: [], - // }, - // }) - // ); - // const enemies = enemyCount(player.team, to); - // const allies = allyCount(player.team, to); - // const count = enemies - allies; - // if (count > 3 && isEnemySector(player.team, to)) { - // spawnAllyForces(player.team, to, count); - // flashServerMessage(player.id, `${getFactionString(player.team)} forces have arrived to assist!`); - // } + const ws = idToWebsocket.get(player.id); + if (ws) { + const client = clients.get(ws)!; + client.currentSector = to; + + // console.log(serializeAllClientData(ws, player)); + const state = sectors.get(to); + if (state) { + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [], + }, + }) + ); + state.players.set(player.id, player); + } else { + const serverName = serversForSectors.get(to); + if (serverName) { + serverChangePlayer(ws, player, serverName); + } else { + flashServerMessage(player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); + } } - // Lets just keep the coords and momentum of the player on warping - // player.position.x = Math.random() * 6000 - 3000; - // player.position.y = Math.random() * 6000 - 3000; - // player.heading = (3 * Math.PI) / 2; - // player.speed = 0; - // state.players.set(player.id, player); + + // const enemies = enemyCount(player.team, to); + // const allies = allyCount(player.team, to); + // const count = enemies - allies; + // if (count > 3 && isEnemySector(player.team, to)) { + // spawnAllyForces(player.team, to, count); + // flashServerMessage(player.id, `${getFactionString(player.team)} forces have arrived to assist!`); + // } } + // Lets just keep the coords and momentum of the player on warping + // player.position.x = Math.random() * 6000 - 3000; + // player.position.y = Math.random() * 6000 - 3000; + // player.heading = (3 * Math.PI) / 2; + // player.speed = 0; + // state.players.set(player.id, player); } }, 1000 / ticksPerSecond); }; diff --git a/server/state.ts b/server/state.ts index a507fe0..953c5f1 100644 --- a/server/state.ts +++ b/server/state.ts @@ -31,7 +31,7 @@ const uid = () => { return ret; }; -const sectorList = new Array(mapSize * mapSize).fill(0).map((_, i) => i); +const sectorList: number[] = []; // const sectorAsteroidResources = sectorList.map((_) => [{ resource: "Prifecite", density: 1 }]); // const sectorAsteroidCounts = sectorList.map((_) => 15); @@ -240,8 +240,6 @@ type SerializedClient = { }; const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { - // console.log("Deserializing client data for key", data); - console.log(waitingData); const client = repairClientData(data.clientData); const sector = sectors.get(client.currentSector); if (!sector) { @@ -292,12 +290,16 @@ const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { const serverWarps = new Map(); -const serverChangePlayer = (ws: WebSocket, player: Player) => { +const serverChangePlayer = (ws: WebSocket, player: Player, serverName: string) => { const key = uid().toString(); const serialized = serializeAllClientData(ws, player, key); serverWarps.set(key, ws); - console.log(peerMap); - peerMap.get("sheppard")!.send(serialized); + const server = peerMap.get(serverName); + if (!server) { + console.warn("No server for", serverName); + return; + } + server.send(serialized); }; const sendServerWarp = (key: string, to: string) => { @@ -325,20 +327,23 @@ const sectors: Map = new Map(); const sectorTriggers: Map void> = new Map(); const warpList: { player: Player; to: number }[] = []; -sectorList.forEach((sector) => { - sectors.set(sector, { - players: new Map(), - projectiles: new Map(), - asteroids: new Map(), - missiles: new Map(), - collectables: new Map(), - asteroidsDirty: false, - mines: new Map(), - projectileId: 1, - delayedActions: [], - sectorKind: SectorKind.Overworld, +const initSectors = (serverSectors: number[]) => { + sectorList.push(...serverSectors); + sectorList.forEach((sector) => { + sectors.set(sector, { + players: new Map(), + projectiles: new Map(), + asteroids: new Map(), + missiles: new Map(), + collectables: new Map(), + asteroidsDirty: false, + mines: new Map(), + projectileId: 1, + delayedActions: [], + sectorKind: SectorKind.Overworld, + }); }); -}); +}; const initInitialAsteroids = () => { for (let i = 0; i < sectorList.length; i++) { @@ -419,4 +424,5 @@ export { serializeAllClientData, sendServerWarp, serverChangePlayer, + initSectors, }; diff --git a/server/testPeer.sh b/server/testPeer.sh index 58244ea..6641c6b 100755 --- a/server/testPeer.sh +++ b/server/testPeer.sh @@ -2,3 +2,4 @@ node peers.js carter 5555 8080 "[0,1,2]" & node peers.js sheppard 5556 8082 "[3,4,5]" & +node peers.js oneill 5557 8083 "[6,7,8]" & diff --git a/server/websockets.ts b/server/websockets.ts index 17af9dd..ecf74ae 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -602,11 +602,11 @@ export function startWebSocketServer(wsPort: number) { } else if (data.type === "warp") { const client = clients.get(ws); if (client) { - if (client.currentSector !== data.payload.warpTo && sectorList.includes(data.payload.warpTo)) { - if (!client.sectorsVisited.has(data.payload.warpTo)) { - flashServerMessage(client.id, "You must visit a sector before you can warp to it"); - return; - } + if (client.currentSector !== data.payload.warpTo) { + // if (!client.sectorsVisited.has(data.payload.warpTo)) { + // flashServerMessage(client.id, "You must visit a sector before you can warp to it"); + // return; + // } const state = sectors.get(client.currentSector)!; const player = state.players.get(client.id); if (player) { @@ -693,40 +693,49 @@ export function startWebSocketServer(wsPort: number) { }); ws.on("close", () => { - const removedClient = clients.get(ws); - if (removedClient) { - const player = sectors.get(removedClient.currentSector)?.players.get(removedClient.id); - const state = sectors.get(removedClient.currentSector)!; - state.players.delete(removedClient.id); - targets.delete(removedClient.id); - secondaries.delete(removedClient.id); - secondariesToActivate.delete(removedClient.id); - clients.delete(ws); - idToWebsocket.delete(removedClient.id); - knownRecipes.delete(removedClient.id); - if (player) { - if (player.docked) { - if (!removedClient.inTutorial) { - saveCheckpoint(removedClient.id, removedClient.currentSector, player, removedClient.sectorsVisited, true); - } - } else { - // UNSAFE - // User.findOneAndUpdate( - // { id: removedClient.id }, - // { - // $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, - // $push: { logoffTimes: Date.now() }, - // }, - // (err) => { - // if (err) { - // console.log("Error saving user: " + err); - // } - // } - // ); + try { + const removedClient = clients.get(ws); + if (removedClient) { + clients.delete(ws); + const player = sectors.get(removedClient.currentSector)?.players.get(removedClient.id); + const state = sectors.get(removedClient.currentSector); + targets.delete(removedClient.id); + secondaries.delete(removedClient.id); + secondariesToActivate.delete(removedClient.id); + idToWebsocket.delete(removedClient.id); + knownRecipes.delete(removedClient.id); + state?.players.delete(removedClient.id); + if (player) { + if (player.docked) { + if (!removedClient.inTutorial) { + saveCheckpoint(removedClient.id, removedClient.currentSector, player, removedClient.sectorsVisited, true); + } + } else { + // UNSAFE + // User.findOneAndUpdate( + // { id: removedClient.id }, + // { + // $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, + // $push: { logoffTimes: Date.now() }, + // }, + // (err) => { + // if (err) { + // console.log("Error saving user: " + err); + // } + // } + // ); + } + } else if (!player) { + console.log("Warning: player not found on disconnect"); } - } else if (!player) { - console.log("Warning: player not found on disconnect"); } + } catch (e) { + console.log("Error in close handler: " + e); + appendFile("errorlog", `Error: ${e}\n${inspect(clients, { depth: null })}\n${Array.from(sectors.values())}\n`, (err) => { + if (err) { + console.log("Error writing to log: " + err); + } + }); } }); }); From 0fd322f5570aa20e824901844baab604771dd39c Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 13 Jan 2023 20:02:46 -0600 Subject: [PATCH 15/39] Load the stations from the database --- server/peers.ts | 2 +- server/state.ts | 3 --- server/testPeer.sh | 6 +++--- server/websockets.ts | 27 +++++++++++++-------------- 4 files changed, 17 insertions(+), 21 deletions(-) diff --git a/server/peers.ts b/server/peers.ts index c565562..8734b1a 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -125,8 +125,8 @@ mongoose .then(async () => { console.log("Connected to database"); await setupSelf(); - await initFromDatabase(); initSectors(sectors); + await initFromDatabase(); initInitialAsteroids(); setupTimers(); startWebSocketServer(wsPort); diff --git a/server/state.ts b/server/state.ts index 953c5f1..55924d6 100644 --- a/server/state.ts +++ b/server/state.ts @@ -363,9 +363,6 @@ const initInitialAsteroids = () => { const tutorialRespawnPoints = new Map(); const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisited: Set, isLogoff = false) => { - console.log("Checkpoint saving is disabled due to server rework!"); - return; - if (player.health <= 0) { console.log("Warning: attempt to save checkpoint of dead player"); return; diff --git a/server/testPeer.sh b/server/testPeer.sh index 6641c6b..709cf32 100755 --- a/server/testPeer.sh +++ b/server/testPeer.sh @@ -1,5 +1,5 @@ #! /bin/bash -node peers.js carter 5555 8080 "[0,1,2]" & -node peers.js sheppard 5556 8082 "[3,4,5]" & -node peers.js oneill 5557 8083 "[6,7,8]" & +node peers.js carter 5555 8080 "[0,1,2,3,4]" & +node peers.js sheppard 5556 8082 "[5,6,7,8,9]" & +node peers.js oneill 5557 8083 "[10,11,12,13,14,15]" & diff --git a/server/websockets.ts b/server/websockets.ts index ecf74ae..7105496 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -711,22 +711,21 @@ export function startWebSocketServer(wsPort: number) { saveCheckpoint(removedClient.id, removedClient.currentSector, player, removedClient.sectorsVisited, true); } } else { - // UNSAFE - // User.findOneAndUpdate( - // { id: removedClient.id }, - // { - // $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, - // $push: { logoffTimes: Date.now() }, - // }, - // (err) => { - // if (err) { - // console.log("Error saving user: " + err); - // } - // } - // ); + User.findOneAndUpdate( + { id: removedClient.id }, + { + $set: { sectorsVisited: Array.from(removedClient.sectorsVisited), currentSector: removedClient.currentSector }, + $push: { logoffTimes: Date.now() }, + }, + (err) => { + if (err) { + console.log("Error saving user: " + err); + } + } + ); } } else if (!player) { - console.log("Warning: player not found on disconnect"); + console.log("Warning: player not found on disconnect (this is normal for a server switch)"); } } } catch (e) { From 8567e4d1bed4a6069faa1128a5bb519343f2515a Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sat, 14 Jan 2023 14:54:57 -0600 Subject: [PATCH 16/39] Respawning and map topology --- .vscode/settings.json | 1 + server/dataModels.ts | 9 ++ server/peers.ts | 17 +++- server/routes.ts | 3 +- server/server.ts | 196 +++++++++++++++++++------------------- server/state.ts | 93 ++++++++---------- server/stateHelpers.ts | 1 + server/testPeer.sh | 6 +- server/websockets.ts | 35 +------ src/geometry.ts | 13 ++- src/mapLayout.ts | 10 ++ src/sectorGraph.ts | 139 +++++++++++++++++++++++++++ tests/sectorGraphTests.ts | 28 ++++++ tests/tsconfig.json | 12 +++ 14 files changed, 372 insertions(+), 191 deletions(-) create mode 100644 src/mapLayout.ts create mode 100644 src/sectorGraph.ts create mode 100644 tests/sectorGraphTests.ts create mode 100644 tests/tsconfig.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 6361a6f..88ab60a 100755 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,6 +15,7 @@ "Prifecite", "Prifetium", "rasterization", + "Respawned", "Russanite", "Russium", "unselectable", diff --git a/server/dataModels.ts b/server/dataModels.ts index 6f54f0f..1c2e259 100644 --- a/server/dataModels.ts +++ b/server/dataModels.ts @@ -37,6 +37,7 @@ interface IUser { loginTimes: Date[]; logoffTimes: Date[]; friends: number[]; + currentSector: number; } const userSchema = new Schema({ @@ -106,6 +107,14 @@ const userSchema = new Schema({ type: [Number], default: [], }, + currentSector: { + type: Number, + default: -1, + validate: { + validator: (x) => Number.isInteger(x) && x >= -1, + message: "{VALUE} is not an integer value", + }, + }, }); const User = mongoose.model("User", userSchema); diff --git a/server/peers.ts b/server/peers.ts index 8734b1a..c4b04cc 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -6,6 +6,8 @@ import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; import { Player } from "../src/game"; +import { mapGraph, mapHeight, mapWidth, peerCount } from "../src/mapLayout"; +import assert from "assert"; interface IPeer { name: string; @@ -53,8 +55,19 @@ const port = process.argv[3]; // For development const ip = "127.0.0.1"; const wsPort = parseInt(process.argv[4]); -// Will just keep using this port for now -const sectors = JSON.parse(process.argv[5]) as number[]; + +const peerNumber = parseInt(process.argv[5]); +assert(peerNumber >= 0 && peerNumber < peerCount); + +const sectorCount = mapWidth * mapHeight; +assert(sectorCount % peerCount === 0); +const sectorsPerPeer = Math.floor(sectorCount / peerCount); +const sectors: number[] = []; +for (let i = 0; i < sectorsPerPeer; i++) { + sectors.push(peerNumber * sectorsPerPeer + i); +} + +console.log(`Starting peer ${name} with sectors ${sectors} on port ${port} and wsPort ${wsPort}`); // Sets ourselves in the database const setPeer = async () => { diff --git a/server/routes.ts b/server/routes.ts index 8b1cd66..9a23056 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -147,13 +147,14 @@ app.get("/clearAllFriendsAndRequests", async (req, res) => { }); // UNSAFE -app.get("/currentSectorOfPlayer", (req, res) => { +app.get("/currentSectorOfPlayer", async (req, res) => { const idParam = req.query.id; if (!idParam || typeof idParam !== "string") { res.send(JSON.stringify({ error: "Invalid id" })); return; } const id = parseInt(idParam); + const user = await User.findOne({ id }); res.send(JSON.stringify({ value: findPlayer(id) })); }); diff --git a/server/server.ts b/server/server.ts index 9a0cb13..7021e9e 100644 --- a/server/server.ts +++ b/server/server.ts @@ -14,6 +14,7 @@ import { findSectorTransitions, sectorBounds, mapSize, + isNearOperableEnemyStation, } from "../src/game"; import { defs, Faction, UnitKind } from "../src/defs"; @@ -30,19 +31,22 @@ import { // sectorAsteroidResources, // sectorFactions, // sectorGuardianCount, - sectorInDirection, sectorList, sectors, sectorTriggers, serializeAllClientData, + ServerChangeKind, serverChangePlayer, targets, uid, warpList, } from "./state"; import { CardinalDirection, mirrorAngleHorizontally, mirrorAngleVertically } from "../src/geometry"; -import { allyCount, flashServerMessage } from "./stateHelpers"; +import { allyCount, enemyCount, flashServerMessage } from "./stateHelpers"; import { serversForSectors } from "./peers"; +import { WebSocket } from "ws"; +import { User } from "./dataModels"; +import { mapGraph } from "../src/mapLayout"; const informDead = (player: Player) => { if (player.npc) { @@ -262,6 +266,82 @@ const respawnEmptyAsteroids = (state: GlobalState, sector: number) => { } }; +const warpNonNPCToSector = (ws: WebSocket, player: Player, sector: number) => { + User.findOneAndUpdate({ id: player.id }, { currentSector: sector }, (err, doc) => { + if (err) { + console.log("Warning: unable to update user sector", err); + return; + } + }); + const state = sectors.get(sector); + if (state) { + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to: sector, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [], + }, + }) + ); + state.players.set(player.id, player); + } else { + const serverName = serversForSectors.get(sector); + if (serverName) { + serverChangePlayer(ws, player, serverName); + } else { + flashServerMessage(player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); + } + } +}; + +const insertRespawnedPlayer = (ws: WebSocket, player: Player, sector: number) => { + const state = sectors.get(sector); + if (!state) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Sector not found on server for respawn" } })); + console.log("Warning: Sector not found on server for respawn"); + return; + } + // So I don't have to edit the checkpoints in the database right now + player.isPC = true; + if (isNearOperableEnemyStation(player, state.players.values()) || enemyCount(player.team, sector) - allyCount(player.team, sector) > 2) { + player.position.x = -5000; + player.position.y = 5000; + } + player.v = { x: 0, y: 0 }; + player.iv = { x: 0, y: 0 }; + player.ir = 0; + state.players.set(player.id, player); + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to: sector, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [], + }, + }) + ); +}; + +const respawnPlayer = (ws: WebSocket, player: Player, sector: number) => { + if (sectors.has(sector)) { + insertRespawnedPlayer(ws, player, sector); + } else { + const newServerName = serversForSectors.get(sector); + if (newServerName) { + serverChangePlayer(ws, player, newServerName, ServerChangeKind.Respawn); + } else { + flashServerMessage(player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); + } + } +}; + const setupTimers = () => { // setInterval(() => { // for (let i = 0; i < sectorList.length; i++) { @@ -369,7 +449,8 @@ const setupTimers = () => { // Handle all sector transitions for (const transition of sectorTransitions) { - const newSector = sectorInDirection(transition.from, transition.direction) ?? transition.from; + const newSector = mapGraph.get(transition.from)?.out[transition.direction]?.to?.sector ?? transition.from; + // console.log("Transitioning player", transition.player.id, "from sector", transition.from, "to sector", newSector); if (newSector === transition.from) { if (transition.direction === CardinalDirection.Up) { @@ -391,60 +472,18 @@ const setupTimers = () => { } } - const state = sectors.get(newSector); - if (state) { - const ws = idToWebsocket.get(transition.player.id); - const sectorInfo = { - sector: newSector, - // resources: newSector < mapSize * mapSize ? sectorAsteroidResources[newSector].map((value) => value.resource) : [], - resources: [], - }; - if (ws) { - const client = clients.get(ws)!; - client.currentSector = newSector; - if (newSector < mapSize * mapSize) { - client.sectorsVisited.add(newSector); - } - // console.log(serializeAllClientData(ws, transition.player)); - console.log("warping player", transition.player.id, "to sector", newSector); - if (sectorList.includes(newSector)) { - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to: newSector, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [], - }, - }) - ); - state.players.set(transition.player.id, transition.player); - } else { - const serverName = serversForSectors.get(newSector); - if (serverName) { - serverChangePlayer(ws, transition.player, serverName); - } else { - flashServerMessage(transition.player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); - } - } - // ws.send( - // JSON.stringify({ - // type: "warp", - // payload: { - // to: newSector, - // asteroids: Array.from(state.asteroids.values()), - // collectables: Array.from(state.collectables.values()), - // mines: Array.from(state.mines.values()), - // sectorInfos: [sectorInfo], - // }, - // }) - // ); + const ws = idToWebsocket.get(transition.player.id); + transition.player.position = transition.coords; + if (ws) { + const client = clients.get(ws)!; + client.currentSector = newSector; + if (newSector < mapSize * mapSize) { + client.sectorsVisited.add(newSector); } - transition.player.position = transition.coords; - // transition.player.heading = headingFromCardinalDirection(transition.direction); - // state.players.set(transition.player.id, transition.player); + warpNonNPCToSector(ws, transition.player, newSector); + } else { + // Is npc + console.log("Sector transitions for NPCs is disabled currently"); } } @@ -455,48 +494,13 @@ const setupTimers = () => { if (ws) { const client = clients.get(ws)!; client.currentSector = to; - - // console.log(serializeAllClientData(ws, player)); - const state = sectors.get(to); - if (state) { - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [], - }, - }) - ); - state.players.set(player.id, player); - } else { - const serverName = serversForSectors.get(to); - if (serverName) { - serverChangePlayer(ws, player, serverName); - } else { - flashServerMessage(player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); - } - } - - // const enemies = enemyCount(player.team, to); - // const allies = allyCount(player.team, to); - // const count = enemies - allies; - // if (count > 3 && isEnemySector(player.team, to)) { - // spawnAllyForces(player.team, to, count); - // flashServerMessage(player.id, `${getFactionString(player.team)} forces have arrived to assist!`); - // } + warpNonNPCToSector(ws, player, to); + } else { + // Is npc + console.log("NPC warping is disabled currently"); } - // Lets just keep the coords and momentum of the player on warping - // player.position.x = Math.random() * 6000 - 3000; - // player.position.y = Math.random() * 6000 - 3000; - // player.heading = (3 * Math.PI) / 2; - // player.speed = 0; - // state.players.set(player.id, player); } }, 1000 / ticksPerSecond); }; -export { setupTimers }; +export { setupTimers, respawnPlayer, insertRespawnedPlayer }; diff --git a/server/state.ts b/server/state.ts index 55924d6..3780d97 100644 --- a/server/state.ts +++ b/server/state.ts @@ -18,6 +18,7 @@ import { initMarket } from "./market"; import { NPC } from "../src/npc"; import { Checkpoint, User } from "./dataModels"; import { peerMap, waitingData } from "./peers"; +import { insertRespawnedPlayer } from "./server"; // Initialize the definitions (Do this before anything else to avoid problems) initDefs(); @@ -169,37 +170,6 @@ const repairClientData = (client: SerializableClientData): ClientData => { return ret; }; -/* - x -> - y 0 1 2 3 - | 4 5 6 7 - v 8 9 10 11 - 12 13 14 15 -*/ - -// UNSAFE -const sectorInDirection = (sector: number, direction: CardinalDirection) => { - if (sector >= mapSize * mapSize) { - return null; - } - const x = sector % mapSize; - const y = Math.floor(sector / mapSize); - if (direction === CardinalDirection.Up) { - if (y === 0) return null; - return sector - mapSize; - } else if (direction === CardinalDirection.Down) { - if (y === mapSize - 1) return null; - return sector + mapSize; - } else if (direction === CardinalDirection.Left) { - if (x === 0) return null; - return sector - 1; - } else if (direction === CardinalDirection.Right) { - if (x === mapSize - 1) return null; - return sector + 1; - } - return null; -}; - const clients: Map = new Map(); const idToWebsocket = new Map(); // Targeting is handled by the clients, but the server needs to know @@ -210,7 +180,12 @@ const secondaries: Map = new Map(); const secondariesToActivate: Map = new Map(); const knownRecipes: Map> = new Map(); -const serializeAllClientData = (ws: WebSocket, player: Player, key: string) => { +enum ServerChangeKind { + Warp, + Respawn, +} + +const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind: ServerChangeKind) => { const client = clients.get(ws); if (!client) return null; const target = targets.get(client.id); @@ -226,6 +201,7 @@ const serializeAllClientData = (ws: WebSocket, player: Player, key: string) => { recipesKnown: Array.from(recipesKnown), player, key, + kind, }); }; @@ -237,6 +213,7 @@ type SerializedClient = { recipesKnown: string[]; player: Player; key: string; + kind: ServerChangeKind; }; const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { @@ -268,31 +245,41 @@ const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { } else { console.warn("Missing client recipesKnown"); } - sector.players.set(client.id, data.player); - // BROKEN - const sectorInfo = { - sector: client.currentSector, - resources: [], - }; - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to: client.currentSector, - asteroids: Array.from(sector.asteroids.values()), - collectables: Array.from(sector.collectables.values()), - mines: Array.from(sector.mines.values()), - sectorInfos: [sectorInfo], - }, - }) - ); + switch (data.kind) { + case ServerChangeKind.Warp: + sector.players.set(client.id, data.player); + // BROKEN + const sectorInfo = { + sector: client.currentSector, + resources: [], + }; + ws.send( + JSON.stringify({ + type: "warp", + payload: { + to: client.currentSector, + asteroids: Array.from(sector.asteroids.values()), + collectables: Array.from(sector.collectables.values()), + mines: Array.from(sector.mines.values()), + sectorInfos: [sectorInfo], + }, + }) + ); + break; + case ServerChangeKind.Respawn: + insertRespawnedPlayer(ws, data.player, client.currentSector); + break; + default: + throw new Error("Unknown server change kind"); + } }; const serverWarps = new Map(); -const serverChangePlayer = (ws: WebSocket, player: Player, serverName: string) => { +// Note: this does not remove the player from the GlobalState object for the current server +const serverChangePlayer = (ws: WebSocket, player: Player, serverName: string, kind = ServerChangeKind.Warp) => { const key = uid().toString(); - const serialized = serializeAllClientData(ws, player, key); + const serialized = serializeAllClientData(ws, player, key, kind); serverWarps.set(key, ws); const server = peerMap.get(serverName); if (!server) { @@ -389,6 +376,7 @@ const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisit }; export { + ServerChangeKind, // ClientData, // SerializableClientData, // serializableClientData, @@ -413,7 +401,6 @@ export { knownRecipes, tutorialRespawnPoints, uid, - sectorInDirection, saveCheckpoint, friendlySectors, initInitialAsteroids, diff --git a/server/stateHelpers.ts b/server/stateHelpers.ts index 0b1fa3e..c109861 100644 --- a/server/stateHelpers.ts +++ b/server/stateHelpers.ts @@ -84,6 +84,7 @@ const sendMissionComplete = (id: number, message: string) => { } }; +// BROKEN (sort of) const findPlayer = (id: number): SectorOfPlayerResult => { for (const [sectorNumber, state] of sectors) { if (state.players.has(id)) { diff --git a/server/testPeer.sh b/server/testPeer.sh index 709cf32..c3fb4ee 100755 --- a/server/testPeer.sh +++ b/server/testPeer.sh @@ -1,5 +1,5 @@ #! /bin/bash -node peers.js carter 5555 8080 "[0,1,2,3,4]" & -node peers.js sheppard 5556 8082 "[5,6,7,8,9]" & -node peers.js oneill 5557 8083 "[10,11,12,13,14,15]" & +node peers.js carter 5555 8080 0 & +node peers.js sheppard 5556 8082 1 & +node peers.js oneill 5557 8083 2 & diff --git a/server/websockets.ts b/server/websockets.ts index 7105496..8481404 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -38,6 +38,7 @@ import { market } from "./market"; import { setupPlayer } from "./misc"; import { selectMission, startPlayerInMission } from "./missions"; import { waitingData } from "./peers"; +import { respawnPlayer } from "./server"; import { hash, sniCallback, wsPort } from "./settings"; import { clients, @@ -394,39 +395,9 @@ export function startWebSocketServer(wsPort: number) { console.log("Error loading checkpoint: " + err); return; } - const state = sectors.get(checkpoint.sector); - if (!state) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Bad checkpoint sector" } })); - console.log("Warning: Checkpoint sector not found (programming error)"); - return; - } - const playerState = JSON.parse(checkpoint.data) as Player; - // So I don't have to edit the checkpoints in the database right now - playerState.isPC = true; - if ( - isNearOperableEnemyStation(playerState, state.players.values()) || - enemyCount(playerState.team, checkpoint.sector) - allyCount(playerState.team, checkpoint.sector) > 2 - ) { - playerState.position.x = -5000; - playerState.position.y = 5000; - } - playerState.v = { x: 0, y: 0 }; - playerState.iv = { x: 0, y: 0 }; - playerState.ir = 0; - state.players.set(client.id, playerState); - ws.send( - JSON.stringify({ - type: "warp", - payload: { - to: checkpoint.sector, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos: [], - }, - }) - ); client.currentSector = checkpoint.sector; + const playerState = JSON.parse(checkpoint.data) as Player; + respawnPlayer(ws, playerState, checkpoint.sector); }); } } else if (data.type === "target") { diff --git a/src/geometry.ts b/src/geometry.ts index da8e4e9..7a9f888 100644 --- a/src/geometry.ts +++ b/src/geometry.ts @@ -7,12 +7,16 @@ type Rectangle = { x: number; y: number; width: number; height: number }; type Line = { from: Position; to: Position }; enum CardinalDirection { - Up, - Right, - Down, - Left, + Up = 0, + Right = 1, + Down = 2, + Left = 3, } +const oppositeDirection = (direction: CardinalDirection) => { + return (direction + 2) % 4; +}; + const sumPositions = (...positions: Position[]) => { return positions.reduce( (sum, position) => { @@ -198,6 +202,7 @@ export { Rectangle, Line, CardinalDirection, + oppositeDirection, positiveMod, maxDecimals, infinityNorm, diff --git a/src/mapLayout.ts b/src/mapLayout.ts new file mode 100644 index 0000000..cb1ad29 --- /dev/null +++ b/src/mapLayout.ts @@ -0,0 +1,10 @@ +import { createTorus } from "./sectorGraph"; + +const width = 6; +const height = 3; + +const mapGraph = createTorus(width, height); + +const peerCount = 3; + +export { mapGraph, width as mapWidth, height as mapHeight, peerCount }; diff --git a/src/sectorGraph.ts b/src/sectorGraph.ts new file mode 100644 index 0000000..693b9fe --- /dev/null +++ b/src/sectorGraph.ts @@ -0,0 +1,139 @@ +import { CardinalDirection, oppositeDirection } from "./geometry"; + +type SectorGraphNode = { + out: [SectorGraphEdge, SectorGraphEdge, SectorGraphEdge, SectorGraphEdge]; + in: [SectorGraphEdge, SectorGraphEdge, SectorGraphEdge, SectorGraphEdge]; + sector: number; +}; + +type SectorGraphEdge = { + from: SectorGraphNode; + to: SectorGraphNode; + isReflection?: boolean; +}; + +type SectorGraph = Map; + +const createReflectionEdge = (node: SectorGraphNode, direction: CardinalDirection) => { + const reflectionEdge: SectorGraphEdge = { + from: node, + to: node, + isReflection: true, + }; + node.out[direction] = reflectionEdge; + node.in[oppositeDirection(direction)] = reflectionEdge; +}; + +const createEdge = (from: SectorGraphNode, to: SectorGraphNode, direction: CardinalDirection) => { + const edgeA: SectorGraphEdge = { + from, + to, + }; + from.out[direction] = edgeA; + to.in[oppositeDirection(direction)] = edgeA; + const edgeB: SectorGraphEdge = { + from: to, + to: from, + }; + to.out[oppositeDirection(direction)] = edgeB; + from.in[direction] = edgeB; +}; + +const getEdge = (graph: SectorGraph, from: number, direction: number) => { + const node = graph.get(from); + if (node === undefined) { + return undefined; + } + return node.out[direction]; +}; + +const removeContiguousSubgraph = (graph: SectorGraph, start: number) => { + const visited = new Set(); + const toVisit = [start]; + while (toVisit.length > 0) { + const sector = toVisit.pop(); + if (sector === undefined) { + continue; + } + if (visited.has(sector)) { + continue; + } + visited.add(sector); + const node = graph.get(sector); + if (node === undefined) { + continue; + } + for (const edge of node.out) { + if (edge === undefined) { + continue; + } + const { from, to } = edge; + if (from.sector === sector) { + toVisit.push(to.sector); + } + } + } +}; + +const createIsolatedSector = (graph: SectorGraph, sector: number) => { + const node: SectorGraphNode = { + out: [undefined, undefined, undefined, undefined], + in: [undefined, undefined, undefined, undefined], + sector, + }; + graph.set(sector, node); + for (let i = 0; i < 4; i++) { + createReflectionEdge(node, i); + } +}; + +const createTorus = (width: number, height: number) => { + const graph = new Map(); + for (let i = 0; i < width; i++) { + for (let j = 0; j < height; j++) { + const sector = j * width + i; + const node: SectorGraphNode = { + out: [undefined, undefined, undefined, undefined], + in: [undefined, undefined, undefined, undefined], + sector, + }; + graph.set(sector, node); + } + } + + for (let i = 0; i < width; i++) { + for (let j = 0; j < height; j++) { + const sector = j * width + i; + const node = graph.get(sector); + createEdge(node, graph.get((((j + height - 1) % height) * width) + i)!, CardinalDirection.Up); + createEdge(node, graph.get((((j + 1) % height) * width) + i)!, CardinalDirection.Down); + createEdge(node, graph.get(j * width + ((i + width - 1) % width))!, CardinalDirection.Left); + createEdge(node, graph.get(j * width + ((i + 1) % width))!, CardinalDirection.Right); + } + } + + return graph; +}; + +const mergeDisjointSubgraphs = (...graphs: SectorGraph[]) => { + const merged = new Map(); + for (const graph of graphs) { + for (const [sector, node] of graph) { + merged.set(sector, node); + } + } + return merged; +}; + +export { + SectorGraph, + SectorGraphNode, + SectorGraphEdge, + createReflectionEdge, + createEdge, + createIsolatedSector, + getEdge, + removeContiguousSubgraph, + createTorus, + mergeDisjointSubgraphs, +}; diff --git a/tests/sectorGraphTests.ts b/tests/sectorGraphTests.ts new file mode 100644 index 0000000..a3404ed --- /dev/null +++ b/tests/sectorGraphTests.ts @@ -0,0 +1,28 @@ +import { assert } from "console"; +import { inspect } from "util"; +import { CardinalDirection } from "../src/geometry"; +import { SectorGraph, createEdge, createReflectionEdge, createIsolatedSector, SectorGraphNode, createTorus } from "../src/sectorGraph"; + +console.log("sectorGraphTests.ts"); + +const isolatedGraph = new Map(); +createIsolatedSector(isolatedGraph, 0); + +assert(isolatedGraph.get(0)!.out[CardinalDirection.Up]?.to.sector === 0); +assert(isolatedGraph.get(0)!.out[CardinalDirection.Down]?.to.sector === 0); +assert(isolatedGraph.get(0)!.out[CardinalDirection.Left]?.to.sector === 0); +assert(isolatedGraph.get(0)!.out[CardinalDirection.Right]?.to.sector === 0); + +const torusGraph = createTorus(3, 2); + +assert(torusGraph.get(0)!.out[CardinalDirection.Up]?.to.sector === 3); +assert(torusGraph.get(0)!.out[CardinalDirection.Down]?.to.sector === 3); + +assert(torusGraph.get(3)!.out[CardinalDirection.Up]?.to.sector === 0); +assert(torusGraph.get(3)!.out[CardinalDirection.Down]?.to.sector === 0); + +assert(torusGraph.get(5)!.out[CardinalDirection.Left]?.to.sector === 4); +assert(torusGraph.get(5)!.out[CardinalDirection.Right]?.to.sector === 3); + +assert(torusGraph.get(3)!.out[CardinalDirection.Left]?.to.sector === 5); +assert(torusGraph.get(3)!.out[CardinalDirection.Right]?.to.sector === 4); diff --git a/tests/tsconfig.json b/tests/tsconfig.json new file mode 100644 index 0000000..32fa4e7 --- /dev/null +++ b/tests/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "lib": [ + "es2017" + ], + "downlevelIteration": true, + "esModuleInterop": true, + "typeRoots": [ + "../server/node_modules/@types" + ] + } +} \ No newline at end of file From 1492c4349e73b78ef82ea5f107a5328af19e3ed0 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sat, 14 Jan 2023 15:19:57 -0600 Subject: [PATCH 17/39] Can now switch server before client initialization --- server/server.ts | 48 +++++++++++++++++++++++++++++++-- server/state.ts | 6 ++++- server/websockets.ts | 64 +++++++++++++------------------------------- 3 files changed, 70 insertions(+), 48 deletions(-) diff --git a/server/server.ts b/server/server.ts index 7021e9e..114168f 100644 --- a/server/server.ts +++ b/server/server.ts @@ -19,7 +19,7 @@ import { import { defs, Faction, UnitKind } from "../src/defs"; import { addNpc, NPC } from "../src/npc"; -import { discoverRecipe } from "./inventory"; +import { discoverRecipe, sendInventory } from "./inventory"; import { allResources, clients, @@ -342,6 +342,50 @@ const respawnPlayer = (ws: WebSocket, player: Player, sector: number) => { } }; +const insertSpawnedPlayer = (ws: WebSocket, player: Player, sector: number) => { + const state = sectors.get(sector); + if (!state) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Sector missing from server for spawn" } })); + console.log("Warning: Sector missing from server for spawn"); + return; + } + if (isNearOperableEnemyStation(player, state.players.values()) || enemyCount(player.team, sector) > 2) { + player.position.x = -5000; + player.position.y = 5000; + } + state.players.set(player.id, player); + + ws.send( + JSON.stringify({ + type: "init", + payload: { + id: player.id, + sector: sector, + faction: player.team, + asteroids: Array.from(state.asteroids.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + sectorInfos: [], + recipes: Array.from(knownRecipes.get(player.id) || []), + }, + }) + ); + sendInventory(ws, player.id); +}; + +const spawnPlayer = (ws: WebSocket, player: Player, sector: number) => { + if (sectors.has(sector)) { + insertSpawnedPlayer(ws, player, sector); + } else { + const newServerName = serversForSectors.get(sector); + if (newServerName) { + serverChangePlayer(ws, player, newServerName, ServerChangeKind.Spawn); + } else { + flashServerMessage(player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); + } + } +}; + const setupTimers = () => { // setInterval(() => { // for (let i = 0; i < sectorList.length; i++) { @@ -503,4 +547,4 @@ const setupTimers = () => { }, 1000 / ticksPerSecond); }; -export { setupTimers, respawnPlayer, insertRespawnedPlayer }; +export { setupTimers, respawnPlayer, insertRespawnedPlayer, spawnPlayer, insertSpawnedPlayer }; diff --git a/server/state.ts b/server/state.ts index 3780d97..fa3b7a9 100644 --- a/server/state.ts +++ b/server/state.ts @@ -18,7 +18,7 @@ import { initMarket } from "./market"; import { NPC } from "../src/npc"; import { Checkpoint, User } from "./dataModels"; import { peerMap, waitingData } from "./peers"; -import { insertRespawnedPlayer } from "./server"; +import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; // Initialize the definitions (Do this before anything else to avoid problems) initDefs(); @@ -183,6 +183,7 @@ const knownRecipes: Map> = new Map(); enum ServerChangeKind { Warp, Respawn, + Spawn, } const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind: ServerChangeKind) => { @@ -269,6 +270,9 @@ const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { case ServerChangeKind.Respawn: insertRespawnedPlayer(ws, data.player, client.currentSector); break; + case ServerChangeKind.Spawn: + insertSpawnedPlayer(ws, data.player, client.currentSector); + break; default: throw new Error("Unknown server change kind"); } diff --git a/server/websockets.ts b/server/websockets.ts index 8481404..6a03966 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -38,7 +38,7 @@ import { market } from "./market"; import { setupPlayer } from "./misc"; import { selectMission, startPlayerInMission } from "./missions"; import { waitingData } from "./peers"; -import { respawnPlayer } from "./server"; +import { respawnPlayer, spawnPlayer } from "./server"; import { hash, sniCallback, wsPort } from "./settings"; import { clients, @@ -146,18 +146,23 @@ export function startWebSocketServer(wsPort: number) { if (!checkpoint) { setupPlayer(user.id, ws, name, user.faction); } else { - const state = sectors.get(checkpoint.sector); - if (!state) { - ws.send(JSON.stringify({ type: "error", payload: { message: "Bad checkpoint sector" } })); - console.log("Warning: Checkpoint sector not found"); - setupPlayer(user.id, ws, name, user.faction); - return; - } + clients.set(ws, { + id: user.id, + name, + input: { up: false, down: false, primary: false, secondary: false, right: false, left: false }, + angle: 0, + currentSector: checkpoint.sector, + lastMessage: "", + lastMessageTime: Date.now(), + sectorsVisited, + inTutorial: TutorialStage.Done, + }); + targets.set(user.id, [TargetKind.None, 0]); + secondaries.set(user.id, 0); + secondariesToActivate.set(user.id, []); + knownRecipes.set(user.id, new Set(user.recipesKnown)); + const playerState = JSON.parse(checkpoint.data) as Player; - if (isNearOperableEnemyStation(playerState, state.players.values()) || enemyCount(playerState.team, checkpoint.sector) > 2) { - playerState.position.x = -5000; - playerState.position.y = 5000; - } // All these "fixes" are for making old checkpoints work with new code // Update the player on load to match what is expected if (playerState.defIndex === undefined) { @@ -199,40 +204,9 @@ export function startWebSocketServer(wsPort: number) { playerState.arms = (playerState as any).armIndices; (playerState as any).armIndices = undefined; } - playerState.v = { x: 0, y: 0 }; - state.players.set(user.id, playerState); - clients.set(ws, { - id: user.id, - name, - input: { up: false, down: false, primary: false, secondary: false, right: false, left: false }, - angle: 0, - currentSector: checkpoint.sector, - lastMessage: "", - lastMessageTime: Date.now(), - sectorsVisited, - inTutorial: TutorialStage.Done, - }); - targets.set(user.id, [TargetKind.None, 0]); - secondaries.set(user.id, 0); - secondariesToActivate.set(user.id, []); - knownRecipes.set(user.id, new Set(user.recipesKnown)); - ws.send( - JSON.stringify({ - type: "init", - payload: { - id: user.id, - sector: checkpoint.sector, - faction: playerState.team, - asteroids: Array.from(state.asteroids.values()), - collectables: Array.from(state.collectables.values()), - mines: Array.from(state.mines.values()), - sectorInfos, - recipes: user.recipesKnown, - }, - }) - ); - sendInventory(ws, user.id); + + spawnPlayer(ws, playerState, checkpoint.sector); // log to file appendFile("log", `${new Date().toISOString()} ${name} logged in\n`, (err) => { if (err) { From 708b3d6676d8e61ef27f4bfd3582d4e8159bd0d4 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sat, 14 Jan 2023 18:14:07 -0600 Subject: [PATCH 18/39] Fix map, asteroids, sector info, and station repairing to work with the new system --- TODO.md | 10 +++++ server/misc.ts | 5 +-- server/peers.ts | 4 +- server/server.ts | 41 +++++++++++------- server/state.ts | 96 ++++++++++++++++++----------------------- server/tutorial.ts | 5 ++- server/websockets.ts | 9 +--- src/2dDrawing.ts | 1 - src/3dDrawing.ts | 7 +-- src/dialogs/map.ts | 56 +++++++++++++----------- src/dialogs/settings.ts | 2 +- src/game.ts | 18 +------- src/globals.ts | 5 ++- src/mapLayout.ts | 4 +- src/npc.ts | 8 ++-- src/tutorial.ts | 5 ++- styles.css | 10 ++--- 17 files changed, 142 insertions(+), 144 deletions(-) diff --git a/TODO.md b/TODO.md index 793c480..84fe38a 100644 --- a/TODO.md +++ b/TODO.md @@ -1,3 +1,12 @@ +### Broken by new multi server system + +- Current player information +- NPCs +- Guardians +- Deployment +- Alternative background +- Some admin routes + ### Server stuff - Anti chat spam (low priority) @@ -7,6 +16,7 @@ ### User Interface +- Map css grid is being janky - I may want friend location/online notifications (idk if I should have a client subscribe model or just have the server figure it out and send it to the client) ### Effects diff --git a/server/misc.ts b/server/misc.ts index 850c58d..fdd8d8c 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -1,6 +1,6 @@ import { clientUid, defMap, defs, emptyLoadout, Faction } from "../src/defs"; import { effectiveInfinity, Player, SectorInfo, SectorKind, TargetKind, TutorialStage } from "../src/game"; -import { clients, knownRecipes, secondaries, secondariesToActivate, sectors, targets, tutorialRespawnPoints } from "./state"; +import { clients, knownRecipes, secondaries, secondariesToActivate, sectorAsteroidResources, sectors, targets, tutorialRespawnPoints } from "./state"; import { WebSocket } from "ws"; import { sendInventory } from "./inventory"; import { sendTutorialStage } from "./tutorial"; @@ -95,8 +95,7 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) const sectorInfos: SectorInfo[] = []; sectorInfos.push({ sector: sectorToWarpTo, - // resources: sectorAsteroidResources[sectorToWarpTo].map((value) => value.resource), - resources: [], + resources: sectorAsteroidResources[sectorToWarpTo].map((value) => value.resource), }); ws.send( diff --git a/server/peers.ts b/server/peers.ts index c4b04cc..c094302 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,7 +1,7 @@ import mongoose from "mongoose"; import { Reply, Request } from "zeromq"; import { initFromDatabase } from "./misc"; -import { initInitialAsteroids, initSectors, sendServerWarp, SerializedClient } from "./state"; +import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, sendServerWarp, SerializedClient } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; @@ -140,6 +140,8 @@ mongoose await setupSelf(); initSectors(sectors); await initFromDatabase(); + await initSectorResourceData(); + await initStationTeams(); initInitialAsteroids(); setupTimers(); startWebSocketServer(wsPort); diff --git a/server/server.ts b/server/server.ts index 114168f..91342ff 100644 --- a/server/server.ts +++ b/server/server.ts @@ -13,7 +13,6 @@ import { SectorTransition, findSectorTransitions, sectorBounds, - mapSize, isNearOperableEnemyStation, } from "../src/game"; import { defs, Faction, UnitKind } from "../src/defs"; @@ -28,6 +27,7 @@ import { knownRecipes, secondaries, secondariesToActivate, + sectorAsteroidResources, // sectorAsteroidResources, // sectorFactions, // sectorGuardianCount, @@ -37,6 +37,7 @@ import { serializeAllClientData, ServerChangeKind, serverChangePlayer, + stationIdToDefaultTeam, targets, uid, warpList, @@ -46,7 +47,7 @@ import { allyCount, enemyCount, flashServerMessage } from "./stateHelpers"; import { serversForSectors } from "./peers"; import { WebSocket } from "ws"; import { User } from "./dataModels"; -import { mapGraph } from "../src/mapLayout"; +import { mapGraph, mapHeight, mapWidth } from "../src/mapLayout"; const informDead = (player: Player) => { if (player.npc) { @@ -218,13 +219,14 @@ const spawnSectorGuardians = (sector: number) => { } }; -const repairStationsInSectorForTeam = (sector: number, team: Faction) => { +const repairStationsInSector = (sector: number) => { const state = sectors.get(sector); if (!state) { return; } for (const player of state.players.values()) { - if (player.inoperable) { + if (player.inoperable && stationIdToDefaultTeam.has(player.id)) { + const team = stationIdToDefaultTeam.get(player.id)!; player.repairs![team] += 1; } } @@ -355,6 +357,19 @@ const insertSpawnedPlayer = (ws: WebSocket, player: Player, sector: number) => { } state.players.set(player.id, player); + const client = clients.get(ws); + if (!client) { + console.log("Warning: Client not found for spawn"); + return; + } + + const sectorInfos = Array.from(client.sectorsVisited).map((sector) => ({ + sector, + resources: sectorAsteroidResources[sector].map((r) => r.resource), + })); + + // console.log("Sector info for player is ", sectorInfos, client.sectorsVisited); + ws.send( JSON.stringify({ type: "init", @@ -365,7 +380,7 @@ const insertSpawnedPlayer = (ws: WebSocket, player: Player, sector: number) => { asteroids: Array.from(state.asteroids.values()), collectables: Array.from(state.collectables.values()), mines: Array.from(state.mines.values()), - sectorInfos: [], + sectorInfos, recipes: Array.from(knownRecipes.get(player.id) || []), }, }) @@ -399,15 +414,11 @@ const setupTimers = () => { // } // }, 120 * 60 * 1000); - // setInterval(() => { - // for (const sector of sectorList) { - // const faction = sectorFactions[sector]; - // if (faction === null) { - // continue; - // } - // repairStationsInSectorForTeam(sector, faction); - // } - // }, 2 * 60 * 1000); + setInterval(() => { + for (const sector of sectorList) { + repairStationsInSector(sector); + } + }, 20 * 1000); setInterval(() => { for (const [sector, state] of sectors) { @@ -521,7 +532,7 @@ const setupTimers = () => { if (ws) { const client = clients.get(ws)!; client.currentSector = newSector; - if (newSector < mapSize * mapSize) { + if (newSector < mapWidth * mapHeight) { client.sectorsVisited.add(newSector); } warpNonNPCToSector(ws, transition.player, newSector); diff --git a/server/state.ts b/server/state.ts index fa3b7a9..8adfc32 100644 --- a/server/state.ts +++ b/server/state.ts @@ -1,24 +1,16 @@ import { randomUUID } from "crypto"; -import { - GlobalState, - Input, - Player, - randomAsteroids, - TargetKind, - mapSize, - sectorBounds, - TutorialStage, - removeCargoFractions, - SectorKind, -} from "../src/game"; +import { GlobalState, Input, Player, randomAsteroids, TargetKind, sectorBounds, TutorialStage, removeCargoFractions, SectorKind } from "../src/game"; import { WebSocket } from "ws"; import { defs, Faction, initDefs, UnitKind } from "../src/defs"; import { CardinalDirection } from "../src/geometry"; import { initMarket } from "./market"; import { NPC } from "../src/npc"; -import { Checkpoint, User } from "./dataModels"; +import { Checkpoint, Station, User } from "./dataModels"; import { peerMap, waitingData } from "./peers"; import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; +import { ISector, Sector } from "./sector"; +import { HydratedDocument } from "mongoose"; +import { mapHeight, mapWidth, ResourceDensity } from "../src/mapLayout"; // Initialize the definitions (Do this before anything else to avoid problems) initDefs(); @@ -33,41 +25,8 @@ const uid = () => { }; const sectorList: number[] = []; -// const sectorAsteroidResources = sectorList.map((_) => [{ resource: "Prifecite", density: 1 }]); -// const sectorAsteroidCounts = sectorList.map((_) => 15); - -// sectorAsteroidResources[0] = [ -// { resource: "Russanite", density: 1 }, -// { resource: "Hemacite", density: 1 }, -// ]; -// sectorAsteroidResources[1] = [ -// { resource: "Aziracite", density: 1 }, -// { resource: "Hemacite", density: 1 }, -// ]; -// sectorAsteroidResources[2] = [ -// { resource: "Aziracite", density: 1 }, -// { resource: "Hemacite", density: 1 }, -// ]; -// sectorAsteroidResources[3] = [ -// { resource: "Russanite", density: 1 }, -// { resource: "Hemacite", density: 1 }, -// ]; - -// sectorAsteroidResources[5] = [ -// { resource: "Prifecite", density: 1 }, -// { resource: "Russanite", density: 1 }, -// ]; -// sectorAsteroidResources[6] = [ -// { resource: "Prifecite", density: 1 }, -// { resource: "Russanite", density: 1 }, -// ]; - -// sectorAsteroidCounts[6] = 35; -// sectorAsteroidCounts[1] = 22; -// sectorAsteroidCounts[2] = 22; - -// sectorAsteroidCounts[12] = 30; -// sectorAsteroidCounts[15] = 30; +const sectorAsteroidResources: ResourceDensity[][] = []; +const sectorAsteroidCounts: number[] = []; const allResources = [ { resource: "Prifecite", density: 1 }, @@ -249,10 +208,9 @@ const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { switch (data.kind) { case ServerChangeKind.Warp: sector.players.set(client.id, data.player); - // BROKEN const sectorInfo = { sector: client.currentSector, - resources: [], + resources: sectorAsteroidResources[client.currentSector].map((resDen) => resDen.resource), }; ws.send( JSON.stringify({ @@ -336,6 +294,17 @@ const initSectors = (serverSectors: number[]) => { }); }; +const initSectorResourceData = async () => { + for (let i = 0; i < mapWidth * mapHeight; i++) { + const sectorInfo = await Sector.findOne({ sector: i }); + if (!sectorInfo) { + throw new Error("Missing sector info"); + } + sectorAsteroidResources.push(sectorInfo.resources); + sectorAsteroidCounts.push(sectorInfo.count); + } +}; + const initInitialAsteroids = () => { for (let i = 0; i < sectorList.length; i++) { const sector = sectors.get(sectorList[i])!; @@ -343,14 +312,30 @@ const initInitialAsteroids = () => { const def = defs[a.defIndex]; return def.kind === UnitKind.Station; }); - // const asteroids = randomAsteroids(sectorAsteroidCounts[i], sectorBounds, sectorList[i], uid, sectorAsteroidResources[i], stationsInSector); - const asteroids = randomAsteroids(10, sectorBounds, Math.floor(Math.random() * 100), uid, allResources, stationsInSector); + + const asteroids = randomAsteroids( + sectorAsteroidCounts[sectorList[i]], + sectorBounds, + sectorList[i], + uid, + sectorAsteroidResources[sectorList[i]], + stationsInSector + ); for (const asteroid of asteroids) { sector.asteroids.set(asteroid.id, asteroid); } } }; +const stationIdToDefaultTeam = new Map(); + +const initStationTeams = async () => { + const stations = await Station.find({}); + for (const station of stations) { + stationIdToDefaultTeam.set(station.id, station.team); + } +}; + const tutorialRespawnPoints = new Map(); const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisited: Set, isLogoff = false) => { @@ -388,8 +373,8 @@ export { SerializedClient, deserializeClientData, sectorList, - // sectorAsteroidResources, - // sectorAsteroidCounts, + sectorAsteroidResources, + sectorAsteroidCounts, allResources, // sectorFactions, // sectorGuardianCount, @@ -413,4 +398,7 @@ export { sendServerWarp, serverChangePlayer, initSectors, + initSectorResourceData, + initStationTeams, + stationIdToDefaultTeam, }; diff --git a/server/tutorial.ts b/server/tutorial.ts index e39da57..1528c90 100644 --- a/server/tutorial.ts +++ b/server/tutorial.ts @@ -1,9 +1,10 @@ -import { copyPlayer, effectiveInfinity, equip, mapSize, Player, randomAsteroids, sectorBounds, TutorialStage } from "../src/game"; +import { copyPlayer, effectiveInfinity, equip, Player, randomAsteroids, sectorBounds, TutorialStage } from "../src/game"; import { WebSocket } from "ws"; import { clients, saveCheckpoint, sectors, tutorialRespawnPoints, uid } from "./state"; import { defMap, Faction } from "../src/defs"; import { addTutorialRoamingVenture, addTutorialStrafer, NPC } from "../src/npc"; import { discoverRecipe, updateClientRecipes } from "./inventory"; +import { mapHeight, mapWidth } from "../src/mapLayout"; const spawnTutorialStation = (ws: WebSocket) => { const client = clients.get(ws); @@ -177,7 +178,7 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = case TutorialStage.Map: { const client = clients.get(ws); - if (client && client.currentSector < mapSize * mapSize) { + if (client && client.currentSector < mapWidth * mapHeight) { const state = sectors.get(client.currentSector); if (state) { const player = state.players.get(client.id); diff --git a/server/websockets.ts b/server/websockets.ts index 6a03966..20b9602 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -116,7 +116,6 @@ export function startWebSocketServer(wsPort: number) { // BROKEN assignPlayerIdToConnection(ipAddr, user.id); - const sectorInfos: SectorInfo[] = []; if (!user.sectorsVisited) { user.sectorsVisited = [user.currentSector]; } @@ -129,13 +128,7 @@ export function startWebSocketServer(wsPort: number) { } const sectorsVisited: Set = new Set(user.sectorsVisited); - for (const sector of sectorsVisited) { - sectorInfos.push({ - sector, - // resources: sectorAsteroidResources[sector].map((value) => value.resource), - resources: [], - }); - } + sectorsVisited.add(user.currentSector); Checkpoint.findOne({ id: user.id }, (err, checkpoint) => { if (err) { diff --git a/src/2dDrawing.ts b/src/2dDrawing.ts index 4564e80..bff5a87 100644 --- a/src/2dDrawing.ts +++ b/src/2dDrawing.ts @@ -852,7 +852,6 @@ const weaponTexts: WeaponTextData[] = []; let weaponTextInitialized = false; const rasterizeWeaponText = () => { - console.log("rasterizing weapon text"); if (!lastSelf) { return; } diff --git a/src/3dDrawing.ts b/src/3dDrawing.ts index b83382d..ea6affb 100644 --- a/src/3dDrawing.ts +++ b/src/3dDrawing.ts @@ -3,7 +3,7 @@ import { addLoadingText, currentSector, getUseAlternativeBackgroundsPref, isFire import { glMatrix, mat2, mat4, vec3, vec4 } from "gl-matrix"; import { loadObj, Model, modelMap, models } from "./modelLoader"; import { asteroidDefs, collectableDefs, defs, mineDefs, missileDefs } from "./defs"; -import { Asteroid, Ballistic, ChatMessage, CloakedState, Collectable, mapSize, Mine, Missile, Player, sectorBounds } from "./game"; +import { Asteroid, Ballistic, ChatMessage, CloakedState, Collectable, Mine, Missile, Player, sectorBounds } from "./game"; import { infinityNorm, l2NormSquared, Position, Rectangle } from "./geometry"; import { appendBottomBars, @@ -42,6 +42,7 @@ import { createParticleBuffers, drawParticles, initParticleTextures } from "./pa import { drawProjectile } from "./3dProjectileDrawing"; import { projectileLightColorUnnormed } from "./defs/projectiles"; import { Debouncer, EagerDebouncer } from "./dialogs/helpers"; +import { mapHeight, mapWidth } from "./mapLayout"; let canvas: HTMLCanvasElement; let overlayCanvas: HTMLCanvasElement; @@ -1578,8 +1579,8 @@ const drawEverything = (target: Player | undefined, targetAsteroid: Asteroid | u canvasGameTopLeft = canvasCoordsToGameCoords(0, 0); canvasGameBottomRight = canvasCoordsToGameCoords(canvas.width, canvas.height); - const sectorX = currentSector % mapSize; - const sectorY = Math.floor(currentSector / mapSize); + const sectorX = currentSector % mapWidth; + const sectorY = Math.floor(currentSector / mapWidth); // Macro origin is at the top left of sector 0,0 canvasMacroTopLeft.x = ((sectorX + 0.5) * sectorBounds.width + canvasGameTopLeft.x) / 2; canvasMacroTopLeft.y = ((sectorY + 0.5) * sectorBounds.width + canvasGameTopLeft.y) / 2; diff --git a/src/dialogs/map.ts b/src/dialogs/map.ts index 7314a20..f7f71aa 100644 --- a/src/dialogs/map.ts +++ b/src/dialogs/map.ts @@ -1,16 +1,16 @@ import { horizontalCenter, pop, push } from "../dialog"; import { currentSector, isInMission, sectorData } from "../globals"; import { sendWarp } from "../net"; -import { mapSize } from "../game"; import { selectedMissionsDialog, setupSelectedMissionsDialog } from "./selectedMissions"; import { abortWrapper } from "./abortMission"; import { sideBySideDivs } from "./helpers"; +import { mapHeight, mapWidth } from "../mapLayout"; const populateSectorInfo = (sector: number) => { const sectorInfo = document.getElementById("sectorInfo") as HTMLDivElement; if (sectorInfo) { - const sectorX = sector % mapSize; - const sectorY = Math.floor(sector / mapSize); + const sectorX = sector % mapWidth; + const sectorY = Math.floor(sector / mapWidth); if (sectorData.has(sector)) { const data = sectorData.get(sector); if (data) { @@ -36,22 +36,22 @@ const populateSectorInfo = (sector: number) => { const mapHtml = '
    ' + - new Array(mapSize * mapSize) + new Array(mapWidth * mapHeight) .fill(0) .map((_, i) => { - const x = i % mapSize; - const y = Math.floor(i / mapSize); + const x = i % mapWidth; + const y = Math.floor(i / mapWidth); return `
    ${x}-${y}
    `; }) .join("") + "
    "; const sectorNumberToXY = (sector: number) => { - if (sector > mapSize * mapSize) { + if (sector > mapWidth * mapHeight) { return isInMission() ? "Mission Sector" : "Tutorial Sector"; } - const x = sector % mapSize; - const y = Math.floor(sector / mapSize); + const x = sector % mapWidth; + const y = Math.floor(sector / mapWidth); return `${x}-${y}`; }; @@ -67,7 +67,11 @@ const mapDialog = () => { return `
    ${horizontalCenter([ `

    Map

    `, `

    `, - ``, + `
    +
    ${mapHtml}
    +
    +
    +
    `, sideBySideDivs([ ``, ``, @@ -83,22 +87,22 @@ const setupMapDialog = () => { document.getElementById("seeActiveMissions")?.addEventListener("click", () => { push(selectedMissionsDialog(), setupSelectedMissionsDialog, "selectedMissions"); }); - // for (let i = 0; i < mapSize * mapSize; i++) { - // document.getElementById(`sector-${i}`)?.addEventListener("click", () => { - // populateSectorInfo(i); - // }); - // } - document.getElementById("warpButton")?.addEventListener("click", () => { - try { - const toSector = parseInt((document.getElementById("sectorInput") as HTMLInputElement)?.value); - abortWrapper(() => { - sendWarp(toSector); - pop(); - }); - } catch (e) { - console.log(e); - } - }); + for (let i = 0; i < mapWidth * mapHeight; i++) { + document.getElementById(`sector-${i}`)?.addEventListener("click", () => { + populateSectorInfo(i); + }); + } + // document.getElementById("warpButton")?.addEventListener("click", () => { + // try { + // const toSector = parseInt((document.getElementById("sectorInput") as HTMLInputElement)?.value); + // abortWrapper(() => { + // sendWarp(toSector); + // pop(); + // }); + // } catch (e) { + // console.log(e); + // } + // }); setCurrentSectorText(); }; diff --git a/src/dialogs/settings.ts b/src/dialogs/settings.ts index 6093106..3dfa75e 100644 --- a/src/dialogs/settings.ts +++ b/src/dialogs/settings.ts @@ -23,7 +23,7 @@ const settingsDialog = () => ` `, `Particle Count`, - `Use experimental backgrounds (can be laggy)`, + `Use experimental backgrounds (IS BROKEN DUE TO MAP REWORK!)`, `
    ${keylayoutSelector()}
    `, ``, ``, diff --git a/src/game.ts b/src/game.ts index 67d6470..643fd3b 100644 --- a/src/game.ts +++ b/src/game.ts @@ -39,6 +39,7 @@ import { pointInRectangle, canonicalizeAngle, } from "./geometry"; +import { ResourceDensity } from "./mapLayout"; import { NPC } from "./npc"; import { seek } from "./pathing"; import { sfc32 } from "./prng"; @@ -1226,7 +1227,7 @@ const randomAsteroids = ( bounds: Rectangle, seed: number, uid: () => number, - typeDensities: { resource: string; density: number }[], + typeDensities: ResourceDensity[], stations: Player[] ) => { if (asteroidDefs.length === 0) { @@ -1516,20 +1517,6 @@ const randomNearbyPointInSector = (point: Position, distance: number) => { return ret; }; -// UNSAFE -const isValidSectorInDirection = (sector: number, direction: CardinalDirection) => { - if (direction === CardinalDirection.Up) { - return sector >= mapSize; - } else if (direction === CardinalDirection.Down) { - return sector < mapSize * (mapSize - 1); - } else if (direction === CardinalDirection.Left) { - return sector % mapSize !== 0; - } else if (direction === CardinalDirection.Right) { - return sector % mapSize !== mapSize - 1; - } - return false; -}; - type SectorInfo = { sector: number; resources: string[]; @@ -1640,7 +1627,6 @@ export { effectiveInfinity, serverMessagePersistTime, // clientMineDeploymentUpdater, - isValidSectorInDirection, sectorBounds, sectorDelta, mapSize, diff --git a/src/globals.ts b/src/globals.ts index 2d4edd7..a9bea8e 100644 --- a/src/globals.ts +++ b/src/globals.ts @@ -4,8 +4,9 @@ import { defaultKeyLayout } from "./config"; import { Faction } from "./defs"; import { runPostUpdaterOnly, updateDom } from "./dialog"; import { redrawTip } from "./dialogs/dead"; -import { ClientFriendRequest, GlobalState, mapSize, Player, SectorInfo, TutorialStage } from "./game"; +import { ClientFriendRequest, GlobalState, Player, SectorInfo, TutorialStage } from "./game"; import { azertyBindings, dvorakBindings, KeyBindings, KeyLayouts, qwertyBindings, useKeybindings } from "./keybindings"; +import { mapHeight, mapWidth } from "./mapLayout"; import { getRestRaw } from "./rest"; import { tutorialPrompters } from "./tutorial"; @@ -169,7 +170,7 @@ const setTutorialStage = (newTutorialStage: TutorialStage) => { }; const isInMission = () => { - return tutorialStage === TutorialStage.Done && currentSector >= mapSize * mapSize; + return tutorialStage === TutorialStage.Done && currentSector >= mapWidth * mapHeight; } let missionComplete = false; diff --git a/src/mapLayout.ts b/src/mapLayout.ts index cb1ad29..3465df0 100644 --- a/src/mapLayout.ts +++ b/src/mapLayout.ts @@ -7,4 +7,6 @@ const mapGraph = createTorus(width, height); const peerCount = 3; -export { mapGraph, width as mapWidth, height as mapHeight, peerCount }; +type ResourceDensity = { resource: string; density: number }; + +export { ResourceDensity, mapGraph, width as mapWidth, height as mapHeight, peerCount }; diff --git a/src/npc.ts b/src/npc.ts index 24e137a..109530d 100644 --- a/src/npc.ts +++ b/src/npc.ts @@ -9,14 +9,13 @@ import { findHeadingBetween, GlobalState, Input, - isValidSectorInDirection, - mapSize, Player, randomNearbyPointInSector, sectorBounds, sectorDelta, } from "./game"; import { findInterceptAimingHeading, findSmallAngleBetween, l2Norm, pointOutsideRectangle, Position, Rectangle } from "./geometry"; +import { mapHeight, mapWidth } from "./mapLayout"; import { seekPosition, currentlyFacing, stopPlayer, arrivePosition, arrivePositionUsingAngle, seekPositionUsingAngle } from "./pathing"; import { recipeMap } from "./recipes"; @@ -102,6 +101,7 @@ const passiveGoToRandomValidNeighboringSector = () => { process = (state: GlobalState, npc: NPC, sector: number, target: Player | undefined) => { if (this.memory.startSector === undefined) { this.memory.startSector = sector; + // ???? Brain tired, fix later let valid = false; while (!valid) { if (Math.random() < 0.5) { @@ -113,7 +113,7 @@ const passiveGoToRandomValidNeighboringSector = () => { if (direction === null) { continue; } - valid = isValidSectorInDirection(sector, direction); + valid = true; } } const newState = this.checkTransitions(state, npc, target); @@ -448,7 +448,7 @@ const makeBasicStateGraph = ( ? runAwayWithStrafing(primaryRange, secondaryGuided, secondaryRange, energyThreshold, mineSlot) : runAway(primaryRange, secondaryGuided, secondaryRange, energyThreshold, mineSlot); const warpAway = warpTo(friendlySectors); - const randomWarp = warpTo(new Array(mapSize * mapSize).fill(0).map((_, i) => i)); + const randomWarp = warpTo(new Array(mapWidth * mapHeight).fill(0).map((_, i) => i)); idle.transitions.push({ trigger: (_, __, ___, target) => !!target, state: swarm }); idle.transitions.push({ trigger: () => Math.random() < 0.01, state: passiveGoTo }); idle.transitions.push({ trigger: () => Math.random() < 0.01, state: passiveGoToSector }); diff --git a/src/tutorial.ts b/src/tutorial.ts index 3f6879c..298a824 100644 --- a/src/tutorial.ts +++ b/src/tutorial.ts @@ -3,9 +3,10 @@ import { hasArm } from "./defs/armaments"; import { peekTag } from "./dialog"; import { sectorNumberToXY } from "./dialogs/map"; import { pushMessage, rasterizeWeaponText } from "./2dDrawing"; -import { availableCargoCapacity, mapSize, TutorialStage } from "./game"; +import { availableCargoCapacity, TutorialStage } from "./game"; import { currentSector, faction, inventory, keybind, lastSelf, selectedSecondary, state } from "./globals"; import { targetAsteroidId, targetId } from "./index"; +import { mapHeight, mapWidth } from "./mapLayout"; let promptInterval: number; let promptTimeout: number; @@ -58,7 +59,7 @@ tutorialCheckers.set(TutorialStage.LaserBeam, () => { }); tutorialCheckers.set(TutorialStage.Map, () => { - return currentSector < mapSize * mapSize; + return currentSector < mapWidth * mapHeight; }); tutorialCheckers.set(TutorialStage.Dock, () => { diff --git a/styles.css b/styles.css index 4ff3a61..7d66240 100644 --- a/styles.css +++ b/styles.css @@ -187,19 +187,19 @@ body { } .grid { - display: grid; - grid-template-columns: repeat(4, 1fr); - gap: 3%; + display: inline-grid; + grid-template-columns: repeat(6, 1fr); + gap: 1%; } .square { aspect-ratio: 1/ 1; display: flex; align-items: center; - padding: 2%; + padding: 1%; background-color: #1e1e1e; color: #fff; - height: 10vh; + height: 6.67vh; justify-content: center; } From e319ce30e2ed033fa031d30dbee15c82a1a9f2bf Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sat, 14 Jan 2023 19:17:20 -0600 Subject: [PATCH 19/39] Sector awareness for dynamic sectors creation probably needs a seperate socket --- server/initMap.ts | 44 +++++++++++++++++++++++++++++++++++++++ server/misc.ts | 6 ++++-- server/missions.ts | 5 ++++- server/peers.ts | 52 +++++++++++++++++++++++++++++++++++++++------- server/sector.ts | 43 ++++++++++++++++++++++++++++++++++++++ server/state.ts | 31 +++++++++++++++++++++++---- 6 files changed, 166 insertions(+), 15 deletions(-) create mode 100644 server/initMap.ts create mode 100644 server/sector.ts diff --git a/server/initMap.ts b/server/initMap.ts new file mode 100644 index 0000000..3f94b5e --- /dev/null +++ b/server/initMap.ts @@ -0,0 +1,44 @@ +// Standalone tool for initializing the map and the stations in the database + +import mongoose from "mongoose"; +import { asteroidDefMap, initAsteroids } from "../src/defs/asteroids"; +import { mapHeight, mapWidth, ResourceDensity } from "../src/mapLayout"; +import { Sector } from "./sector"; + +initAsteroids(); + +const resourceKinds = Array.from(asteroidDefMap.keys()); + +const randomResources = () => { + const acm: ResourceDensity[] = []; + const kinds = [...resourceKinds]; + while (kinds.length > 0) { + const kind = kinds.pop()!; + if (Math.random() < 0.5) { + continue; + } + const density = Math.random() * 2 + 1; + acm.push({ resource: kind, density }); + } + if (acm.length === 0) { + return randomResources(); + } + return acm; +}; + +const sectorCount = mapWidth * mapHeight; + +mongoose.connect("mongodb://127.0.0.1:27017/SpaceGame", {}) + .catch((err) => { + console.log("Error connecting to database: " + err); + }).then( async () => { + for (let i = 0; i < sectorCount; i++) { + const sector = new Sector({ + id: i, + resources: randomResources(), + count: Math.floor(Math.random() * 30) + 5, + }); + await sector.save(); + } + process.exit(0); + }); diff --git a/server/misc.ts b/server/misc.ts index fdd8d8c..62605be 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -5,6 +5,7 @@ import { WebSocket } from "ws"; import { sendInventory } from "./inventory"; import { sendTutorialStage } from "./tutorial"; import { Station } from "./dataModels"; +import { makeNetworkAware, removeNetworkAwareness } from "./peers"; const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) => { let defIndex: number; @@ -77,13 +78,14 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) sectorKind: SectorKind.Tutorial, }; + makeNetworkAware(tutorialSector, SectorKind.Tutorial); sectors.set(tutorialSector, state); state.players.set(id, player); - // Idk the right way to handle this right now - // Just delete the tutorial sector after a while + // This should be refactored a bit to match how mission sectors are cleaned up setTimeout(() => { sectors.delete(tutorialSector); + removeNetworkAwareness(tutorialSector); tutorialRespawnPoints.delete(tutorialSector); }, 1000 * 60 * 60 * 3); diff --git a/server/missions.ts b/server/missions.ts index 3acdcd9..e632cab 100644 --- a/server/missions.ts +++ b/server/missions.ts @@ -20,6 +20,7 @@ import { WebSocket } from "ws"; import { enemyCountState, flashServerMessage, sendMissionComplete, setMissionTargetForId } from "./stateHelpers"; import { clearanceNPCsRewards, randomClearanceShip, spawnClearanceNPCs } from "./npcs/clearance"; import { spawnAssassinationNPC } from "./npcs/assassination"; +import { awareSectors, makeNetworkAware, removeNetworkAwareness } from "./peers"; const Schema = mongoose.Schema; @@ -130,6 +131,7 @@ const removeMissionSector = (sectorId: number, missionId: number) => { const sectorNonNPCCount = Array.from(sectors.get(sectorId)?.players.values() || []).filter((p) => p.isPC).length; if (sectorNonNPCCount === 0) { sectors.delete(sectorId); + removeNetworkAwareness(sectorId); sectorTriggers.delete(sectorId); failMissionIfIncomplete(missionId); } else { @@ -162,7 +164,8 @@ const startMissionGameState = (player: Player, mission: HydratedDocument { const waitingData = new Map(); +const awareSectors = new Map(); + +const makeNetworkAware = (sector: number, kind: SectorKind) => { + awareSectors.set(sector, kind); + for (const peer of peerMap.values()) { + // peer.send(JSON.stringify({ action: ZMQAction.SectorNotification, sector, sectorKind: kind })); + } +}; + +const removeNetworkAwareness = (sector: number) => { + awareSectors.delete(sector); + for (const peer of peerMap.values()) { + // peer.send(JSON.stringify({ action: ZMQAction.SectorRemoval, sector })); + } +}; + mongoose .connect("mongodb://127.0.0.1:27017/SpaceGame", {}) .catch((err) => { @@ -146,11 +172,21 @@ mongoose setupTimers(); startWebSocketServer(wsPort); for await (const [msg] of socket) { - const data = JSON.parse(msg.toString()) as SerializedClient; - // console.log("Received data from client", data?.key, name); - // console.log(data); - waitingData.set(data.key, data); - await socket.send(data.key); + const data = JSON.parse(msg.toString()) as SerializedClient | SectorNotification | SectorRemoval; + switch (data.action) { + case ZMQAction.ServerChange: + waitingData.set(data.key, data); + await socket.send(data.key); + break; + case ZMQAction.SectorNotification: + awareSectors.set(data.sector, data.sectorKind); + break; + case ZMQAction.SectorRemoval: + awareSectors.delete(data.sector); + break; + default: + console.log("Unknown action", data); + } } }); @@ -158,4 +194,4 @@ if (wsPort === 8080) { Routes(); } -export { peerMap, waitingData, serversForSectors }; +export { peerMap, waitingData, serversForSectors, awareSectors, makeNetworkAware, removeNetworkAwareness }; diff --git a/server/sector.ts b/server/sector.ts new file mode 100644 index 0000000..9d8a44b --- /dev/null +++ b/server/sector.ts @@ -0,0 +1,43 @@ +import mongoose from "mongoose"; + +interface IResourceDensity { + resource: string; + density: number; +} + +const resourceDensitySchema = new mongoose.Schema({ + resource: { + type: String, + required: true, + }, + density: { + type: Number, + required: true, + min: 0, + }, +}); + +interface ISector { + id: number; + resources: IResourceDensity[]; + count: number; +} + +const sectorSchema = new mongoose.Schema({ + id: { + type: Number, + required: true, + }, + resources: { + type: [resourceDensitySchema], + default: [], + }, + count: { + type: Number, + default: 0, + }, +}); + +const Sector = mongoose.model("Sector", sectorSchema); + +export { Sector, ISector }; diff --git a/server/state.ts b/server/state.ts index 8adfc32..d34a2be 100644 --- a/server/state.ts +++ b/server/state.ts @@ -6,7 +6,7 @@ import { CardinalDirection } from "../src/geometry"; import { initMarket } from "./market"; import { NPC } from "../src/npc"; import { Checkpoint, Station, User } from "./dataModels"; -import { peerMap, waitingData } from "./peers"; +import { awareSectors, peerMap, waitingData } from "./peers"; import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; import { ISector, Sector } from "./sector"; import { HydratedDocument } from "mongoose"; @@ -114,9 +114,6 @@ type SerializableClientData = Omit }; const serializableClientData = (client: ClientData): SerializableClientData => { - if (client.inTutorial) { - throw new Error("Cannot serialize client data while in tutorial"); - } client = { ...client }; client.tutorialNpc = undefined; (client as any).sectorsVisited = Array.from(client.sectorsVisited); @@ -139,6 +136,12 @@ const secondaries: Map = new Map(); const secondariesToActivate: Map = new Map(); const knownRecipes: Map> = new Map(); +enum ZMQAction { + ServerChange, + SectorNotification, + SectorRemoval, +} + enum ServerChangeKind { Warp, Respawn, @@ -162,6 +165,7 @@ const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind player, key, kind, + action: ZMQAction.ServerChange, }); }; @@ -174,6 +178,21 @@ type SerializedClient = { player: Player; key: string; kind: ServerChangeKind; +} & { + action: ZMQAction.ServerChange; +}; + +type SectorNotification = { + sector: number; + sectorKind: SectorKind; +} & { + action: ZMQAction.SectorNotification; +}; + +type SectorRemoval = { + sector: number; +} & { + action: ZMQAction.SectorRemoval; }; const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { @@ -291,6 +310,7 @@ const initSectors = (serverSectors: number[]) => { delayedActions: [], sectorKind: SectorKind.Overworld, }); + awareSectors.set(sector, SectorKind.Overworld); }); }; @@ -365,7 +385,10 @@ const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisit }; export { + ZMQAction, ServerChangeKind, + SectorNotification, + SectorRemoval, // ClientData, // SerializableClientData, // serializableClientData, From 794d0819eb525b38f9966b71b4728a9c824920fb Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sat, 14 Jan 2023 19:27:03 -0600 Subject: [PATCH 20/39] Fix server sector awareness messages --- server/peers.ts | 11 +++++++++-- server/state.ts | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/server/peers.ts b/server/peers.ts index c2e41fc..0a41ac9 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -120,6 +120,9 @@ const syncPeers = async () => { // dispatch messages from the socket for await (const [key] of peerSocket) { console.log(`Received data from ${peer.name}`, key.toString()); + if (key.toString() === "OK") { + continue; + } sendServerWarp(key.toString(), `ws://${peer.ip}:${peer.wsPort}`); } }); @@ -145,14 +148,14 @@ const awareSectors = new Map(); const makeNetworkAware = (sector: number, kind: SectorKind) => { awareSectors.set(sector, kind); for (const peer of peerMap.values()) { - // peer.send(JSON.stringify({ action: ZMQAction.SectorNotification, sector, sectorKind: kind })); + peer.send(JSON.stringify({ action: ZMQAction.SectorNotification, sector, sectorKind: kind, server: name })); } }; const removeNetworkAwareness = (sector: number) => { awareSectors.delete(sector); for (const peer of peerMap.values()) { - // peer.send(JSON.stringify({ action: ZMQAction.SectorRemoval, sector })); + peer.send(JSON.stringify({ action: ZMQAction.SectorRemoval, sector })); } }; @@ -180,9 +183,13 @@ mongoose break; case ZMQAction.SectorNotification: awareSectors.set(data.sector, data.sectorKind); + serversForSectors.set(data.sector, data.server); + await socket.send("OK"); break; case ZMQAction.SectorRemoval: awareSectors.delete(data.sector); + serversForSectors.delete(data.sector); + await socket.send("OK"); break; default: console.log("Unknown action", data); diff --git a/server/state.ts b/server/state.ts index d34a2be..905c946 100644 --- a/server/state.ts +++ b/server/state.ts @@ -185,6 +185,7 @@ type SerializedClient = { type SectorNotification = { sector: number; sectorKind: SectorKind; + server: string; } & { action: ZMQAction.SectorNotification; }; From ca50a379aa9dea75968f96c2511e9e5e74229116 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sat, 14 Jan 2023 19:53:46 -0600 Subject: [PATCH 21/39] Friend warping (displaed location is incorrect still) --- server/friends.ts | 14 +++----------- server/misc.ts | 5 +++++ server/missions.ts | 6 ++++++ server/websockets.ts | 20 ++++++++++++-------- src/sectorGraph.ts | 6 ++---- 5 files changed, 28 insertions(+), 23 deletions(-) diff --git a/server/friends.ts b/server/friends.ts index 43040b0..96c5f1b 100644 --- a/server/friends.ts +++ b/server/friends.ts @@ -226,25 +226,17 @@ const friendWarp = async (ws: WebSocket, player: Player, friend: number) => { ws.send({ type: "error", payload: { message: "Failed to warp to friend (not friends)" } }); throw new Error("Failed to warp to friend (not friends)"); } - const where = findPlayer(friend); + const where = user.currentSector; if (!where) { flashServerMessage(player.id, "Failed to warp to friend (not online)", [1.0, 0.0, 0.0, 1.0]); return; } - if (where === "respawning") { - flashServerMessage(player.id, "Failed to warp to friend (respawning)", [1.0, 0.0, 0.0, 1.0]); - return; - } - if ((where as any).sectorKind === SectorKind.Tutorial) { - flashServerMessage(player.id, "Failed to warp to friend (cannot warp into tutorial)", [1.0, 0.0, 0.0, 1.0]); - return; - } player.warping = 1; - player.warpTo = where.sectorNumber; + player.warpTo = where; // Add the player to the mission if ((where as any).sectorKind === SectorKind.Mission) { const mission = await Mission.findOneAndUpdate( - { sectorNumber: where.sectorNumber, inProgress: true, assignee: { $ne: player.id }, forFaction: player.team }, + { sectorNumber: where, inProgress: true, assignee: { $ne: player.id }, forFaction: player.team }, { $addToSet: { coAssignees: player.id } } ); if (!mission) { diff --git a/server/misc.ts b/server/misc.ts index 62605be..e120a51 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -6,6 +6,8 @@ import { sendInventory } from "./inventory"; import { sendTutorialStage } from "./tutorial"; import { Station } from "./dataModels"; import { makeNetworkAware, removeNetworkAwareness } from "./peers"; +import { createIsolatedSector, removeContiguousSubgraph } from "../src/sectorGraph"; +import { mapGraph } from "../src/mapLayout"; const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) => { let defIndex: number; @@ -79,6 +81,8 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) }; makeNetworkAware(tutorialSector, SectorKind.Tutorial); + // I don't need to add topology for single isolated sectors (will want to though if I go to torus wrapping single sectors) + // createIsolatedSector(mapGraph, tutorialSector); sectors.set(tutorialSector, state); state.players.set(id, player); @@ -86,6 +90,7 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) setTimeout(() => { sectors.delete(tutorialSector); removeNetworkAwareness(tutorialSector); + // removeContiguousSubgraph(mapGraph, tutorialSector); tutorialRespawnPoints.delete(tutorialSector); }, 1000 * 60 * 60 * 3); diff --git a/server/missions.ts b/server/missions.ts index e632cab..c28b5f7 100644 --- a/server/missions.ts +++ b/server/missions.ts @@ -21,6 +21,8 @@ import { enemyCountState, flashServerMessage, sendMissionComplete, setMissionTar import { clearanceNPCsRewards, randomClearanceShip, spawnClearanceNPCs } from "./npcs/clearance"; import { spawnAssassinationNPC } from "./npcs/assassination"; import { awareSectors, makeNetworkAware, removeNetworkAwareness } from "./peers"; +import { createIsolatedSector, removeContiguousSubgraph } from "../src/sectorGraph"; +import { mapGraph } from "../src/mapLayout"; const Schema = mongoose.Schema; @@ -132,6 +134,7 @@ const removeMissionSector = (sectorId: number, missionId: number) => { if (sectorNonNPCCount === 0) { sectors.delete(sectorId); removeNetworkAwareness(sectorId); + // removeContiguousSubgraph(mapGraph, sectorId); sectorTriggers.delete(sectorId); failMissionIfIncomplete(missionId); } else { @@ -166,6 +169,9 @@ const startMissionGameState = (player: Player, mission: HydratedDocument { @@ -113,12 +113,20 @@ export function startWebSocketServer(wsPort: number) { idToWebsocket.set(user.id, ws); - // BROKEN assignPlayerIdToConnection(ipAddr, user.id); - + if (!user.sectorsVisited) { - user.sectorsVisited = [user.currentSector]; + if (user.currentSector >= 0 && user.currentSector < mapWidth * mapHeight) { + user.sectorsVisited = [user.currentSector]; + } else { + user.sectorsVisited = []; + } + } + const sectorsVisited: Set = new Set(user.sectorsVisited); + if (user.currentSector >= 0 && user.currentSector < mapWidth * mapHeight) { + sectorsVisited.add(user.currentSector); } + user.loginCount++; user.loginTimes.push(Date.now()); try { @@ -127,9 +135,6 @@ export function startWebSocketServer(wsPort: number) { console.log(err); } - const sectorsVisited: Set = new Set(user.sectorsVisited); - sectorsVisited.add(user.currentSector); - Checkpoint.findOne({ id: user.id }, (err, checkpoint) => { if (err) { ws.send(JSON.stringify({ type: "loginFail", payload: { error: "Database error" } })); @@ -238,7 +243,6 @@ export function startWebSocketServer(wsPort: number) { setupPlayer(user.id, ws, name, faction); idToWebsocket.set(user.id, ws); - // BROKEN assignPlayerIdToConnection(ipAddr, user.id); }); }); diff --git a/src/sectorGraph.ts b/src/sectorGraph.ts index 693b9fe..9145a94 100644 --- a/src/sectorGraph.ts +++ b/src/sectorGraph.ts @@ -115,14 +115,12 @@ const createTorus = (width: number, height: number) => { return graph; }; -const mergeDisjointSubgraphs = (...graphs: SectorGraph[]) => { - const merged = new Map(); +const mergeDisjointSubgraphs = (into: Map, ...graphs: SectorGraph[]) => { for (const graph of graphs) { for (const [sector, node] of graph) { - merged.set(sector, node); + into.set(sector, node); } } - return merged; }; export { From 748174987dcc2561f875cc255910da195d3cd172 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sat, 14 Jan 2023 22:40:39 -0600 Subject: [PATCH 22/39] Need to rework peer communication --- server/peers.ts | 5 +++++ server/routes.ts | 8 +++++++- server/server.ts | 2 +- server/state.ts | 1 - 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/server/peers.ts b/server/peers.ts index 0a41ac9..1f630ba 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -18,6 +18,7 @@ import { setupTimers } from "./server"; import { Player, SectorKind } from "../src/game"; import { mapGraph, mapHeight, mapWidth, peerCount } from "../src/mapLayout"; import assert from "assert"; +import { sectors as serverSectors } from "./state"; interface IPeer { name: string; @@ -145,6 +146,10 @@ const waitingData = new Map(); const awareSectors = new Map(); +for (let i = 0; i < mapWidth * mapHeight; i++) { + awareSectors.set(i, SectorKind.Overworld); +} + const makeNetworkAware = (sector: number, kind: SectorKind) => { awareSectors.set(sector, kind); for (const peer of peerMap.values()) { diff --git a/server/routes.ts b/server/routes.ts index 9a23056..a109569 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -19,6 +19,7 @@ import { maxDecimals } from "../src/geometry"; import { genMissions, Mission } from "./missions"; import { canFriendRequest, FriendRequest } from "./friends"; import { findPlayer } from "./stateHelpers"; +import { awareSectors } from "./peers"; // Http server stuff const root = resolve(__dirname + "/.."); @@ -155,7 +156,12 @@ app.get("/currentSectorOfPlayer", async (req, res) => { } const id = parseInt(idParam); const user = await User.findOne({ id }); - res.send(JSON.stringify({ value: findPlayer(id) })); + const awareness = awareSectors.get(user?.currentSector ?? -1); + if (awareness === undefined) { + res.send(JSON.stringify({ value: null })); + return; + } + res.send(JSON.stringify({ value: { sectorNumber: user?.currentSector, sectorKind: awareness } })); }); app.get("/nameOf", (req, res) => { diff --git a/server/server.ts b/server/server.ts index 91342ff..57aec5e 100644 --- a/server/server.ts +++ b/server/server.ts @@ -295,7 +295,7 @@ const warpNonNPCToSector = (ws: WebSocket, player: Player, sector: number) => { if (serverName) { serverChangePlayer(ws, player, serverName); } else { - flashServerMessage(player.id, "Server not found for this sector!", [1.0, 0.0, 0.0, 1.0]); + flashServerMessage(player.id, `Server not found for this sector! (${sector})`, [1.0, 0.0, 0.0, 1.0]); } } }; diff --git a/server/state.ts b/server/state.ts index 905c946..8774ba0 100644 --- a/server/state.ts +++ b/server/state.ts @@ -311,7 +311,6 @@ const initSectors = (serverSectors: number[]) => { delayedActions: [], sectorKind: SectorKind.Overworld, }); - awareSectors.set(sector, SectorKind.Overworld); }); }; From 8644bc68ccf143feb901512818011dfca509b632 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sun, 15 Jan 2023 18:58:54 -0600 Subject: [PATCH 23/39] Replace all zeromq code with axon instead --- server/package-lock.json | 576 ++++++--------------------------------- server/package.json | 5 +- server/peers.ts | 126 +++++---- server/state.ts | 41 +-- server/testPeer.sh | 6 +- 5 files changed, 168 insertions(+), 586 deletions(-) diff --git a/server/package-lock.json b/server/package-lock.json index c2dd7b5..f730666 100755 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -5,25 +5,24 @@ "packages": { "": { "dependencies": { + "@types/axon": "^2.0.2", "@types/cors": "^2.8.13", "@types/express": "^4.17.14", "@types/node": "^18.7.23", "@types/ws": "^8.5.3", + "axon": "^2.0.3", "cors": "^2.8.5", "express": "^4.18.2", "mongoose": "^6.6.5", - "ws": "^8.9.0", - "zeromq": "^6.0.0-beta.16" + "ws": "^8.9.0" } }, - "node_modules/@aminya/node-gyp-build": { - "version": "4.5.0-aminya.4", - "resolved": "https://registry.npmjs.org/@aminya/node-gyp-build/-/node-gyp-build-4.5.0-aminya.4.tgz", - "integrity": "sha512-2c2+BqZOxfTz/m+1MNWncMyMgil2WOg8cHhKPf1qUo1t9ohOWOgSeb7TVVD4fnTxIcAcpWdmXBpFkjPRyBVS9g==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node_modules/@types/axon": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/axon/-/axon-2.0.2.tgz", + "integrity": "sha512-5aKG+CBuwganKQJTjuFwhZd0ekQnIxRBoQpIvvyLWeIY3JvxKXySt+UmG8aLt1WgiU6X+5AVmF5D7PUyWKUnBw==", + "dependencies": { + "@types/node": "*" } }, "node_modules/@types/body-parser": { @@ -135,15 +134,38 @@ "node": ">= 0.6" } }, + "node_modules/amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==" + }, + "node_modules/amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==", + "dependencies": { + "amp": "0.3.1" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "node_modules/axon": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/axon/-/axon-2.0.3.tgz", + "integrity": "sha512-zGM15ltKLOMk+/tS6v4ttbCmhNm5uV09FalXc0/cKUcP9nmx5Npg0QO1/xvijvMA+sUzZpQ/0++w1/8Hci5qzQ==", + "dependencies": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "configurable": "0.0.1", + "debug": "*", + "escape-regexp": "0.0.1" + }, + "engines": { + "node": ">= 0.11.8" + } }, "node_modules/base64-js": { "version": "1.5.1", @@ -187,15 +209,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/bson": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", @@ -250,10 +263,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/concat-map": { + "node_modules/configurable": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "resolved": "https://registry.npmjs.org/configurable/-/configurable-0.0.1.tgz", + "integrity": "sha512-OcGvB6vM11aQlbtNBxN23uqRAGzpbIiKzn4tgT49nF3QPocQ2N3TODH9901HxKNv+eYupA7TCrtRNY1jm/sK8Q==" }, "node_modules/content-disposition": { "version": "0.5.4", @@ -299,36 +312,6 @@ "node": ">= 0.10" } }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -380,6 +363,11 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "node_modules/escape-regexp": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz", + "integrity": "sha512-jVgdsYRa7RKxTT6MKNC3gdT+BF0Gfhpel19+HMRZJC2L0PufB0XOBuXBoXj29NKHwuktnAXd1Z1lyiH/8vOTpw==" + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -462,11 +450,6 @@ "node": ">= 0.6" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -485,25 +468,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -571,28 +535,11 @@ } ] }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -606,22 +553,6 @@ "node": ">= 0.10" } }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, "node_modules/kareem": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", @@ -684,25 +615,6 @@ "node": ">= 0.6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/mongodb": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.9.1.tgz", @@ -808,11 +720,6 @@ "node": ">= 0.6" } }, - "node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -840,14 +747,6 @@ "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -856,27 +755,6 @@ "node": ">= 0.8" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -938,33 +816,6 @@ "node": ">= 0.8" } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1048,56 +899,6 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -1155,17 +956,6 @@ "node": ">= 0.8" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -1241,25 +1031,6 @@ "node": ">=12" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, "node_modules/ws": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", @@ -1279,29 +1050,16 @@ "optional": true } } - }, - "node_modules/zeromq": { - "version": "6.0.0-beta.16", - "resolved": "https://registry.npmjs.org/zeromq/-/zeromq-6.0.0-beta.16.tgz", - "integrity": "sha512-taPr+V2synMrybR4H4YBJkjQ1tIi0CPuXsO6Jm2O1IbgnfJ0o3qYqi0QuhT9/oFwiTNr/yQiCze9OU2szGlp7w==", - "hasInstallScript": true, - "dependencies": { - "@aminya/node-gyp-build": "4.5.0-aminya.4", - "cross-env": "^7.0.3", - "node-addon-api": "^5.0.0", - "shelljs": "^0.8.5", - "shx": "^0.3.4" - }, - "engines": { - "node": ">= 10.2" - } } }, "dependencies": { - "@aminya/node-gyp-build": { - "version": "4.5.0-aminya.4", - "resolved": "https://registry.npmjs.org/@aminya/node-gyp-build/-/node-gyp-build-4.5.0-aminya.4.tgz", - "integrity": "sha512-2c2+BqZOxfTz/m+1MNWncMyMgil2WOg8cHhKPf1qUo1t9ohOWOgSeb7TVVD4fnTxIcAcpWdmXBpFkjPRyBVS9g==" + "@types/axon": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/axon/-/axon-2.0.2.tgz", + "integrity": "sha512-5aKG+CBuwganKQJTjuFwhZd0ekQnIxRBoQpIvvyLWeIY3JvxKXySt+UmG8aLt1WgiU6X+5AVmF5D7PUyWKUnBw==", + "requires": { + "@types/node": "*" + } }, "@types/body-parser": { "version": "1.19.2", @@ -1409,15 +1167,35 @@ "negotiator": "0.6.3" } }, + "amp": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/amp/-/amp-0.3.1.tgz", + "integrity": "sha512-OwIuC4yZaRogHKiuU5WlMR5Xk/jAcpPtawWL05Gj8Lvm2F6mwoJt4O/bHI+DHwG79vWd+8OFYM4/BzYqyRd3qw==" + }, + "amp-message": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/amp-message/-/amp-message-0.1.2.tgz", + "integrity": "sha512-JqutcFwoU1+jhv7ArgW38bqrE+LQdcRv4NxNw0mp0JHQyB6tXesWRjtYKlDgHRY2o3JE5UTaBGUK8kSWUdxWUg==", + "requires": { + "amp": "0.3.1" + } + }, "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "axon": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/axon/-/axon-2.0.3.tgz", + "integrity": "sha512-zGM15ltKLOMk+/tS6v4ttbCmhNm5uV09FalXc0/cKUcP9nmx5Npg0QO1/xvijvMA+sUzZpQ/0++w1/8Hci5qzQ==", + "requires": { + "amp": "~0.3.1", + "amp-message": "~0.1.1", + "configurable": "0.0.1", + "debug": "*", + "escape-regexp": "0.0.1" + } }, "base64-js": { "version": "1.5.1", @@ -1443,15 +1221,6 @@ "unpipe": "1.0.0" } }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "bson": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.0.tgz", @@ -1483,10 +1252,10 @@ "get-intrinsic": "^1.0.2" } }, - "concat-map": { + "configurable": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "resolved": "https://registry.npmjs.org/configurable/-/configurable-0.0.1.tgz", + "integrity": "sha512-OcGvB6vM11aQlbtNBxN23uqRAGzpbIiKzn4tgT49nF3QPocQ2N3TODH9901HxKNv+eYupA7TCrtRNY1jm/sK8Q==" }, "content-disposition": { "version": "0.5.4", @@ -1520,24 +1289,6 @@ "vary": "^1" } }, - "cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "requires": { - "cross-spawn": "^7.0.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1576,6 +1327,11 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "escape-regexp": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz", + "integrity": "sha512-jVgdsYRa7RKxTT6MKNC3gdT+BF0Gfhpel19+HMRZJC2L0PufB0XOBuXBoXj29NKHwuktnAXd1Z1lyiH/8vOTpw==" + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -1643,11 +1399,6 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -1663,19 +1414,6 @@ "has-symbols": "^1.0.3" } }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -1714,25 +1452,11 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, "ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -1743,19 +1467,6 @@ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "requires": { - "has": "^1.0.3" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, "kareem": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.4.1.tgz", @@ -1800,19 +1511,6 @@ "mime-db": "1.52.0" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" - }, "mongodb": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.9.1.tgz", @@ -1893,11 +1591,6 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, - "node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -1916,34 +1609,11 @@ "ee-first": "1.1.1" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -1987,24 +1657,6 @@ "unpipe": "1.0.0" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "requires": { - "resolve": "^1.1.6" - } - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -2067,38 +1719,6 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - } - }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -2142,11 +1762,6 @@ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, "toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -2198,36 +1813,11 @@ "webidl-conversions": "^7.0.0" } }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, "ws": { "version": "8.9.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "requires": {} - }, - "zeromq": { - "version": "6.0.0-beta.16", - "resolved": "https://registry.npmjs.org/zeromq/-/zeromq-6.0.0-beta.16.tgz", - "integrity": "sha512-taPr+V2synMrybR4H4YBJkjQ1tIi0CPuXsO6Jm2O1IbgnfJ0o3qYqi0QuhT9/oFwiTNr/yQiCze9OU2szGlp7w==", - "requires": { - "@aminya/node-gyp-build": "4.5.0-aminya.4", - "cross-env": "^7.0.3", - "node-addon-api": "^5.0.0", - "shelljs": "^0.8.5", - "shx": "^0.3.4" - } } } } diff --git a/server/package.json b/server/package.json index 4404a32..cb5b2f8 100755 --- a/server/package.json +++ b/server/package.json @@ -1,14 +1,15 @@ { "dependencies": { + "@types/axon": "^2.0.2", "@types/cors": "^2.8.13", "@types/express": "^4.17.14", "@types/node": "^18.7.23", "@types/ws": "^8.5.3", + "axon": "^2.0.3", "cors": "^2.8.5", "express": "^4.18.2", "mongoose": "^6.6.5", - "ws": "^8.9.0", - "zeromq": "^6.0.0-beta.16" + "ws": "^8.9.0" }, "scripts": { "dev": "concurrently \"tsc --watch --project config.json\" \"nodemon -e js,ts --exec node server.js\"" diff --git a/server/peers.ts b/server/peers.ts index 1f630ba..c5a67d9 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,17 +1,6 @@ import mongoose from "mongoose"; -import { Reply, Request } from "zeromq"; import { initFromDatabase } from "./misc"; -import { - initInitialAsteroids, - initSectorResourceData, - initSectors, - initStationTeams, - SectorNotification, - SectorRemoval, - sendServerWarp, - SerializedClient, - ZMQAction, -} from "./state"; +import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, sendServerWarp, SerializedClient } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; @@ -19,11 +8,14 @@ import { Player, SectorKind } from "../src/game"; import { mapGraph, mapHeight, mapWidth, peerCount } from "../src/mapLayout"; import assert from "assert"; import { sectors as serverSectors } from "./state"; +import { inspect } from "util"; +import axon from "axon"; interface IPeer { name: string; ip: string; port: number; + pubPort: number; wsPort: number; updated: Date; sectors: number[]; @@ -42,6 +34,10 @@ const peerSchema = new mongoose.Schema({ type: Number, required: true, }, + pubPort: { + type: Number, + required: true, + }, wsPort: { type: Number, required: true, @@ -63,11 +59,12 @@ const Peer = mongoose.model("Peer", peerSchema); // Get our name from the command line options const name = process.argv[2]; const port = process.argv[3]; +const pubPort = process.argv[4]; // For development const ip = "127.0.0.1"; -const wsPort = parseInt(process.argv[4]); +const wsPort = parseInt(process.argv[5]); -const peerNumber = parseInt(process.argv[5]); +const peerNumber = parseInt(process.argv[6]); assert(peerNumber >= 0 && peerNumber < peerCount); const sectorCount = mapWidth * mapHeight; @@ -82,19 +79,31 @@ console.log(`Starting peer ${name} with sectors ${sectors} on port ${port} and w // Sets ourselves in the database const setPeer = async () => { - await Peer.findOneAndUpdate({ name }, { ip, port, updated: Date.now(), sectors, wsPort }, { upsert: true }); + await Peer.findOneAndUpdate({ name }, { ip, port, updated: Date.now(), sectors, wsPort, pubPort }, { upsert: true }); +}; + +type PeerSockets = { + request: axon.ReqSocket; + subscriber: axon.SubSocket; + // Websocket ip and port + ip: string; + port: number; + name: string; }; // Global stuff -const peerMap = new Map(); -const socket = new Reply(); +const peerMap = new Map(); +const repSocket = axon.socket("rep") as axon.RepSocket; +const pubSocket = axon.socket("pub") as axon.PubSocket; let interval: NodeJS.Timer | null = null; const setupSelf = async () => { await setPeer(); // Probably will just protect this with iptables - await socket.bind(`tcp://${ip}:${port}`); + repSocket.bind(`tcp://${ip}:${port}`); + pubSocket.bind(`tcp://0.0.0.0:${pubPort}`); + syncPeers(); interval = setInterval(() => { setPeer(); @@ -111,25 +120,43 @@ const syncPeers = async () => { if (peerMap.has(peer.name)) { return; } - console.log(`Connecting to peer ${peer.name} at ${peer.ip}:${peer.port}`); - const peerSocket = new Request(); - peerSocket.connect(`tcp://${peer.ip}:${peer.port}`); - peerMap.set(peer.name, peerSocket); + console.log(`Connecting to peer ${peer.name} at ${peer.ip}:${peer.port} and ${peer.ip}:${peer.pubPort}`); + + const request = axon.socket("req") as axon.ReqSocket; + request.connect(`tcp://${peer.ip}:${peer.port}`); + + const subscriber = axon.socket("sub") as axon.SubSocket; + subscriber.connect(`tcp://${peer.ip}:${peer.pubPort}`); + subscriber.subscribe("sector-notification"); + subscriber.subscribe("sector-removal"); + subscriber.on("message", (topic, data) => { + if (topic === "sector-notification") { + const sector = data.sector; + const server = data.server; + serversForSectors.set(sector, server); + awareSectors.set(sector, data.kind); + return; + } + if (topic === "sector-removal") { + const sector = data.sector; + serversForSectors.delete(sector); + awareSectors.delete(sector); + return; + } + }); + + peerMap.set(peer.name, { request, subscriber, ip: peer.ip, port: peer.wsPort, name: peer.name }); peer.sectors.forEach((sector) => { serversForSectors.set(sector, peer.name); }); - // dispatch messages from the socket - for await (const [key] of peerSocket) { - console.log(`Received data from ${peer.name}`, key.toString()); - if (key.toString() === "OK") { - continue; - } - sendServerWarp(key.toString(), `ws://${peer.ip}:${peer.wsPort}`); - } }); for (const name of peerMap.keys()) { if (!peers.find((peer) => peer.name === name)) { - peerMap.get(name)?.close(); + const sockets = peerMap.get(name); + if (sockets) { + sockets.request.close(); + sockets.subscriber.close(); + } peerMap.delete(name); // remove from the map serversForSectors.forEach((server, sector) => { @@ -152,16 +179,12 @@ for (let i = 0; i < mapWidth * mapHeight; i++) { const makeNetworkAware = (sector: number, kind: SectorKind) => { awareSectors.set(sector, kind); - for (const peer of peerMap.values()) { - peer.send(JSON.stringify({ action: ZMQAction.SectorNotification, sector, sectorKind: kind, server: name })); - } + pubSocket.send("sector-notification", { sector, sectorKind: kind, server: name }); }; const removeNetworkAwareness = (sector: number) => { awareSectors.delete(sector); - for (const peer of peerMap.values()) { - peer.send(JSON.stringify({ action: ZMQAction.SectorRemoval, sector })); - } + pubSocket.send("sector-removal", { sector }); }; mongoose @@ -179,31 +202,18 @@ mongoose initInitialAsteroids(); setupTimers(); startWebSocketServer(wsPort); - for await (const [msg] of socket) { - const data = JSON.parse(msg.toString()) as SerializedClient | SectorNotification | SectorRemoval; - switch (data.action) { - case ZMQAction.ServerChange: - waitingData.set(data.key, data); - await socket.send(data.key); - break; - case ZMQAction.SectorNotification: - awareSectors.set(data.sector, data.sectorKind); - serversForSectors.set(data.sector, data.server); - await socket.send("OK"); - break; - case ZMQAction.SectorRemoval: - awareSectors.delete(data.sector); - serversForSectors.delete(data.sector); - await socket.send("OK"); - break; - default: - console.log("Unknown action", data); - } - } + repSocket.on("message", async (data: SerializedClient, reply: (data: string) => void) => { + waitingData.set(data.key, data); + reply(data.key); + }); }); if (wsPort === 8080) { Routes(); } +setInterval(() => { + console.log(`${name} knows about `, Array.from(awareSectors.keys())); +}, 30 * 1000); + export { peerMap, waitingData, serversForSectors, awareSectors, makeNetworkAware, removeNetworkAwareness }; diff --git a/server/state.ts b/server/state.ts index 8774ba0..1d78d69 100644 --- a/server/state.ts +++ b/server/state.ts @@ -136,19 +136,13 @@ const secondaries: Map = new Map(); const secondariesToActivate: Map = new Map(); const knownRecipes: Map> = new Map(); -enum ZMQAction { - ServerChange, - SectorNotification, - SectorRemoval, -} - enum ServerChangeKind { Warp, Respawn, Spawn, } -const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind: ServerChangeKind) => { +const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind: ServerChangeKind): SerializedClient | null => { const client = clients.get(ws); if (!client) return null; const target = targets.get(client.id); @@ -156,7 +150,7 @@ const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind const toActivate = secondariesToActivate.get(client.id); const recipesKnown = knownRecipes.get(client.id) || new Set(); - return JSON.stringify({ + return { clientData: serializableClientData(client), target, secondary, @@ -165,8 +159,7 @@ const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind player, key, kind, - action: ZMQAction.ServerChange, - }); + }; }; type SerializedClient = { @@ -178,22 +171,6 @@ type SerializedClient = { player: Player; key: string; kind: ServerChangeKind; -} & { - action: ZMQAction.ServerChange; -}; - -type SectorNotification = { - sector: number; - sectorKind: SectorKind; - server: string; -} & { - action: ZMQAction.SectorNotification; -}; - -type SectorRemoval = { - sector: number; -} & { - action: ZMQAction.SectorRemoval; }; const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { @@ -262,13 +239,20 @@ const serverWarps = new Map(); const serverChangePlayer = (ws: WebSocket, player: Player, serverName: string, kind = ServerChangeKind.Warp) => { const key = uid().toString(); const serialized = serializeAllClientData(ws, player, key, kind); + if (!serialized) { + console.warn("No serialized client data"); + return; + } serverWarps.set(key, ws); const server = peerMap.get(serverName); if (!server) { console.warn("No server for", serverName); return; } - server.send(serialized); + server.request.send(serialized, (key) => { + console.log(`Received key from ${server.name}`, key); + sendServerWarp(key, `ws://${server.ip}:${server.port}`); + }); }; const sendServerWarp = (key: string, to: string) => { @@ -385,10 +369,7 @@ const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisit }; export { - ZMQAction, ServerChangeKind, - SectorNotification, - SectorRemoval, // ClientData, // SerializableClientData, // serializableClientData, diff --git a/server/testPeer.sh b/server/testPeer.sh index c3fb4ee..5faa932 100755 --- a/server/testPeer.sh +++ b/server/testPeer.sh @@ -1,5 +1,5 @@ #! /bin/bash -node peers.js carter 5555 8080 0 & -node peers.js sheppard 5556 8082 1 & -node peers.js oneill 5557 8083 2 & +node peers.js carter 5555 5565 8080 0 & +node peers.js sheppard 5556 5566 8082 1 & +node peers.js oneill 5557 5567 8083 2 & From 53f06ad2cf888fcf8539e149d16fe0168cafccab Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Sun, 15 Jan 2023 19:39:44 -0600 Subject: [PATCH 24/39] Friend last location --- server/dataModels.ts | 9 --------- server/friends.ts | 3 ++- server/misc.ts | 3 ++- server/peers.ts | 21 +++++++++++++++------ server/routes.ts | 14 +++++++++----- server/server.ts | 11 ++++------- server/websockets.ts | 24 ++++++++++++------------ 7 files changed, 44 insertions(+), 41 deletions(-) diff --git a/server/dataModels.ts b/server/dataModels.ts index 1c2e259..6f54f0f 100644 --- a/server/dataModels.ts +++ b/server/dataModels.ts @@ -37,7 +37,6 @@ interface IUser { loginTimes: Date[]; logoffTimes: Date[]; friends: number[]; - currentSector: number; } const userSchema = new Schema({ @@ -107,14 +106,6 @@ const userSchema = new Schema({ type: [Number], default: [], }, - currentSector: { - type: Number, - default: -1, - validate: { - validator: (x) => Number.isInteger(x) && x >= -1, - message: "{VALUE} is not an integer value", - }, - }, }); const User = mongoose.model("User", userSchema); diff --git a/server/friends.ts b/server/friends.ts index 96c5f1b..42d2a06 100644 --- a/server/friends.ts +++ b/server/friends.ts @@ -5,6 +5,7 @@ import { findPlayer, flashServerMessage, setMissionTargetForId } from "./stateHe import { idToWebsocket } from "./state"; import { MissionType, Player, SectorKind } from "../src/game"; import { Mission } from "./missions"; +import { playerSectors } from "./peers"; const Schema = mongoose.Schema; @@ -226,7 +227,7 @@ const friendWarp = async (ws: WebSocket, player: Player, friend: number) => { ws.send({ type: "error", payload: { message: "Failed to warp to friend (not friends)" } }); throw new Error("Failed to warp to friend (not friends)"); } - const where = user.currentSector; + const where = playerSectors.get(friend); if (!where) { flashServerMessage(player.id, "Failed to warp to friend (not online)", [1.0, 0.0, 0.0, 1.0]); return; diff --git a/server/misc.ts b/server/misc.ts index e120a51..a3e4dfb 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -5,7 +5,7 @@ import { WebSocket } from "ws"; import { sendInventory } from "./inventory"; import { sendTutorialStage } from "./tutorial"; import { Station } from "./dataModels"; -import { makeNetworkAware, removeNetworkAwareness } from "./peers"; +import { makeNetworkAware, removeNetworkAwareness, setPlayerSector } from "./peers"; import { createIsolatedSector, removeContiguousSubgraph } from "../src/sectorGraph"; import { mapGraph } from "../src/mapLayout"; @@ -85,6 +85,7 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) // createIsolatedSector(mapGraph, tutorialSector); sectors.set(tutorialSector, state); state.players.set(id, player); + setPlayerSector(id, tutorialSector); // This should be refactored a bit to match how mission sectors are cleaned up setTimeout(() => { diff --git a/server/peers.ts b/server/peers.ts index c5a67d9..9793328 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -129,12 +129,13 @@ const syncPeers = async () => { subscriber.connect(`tcp://${peer.ip}:${peer.pubPort}`); subscriber.subscribe("sector-notification"); subscriber.subscribe("sector-removal"); + subscriber.subscribe("player-sector"); subscriber.on("message", (topic, data) => { if (topic === "sector-notification") { const sector = data.sector; const server = data.server; serversForSectors.set(sector, server); - awareSectors.set(sector, data.kind); + awareSectors.set(sector, data.sectorKind); return; } if (topic === "sector-removal") { @@ -143,6 +144,11 @@ const syncPeers = async () => { awareSectors.delete(sector); return; } + if (topic === "player-sector") { + console.log("Got player sector", data); + playerSectors.set(data.id, data.sector); + return; + } }); peerMap.set(peer.name, { request, subscriber, ip: peer.ip, port: peer.wsPort, name: peer.name }); @@ -172,6 +178,7 @@ const syncPeers = async () => { const waitingData = new Map(); const awareSectors = new Map(); +const playerSectors = new Map(); for (let i = 0; i < mapWidth * mapHeight; i++) { awareSectors.set(i, SectorKind.Overworld); @@ -187,6 +194,12 @@ const removeNetworkAwareness = (sector: number) => { pubSocket.send("sector-removal", { sector }); }; +const setPlayerSector = (id: number, sector: number) => { + // console.log("Setting player sector", id, sector); + playerSectors.set(id, sector); + pubSocket.send("player-sector", { id, sector }); +}; + mongoose .connect("mongodb://127.0.0.1:27017/SpaceGame", {}) .catch((err) => { @@ -212,8 +225,4 @@ if (wsPort === 8080) { Routes(); } -setInterval(() => { - console.log(`${name} knows about `, Array.from(awareSectors.keys())); -}, 30 * 1000); - -export { peerMap, waitingData, serversForSectors, awareSectors, makeNetworkAware, removeNetworkAwareness }; +export { peerMap, waitingData, serversForSectors, awareSectors, playerSectors, makeNetworkAware, removeNetworkAwareness, setPlayerSector }; diff --git a/server/routes.ts b/server/routes.ts index a109569..f3accbc 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -19,7 +19,7 @@ import { maxDecimals } from "../src/geometry"; import { genMissions, Mission } from "./missions"; import { canFriendRequest, FriendRequest } from "./friends"; import { findPlayer } from "./stateHelpers"; -import { awareSectors } from "./peers"; +import { awareSectors, playerSectors } from "./peers"; // Http server stuff const root = resolve(__dirname + "/.."); @@ -148,20 +148,24 @@ app.get("/clearAllFriendsAndRequests", async (req, res) => { }); // UNSAFE -app.get("/currentSectorOfPlayer", async (req, res) => { +app.get("/currentSectorOfPlayer", (req, res) => { const idParam = req.query.id; if (!idParam || typeof idParam !== "string") { res.send(JSON.stringify({ error: "Invalid id" })); return; } const id = parseInt(idParam); - const user = await User.findOne({ id }); - const awareness = awareSectors.get(user?.currentSector ?? -1); + const sector = playerSectors.get(id); + if (sector === undefined) { + res.send(JSON.stringify({ value: null })); + return; + } + const awareness = awareSectors.get(sector); if (awareness === undefined) { res.send(JSON.stringify({ value: null })); return; } - res.send(JSON.stringify({ value: { sectorNumber: user?.currentSector, sectorKind: awareness } })); + res.send(JSON.stringify({ value: { sectorNumber: sector, sectorKind: awareness } })); }); app.get("/nameOf", (req, res) => { diff --git a/server/server.ts b/server/server.ts index 57aec5e..3382906 100644 --- a/server/server.ts +++ b/server/server.ts @@ -44,7 +44,7 @@ import { } from "./state"; import { CardinalDirection, mirrorAngleHorizontally, mirrorAngleVertically } from "../src/geometry"; import { allyCount, enemyCount, flashServerMessage } from "./stateHelpers"; -import { serversForSectors } from "./peers"; +import { serversForSectors, setPlayerSector } from "./peers"; import { WebSocket } from "ws"; import { User } from "./dataModels"; import { mapGraph, mapHeight, mapWidth } from "../src/mapLayout"; @@ -269,12 +269,7 @@ const respawnEmptyAsteroids = (state: GlobalState, sector: number) => { }; const warpNonNPCToSector = (ws: WebSocket, player: Player, sector: number) => { - User.findOneAndUpdate({ id: player.id }, { currentSector: sector }, (err, doc) => { - if (err) { - console.log("Warning: unable to update user sector", err); - return; - } - }); + setPlayerSector(player.id, sector); const state = sectors.get(sector); if (state) { ws.send( @@ -332,6 +327,7 @@ const insertRespawnedPlayer = (ws: WebSocket, player: Player, sector: number) => }; const respawnPlayer = (ws: WebSocket, player: Player, sector: number) => { + setPlayerSector(player.id, sector); if (sectors.has(sector)) { insertRespawnedPlayer(ws, player, sector); } else { @@ -389,6 +385,7 @@ const insertSpawnedPlayer = (ws: WebSocket, player: Player, sector: number) => { }; const spawnPlayer = (ws: WebSocket, player: Player, sector: number) => { + setPlayerSector(player.id, sector); if (sectors.has(sector)) { insertSpawnedPlayer(ws, player, sector); } else { diff --git a/server/websockets.ts b/server/websockets.ts index 35afdb4..45439d7 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -114,18 +114,6 @@ export function startWebSocketServer(wsPort: number) { idToWebsocket.set(user.id, ws); assignPlayerIdToConnection(ipAddr, user.id); - - if (!user.sectorsVisited) { - if (user.currentSector >= 0 && user.currentSector < mapWidth * mapHeight) { - user.sectorsVisited = [user.currentSector]; - } else { - user.sectorsVisited = []; - } - } - const sectorsVisited: Set = new Set(user.sectorsVisited); - if (user.currentSector >= 0 && user.currentSector < mapWidth * mapHeight) { - sectorsVisited.add(user.currentSector); - } user.loginCount++; user.loginTimes.push(Date.now()); @@ -144,6 +132,18 @@ export function startWebSocketServer(wsPort: number) { if (!checkpoint) { setupPlayer(user.id, ws, name, user.faction); } else { + if (!user.sectorsVisited) { + if (checkpoint.sector >= 0 && checkpoint.sector < mapWidth * mapHeight) { + user.sectorsVisited = [checkpoint.sector]; + } else { + user.sectorsVisited = []; + } + } + const sectorsVisited: Set = new Set(user.sectorsVisited); + if (checkpoint.sector >= 0 && checkpoint.sector < mapWidth * mapHeight) { + sectorsVisited.add(checkpoint.sector); + } + clients.set(ws, { id: user.id, name, From c41751d30c29d18d9aaf8188737476ed92191a7e Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Mon, 16 Jan 2023 08:05:03 -0600 Subject: [PATCH 25/39] Preparation for sector transfering --- TODO.md | 4 ++-- server/peers.ts | 24 ++++++++++++------------ server/state.ts | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/TODO.md b/TODO.md index 84fe38a..3f5d02d 100644 --- a/TODO.md +++ b/TODO.md @@ -1,7 +1,7 @@ ### Broken by new multi server system -- Current player information -- NPCs +- Current player information (works except logout) +- NPC sector changing - Guardians - Deployment - Alternative background diff --git a/server/peers.ts b/server/peers.ts index 9793328..b172c13 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -18,7 +18,6 @@ interface IPeer { pubPort: number; wsPort: number; updated: Date; - sectors: number[]; } const peerSchema = new mongoose.Schema({ @@ -48,10 +47,6 @@ const peerSchema = new mongoose.Schema({ expires: "2m", default: Date.now, }, - sectors: { - type: [Number], - default: [], - }, }); const Peer = mongoose.model("Peer", peerSchema); @@ -105,6 +100,9 @@ const setupSelf = async () => { pubSocket.bind(`tcp://0.0.0.0:${pubPort}`); syncPeers(); + setTimeout(() => { + syncPeers(); + }, 4 * 1000); interval = setInterval(() => { setPeer(); syncPeers(); @@ -116,6 +114,9 @@ const serversForSectors = new Map(); // Roughly keeps things synced const syncPeers = async () => { const peers = await Peer.find({ name: { $ne: name } }); + for (const [sector, state] of serverSectors) { + makeNetworkAware(sector, state.sectorKind!); + } peers.forEach(async (peer) => { if (peerMap.has(peer.name)) { return; @@ -145,16 +146,12 @@ const syncPeers = async () => { return; } if (topic === "player-sector") { - console.log("Got player sector", data); playerSectors.set(data.id, data.sector); return; } }); peerMap.set(peer.name, { request, subscriber, ip: peer.ip, port: peer.wsPort, name: peer.name }); - peer.sectors.forEach((sector) => { - serversForSectors.set(sector, peer.name); - }); }); for (const name of peerMap.keys()) { if (!peers.find((peer) => peer.name === name)) { @@ -215,9 +212,12 @@ mongoose initInitialAsteroids(); setupTimers(); startWebSocketServer(wsPort); - repSocket.on("message", async (data: SerializedClient, reply: (data: string) => void) => { - waitingData.set(data.key, data); - reply(data.key); + repSocket.on("message", async (topic: string, data: SerializedClient, reply: (data: string) => void) => { + if (topic === "player-transfer") { + waitingData.set(data.key, data); + reply(data.key); + return; + } }); }); diff --git a/server/state.ts b/server/state.ts index 1d78d69..c265b41 100644 --- a/server/state.ts +++ b/server/state.ts @@ -249,7 +249,7 @@ const serverChangePlayer = (ws: WebSocket, player: Player, serverName: string, k console.warn("No server for", serverName); return; } - server.request.send(serialized, (key) => { + server.request.send("player-transfer", serialized, (key) => { console.log(`Received key from ${server.name}`, key); sendServerWarp(key, `ws://${server.ip}:${server.port}`); }); From f1e72b8ea55df1c95e01ea301e839c03a1c09f99 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Mon, 16 Jan 2023 09:56:55 -0600 Subject: [PATCH 26/39] Transfer sectors (without players) --- server/peers.ts | 18 ++++++---- server/routes.ts | 30 +++++++++++----- server/state.ts | 87 ++++++++++++++++++++++++++++++++++++++++++++-- server/testPeer.sh | 2 +- 4 files changed, 118 insertions(+), 19 deletions(-) diff --git a/server/peers.ts b/server/peers.ts index b172c13..f8880e4 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,6 +1,6 @@ import mongoose from "mongoose"; import { initFromDatabase } from "./misc"; -import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, sendServerWarp, SerializedClient } from "./state"; +import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, insertSector, sendServerWarp, SerializableGlobalState, SerializedClient } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; @@ -58,6 +58,7 @@ const pubPort = process.argv[4]; // For development const ip = "127.0.0.1"; const wsPort = parseInt(process.argv[5]); +const httpPort = wsPort + 1; const peerNumber = parseInt(process.argv[6]); assert(peerNumber >= 0 && peerNumber < peerCount); @@ -192,7 +193,6 @@ const removeNetworkAwareness = (sector: number) => { }; const setPlayerSector = (id: number, sector: number) => { - // console.log("Setting player sector", id, sector); playerSectors.set(id, sector); pubSocket.send("player-sector", { id, sector }); }; @@ -212,17 +212,21 @@ mongoose initInitialAsteroids(); setupTimers(); startWebSocketServer(wsPort); - repSocket.on("message", async (topic: string, data: SerializedClient, reply: (data: string) => void) => { + repSocket.on("message", async (topic: string, data: SerializedClient | SerializableGlobalState, reply: (data: any) => void) => { if (topic === "player-transfer") { + data = data as SerializedClient; waitingData.set(data.key, data); reply(data.key); return; } + if (topic === "sector-transfer") { + console.log("Sector transfer"); + reply(insertSector(data as SerializableGlobalState)); + } + console.log("Unknown topic: " + topic); }); }); -if (wsPort === 8080) { - Routes(); -} +Routes(httpPort); -export { peerMap, waitingData, serversForSectors, awareSectors, playerSectors, makeNetworkAware, removeNetworkAwareness, setPlayerSector }; +export { PeerSockets, peerMap, waitingData, serversForSectors, awareSectors, playerSectors, makeNetworkAware, removeNetworkAwareness, setPlayerSector }; diff --git a/server/routes.ts b/server/routes.ts index f3accbc..c2b5e68 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -9,8 +9,8 @@ import cors from "cors"; import { User, Station } from "./dataModels"; import { addNpc } from "../src/npc"; import { market } from "./market"; -import { clients, friendlySectors, idToWebsocket, /* sectorFactions, sectorHasStarbase, */ sectorList, sectors, uid } from "./state"; -import { adminHash, hash, httpPort, sniCallback } from "./settings"; +import { clients, friendlySectors, idToWebsocket, /* sectorFactions, sectorHasStarbase, */ sectorList, sectors, transferSectorToPeer, uid } from "./state"; +import { adminHash, hash, sniCallback } from "./settings"; import { recipeMap, recipes } from "../src/recipes"; import { isFreeArm } from "../src/defs/armaments"; import { createReport, generatePlayedIntervals, statEpoch, sumIntervals } from "./reports"; @@ -19,7 +19,7 @@ import { maxDecimals } from "../src/geometry"; import { genMissions, Mission } from "./missions"; import { canFriendRequest, FriendRequest } from "./friends"; import { findPlayer } from "./stateHelpers"; -import { awareSectors, playerSectors } from "./peers"; +import { awareSectors, peerMap, playerSectors } from "./peers"; // Http server stuff const root = resolve(__dirname + "/.."); @@ -729,7 +729,21 @@ app.get("/selectedMissions", async (req, res) => { res.send(JSON.stringify(missions)); }); -export default () => { +app.get("/transferSector", (req, res) => { + const sectorParam = req.query.sector; + const toParam = req.query.to; + if (!sectorParam || typeof sectorParam !== "string" || !toParam || typeof toParam !== "string") { + res.send("Invalid get parameters"); + return; + } + transferSectorToPeer(parseInt(sectorParam), toParam).then(() => { + res.send("Transfer complete"); + }).catch((err) => { + res.send("Transfer failed: " + err); + }); +}); + +export default (port: number) => { app.use(cors()); if (useSsl) { app.use(express.static("resources")); @@ -737,15 +751,15 @@ export default () => { const httpsServer = new https.Server({ SNICallback: sniCallback}, app); - httpsServer.listen(httpPort, () => { - console.log(`Running secure http server on port ${httpPort}`); + httpsServer.listen(port, () => { + console.log(`Running secure http server on port ${port}`); }); } else { app.use(express.static("..")); const httpServer = createServer(app); - httpServer.listen(httpPort, () => { - console.log(`Running unsecure http server on port ${httpPort}`); + httpServer.listen(port, () => { + console.log(`Running unsecure http server on port ${port}`); }); } }; diff --git a/server/state.ts b/server/state.ts index c265b41..b548164 100644 --- a/server/state.ts +++ b/server/state.ts @@ -1,12 +1,12 @@ import { randomUUID } from "crypto"; -import { GlobalState, Input, Player, randomAsteroids, TargetKind, sectorBounds, TutorialStage, removeCargoFractions, SectorKind } from "../src/game"; +import { GlobalState, Input, Player, randomAsteroids, TargetKind, sectorBounds, TutorialStage, removeCargoFractions, SectorKind, Ballistic, Asteroid, Missile, Collectable, Mine } from "../src/game"; import { WebSocket } from "ws"; import { defs, Faction, initDefs, UnitKind } from "../src/defs"; import { CardinalDirection } from "../src/geometry"; import { initMarket } from "./market"; import { NPC } from "../src/npc"; import { Checkpoint, Station, User } from "./dataModels"; -import { awareSectors, peerMap, waitingData } from "./peers"; +import { awareSectors, peerMap, PeerSockets, waitingData } from "./peers"; import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; import { ISector, Sector } from "./sector"; import { HydratedDocument } from "mongoose"; @@ -249,7 +249,7 @@ const serverChangePlayer = (ws: WebSocket, player: Player, serverName: string, k console.warn("No server for", serverName); return; } - server.request.send("player-transfer", serialized, (key) => { + server.request.send("player-transfer", serialized, (key: string) => { console.log(`Received key from ${server.name}`, key); sendServerWarp(key, `ws://${server.ip}:${server.port}`); }); @@ -368,6 +368,84 @@ const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisit }); }; +type SerializableGlobalState = { + // Players handled separately + projectiles: Ballistic[]; + asteroids: Asteroid[]; + missiles: Missile[]; + collectables: Collectable[]; + mines: Mine[]; + asteroidsDirty?: boolean; + projectileId?: number; + // delayedActions?: DelayedAction[]; + sectorKind?: SectorKind; + sectorNumber: number; +}; + +const serializeGlobalState = (state: GlobalState, sectorNumber: number): SerializableGlobalState => { + return { + projectiles: Array.from(state.projectiles.values()), + asteroids: Array.from(state.asteroids.values()), + missiles: Array.from(state.missiles.values()), + collectables: Array.from(state.collectables.values()), + mines: Array.from(state.mines.values()), + asteroidsDirty: state.asteroidsDirty, + projectileId: state.projectileId, + // delayedActions: state.delayedActions, + sectorKind: state.sectorKind, + sectorNumber, + }; +}; + +const deserializeGlobalState = (state: SerializableGlobalState): GlobalState => { + return { + players: new Map(), + projectiles: new Map(state.projectiles.map((p) => [p.id, p])), + asteroids: new Map(state.asteroids.map((a) => [a.id, a])), + missiles: new Map(state.missiles.map((m) => [m.id, m])), + collectables: new Map(state.collectables.map((c) => [c.id, c])), + mines: new Map(state.mines.map((m) => [m.id, m])), + asteroidsDirty: state.asteroidsDirty || false, + projectileId: state.projectileId || 1, + delayedActions: [], + sectorKind: state.sectorKind || SectorKind.Overworld, + }; +}; + +const insertSector = (state: SerializableGlobalState) => { + if (sectors.has(state.sectorNumber)) { + return "Sector already exists on this server"; + } + const repairedState = deserializeGlobalState(state); + sectors.set(state.sectorNumber, repairedState); + return "OK"; +}; + +const transferSectorToPeer = (sector: number, peer: string) => { + const promise = new Promise((resolve, reject) => { + const state = sectors.get(sector); + if (!state) { + // TODO: We can handle this problem better + reject("Sector not on this server"); + return; + } + const serializableState = serializeGlobalState(state, sector); + const peerSockets = peerMap.get(peer); + if (!peerSockets) { + reject("Peer not found"); + return; + } + peerSockets.request.send("sector-transfer", serializableState, (success: string) => { + if (success === "OK") { + resolve(); + } else { + reject("Transfer failed: " + success); + } + }); + }); + return promise; +}; + export { ServerChangeKind, // ClientData, @@ -375,6 +453,7 @@ export { // serializableClientData, // repairClientData, SerializedClient, + SerializableGlobalState, deserializeClientData, sectorList, sectorAsteroidResources, @@ -405,4 +484,6 @@ export { initSectorResourceData, initStationTeams, stationIdToDefaultTeam, + insertSector, + transferSectorToPeer, }; diff --git a/server/testPeer.sh b/server/testPeer.sh index 5faa932..bd70e31 100755 --- a/server/testPeer.sh +++ b/server/testPeer.sh @@ -2,4 +2,4 @@ node peers.js carter 5555 5565 8080 0 & node peers.js sheppard 5556 5566 8082 1 & -node peers.js oneill 5557 5567 8083 2 & +node peers.js oneill 5557 5567 8084 2 & From 6b0984c8e16fd8924035721fc83a7e54b840fec0 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Mon, 16 Jan 2023 10:53:00 -0600 Subject: [PATCH 27/39] Non npc sector transfers for players --- server/peers.ts | 1 + server/state.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/server/peers.ts b/server/peers.ts index f8880e4..3976870 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -222,6 +222,7 @@ mongoose if (topic === "sector-transfer") { console.log("Sector transfer"); reply(insertSector(data as SerializableGlobalState)); + return; } console.log("Unknown topic: " + topic); }); diff --git a/server/state.ts b/server/state.ts index b548164..c698e0d 100644 --- a/server/state.ts +++ b/server/state.ts @@ -438,6 +438,19 @@ const transferSectorToPeer = (sector: number, peer: string) => { peerSockets.request.send("sector-transfer", serializableState, (success: string) => { if (success === "OK") { resolve(); + sectors.delete(sector); + while (state.players.size > 0) { + const player = state.players.values().next().value; + state.players.delete(player.id); + if (player) { + if (player.isPC) { + const ws = idToWebsocket.get(player.id); + if (ws) { + serverChangePlayer(ws, player, peerSockets.name); + } + } + } + } } else { reject("Transfer failed: " + success); } From 19e52b1736443bbc9d4ce3d5811dac025a81ec63 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Mon, 16 Jan 2023 11:15:53 -0600 Subject: [PATCH 28/39] Stations can transfer --- server/misc.ts | 1 - server/peers.ts | 14 ++++++++++---- server/state.ts | 38 ++++++++++++++++++++++++++++++++++---- server/tutorial.ts | 1 - 4 files changed, 44 insertions(+), 10 deletions(-) diff --git a/server/misc.ts b/server/misc.ts index a3e4dfb..da32da2 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -144,7 +144,6 @@ const initFromDatabase = async () => { slotData: [], team: station.team, side: 0, - isPC: true, v: { x: 0, y: 0 }, iv: { x: 0, y: 0 }, ir: 0, diff --git a/server/peers.ts b/server/peers.ts index 3976870..323b00c 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,6 +1,6 @@ import mongoose from "mongoose"; import { initFromDatabase } from "./misc"; -import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, insertSector, sendServerWarp, SerializableGlobalState, SerializedClient } from "./state"; +import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, insertSector, sendServerWarp, SerializableGlobalState, SerializableClient, SerializablePlayer, insertStation } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; @@ -173,7 +173,7 @@ const syncPeers = async () => { } }; -const waitingData = new Map(); +const waitingData = new Map(); const awareSectors = new Map(); const playerSectors = new Map(); @@ -212,9 +212,10 @@ mongoose initInitialAsteroids(); setupTimers(); startWebSocketServer(wsPort); - repSocket.on("message", async (topic: string, data: SerializedClient | SerializableGlobalState, reply: (data: any) => void) => { + repSocket.on("message", async (topic: string, data: SerializableClient | SerializableGlobalState | SerializablePlayer, reply: (data: any) => void) => { + console.log("Got message: " + topic); if (topic === "player-transfer") { - data = data as SerializedClient; + data = data as SerializableClient; waitingData.set(data.key, data); reply(data.key); return; @@ -224,6 +225,11 @@ mongoose reply(insertSector(data as SerializableGlobalState)); return; } + if (topic === "station-transfer") { + console.log("Station transfer"); + reply(insertStation(data as SerializablePlayer)); + return; + } console.log("Unknown topic: " + topic); }); }); diff --git a/server/state.ts b/server/state.ts index c698e0d..44cbafa 100644 --- a/server/state.ts +++ b/server/state.ts @@ -142,7 +142,7 @@ enum ServerChangeKind { Spawn, } -const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind: ServerChangeKind): SerializedClient | null => { +const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind: ServerChangeKind): SerializableClient | null => { const client = clients.get(ws); if (!client) return null; const target = targets.get(client.id); @@ -162,7 +162,7 @@ const serializeAllClientData = (ws: WebSocket, player: Player, key: string, kind }; }; -type SerializedClient = { +type SerializableClient = { clientData: SerializableClientData; target: [TargetKind, number] | undefined; secondary: number | undefined; @@ -173,7 +173,7 @@ type SerializedClient = { kind: ServerChangeKind; }; -const deserializeClientData = (ws: WebSocket, data: SerializedClient) => { +const deserializeClientData = (ws: WebSocket, data: SerializableClient) => { const client = repairClientData(data.clientData); const sector = sectors.get(client.currentSector); if (!sector) { @@ -439,6 +439,7 @@ const transferSectorToPeer = (sector: number, peer: string) => { if (success === "OK") { resolve(); sectors.delete(sector); + console.log("Number of players in sector is now: " + state.players.size); while (state.players.size > 0) { const player = state.players.values().next().value; state.players.delete(player.id); @@ -447,7 +448,21 @@ const transferSectorToPeer = (sector: number, peer: string) => { const ws = idToWebsocket.get(player.id); if (ws) { serverChangePlayer(ws, player, peerSockets.name); + } else { + console.log("Missing websocket for player: " + player.id); } + continue; + } + console.log("Transferring station: " + player.id); + const def = defs[player.defIndex]; + if (def.kind === UnitKind.Station) { + player.sector = sector; + peerSockets.request.send("station-transfer", player, (success: string) => { + if (success !== "OK") { + console.log("Error transferring station: " + success); + } + }); + continue; } } } @@ -459,14 +474,28 @@ const transferSectorToPeer = (sector: number, peer: string) => { return promise; }; +type SerializablePlayer = Player & { sector: number } + +const insertStation = (station: SerializablePlayer) => { + console.log("Inserting station: " + station.id); + const state = sectors.get(station.sector); + if (!state) { + return "Sector not on this server: " + station.sector; + } + delete (station as any).sector; + state.players.set(station.id, station); + return "OK"; +} + export { ServerChangeKind, // ClientData, // SerializableClientData, // serializableClientData, // repairClientData, - SerializedClient, + SerializableClient, SerializableGlobalState, + SerializablePlayer, deserializeClientData, sectorList, sectorAsteroidResources, @@ -499,4 +528,5 @@ export { stationIdToDefaultTeam, insertSector, transferSectorToPeer, + insertStation, }; diff --git a/server/tutorial.ts b/server/tutorial.ts index 1528c90..e970202 100644 --- a/server/tutorial.ts +++ b/server/tutorial.ts @@ -28,7 +28,6 @@ const spawnTutorialStation = (ws: WebSocket) => { slotData: [], team: player.team, side: 0, - isPC: true, v: { x: 0, y: 0 }, iv: { x: 0, y: 0 }, ir: 0, From 978114ecb019e5162d1a9152d95102ae0b5046e3 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Mon, 16 Jan 2023 14:40:14 -0600 Subject: [PATCH 29/39] Transfer delayed actions between sectors --- server/state.ts | 7 ++++--- src/defs/armaments.ts | 11 ++--------- src/defs/delayedAction.ts | 21 +++++++++++++++++++++ src/game.ts | 8 ++------ 4 files changed, 29 insertions(+), 18 deletions(-) create mode 100644 src/defs/delayedAction.ts diff --git a/server/state.ts b/server/state.ts index 44cbafa..02f0d05 100644 --- a/server/state.ts +++ b/server/state.ts @@ -11,6 +11,7 @@ import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; import { ISector, Sector } from "./sector"; import { HydratedDocument } from "mongoose"; import { mapHeight, mapWidth, ResourceDensity } from "../src/mapLayout"; +import { DelayedAction } from "../src/defs/delayedAction"; // Initialize the definitions (Do this before anything else to avoid problems) initDefs(); @@ -377,7 +378,7 @@ type SerializableGlobalState = { mines: Mine[]; asteroidsDirty?: boolean; projectileId?: number; - // delayedActions?: DelayedAction[]; + delayedActions?: DelayedAction[]; sectorKind?: SectorKind; sectorNumber: number; }; @@ -391,7 +392,7 @@ const serializeGlobalState = (state: GlobalState, sectorNumber: number): Seriali mines: Array.from(state.mines.values()), asteroidsDirty: state.asteroidsDirty, projectileId: state.projectileId, - // delayedActions: state.delayedActions, + delayedActions: state.delayedActions, sectorKind: state.sectorKind, sectorNumber, }; @@ -407,7 +408,7 @@ const deserializeGlobalState = (state: SerializableGlobalState): GlobalState => mines: new Map(state.mines.map((m) => [m.id, m])), asteroidsDirty: state.asteroidsDirty || false, projectileId: state.projectileId || 1, - delayedActions: [], + delayedActions: state.delayedActions || [], sectorKind: state.sectorKind || SectorKind.Overworld, }; }; diff --git a/src/defs/armaments.ts b/src/defs/armaments.ts index f899ce6..eec0863 100644 --- a/src/defs/armaments.ts +++ b/src/defs/armaments.ts @@ -1039,15 +1039,8 @@ const initArmaments = () => { slotData.ammo--; state.delayedActions.push({ frames: 140, - action: (applyEffect: (trigger: EffectTrigger) => void) => { - applyEffect({ effectIndex: 22 }); - for (const otherPlayer of state.players.values()) { - if (otherPlayer === player) { - continue; - } - otherPlayer.disabled = (otherPlayer.disabled ?? 0) + 1200; - } - }, + action: "emp", + data: player.id, }); applyEffect({ effectIndex: 21, from: { kind: EffectAnchorKind.Player, value: player.id } }); } diff --git a/src/defs/delayedAction.ts b/src/defs/delayedAction.ts new file mode 100644 index 0000000..778c7cb --- /dev/null +++ b/src/defs/delayedAction.ts @@ -0,0 +1,21 @@ +import { EffectTrigger, GlobalState } from "../game" + +type DelayedAction = { + frames: number; + action: string; + data: any; +}; + +const delayedActionDefMap = new Map void, data: any) => void>(); + +delayedActionDefMap.set("emp", (state: GlobalState, applyEffect: (trigger: EffectTrigger) => void, data: any) => { + applyEffect({ effectIndex: 22 }); + for (const otherPlayer of state.players.values()) { + if (otherPlayer.id === data) { + continue; + } + otherPlayer.disabled = (otherPlayer.disabled ?? 0) + 1200; + } +}); + +export { DelayedAction, delayedActionDefMap }; diff --git a/src/game.ts b/src/game.ts index 643fd3b..65ff465 100644 --- a/src/game.ts +++ b/src/game.ts @@ -18,6 +18,7 @@ import { mineDefs, AsteroidDef, } from "./defs"; +import { DelayedAction, delayedActionDefMap } from "./defs/delayedAction"; import { projectileDefs } from "./defs/projectiles"; import { Circle, @@ -282,11 +283,6 @@ type EffectTrigger = { to?: EffectAnchor; }; -type DelayedAction = { - frames: number; - action: (applyEffect: (trigger: EffectTrigger) => void) => void; -}; - enum SectorKind { Overworld = 0, Tutorial = 1, @@ -609,7 +605,7 @@ const update = ( const action = state.delayedActions[i]; action.frames--; if (action.frames <= 0) { - action.action(applyEffect); + delayedActionDefMap.get(action.action)(state, applyEffect, action.data); state.delayedActions.splice(i, 1); i--; } From ad580ca117e7d975bbc2558521a970d7def658dc Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Mon, 16 Jan 2023 16:06:05 -0600 Subject: [PATCH 30/39] NPC transfers --- .vscode/settings.json | 1 + server/peers.ts | 9 +- server/state.ts | 64 ++++++++++- src/npc.ts | 251 ++++++++++++++++++++++++++---------------- 4 files changed, 223 insertions(+), 102 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 88ab60a..6ad2815 100755 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,6 +15,7 @@ "Prifecite", "Prifetium", "rasterization", + "Reconstructors", "Respawned", "Russanite", "Russium", diff --git a/server/peers.ts b/server/peers.ts index 323b00c..5ea8886 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,6 +1,6 @@ import mongoose from "mongoose"; import { initFromDatabase } from "./misc"; -import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, insertSector, sendServerWarp, SerializableGlobalState, SerializableClient, SerializablePlayer, insertStation } from "./state"; +import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, insertSector, sendServerWarp, SerializableGlobalState, SerializableClient, SerializablePlayer, insertStation, insertNPC } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; @@ -230,6 +230,13 @@ mongoose reply(insertStation(data as SerializablePlayer)); return; } + if (topic === "npc-transfer") { + console.log("NPC transfer"); + data = data as SerializablePlayer; + console.log(data.npcReconstructionKey); + reply(insertNPC(data)); + return; + }; console.log("Unknown topic: " + topic); }); }); diff --git a/server/state.ts b/server/state.ts index 02f0d05..6140a1f 100644 --- a/server/state.ts +++ b/server/state.ts @@ -1,10 +1,25 @@ import { randomUUID } from "crypto"; -import { GlobalState, Input, Player, randomAsteroids, TargetKind, sectorBounds, TutorialStage, removeCargoFractions, SectorKind, Ballistic, Asteroid, Missile, Collectable, Mine } from "../src/game"; +import { + GlobalState, + Input, + Player, + randomAsteroids, + TargetKind, + sectorBounds, + TutorialStage, + removeCargoFractions, + SectorKind, + Ballistic, + Asteroid, + Missile, + Collectable, + Mine, +} from "../src/game"; import { WebSocket } from "ws"; import { defs, Faction, initDefs, UnitKind } from "../src/defs"; import { CardinalDirection } from "../src/geometry"; import { initMarket } from "./market"; -import { NPC } from "../src/npc"; +import { NPC, npcReconstructors } from "../src/npc"; import { Checkpoint, Station, User } from "./dataModels"; import { awareSectors, peerMap, PeerSockets, waitingData } from "./peers"; import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; @@ -454,7 +469,18 @@ const transferSectorToPeer = (sector: number, peer: string) => { } continue; } - console.log("Transferring station: " + player.id); + if (player.npc) { + player.sector = sector; + player.npcReconstructionKey = Object.getPrototypeOf(player.npc).constructor.name; + player.input = player.npc.input; + player.npc = undefined; + peerSockets.request.send("npc-transfer", player, (success: string) => { + if (success !== "OK") { + console.log("Error transferring npc: " + success); + } + }); + continue; + } const def = defs[player.defIndex]; if (def.kind === UnitKind.Station) { player.sector = sector; @@ -475,7 +501,7 @@ const transferSectorToPeer = (sector: number, peer: string) => { return promise; }; -type SerializablePlayer = Player & { sector: number } +type SerializablePlayer = Player & { sector: number, npcReconstructionKey?: string, input?: Input }; const insertStation = (station: SerializablePlayer) => { console.log("Inserting station: " + station.id); @@ -486,7 +512,34 @@ const insertStation = (station: SerializablePlayer) => { delete (station as any).sector; state.players.set(station.id, station); return "OK"; -} +}; + +const insertNPC = (npc: SerializablePlayer) => { + console.log("Inserting npc: " + npc.id); + const state = sectors.get(npc.sector); + if (!state) { + return "Sector not on this server: " + npc.sector; + } + delete (npc as any).sector; + const npcReconstructionKey = npc.npcReconstructionKey; + delete (npc as any).npcReconstructionKey; + if (!npcReconstructionKey) { + return "Missing npcReconstructionKey"; + } + const constructor = npcReconstructors.get(npcReconstructionKey); + if (!constructor) { + return "Bad npcReconstructionKey: " + npcReconstructionKey; + } + const input = npc.input; + delete (npc as any).input; + if (!input) { + return "Missing input"; + } + npc.npc = constructor(npc); + npc.npc.input = input; + state.players.set(npc.id, npc); + return "OK"; +}; export { ServerChangeKind, @@ -530,4 +583,5 @@ export { insertSector, transferSectorToPeer, insertStation, + insertNPC, }; diff --git a/src/npc.ts b/src/npc.ts index 109530d..cc6dc8e 100644 --- a/src/npc.ts +++ b/src/npc.ts @@ -17,8 +17,11 @@ import { import { findInterceptAimingHeading, findSmallAngleBetween, l2Norm, pointOutsideRectangle, Position, Rectangle } from "./geometry"; import { mapHeight, mapWidth } from "./mapLayout"; import { seekPosition, currentlyFacing, stopPlayer, arrivePosition, arrivePositionUsingAngle, seekPositionUsingAngle } from "./pathing"; +import { sfc32 } from "./prng"; import { recipeMap } from "./recipes"; +const npcReconstructors: Map NPC> = new Map(); + interface NPC { player: Player; input: Input; @@ -531,90 +534,122 @@ class ActiveSwarmer implements NPC { public friendlySectors: number[] = []; - constructor(what: string | number, team: number | Faction, id: number, friendlySectors: number[]) { - let defIndex: number; + constructor(what: string | number | Player, team?: number | Faction, id?: number, friendlySectors?: number[]) { + let noEquip = false; let def: UnitDefinition; - if (typeof what === "string") { - const value = defMap.get(what); - if (value) { - defIndex = value.index; - def = value.def; + if (typeof what === "object") { + this.player = what; + noEquip = true; + def = defs[what.defIndex]; + } else { + let defIndex: number; + if (typeof what === "string") { + const value = defMap.get(what); + if (value) { + defIndex = value.index; + def = value.def; + } else { + throw new Error(`Unknown NPC type: ${what}`); + } } else { - throw new Error(`Unknown NPC type: ${what}`); + defIndex = what; + def = defs[defIndex]; } - } else { - defIndex = what; - def = defs[defIndex]; + this.player = { + position: { x: Math.random() * 5000 - 2500, y: Math.random() * 5000 - 2500 }, + radius: defs[defIndex].radius, + speed: 0, + heading: Math.random() * 2 * Math.PI, + health: defs[defIndex].health, + id: id, + sinceLastShot: [effectiveInfinity], + energy: defs[defIndex].energy, + defIndex: defIndex, + arms: emptyLoadout(defIndex), + slotData: emptySlotData(def), + cargo: [], + credits: 500, + npc: this, + warping: -defs[defIndex].warpTime, + team, + v: { x: 0, y: 0 }, + iv: { x: 0, y: 0 }, + ir: 0, + side: 0, + }; } - this.player = { - position: { x: Math.random() * 5000 - 2500, y: Math.random() * 5000 - 2500 }, - radius: defs[defIndex].radius, - speed: 0, - heading: Math.random() * 2 * Math.PI, - health: defs[defIndex].health, - id: id, - sinceLastShot: [effectiveInfinity], - energy: defs[defIndex].energy, - defIndex: defIndex, - arms: emptyLoadout(defIndex), - slotData: emptySlotData(def), - cargo: [], - credits: 500, - npc: this, - warping: -defs[defIndex].warpTime, - team, - v: { x: 0, y: 0 }, - iv: { x: 0, y: 0 }, - ir: 0, - side: 0, - }; + + let prng = sfc32(id % 10000, 4398, this.player.defIndex, 6987); let mineSlot = def.slots.indexOf(SlotKind.Mine); if (mineSlot === -1) { mineSlot = null; } else { - this.player = equip(this.player, mineSlot, "Proximity Mine", true); + if (!noEquip) { + this.player = equip(this.player, mineSlot, "Proximity Mine", true); + } } const isStrafer = def.name === "Strafer"; - switch (Math.floor(Math.random() * 12)) { + // TEMPORARY + if (!friendlySectors) { + friendlySectors = [0, 1]; + } + + switch (Math.floor(prng() * 12)) { case 0: case 1: case 2: - this.player = equip(this.player, 1, "Javelin Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Javelin Missile", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 3, mineSlot, friendlySectors, isStrafer); break; case 3: case 4: - this.player = equip(this.player, 1, "Tomahawk Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Tomahawk Missile", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 2500, 3, mineSlot, friendlySectors, isStrafer); break; case 5: - this.player = equip(this.player, 1, "Laser Beam", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Laser Beam", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 38, mineSlot, friendlySectors, isStrafer); break; case 6: - this.player = equip(this.player, 1, "Heavy Javelin Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Heavy Javelin Missile", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 700, 3, mineSlot, friendlySectors, isStrafer); break; case 7: case 8: if (isStrafer) { - this.player = equip(this.player, 1, "Plasma Cannon", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Plasma Cannon", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 800, 3, mineSlot, friendlySectors, isStrafer); } else { - this.player = equip(this.player, 1, "Disruptor Cannon", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Disruptor Cannon", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 350, 3, mineSlot, friendlySectors, isStrafer); } break; case 9: case 10: - this.player = equip(this.player, 1, "Plasma Cannon", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Plasma Cannon", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 800, 3, mineSlot, friendlySectors, isStrafer); break; case 11: - this.player = equip(this.player, 1, "EMP Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "EMP Missile", true); + } this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 3, mineSlot, friendlySectors, isStrafer); break; } @@ -638,7 +673,8 @@ class ActiveSwarmer implements NPC { } const addNpc = (state: GlobalState, what: string | number, team: Faction, id: number, friendlySectors: number[]) => { - const npc = new ActiveSwarmer(what, team, id, friendlySectors); + // const npc = new ActiveSwarmer(what, team, id, friendlySectors); + const npc = new ActiveSwarmer(what, team, id, [0, 1]); state.players.set(npc.player.id, npc.player); }; @@ -674,34 +710,41 @@ class TutorialRoamingVenture implements NPC { public targetId: number; - constructor(id: number, where: Position) { - this.lootTable = new LootTable(); - - const { def, index } = defMap.get("Venture"); - + constructor(idOrPlayer: number | Player, where?: Position) { + let id: number; + if (typeof idOrPlayer === "number") { + id = idOrPlayer; + const { def, index } = defMap.get("Venture"); + + + this.player = { + position: randomNearbyPointInSector(where, 1500), + radius: def.radius, + speed: 0, + heading: Math.random() * 2 * Math.PI, + health: def.health, + id: id, + sinceLastShot: [effectiveInfinity], + energy: def.energy, + defIndex: index, + arms: emptyLoadout(index), + slotData: emptySlotData(def), + cargo: [], + credits: 500, + npc: this, + team: Faction.Rogue, + side: 0, + v: { x: 0, y: 0 }, + iv: { x: 0, y: 0 }, + ir: 0, + }; + } else { + id = idOrPlayer.id; + } + const bounds = { x: -3000, y: -3000, width: 6000, height: 6000 }; - this.player = { - position: randomNearbyPointInSector(where, 1500), - radius: def.radius, - speed: 0, - heading: Math.random() * 2 * Math.PI, - health: def.health, - id: id, - sinceLastShot: [effectiveInfinity], - energy: def.energy, - defIndex: index, - arms: emptyLoadout(index), - slotData: emptySlotData(def), - cargo: [], - credits: 500, - npc: this, - team: Faction.Rogue, - side: 0, - v: { x: 0, y: 0 }, - iv: { x: 0, y: 0 }, - ir: 0, - }; + this.lootTable = new LootTable(); this.currentState = aimlessPassiveRoaming(bounds); @@ -745,36 +788,47 @@ class TutorialStrafer implements NPC { public doNotShootYet: boolean = true; - constructor(id: number, where: Position) { - this.lootTable = new LootTable(); + constructor(idOrPlayer: number | Player, where?: Position) { + let noEquip = false; + let id: number; + if (typeof idOrPlayer === "number") { + id = idOrPlayer; + + const { def, index } = defMap.get("Strafer"); + + this.player = { + position: randomNearbyPointInSector(where, 4000), + radius: def.radius, + speed: 0, + heading: Math.random() * 2 * Math.PI, + health: def.health, + id: id, + sinceLastShot: [effectiveInfinity], + energy: def.energy, + defIndex: index, + arms: emptyLoadout(index), + slotData: emptySlotData(def), + cargo: [], + credits: 500, + npc: this, + team: Faction.Rogue, + side: 0, + v: { x: 0, y: 0 }, + iv: { x: 0, y: 0 }, + ir: 0, + }; + } else { + id = idOrPlayer.id; + noEquip = true; + } - const { def, index } = defMap.get("Strafer"); - - this.player = { - position: randomNearbyPointInSector(where, 4000), - radius: def.radius, - speed: 0, - heading: Math.random() * 2 * Math.PI, - health: def.health, - id: id, - sinceLastShot: [effectiveInfinity], - energy: def.energy, - defIndex: index, - arms: emptyLoadout(index), - slotData: emptySlotData(def), - cargo: [], - credits: 500, - npc: this, - team: Faction.Rogue, - side: 0, - v: { x: 0, y: 0 }, - iv: { x: 0, y: 0 }, - ir: 0, - }; + this.lootTable = new LootTable(); this.usesAmmo = true; this.guidedSecondary = false; - this.player = equip(this.player, 1, "Javelin Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Javelin Missile", true); + } } public targetId = 0; @@ -876,6 +930,10 @@ const addTutorialStrafer = (state: GlobalState, id: number, where: Position) => return npc; }; +npcReconstructors.set("ActiveSwarmer", (player: Player) => new ActiveSwarmer(player)); +npcReconstructors.set("TutorialRoamingVenture", (player: Player) => new TutorialRoamingVenture(player)); +npcReconstructors.set("TutorialStrafer", (player: Player) => new TutorialStrafer(player)); + export { NPC, LootTable, @@ -890,4 +948,5 @@ export { runAway, randomCombatManeuver, strafingSwarmCombat, + npcReconstructors, }; From 0a09409e2a3f635f3334a123a92fe74e0763f6f3 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Mon, 16 Jan 2023 22:24:21 -0600 Subject: [PATCH 31/39] Transferable actions --- server/misc.ts | 1 + server/missions.ts | 1 + server/npcs/assassination.ts | 90 +++++++++++++++++++++------------- server/npcs/clearance.ts | 91 ++++++++++++++++++++++------------- server/server.ts | 5 +- server/state.ts | 5 ++ server/transferableActions.ts | 39 +++++++++++++++ server/tutorial.ts | 36 +++++--------- src/game.ts | 51 +++++++++++--------- src/npc.ts | 5 +- 10 files changed, 208 insertions(+), 116 deletions(-) create mode 100644 server/transferableActions.ts diff --git a/server/misc.ts b/server/misc.ts index da32da2..661e1f3 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -78,6 +78,7 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) projectileId: 1, delayedActions: [], sectorKind: SectorKind.Tutorial, + sectorChecks: [], }; makeNetworkAware(tutorialSector, SectorKind.Tutorial); diff --git a/server/missions.ts b/server/missions.ts index c28b5f7..5be5560 100644 --- a/server/missions.ts +++ b/server/missions.ts @@ -166,6 +166,7 @@ const startMissionGameState = (player: Player, mission: HydratedDocument (slot === SlotKind.Utility ? i : -1)).filter((i) => i !== -1); let impulseSlot: null | number = null; if (utilityIndices.length > 0) { - this.player = equip(this.player, utilityIndices[0], "Cloaking Generator", true); + if (!noEquip) { + this.player = equip(this.player, utilityIndices[0], "Cloaking Generator", true); + } } if (utilityIndices.length > 1) { - this.player = equip(this.player, utilityIndices[1], "Impulse Missile", true); + if (!noEquip) { + this.player = equip(this.player, utilityIndices[1], "Impulse Missile", true); + } impulseSlot = utilityIndices[1]; } - switch (Math.floor(Math.random() * 4)) { + const prng = sfc32(this.player.id % 10000, 4398, this.player.defIndex, 6987); + + switch (Math.floor(prng() * 4)) { case 0: case 1: - this.player = equip(this.player, 1, "Javelin Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Javelin Missile", true); + } this.currentState = makeStateGraph(estimateEffectivePrimaryRange(def), true, 3000, mineSlot, impulseSlot); break; case 2: case 3: - this.player = equip(this.player, 1, "Tomahawk Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Tomahawk Missile", true); + } this.currentState = makeStateGraph(estimateEffectivePrimaryRange(def), true, 2500, mineSlot, impulseSlot); break; } @@ -221,6 +243,8 @@ class CloakyAnnoying implements NPC { } } +npcReconstructors.set("CloakyAnnoying", (player: Player) => new CloakyAnnoying(player)); + const spawnAssassinationNPC = (state: GlobalState, npcFaction: Faction, targetId: number) => { const npc = new CloakyAnnoying("Striker", npcFaction, targetId); state.players.set(npc.player.id, npc.player); diff --git a/server/npcs/clearance.ts b/server/npcs/clearance.ts index 759eaca..d2fa6e3 100644 --- a/server/npcs/clearance.ts +++ b/server/npcs/clearance.ts @@ -1,4 +1,4 @@ -import { defMap, defs, emptyLoadout, emptySlotData, Faction, SlotKind } from "../../src/defs"; +import { defMap, defs, emptyLoadout, emptySlotData, Faction, SlotKind, UnitDefinition } from "../../src/defs"; import { estimateEffectivePrimaryRange, projectileDefs } from "../../src/defs/projectiles"; import { effectiveInfinity, equip, findClosestTarget, GlobalState, Input, Player, randomNearbyPointInSector } from "../../src/game"; import { l2Norm } from "../../src/geometry"; @@ -6,6 +6,7 @@ import { idleState, LootTable, NPC, + npcReconstructors, passiveGoToRandomPointInSector, randomCombatManeuver, runAway, @@ -14,6 +15,7 @@ import { strafingSwarmCombat, stupidSwarmCombat, } from "../../src/npc"; +import { sfc32 } from "../../src/prng"; import { uid } from "../state"; const makeStateGraph = ( @@ -103,65 +105,86 @@ class BasicSwarmer implements NPC { public targetId: number; - constructor(ship: string, team: Faction) { + constructor(ship: string | Player, team?: Faction) { this.lootTable = new LootTable(); - const { def, index } = defMap.get(ship)!; - const bounds = { x: -3000, y: -3000, width: 6000, height: 6000 }; - this.player = { - position: randomNearbyPointInSector({ x: 0, y: 0 }, 6000), - radius: def.radius, - speed: 0, - heading: Math.random() * 2 * Math.PI, - health: def.health, - id: uid(), - sinceLastShot: [effectiveInfinity], - energy: def.energy, - defIndex: index, - arms: emptyLoadout(index), - slotData: emptySlotData(def), - cargo: [], - credits: 500, - npc: this, - team, - side: 0, - v: { x: 0, y: 0 }, - iv: { x: 0, y: 0 }, - ir: 0, - }; - + let noEquip = false; + if (typeof ship === "string") { + const { def, index } = defMap.get(ship)!; + + this.player = { + position: randomNearbyPointInSector({ x: 0, y: 0 }, 6000), + radius: def.radius, + speed: 0, + heading: Math.random() * 2 * Math.PI, + health: def.health, + id: uid(), + sinceLastShot: [effectiveInfinity], + energy: def.energy, + defIndex: index, + arms: emptyLoadout(index), + slotData: emptySlotData(def), + cargo: [], + credits: 500, + npc: this, + team: team!, + side: 0, + v: { x: 0, y: 0 }, + iv: { x: 0, y: 0 }, + ir: 0, + }; + } else { + this.player = ship; + noEquip = true; + } + + const def = defs[this.player.defIndex]; let mineSlot: number | null = def.slots.indexOf(SlotKind.Mine); if (mineSlot === -1) { mineSlot = null; } else { - this.player = equip(this.player, mineSlot, "Proximity Mine", true); + if (!noEquip) { + this.player = equip(this.player, mineSlot, "Proximity Mine", true); + } } const isStrafer = def.name === "Strafer"; - switch (Math.floor(Math.random() * 7)) { + const prng = sfc32(this.player.id % 10000, 4398, this.player.defIndex, 6987); + + switch (Math.floor(prng() * 7)) { case 0: case 1: case 2: - this.player = equip(this.player, 1, "Javelin Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Javelin Missile", true); + } this.currentState = makeStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 3, mineSlot, isStrafer); break; case 3: - this.player = equip(this.player, 1, "Tomahawk Missile", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Tomahawk Missile", true); + } this.currentState = makeStateGraph(estimateEffectivePrimaryRange(def), true, 2500, 3, mineSlot, isStrafer); break; case 4: - this.player = equip(this.player, 1, "Laser Beam", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Laser Beam", true); + } this.currentState = makeStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 38, mineSlot, isStrafer); break; case 5: - this.player = equip(this.player, 1, "Disruptor Cannon", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Disruptor Cannon", true); + } this.currentState = makeStateGraph(estimateEffectivePrimaryRange(def), false, 350, 10, mineSlot, isStrafer); break; case 6: - this.player = equip(this.player, 1, "Shotgun", true); + if (!noEquip) { + this.player = equip(this.player, 1, "Shotgun", true); + } this.currentState = makeStateGraph(estimateEffectivePrimaryRange(def), false, 1300, 13, mineSlot, isStrafer); break; } @@ -184,6 +207,8 @@ class BasicSwarmer implements NPC { } } +npcReconstructors.set("BasicSwarmer", (player: Player) => new BasicSwarmer(player)); + const spawnClearanceNPCs = (state: GlobalState, npcFaction: Faction, shipList: string[]) => { for (const ship of shipList) { if (!defMap.has(ship)) { diff --git a/server/server.ts b/server/server.ts index 3382906..b0d2466 100644 --- a/server/server.ts +++ b/server/server.ts @@ -48,6 +48,7 @@ import { serversForSectors, setPlayerSector } from "./peers"; import { WebSocket } from "ws"; import { User } from "./dataModels"; import { mapGraph, mapHeight, mapWidth } from "../src/mapLayout"; +import { transferableActions } from "./transferableActions"; const informDead = (player: Player) => { if (player.npc) { @@ -449,7 +450,9 @@ const setupTimers = () => { (id, detonated) => removeMine(sector, id, detonated), knownRecipes, discoverer, - secondariesToActivate + secondariesToActivate, + transferableActions, + sector ); processAllNpcs(state, sector); findSectorTransitions(state, sector, sectorTransitions); diff --git a/server/state.ts b/server/state.ts index 6140a1f..5856163 100644 --- a/server/state.ts +++ b/server/state.ts @@ -14,6 +14,7 @@ import { Missile, Collectable, Mine, + TransferableAction, } from "../src/game"; import { WebSocket } from "ws"; import { defs, Faction, initDefs, UnitKind } from "../src/defs"; @@ -310,6 +311,7 @@ const initSectors = (serverSectors: number[]) => { projectileId: 1, delayedActions: [], sectorKind: SectorKind.Overworld, + sectorChecks: [], }); }); }; @@ -396,6 +398,7 @@ type SerializableGlobalState = { delayedActions?: DelayedAction[]; sectorKind?: SectorKind; sectorNumber: number; + sectorChecks?: TransferableAction[]; }; const serializeGlobalState = (state: GlobalState, sectorNumber: number): SerializableGlobalState => { @@ -410,6 +413,7 @@ const serializeGlobalState = (state: GlobalState, sectorNumber: number): Seriali delayedActions: state.delayedActions, sectorKind: state.sectorKind, sectorNumber, + sectorChecks: state.sectorChecks, }; }; @@ -425,6 +429,7 @@ const deserializeGlobalState = (state: SerializableGlobalState): GlobalState => projectileId: state.projectileId || 1, delayedActions: state.delayedActions || [], sectorKind: state.sectorKind || SectorKind.Overworld, + sectorChecks: state.sectorChecks || [], }; }; diff --git a/server/transferableActions.ts b/server/transferableActions.ts new file mode 100644 index 0000000..6033551 --- /dev/null +++ b/server/transferableActions.ts @@ -0,0 +1,39 @@ +import { equip, GlobalState, TutorialStage } from "../src/game"; +import { clients, idToWebsocket, sectors } from "./state"; +import { sendTutorialStage } from "./tutorial"; + +const transferableActionsMap = new Map(); + +const transferableActions: ((state: GlobalState, sector: number, data: any) => boolean)[] = []; + +transferableActions.push((state: GlobalState, sector: number, data: { id: number }) => { + let hasNPCs = false; + for (const player of state.players.values()) { + if (player.npc) { + hasNPCs = true; + break; + } + } + if (!hasNPCs) { + const ws = idToWebsocket.get(data.id); + if (ws) { + const client = clients.get(ws); + if (client) { + client.inTutorial = TutorialStage.SwitchSecondary; + sendTutorialStage(ws, TutorialStage.SwitchSecondary); + const state = sectors.get(client.currentSector); + if (state) { + const player = state.players.get(client.id); + if (player) { + state.players.set(client.id, equip(player, 1, "Javelin Missile", true)); + return true; + } + } + } + } + } + return false; +}); +transferableActionsMap.set("tutorialVenture", transferableActions.length - 1); + +export { transferableActions, transferableActionsMap }; diff --git a/server/tutorial.ts b/server/tutorial.ts index e970202..d7f4e15 100644 --- a/server/tutorial.ts +++ b/server/tutorial.ts @@ -5,6 +5,7 @@ import { defMap, Faction } from "../src/defs"; import { addTutorialRoamingVenture, addTutorialStrafer, NPC } from "../src/npc"; import { discoverRecipe, updateClientRecipes } from "./inventory"; import { mapHeight, mapWidth } from "../src/mapLayout"; +import { transferableActionsMap } from "./transferableActions"; const spawnTutorialStation = (ws: WebSocket) => { const client = clients.get(ws); @@ -53,20 +54,7 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = const player = state.players.get(id); if (player) { const npc = addTutorialRoamingVenture(state, uid(), player.position); - (npc as NPC).killed = () => { - const client = clients.get(ws); - if (client) { - client.inTutorial = TutorialStage.SwitchSecondary; - sendTutorialStage(ws, TutorialStage.SwitchSecondary); - const state = sectors.get(client.currentSector); - if (state) { - const player = state.players.get(client.id); - if (player) { - state.players.set(client.id, equip(player, 1, "Javelin Missile", true)); - } - } - } - }; + state.sectorChecks?.push({ index: transferableActionsMap.get("tutorialVenture")!, data: { id } }); } } } @@ -113,16 +101,16 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = const player = state.players.get(client.id); if (player) { const npc = addTutorialStrafer(state, uid(), player.position); - (npc as NPC).killed = () => { - { - const client = clients.get(ws); - if (client) { - client.inTutorial = TutorialStage.Dock; - sendTutorialStage(ws, TutorialStage.Dock); - spawnTutorialStation(ws); - } - } - }; + // (npc as NPC).killed = () => { + // { + // const client = clients.get(ws); + // if (client) { + // client.inTutorial = TutorialStage.Dock; + // sendTutorialStage(ws, TutorialStage.Dock); + // spawnTutorialStation(ws); + // } + // } + // }; client.tutorialNpc = npc; const equippedPlayer = equip(player, 2, "Laser Beam", true); state.players.set(client.id, equippedPlayer); diff --git a/src/game.ts b/src/game.ts index 65ff465..edea379 100644 --- a/src/game.ts +++ b/src/game.ts @@ -289,6 +289,11 @@ enum SectorKind { Mission = 2, } +type TransferableAction = { + index: number; + data: any; +}; + type GlobalState = { players: Map; projectiles: Map; @@ -300,6 +305,7 @@ type GlobalState = { projectileId?: number; delayedActions?: DelayedAction[]; sectorKind?: SectorKind; + sectorChecks?: TransferableAction[]; }; const setCanDockOrRepair = (player: Player, state: GlobalState) => { @@ -484,15 +490,6 @@ const kill = ( if (toDrop !== null) { collectables.push(createCollectableFromDef(toDrop, player.position)); } - if (player.npc.killed) { - // This should be protected with a try/catch because the killed handler can interact with anything - // and the game update loop is not protected against exceptions - try { - player.npc.killed(); - } catch (e) { - console.error(e); - } - } } } }; @@ -596,7 +593,9 @@ const update = ( removeMine: (id: number, detonated: boolean) => void, knownRecipes: Map>, discoverRecipe: (id: number, recipe: string) => void, - secondariesToActivate: Map + secondariesToActivate: Map, + transferableActions: ((state: GlobalState, sector: number, data: any) => boolean)[], + sectorNumber: number ) => { const ret: Mutated = { asteroids: new Set(), collectables: [], mines: [] }; @@ -1067,6 +1066,17 @@ const update = ( for (const collectable of ret.collectables) { state.collectables.set(collectable.id, collectable); } + // Sector checks + if (frameNumber % 60 === 0) { + for (let i = 0; i < state.sectorChecks.length; i++) { + const action = state.sectorChecks[i]; + const toRemove = transferableActions[action.index](state, sectorNumber, action.data); + if (toRemove) { + state.sectorChecks.splice(i, 1); + i--; + } + } + } return ret; }; @@ -1218,14 +1228,7 @@ const applyInputs = (input: Input, player: Player, angle?: number) => { player.omega = player.heading - (player.omega % (2 * Math.PI)); }; -const randomAsteroids = ( - count: number, - bounds: Rectangle, - seed: number, - uid: () => number, - typeDensities: ResourceDensity[], - stations: Player[] -) => { +const randomAsteroids = (count: number, bounds: Rectangle, seed: number, uid: () => number, typeDensities: ResourceDensity[], stations: Player[]) => { if (asteroidDefs.length === 0) { throw new Error("Asteroid defs not initialized"); } @@ -1559,10 +1562,13 @@ type ClientFriendRequest = { outgoing: boolean; }; -type SectorOfPlayerResult = { - sectorNumber: number; - sectorKind: SectorKind; -} | "respawning" | null; +type SectorOfPlayerResult = + | { + sectorNumber: number; + sectorKind: SectorKind; + } + | "respawning" + | null; export { GlobalState, @@ -1589,6 +1595,7 @@ export { ClientFriendRequest, SectorKind, SectorOfPlayerResult, + TransferableAction, update, applyInputs, processAllNpcs, diff --git a/src/npc.ts b/src/npc.ts index cc6dc8e..d0c61d4 100644 --- a/src/npc.ts +++ b/src/npc.ts @@ -31,7 +31,6 @@ interface NPC { lootTable: LootTable; targetId: number; process: (state: GlobalState, sector: number) => void; - killed?: () => void; } type Completed = { @@ -579,7 +578,7 @@ class ActiveSwarmer implements NPC { }; } - let prng = sfc32(id % 10000, 4398, this.player.defIndex, 6987); + const prng = sfc32(id % 10000, 4398, this.player.defIndex, 6987); let mineSlot = def.slots.indexOf(SlotKind.Mine); if (mineSlot === -1) { @@ -715,7 +714,6 @@ class TutorialRoamingVenture implements NPC { if (typeof idOrPlayer === "number") { id = idOrPlayer; const { def, index } = defMap.get("Venture"); - this.player = { position: randomNearbyPointInSector(where, 1500), @@ -740,6 +738,7 @@ class TutorialRoamingVenture implements NPC { }; } else { id = idOrPlayer.id; + this.player = idOrPlayer; } const bounds = { x: -3000, y: -3000, width: 6000, height: 6000 }; From a392c67553e42afa07a94b1df103a5938a19146a Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 17 Jan 2023 09:13:44 -0600 Subject: [PATCH 32/39] Both transferable actions for the tutorial transfer --- server/state.ts | 12 +++++++++++- server/transferableActions.ts | 29 ++++++++++++++++++++++++++++- server/tutorial.ts | 26 ++++++++++++-------------- src/game.ts | 2 ++ src/npc.ts | 6 +++--- 5 files changed, 56 insertions(+), 19 deletions(-) diff --git a/server/state.ts b/server/state.ts index 5856163..3450b84 100644 --- a/server/state.ts +++ b/server/state.ts @@ -128,12 +128,14 @@ type ClientData = { type SerializableClientData = Omit & { sectorsVisited: number[]; + tutorialNpcId?: number; }; const serializableClientData = (client: ClientData): SerializableClientData => { client = { ...client }; + (client as unknown as SerializableClientData).tutorialNpcId = client.tutorialNpc?.player.id; client.tutorialNpc = undefined; - (client as any).sectorsVisited = Array.from(client.sectorsVisited); + (client as unknown as SerializableClientData).sectorsVisited = Array.from(client.sectorsVisited); return client as unknown as SerializableClientData; }; @@ -143,6 +145,13 @@ const repairClientData = (client: SerializableClientData): ClientData => { return ret; }; +const getTutorialNpc = (client: ClientData, state: GlobalState): NPC | undefined => { + if (client.tutorialNpc) return client.tutorialNpc; + const id = (client as unknown as SerializableClientData).tutorialNpcId; + if (id === undefined) return undefined; + return state.players.get(id)?.npc; +}; + const clients: Map = new Map(); const idToWebsocket = new Map(); // Targeting is handled by the clients, but the server needs to know @@ -589,4 +598,5 @@ export { transferSectorToPeer, insertStation, insertNPC, + getTutorialNpc, }; diff --git a/server/transferableActions.ts b/server/transferableActions.ts index 6033551..44cf1a1 100644 --- a/server/transferableActions.ts +++ b/server/transferableActions.ts @@ -1,11 +1,13 @@ import { equip, GlobalState, TutorialStage } from "../src/game"; import { clients, idToWebsocket, sectors } from "./state"; -import { sendTutorialStage } from "./tutorial"; +import { sendTutorialStage, spawnTutorialStation } from "./tutorial"; const transferableActionsMap = new Map(); const transferableActions: ((state: GlobalState, sector: number, data: any) => boolean)[] = []; +// There is technically a bug with this, if the npc hits the boundary of the sector it will not be in the sector for one server tick +// If the check is run in that tick, the tutorial will advance when it shouldn't transferableActions.push((state: GlobalState, sector: number, data: { id: number }) => { let hasNPCs = false; for (const player of state.players.values()) { @@ -36,4 +38,29 @@ transferableActions.push((state: GlobalState, sector: number, data: { id: number }); transferableActionsMap.set("tutorialVenture", transferableActions.length - 1); +// This has the same bug as above +transferableActions.push((state: GlobalState, sector: number, data: { id: number }) => { + let hasNPCs = false; + for (const player of state.players.values()) { + if (player.npc) { + hasNPCs = true; + break; + } + } + if (!hasNPCs) { + const ws = idToWebsocket.get(data.id); + if (ws) { + const client = clients.get(ws); + if (client) { + client.inTutorial = TutorialStage.Dock; + sendTutorialStage(ws, TutorialStage.Dock); + spawnTutorialStation(ws); + return true; + } + } + } + return false; +}); +transferableActionsMap.set("tutorialStrafer", transferableActions.length - 1); + export { transferableActions, transferableActionsMap }; diff --git a/server/tutorial.ts b/server/tutorial.ts index d7f4e15..00c6a39 100644 --- a/server/tutorial.ts +++ b/server/tutorial.ts @@ -1,6 +1,6 @@ import { copyPlayer, effectiveInfinity, equip, Player, randomAsteroids, sectorBounds, TutorialStage } from "../src/game"; import { WebSocket } from "ws"; -import { clients, saveCheckpoint, sectors, tutorialRespawnPoints, uid } from "./state"; +import { clients, getTutorialNpc, saveCheckpoint, sectors, tutorialRespawnPoints, uid } from "./state"; import { defMap, Faction } from "../src/defs"; import { addTutorialRoamingVenture, addTutorialStrafer, NPC } from "../src/npc"; import { discoverRecipe, updateClientRecipes } from "./inventory"; @@ -53,7 +53,7 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = if (state) { const player = state.players.get(id); if (player) { - const npc = addTutorialRoamingVenture(state, uid(), player.position); + addTutorialRoamingVenture(state, uid(), player.position); state.sectorChecks?.push({ index: transferableActionsMap.get("tutorialVenture")!, data: { id } }); } } @@ -101,17 +101,9 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = const player = state.players.get(client.id); if (player) { const npc = addTutorialStrafer(state, uid(), player.position); - // (npc as NPC).killed = () => { - // { - // const client = clients.get(ws); - // if (client) { - // client.inTutorial = TutorialStage.Dock; - // sendTutorialStage(ws, TutorialStage.Dock); - // spawnTutorialStation(ws); - // } - // } - // }; client.tutorialNpc = npc; + npc.player.doNotShootYet = true; + state.sectorChecks?.push({ index: transferableActionsMap.get("tutorialStrafer")!, data: { id } }); const equippedPlayer = equip(player, 2, "Laser Beam", true); state.players.set(client.id, equippedPlayer); tutorialRespawnPoints.set(client.id, copyPlayer(equippedPlayer)); @@ -124,7 +116,13 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = { const client = clients.get(ws); if (client) { - (client.tutorialNpc as any).doNotShootYet = false; + const state = sectors.get(client.currentSector); + if (state) { + const npc = getTutorialNpc(client, state); + if (npc) { + npc.player.doNotShootYet = false; + } + } } } return TutorialStage.LaserBeam; @@ -189,4 +187,4 @@ const sendTutorialStage = (ws: WebSocket, stage: TutorialStage) => { ws.send(JSON.stringify({ type: "tutorialStage", payload: stage })); }; -export { advanceTutorialStage, sendTutorialStage }; +export { advanceTutorialStage, sendTutorialStage, spawnTutorialStation }; diff --git a/src/game.ts b/src/game.ts index edea379..64eb9de 100644 --- a/src/game.ts +++ b/src/game.ts @@ -129,6 +129,8 @@ type Player = Entity & { modelMatrix?: any; // Delayed damage dd?: DelayedDamage[]; + // For the tutorial only + doNotShootYet?: boolean; }; type Asteroid = Circle & { diff --git a/src/npc.ts b/src/npc.ts index d0c61d4..0b12a55 100644 --- a/src/npc.ts +++ b/src/npc.ts @@ -785,8 +785,6 @@ class TutorialStrafer implements NPC { private guidedSecondary: boolean; private usesAmmo: boolean; - public doNotShootYet: boolean = true; - constructor(idOrPlayer: number | Player, where?: Position) { let noEquip = false; let id: number; @@ -815,9 +813,11 @@ class TutorialStrafer implements NPC { v: { x: 0, y: 0 }, iv: { x: 0, y: 0 }, ir: 0, + doNotShootYet: true, }; } else { id = idOrPlayer.id; + this.player = idOrPlayer; noEquip = true; } @@ -913,7 +913,7 @@ class TutorialStrafer implements NPC { stopPlayer(this.player, this.input); } - if (this.doNotShootYet) { + if (this.player.doNotShootYet) { this.input.primary = false; this.input.secondary = false; } From 24d9d3569d9f5ab78c11916c07cd636000c8abc3 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 17 Jan 2023 10:56:24 -0600 Subject: [PATCH 33/39] Tutorial works with transfers (mostly, but enough that I am done with working on it now) --- TODO.md | 1 + server/misc.ts | 12 ++++---- server/peers.ts | 1 + server/state.ts | 3 -- server/tutorial.ts | 69 +++++++++++++++++++++++++++++++++++--------- server/websockets.ts | 33 +++++++++++++-------- src/tutorial.ts | 2 +- 7 files changed, 86 insertions(+), 35 deletions(-) diff --git a/TODO.md b/TODO.md index 3f5d02d..ea270ae 100644 --- a/TODO.md +++ b/TODO.md @@ -9,6 +9,7 @@ ### Server stuff +- The tutorial respawn breaks if the tutorial sector is transferred while the player is dead in the tutorial (low priority) - Anti chat spam (low priority) - Killed/killed by messages?? diff --git a/server/misc.ts b/server/misc.ts index 661e1f3..558785e 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -1,6 +1,6 @@ import { clientUid, defMap, defs, emptyLoadout, Faction } from "../src/defs"; import { effectiveInfinity, Player, SectorInfo, SectorKind, TargetKind, TutorialStage } from "../src/game"; -import { clients, knownRecipes, secondaries, secondariesToActivate, sectorAsteroidResources, sectors, targets, tutorialRespawnPoints } from "./state"; +import { clients, knownRecipes, secondaries, secondariesToActivate, sectorAsteroidResources, sectors, targets } from "./state"; import { WebSocket } from "ws"; import { sendInventory } from "./inventory"; import { sendTutorialStage } from "./tutorial"; @@ -24,10 +24,11 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) const sectorToWarpTo = faction === Faction.Alliance ? 12 : 15; - let tutorialSector = clientUid(); - while (sectors.has(tutorialSector)) { - tutorialSector = clientUid(); - } + // let tutorialSector = clientUid(); + // while (sectors.has(tutorialSector)) { + // tutorialSector = clientUid(); + // } + let tutorialSector = 111222; clients.set(ws, { id: id, @@ -93,7 +94,6 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) sectors.delete(tutorialSector); removeNetworkAwareness(tutorialSector); // removeContiguousSubgraph(mapGraph, tutorialSector); - tutorialRespawnPoints.delete(tutorialSector); }, 1000 * 60 * 60 * 3); targets.set(id, [TargetKind.None, 0]); diff --git a/server/peers.ts b/server/peers.ts index 5ea8886..37ea818 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -215,6 +215,7 @@ mongoose repSocket.on("message", async (topic: string, data: SerializableClient | SerializableGlobalState | SerializablePlayer, reply: (data: any) => void) => { console.log("Got message: " + topic); if (topic === "player-transfer") { + console.log("Player transfer"); data = data as SerializableClient; waitingData.set(data.key, data); reply(data.key); diff --git a/server/state.ts b/server/state.ts index 3450b84..6587126 100644 --- a/server/state.ts +++ b/server/state.ts @@ -367,8 +367,6 @@ const initStationTeams = async () => { } }; -const tutorialRespawnPoints = new Map(); - const saveCheckpoint = (id: number, sector: number, player: Player, sectorsVisited: Set, isLogoff = false) => { if (player.health <= 0) { console.log("Warning: attempt to save checkpoint of dead player"); @@ -581,7 +579,6 @@ export { secondaries, secondariesToActivate, knownRecipes, - tutorialRespawnPoints, uid, saveCheckpoint, friendlySectors, diff --git a/server/tutorial.ts b/server/tutorial.ts index 00c6a39..780d4d5 100644 --- a/server/tutorial.ts +++ b/server/tutorial.ts @@ -1,19 +1,63 @@ import { copyPlayer, effectiveInfinity, equip, Player, randomAsteroids, sectorBounds, TutorialStage } from "../src/game"; import { WebSocket } from "ws"; -import { clients, getTutorialNpc, saveCheckpoint, sectors, tutorialRespawnPoints, uid } from "./state"; +import { clients, getTutorialNpc, saveCheckpoint, sectors, uid } from "./state"; import { defMap, Faction } from "../src/defs"; import { addTutorialRoamingVenture, addTutorialStrafer, NPC } from "../src/npc"; import { discoverRecipe, updateClientRecipes } from "./inventory"; import { mapHeight, mapWidth } from "../src/mapLayout"; import { transferableActionsMap } from "./transferableActions"; +import mongoose from "mongoose"; +import { playerSectors } from "./peers"; -const spawnTutorialStation = (ws: WebSocket) => { +interface ITutorialRespawn { + id: number; + data: string; + time: Date; + sector: number; +} + +const TutorialRespawn = mongoose.model( + "TutorialRespawn", + new mongoose.Schema({ + id: { + type: Number, + required: true, + }, + data: { + type: String, + required: true, + }, + time: { + type: Date, + required: true, + expires: "1d", + }, + sector: { + type: Number, + required: true, + }, + }) +); + +const saveTutorialRespawn = (player: Player) => { + const id = player.id; + const data = JSON.stringify(player); + const sector = playerSectors.get(id); + TutorialRespawn.findOneAndUpdate({ id }, { id, data, time: new Date(), sector }, { upsert: true }, (err) => { + if (err) { + console.error("Unable to save tutorial respawn point", err); + } + }); +}; + +const spawnTutorialStation = async (ws: WebSocket) => { const client = clients.get(ws); if (client) { const sector = sectors.get(client.currentSector); if (sector) { - const player = tutorialRespawnPoints.get(client.id); - if (player) { + const save = await TutorialRespawn.findOne({ id: client.id }); + if (save) { + const player = JSON.parse(save.data); const def = (player.team === Faction.Alliance ? defMap.get("Alliance Starbase") : defMap.get("Confederacy Starbase"))!; const station: Player = { position: { x: 0, y: 0 }, @@ -106,7 +150,7 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = state.sectorChecks?.push({ index: transferableActionsMap.get("tutorialStrafer")!, data: { id } }); const equippedPlayer = equip(player, 2, "Laser Beam", true); state.players.set(client.id, equippedPlayer); - tutorialRespawnPoints.set(client.id, copyPlayer(equippedPlayer)); + saveTutorialRespawn(equippedPlayer); } } } @@ -131,11 +175,7 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = const client = clients.get(ws); if (client) { updateClientRecipes(ws, client.id); - const player = tutorialRespawnPoints.get(id); discoverRecipe(ws, client.id, "Refined Prifetium"); - if (player) { - client.sectorsVisited.add(player.team === Faction.Alliance ? 12 : 15); - } } } return TutorialStage.Deposit; @@ -153,9 +193,12 @@ const advanceTutorialStage = (id: number, stage: TutorialStage, ws: WebSocket) = { const client = clients.get(ws); if (client) { - const player = tutorialRespawnPoints.get(id); - if (player) { - client.sectorsVisited.add(player.team === Faction.Alliance ? 12 : 15); + const state = sectors.get(client.currentSector); + if (state) { + const player = state.players.get(client.id); + if (player) { + client.sectorsVisited.add(player.team === Faction.Alliance ? 12 : 15); + } } } } @@ -187,4 +230,4 @@ const sendTutorialStage = (ws: WebSocket, stage: TutorialStage) => { ws.send(JSON.stringify({ type: "tutorialStage", payload: stage })); }; -export { advanceTutorialStage, sendTutorialStage, spawnTutorialStation }; +export { advanceTutorialStage, sendTutorialStage, spawnTutorialStation, saveTutorialRespawn, TutorialRespawn, ITutorialRespawn }; diff --git a/server/websockets.ts b/server/websockets.ts index 45439d7..fbecae2 100644 --- a/server/websockets.ts +++ b/server/websockets.ts @@ -1,6 +1,7 @@ import { appendFile } from "fs"; import { createServer } from "http"; import https from "https"; +import { HydratedDocument } from "mongoose"; import { inspect } from "util"; import { WebSocketServer, WebSocket } from "ws"; import { useSsl } from "../src/config"; @@ -53,11 +54,10 @@ import { sectorList, sectors, targets, - tutorialRespawnPoints, uid, } from "./state"; import { allyCount, enemyCount, flashServerMessage } from "./stateHelpers"; -import { advanceTutorialStage, sendTutorialStage } from "./tutorial"; +import { advanceTutorialStage, ITutorialRespawn, saveTutorialRespawn, sendTutorialStage, TutorialRespawn } from "./tutorial"; export function startWebSocketServer(wsPort: number) { // Websocket server stuff @@ -297,7 +297,7 @@ export function startWebSocketServer(wsPort: number) { if (!client.inTutorial) { saveCheckpoint(client.id, client.currentSector, player, client.sectorsVisited); } else { - tutorialRespawnPoints.set(client.id, copyPlayer(player)); + saveTutorialRespawn(player); } } } @@ -315,7 +315,7 @@ export function startWebSocketServer(wsPort: number) { if (!client.inTutorial) { saveCheckpoint(client.id, client.currentSector, player, client.sectorsVisited); } else { - tutorialRespawnPoints.set(client.id, copyPlayer(player)); + saveTutorialRespawn(player); } } } @@ -344,14 +344,23 @@ export function startWebSocketServer(wsPort: number) { if (client.inTutorial) { const state = sectors.get(client.currentSector); if (state) { - const playerState = tutorialRespawnPoints.get(client.id); - if (playerState) { - state.players.set(client.id, copyPlayer(playerState)); - } else { - ws.send(JSON.stringify({ type: "error", payload: { message: "Missing tutorial respawn checkpoint" } })); - } - } else { - ws.send(JSON.stringify({ type: "error", payload: { message: "Tutorial sector invalid" } })); + TutorialRespawn.findOne({ id: client.id }, (err, tutorialRespawn: HydratedDocument) => { + if (err) { + ws.send(JSON.stringify({ type: "error", payload: { message: "Server error loading tutorial respawn checkpoint" } })); + console.log("Error loading tutorial respawn checkpoint: " + err); + return; + } + if (tutorialRespawn) { + const playerState = JSON.parse(tutorialRespawn.data); + if (playerState) { + respawnPlayer(ws, playerState, tutorialRespawn.sector); + } else { + ws.send(JSON.stringify({ type: "error", payload: { message: "Missing tutorial respawn checkpoint" } })); + } + } else { + ws.send(JSON.stringify({ type: "error", payload: { message: "Missing tutorial respawn checkpoint" } })); + } + }); } return; } diff --git a/src/tutorial.ts b/src/tutorial.ts index 298a824..30b0492 100644 --- a/src/tutorial.ts +++ b/src/tutorial.ts @@ -67,7 +67,7 @@ tutorialCheckers.set(TutorialStage.Dock, () => { }); tutorialCheckers.set(TutorialStage.Deposit, () => { - return inventory["Prifecite"] > 50; + return inventory["Prifecite"] > 45; }); tutorialCheckers.set(TutorialStage.Manufacture1, () => { From 77f49e78676a1b497ab41e795c4e1f3c36cf8869 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Tue, 17 Jan 2023 12:21:17 -0600 Subject: [PATCH 34/39] Mission completion checks serialization --- server/misc.ts | 9 +---- server/missions.ts | 72 ++++++++++++++--------------------- server/server.ts | 11 ++++-- server/state.ts | 31 +++++++++++++-- server/transferableActions.ts | 21 ++++++++++ src/game.ts | 2 + 6 files changed, 89 insertions(+), 57 deletions(-) diff --git a/server/misc.ts b/server/misc.ts index 558785e..455a1c1 100644 --- a/server/misc.ts +++ b/server/misc.ts @@ -80,6 +80,8 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) delayedActions: [], sectorKind: SectorKind.Tutorial, sectorChecks: [], + dynamic: true, + creationTime: Date.now(), }; makeNetworkAware(tutorialSector, SectorKind.Tutorial); @@ -89,13 +91,6 @@ const setupPlayer = (id: number, ws: WebSocket, name: string, faction: Faction) state.players.set(id, player); setPlayerSector(id, tutorialSector); - // This should be refactored a bit to match how mission sectors are cleaned up - setTimeout(() => { - sectors.delete(tutorialSector); - removeNetworkAwareness(tutorialSector); - // removeContiguousSubgraph(mapGraph, tutorialSector); - }, 1000 * 60 * 60 * 3); - targets.set(id, [TargetKind.None, 0]); secondaries.set(id, 0); secondariesToActivate.set(id, []); diff --git a/server/missions.ts b/server/missions.ts index 5be5560..a59e85e 100644 --- a/server/missions.ts +++ b/server/missions.ts @@ -7,15 +7,13 @@ Some words on how missions work: - Once the player wants to start a mission the sector for the mission is created and added to the sector list for running the game update loop. - At that point the mission is marked as in progress in the database. - Upon mission completion the reward is given out and the mission is marked as completed in the database. - - There is a cleanup timeout that periodically checks to see if the mission sector can be removed from the sector list. - - If the mission sector is no longer accessible then it is removed from the sector list and the mission is marked as failed in the database if it was not completed. */ import { clientUid, Faction, randomDifferentFaction } from "../src/defs"; import { GlobalState, MissionType, Player, SectorKind } from "../src/game"; import mongoose, { HydratedDocument } from "mongoose"; -import { getPlayerFromId, sectors, sectorTriggers, uid } from "./state"; +import { getPlayerFromId, sectors, uid } from "./state"; import { WebSocket } from "ws"; import { enemyCountState, flashServerMessage, sendMissionComplete, setMissionTargetForId } from "./stateHelpers"; import { clearanceNPCsRewards, randomClearanceShip, spawnClearanceNPCs } from "./npcs/clearance"; @@ -23,6 +21,7 @@ import { spawnAssassinationNPC } from "./npcs/assassination"; import { awareSectors, makeNetworkAware, removeNetworkAwareness } from "./peers"; import { createIsolatedSector, removeContiguousSubgraph } from "../src/sectorGraph"; import { mapGraph } from "../src/mapLayout"; +import { transferableActionsMap } from "./transferableActions"; const Schema = mongoose.Schema; @@ -127,34 +126,29 @@ const genMissions = async (assignee: number, forFaction: Faction, count: number, return missions; }; -const missionSectorCleanupInterval = 1000 * 60 * 60 * 3; // 3 hours +// const removeMissionSector = (sectorId: number, missionId: number) => { +// const sectorNonNPCCount = Array.from(sectors.get(sectorId)?.players.values() || []).filter((p) => p.isPC).length; +// if (sectorNonNPCCount === 0) { +// sectors.delete(sectorId); +// removeNetworkAwareness(sectorId); +// // removeContiguousSubgraph(mapGraph, sectorId); +// failMissionIfIncomplete(missionId); +// } else { +// setTimeout(() => { +// removeMissionSector(sectorId, missionId); +// }, missionSectorCleanupInterval); +// } +// }; -const removeMissionSector = (sectorId: number, missionId: number) => { - const sectorNonNPCCount = Array.from(sectors.get(sectorId)?.players.values() || []).filter((p) => p.isPC).length; - if (sectorNonNPCCount === 0) { - sectors.delete(sectorId); - removeNetworkAwareness(sectorId); - // removeContiguousSubgraph(mapGraph, sectorId); - sectorTriggers.delete(sectorId); - failMissionIfIncomplete(missionId); - } else { - setTimeout(() => { - removeMissionSector(sectorId, missionId); - }, missionSectorCleanupInterval); - } -}; - -const setupMissionSectorCleanup = (missionId: number, missionSector: number) => { - setTimeout(() => { - removeMissionSector(missionSector, missionId); - }, missionSectorCleanupInterval); +// const setupMissionSectorCleanup = (missionId: number, missionSector: number) => { +// setTimeout(() => { +// removeMissionSector(missionSector, missionId); +// }, missionSectorCleanupInterval); - return missionSector; -}; +// return missionSector; +// }; const startMissionGameState = (player: Player, mission: HydratedDocument, missionSectorId: number) => { - const missionSector = setupMissionSectorCleanup(mission.id, missionSectorId); - const state = { players: new Map(), projectiles: new Map(), @@ -167,21 +161,18 @@ const startMissionGameState = (player: Player, mission: HydratedDocument { - if (enemyCountState(mission.forFaction, state) === 0) { - completeMission(mission.id); - sectorTriggers.delete(missionSector); - } - }); + state.sectorChecks!.push({ index: transferableActionsMap.get("clearance")!, data: { missionId: mission.id, forFaction: mission.forFaction } }); } else if (mission.type === MissionType.Assassination) { if (!mission.targetId) { console.log("Target ID missing for assassination mission"); @@ -190,19 +181,14 @@ const startMissionGameState = (player: Player, mission: HydratedDocument { - if (!state.players.has(mission.targetId!)) { - completeMission(mission.id); - sectorTriggers.delete(missionSector); - } - }); + state.sectorChecks!.push({ index: transferableActionsMap.get("assassination")!, data: { missionId: mission.id, targetId: mission.targetId } }); } else { console.log("Unsupported mission type: " + mission.type); return; } player.warping = 1; - player.warpTo = missionSector; + player.warpTo = missionSectorId; }; const startPlayerInMission = (ws: WebSocket, player: Player, id: number) => { @@ -341,4 +327,4 @@ const failMissionIfIncomplete = (id: number) => { ); }; -export { Mission, genMissions, MissionType, startPlayerInMission, selectMission }; +export { Mission, genMissions, MissionType, startPlayerInMission, selectMission, completeMission }; diff --git a/server/server.ts b/server/server.ts index b0d2466..bcfc8c6 100644 --- a/server/server.ts +++ b/server/server.ts @@ -33,7 +33,6 @@ import { // sectorGuardianCount, sectorList, sectors, - sectorTriggers, serializeAllClientData, ServerChangeKind, serverChangePlayer, @@ -495,9 +494,13 @@ const setupTimers = () => { } if (frame % 60 === 0) { - const trigger = sectorTriggers.get(sector); - if (trigger) { - trigger(state); + for (let i = 0; i < state.sectorChecks!.length; i++) { + const check = state.sectorChecks![i]; + const toRemove = transferableActions[check.index](state, sector, check.data); + if (toRemove) { + state.sectorChecks!.splice(i, 1); + i--; + } } } } diff --git a/server/state.ts b/server/state.ts index 6587126..6b9213b 100644 --- a/server/state.ts +++ b/server/state.ts @@ -22,7 +22,7 @@ import { CardinalDirection } from "../src/geometry"; import { initMarket } from "./market"; import { NPC, npcReconstructors } from "../src/npc"; import { Checkpoint, Station, User } from "./dataModels"; -import { awareSectors, peerMap, PeerSockets, waitingData } from "./peers"; +import { awareSectors, peerMap, PeerSockets, removeNetworkAwareness, waitingData } from "./peers"; import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; import { ISector, Sector } from "./sector"; import { HydratedDocument } from "mongoose"; @@ -303,7 +303,25 @@ const getPlayerFromId = (id: number) => { }; const sectors: Map = new Map(); -const sectorTriggers: Map void> = new Map(); + +setInterval(() => { + for (const [sectorId, sector] of sectors) { + if (sector.dynamic && (sector.creationTime || 0) + 1000 * 60 * 60 * 3 < Date.now()) { + let hasPC = false; + for (const player of sector.players.values()) { + if (player.isPC) { + hasPC = true; + break; + } + } + if (!hasPC) { + sectors.delete(sectorId); + removeNetworkAwareness(sectorId); + } + } + } +}, 1000 * 60 * 60 * 30); + const warpList: { player: Player; to: number }[] = []; const initSectors = (serverSectors: number[]) => { @@ -321,6 +339,8 @@ const initSectors = (serverSectors: number[]) => { delayedActions: [], sectorKind: SectorKind.Overworld, sectorChecks: [], + dynamic: false, + creationTime: Date.now(), }); }); }; @@ -406,6 +426,8 @@ type SerializableGlobalState = { sectorKind?: SectorKind; sectorNumber: number; sectorChecks?: TransferableAction[]; + dynamic?: boolean; + creationTime?: number; }; const serializeGlobalState = (state: GlobalState, sectorNumber: number): SerializableGlobalState => { @@ -421,6 +443,8 @@ const serializeGlobalState = (state: GlobalState, sectorNumber: number): Seriali sectorKind: state.sectorKind, sectorNumber, sectorChecks: state.sectorChecks, + dynamic: state.dynamic, + creationTime: state.creationTime, }; }; @@ -437,6 +461,8 @@ const deserializeGlobalState = (state: SerializableGlobalState): GlobalState => delayedActions: state.delayedActions || [], sectorKind: state.sectorKind || SectorKind.Overworld, sectorChecks: state.sectorChecks || [], + dynamic: state.dynamic || false, + creationTime: state.creationTime || Date.now(), }; }; @@ -573,7 +599,6 @@ export { clients, idToWebsocket, sectors, - sectorTriggers, warpList, targets, secondaries, diff --git a/server/transferableActions.ts b/server/transferableActions.ts index 44cf1a1..00b60ea 100644 --- a/server/transferableActions.ts +++ b/server/transferableActions.ts @@ -1,5 +1,8 @@ +import { Faction } from "../src/defs"; import { equip, GlobalState, TutorialStage } from "../src/game"; +import { completeMission } from "./missions"; import { clients, idToWebsocket, sectors } from "./state"; +import { enemyCountState } from "./stateHelpers"; import { sendTutorialStage, spawnTutorialStation } from "./tutorial"; const transferableActionsMap = new Map(); @@ -63,4 +66,22 @@ transferableActions.push((state: GlobalState, sector: number, data: { id: number }); transferableActionsMap.set("tutorialStrafer", transferableActions.length - 1); +transferableActions.push((state: GlobalState, sector: number, data: { missionId: number, forFaction: Faction }) => { + if (enemyCountState(data.forFaction, state) === 0) { + completeMission(data.missionId); + return true; + } + return false; +}); +transferableActionsMap.set("clearance", transferableActions.length - 1); + +transferableActions.push((state: GlobalState, sector: number, data: { missionId: number, targetId: number }) => { + if (!state.players.has(data.targetId!)) { + completeMission(data.missionId); + return true; + } + return false; +}); +transferableActionsMap.set("assassination", transferableActions.length - 1); + export { transferableActions, transferableActionsMap }; diff --git a/src/game.ts b/src/game.ts index 64eb9de..68ffb7c 100644 --- a/src/game.ts +++ b/src/game.ts @@ -308,6 +308,8 @@ type GlobalState = { delayedActions?: DelayedAction[]; sectorKind?: SectorKind; sectorChecks?: TransferableAction[]; + dynamic?: boolean; + creationTime?: number; }; const setCanDockOrRepair = (player: Player, state: GlobalState) => { From 4b825ba1f0e1e38565fbf13be2a470ca1b4117b1 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Wed, 18 Jan 2023 14:55:59 -0600 Subject: [PATCH 35/39] Switch rendering of models over to using vaos --- TODO.md | 1 - src/3dDrawing.ts | 581 +++++++++++++++++++------------------ src/3dProjectileDrawing.ts | 72 ++--- src/modelLoader.ts | 14 +- 4 files changed, 356 insertions(+), 312 deletions(-) diff --git a/TODO.md b/TODO.md index ea270ae..7e0a609 100644 --- a/TODO.md +++ b/TODO.md @@ -32,7 +32,6 @@ ### WebGL optimizations that can be done (in estimated order of performance gain) -- move a bunch of the vbos into vaos to avoid setting the attributes over and over - instanced rendering for projectiles - instanced rendering for other things - use ubos for the lights and particle emitters diff --git a/src/3dDrawing.ts b/src/3dDrawing.ts index ea6affb..f9421ad 100644 --- a/src/3dDrawing.ts +++ b/src/3dDrawing.ts @@ -428,41 +428,42 @@ const drawPlayer = (player: Player, lightSources: PointLightData[], isHighlighte } } - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - // gl.bindVertexArray(bufferData.vertexArrayObject); - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + + gl.bindVertexArray(bufferData.vertexArrayObject); // Uniforms gl.activeTexture(gl.TEXTURE0); @@ -528,6 +529,8 @@ const drawPlayer = (player: Player, lightSources: PointLightData[], isHighlighte const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + gl.bindVertexArray(null); + { const numComponents = 3; const type = gl.FLOAT; @@ -618,40 +621,42 @@ const drawTarget = (target: Player, where: Rectangle) => { gl.uniformMatrix4fv(programInfo.uniformLocations.projectionMatrix, false, targetDisplayProjectionMatrix); - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + + gl.bindVertexArray(bufferData.vertexArrayObject); // Uniforms gl.activeTexture(gl.TEXTURE0); @@ -682,6 +687,8 @@ const drawTarget = (target: Player, where: Rectangle) => { const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + gl.bindVertexArray(null); + // Draw the players status bars gl.clear(gl.DEPTH_BUFFER_BIT); @@ -802,48 +809,47 @@ const drawAsteroid = (asteroid: Asteroid, lightSources: PointLightData[], isHigh const def = asteroidDefs[asteroid.defIndex]; let bufferData = models[def.modelIndex]; - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); - + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + gl.bindVertexArray(bufferData.vertexArrayObject); + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // Uniforms gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, bufferData.texture); gl.uniform1i(programInfo.uniformLocations.uSampler, 0); - // gl.uniform3fv(programInfo.uniformLocations.baseColor, teamColorsFloat[player.team]); - // find the closest lights let lights: [number, PointLightData][] = []; for (let i = 0; i < pointLightCount; i++) { @@ -898,6 +904,8 @@ const drawAsteroid = (asteroid: Asteroid, lightSources: PointLightData[], isHigh const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + gl.bindVertexArray(null); + // Draw the resource bar const resources = Math.max(asteroid.resources, 0) / def.resources; gl.uniform3fv(programInfo.uniformLocations.healthAndEnergyAndScale, [resources, 0, def.radius / 10]); @@ -922,40 +930,42 @@ const drawCollectable = (collectable: Collectable, lightSources: PointLightData[ const def = collectableDefs[collectable.index]; const bufferData = models[def.modelIndex]; - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + + gl.bindVertexArray(bufferData.vertexArrayObject); // Uniforms gl.activeTexture(gl.TEXTURE0); @@ -1016,6 +1026,8 @@ const drawCollectable = (collectable: Collectable, lightSources: PointLightData[ const type = gl.UNSIGNED_SHORT; const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + + gl.bindVertexArray(null); }; const drawTargetAsteroid = (asteroid: Asteroid, where: Rectangle) => { @@ -1052,40 +1064,42 @@ const drawTargetAsteroid = (asteroid: Asteroid, where: Rectangle) => { gl.uniformMatrix4fv(programInfo.uniformLocations.projectionMatrix, false, targetDisplayProjectionMatrix); - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + + gl.bindVertexArray(bufferData.vertexArrayObject); // Uniforms gl.activeTexture(gl.TEXTURE0); @@ -1117,6 +1131,8 @@ const drawTargetAsteroid = (asteroid: Asteroid, where: Rectangle) => { const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + gl.bindVertexArray(null); + // Draw the resource bar const resources = Math.max(asteroid.resources, 0) / def.resources; gl.uniform3fv(programInfo.uniformLocations.healthAndEnergyAndScale, [resources, 0, def.radius / 10]); @@ -1209,40 +1225,42 @@ const drawMine = (mine: Mine, lightSources: PointLightData[], desaturation = 0) const def = mineDefs[mine.defIndex]; let bufferData = models[def.modelIndex]; - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + + gl.bindVertexArray(bufferData.vertexArrayObject); // Uniforms gl.activeTexture(gl.TEXTURE0); @@ -1298,6 +1316,8 @@ const drawMine = (mine: Mine, lightSources: PointLightData[], desaturation = 0) const type = gl.UNSIGNED_SHORT; const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + + gl.bindVertexArray(null); }; const clientMissileUpdate = (missile: Missile) => { @@ -1315,40 +1335,42 @@ const drawMissile = (missile: Missile, lightSources: PointLightData[]) => { const def = missileDefs[missile.defIndex]; let bufferData = models[def.modelIndex]; - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + + gl.bindVertexArray(bufferData.vertexArrayObject); // Uniforms gl.activeTexture(gl.TEXTURE0); @@ -1404,6 +1426,8 @@ const drawMissile = (missile: Missile, lightSources: PointLightData[]) => { const type = gl.UNSIGNED_SHORT; const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + + gl.bindVertexArray(null); }; const setLineUniforms = () => { @@ -1473,40 +1497,42 @@ const doPreviewRendering = (previewRequest: PreviewRequest) => { gl.uniformMatrix4fv(programInfo.uniformLocations.projectionMatrix, false, targetDisplayProjectionMatrix); - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, bufferData.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, bufferData.indexBuffer); + + gl.bindVertexArray(bufferData.vertexArrayObject); // Uniforms gl.activeTexture(gl.TEXTURE0); @@ -1536,6 +1562,9 @@ const doPreviewRendering = (previewRequest: PreviewRequest) => { const pixelData = new Uint8Array(4 * 800 * 800); gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + + gl.bindVertexArray(null); + gl.readPixels(0, canvas.height - 800, 800, 800, gl.RGBA, gl.UNSIGNED_BYTE, pixelData); gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT); diff --git a/src/3dProjectileDrawing.ts b/src/3dProjectileDrawing.ts index e39d584..edf76cc 100644 --- a/src/3dProjectileDrawing.ts +++ b/src/3dProjectileDrawing.ts @@ -6,40 +6,42 @@ import { Ballistic } from "./game"; import { Model, modelMap } from "./modelLoader"; const drawer = (projectile: Ballistic, model: Model, randomizeMatrix = false) => { - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, model.vertexBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); - } - - { - const numComponents = 2; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, model.vertexTextureCoordBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); - } - - { - const numComponents = 3; - const type = gl.FLOAT; - const normalize = false; - const stride = 0; - const offset = 0; - gl.bindBuffer(gl.ARRAY_BUFFER, model.vertexNormalBuffer); - gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); - gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); - } - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, model.indexBuffer); + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, model.vertexBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexPosition, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexPosition); + // } + + // { + // const numComponents = 2; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, model.vertexTextureCoordBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.textureCoord, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.textureCoord); + // } + + // { + // const numComponents = 3; + // const type = gl.FLOAT; + // const normalize = false; + // const stride = 0; + // const offset = 0; + // gl.bindBuffer(gl.ARRAY_BUFFER, model.vertexNormalBuffer); + // gl.vertexAttribPointer(programInfo.attribLocations.vertexNormal, numComponents, type, normalize, stride, offset); + // gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); + // } + + // gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, model.indexBuffer); + + gl.bindVertexArray(model.vertexArrayObject); gl.activeTexture(gl.TEXTURE0); gl.bindTexture(gl.TEXTURE_2D, model.texture); @@ -70,6 +72,8 @@ const drawer = (projectile: Ballistic, model: Model, randomizeMatrix = false) => const type = gl.UNSIGNED_SHORT; const offset = 0; gl.drawElements(gl.TRIANGLES, vertexCount, type, offset); + + gl.bindVertexArray(null); }; const drawPrimary = (projectile: Ballistic) => { diff --git a/src/modelLoader.ts b/src/modelLoader.ts index cff0ab5..aa5ee22 100644 --- a/src/modelLoader.ts +++ b/src/modelLoader.ts @@ -197,6 +197,17 @@ class Model { this.indexBuffer = gl.createBuffer(); gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer); gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(this.indices), gl.STATIC_DRAW); + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null); + + // find the max index + // let maxIndex = 0; + // for (const index of this.indices) { + // if (index > maxIndex) { + // maxIndex = index; + // } + // } + + // console.log(`Max index: ${maxIndex}, num vertices: ${this.vertices.length / 3}, num indices: ${this.indices.length}`); this.texture = gl.createTexture(); gl.bindTexture(gl.TEXTURE_2D, this.texture); @@ -245,6 +256,8 @@ class Model { gl.enableVertexAttribArray(programInfo.attribLocations.vertexNormal); } + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this.indexBuffer); + gl.bindVertexArray(null); } } @@ -264,7 +277,6 @@ const loadObj = (file: string, gl: WebGL2RenderingContext, programInfo: any) => }); }; -// Shouldn't be in this file, but it is const loadTexture = (file: string, gl: WebGL2RenderingContext) => { return new Promise((resolve, reject) => { const texture = gl.createTexture(); From 4df98c4176e7b0859144b8a7cbc04085cfcc3040 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Thu, 19 Jan 2023 11:33:58 -0600 Subject: [PATCH 36/39] Re-enable overworld npcs --- server/initMap.ts | 29 ++++++++- server/npcs/assassination.ts | 2 +- server/npcs/clearance.ts | 2 +- {src => server/npcs}/npc.ts | 116 +++++++++++++++-------------------- server/peers.ts | 4 +- server/routes.ts | 6 +- server/sector.ts | 26 +++++++- server/server.ts | 77 ++++++++++++++--------- server/state.ts | 94 ++++++++-------------------- server/tutorial.ts | 2 +- src/game.ts | 18 +++++- 11 files changed, 196 insertions(+), 180 deletions(-) rename {src => server/npcs}/npc.ts (88%) diff --git a/server/initMap.ts b/server/initMap.ts index 3f94b5e..5bf5b61 100644 --- a/server/initMap.ts +++ b/server/initMap.ts @@ -1,6 +1,7 @@ // Standalone tool for initializing the map and the stations in the database import mongoose from "mongoose"; +import { Faction } from "../src/defs"; import { asteroidDefMap, initAsteroids } from "../src/defs/asteroids"; import { mapHeight, mapWidth, ResourceDensity } from "../src/mapLayout"; import { Sector } from "./sector"; @@ -28,15 +29,37 @@ const randomResources = () => { const sectorCount = mapWidth * mapHeight; -mongoose.connect("mongodb://127.0.0.1:27017/SpaceGame", {}) +const factionLookup = new Array(sectorCount).fill(Faction.Alliance); + +factionLookup[0] = Faction.Scourge; +factionLookup[5] = Faction.Scourge; +factionLookup[12] = Faction.Scourge; +factionLookup[17] = Faction.Scourge; + +factionLookup[2] = Faction.Rogue; +factionLookup[3] = Faction.Rogue; +factionLookup[14] = Faction.Rogue; +factionLookup[15] = Faction.Rogue; + +factionLookup[4] = Faction.Confederation; +factionLookup[9] = Faction.Confederation; +factionLookup[10] = Faction.Confederation; +factionLookup[11] = Faction.Confederation; +factionLookup[16] = Faction.Confederation; + +mongoose + .connect("mongodb://127.0.0.1:27017/SpaceGame", {}) .catch((err) => { console.log("Error connecting to database: " + err); - }).then( async () => { + }) + .then(async () => { for (let i = 0; i < sectorCount; i++) { const sector = new Sector({ id: i, resources: randomResources(), - count: Math.floor(Math.random() * 30) + 5, + asteroidCount: Math.floor(Math.random() * 30) + 5, + faction: factionLookup[i], + guardianCount: 5, }); await sector.save(); } diff --git a/server/npcs/assassination.ts b/server/npcs/assassination.ts index acac728..a848d12 100644 --- a/server/npcs/assassination.ts +++ b/server/npcs/assassination.ts @@ -15,7 +15,7 @@ import { State, strafingSwarmCombat, stupidSwarmCombat, -} from "../../src/npc"; +} from "./npc"; import { sfc32 } from "../../src/prng"; import { uid } from "../state"; diff --git a/server/npcs/clearance.ts b/server/npcs/clearance.ts index d2fa6e3..41973cf 100644 --- a/server/npcs/clearance.ts +++ b/server/npcs/clearance.ts @@ -14,7 +14,7 @@ import { State, strafingSwarmCombat, stupidSwarmCombat, -} from "../../src/npc"; +} from "./npc"; import { sfc32 } from "../../src/prng"; import { uid } from "../state"; diff --git a/src/npc.ts b/server/npcs/npc.ts similarity index 88% rename from src/npc.ts rename to server/npcs/npc.ts index 0b12a55..b34ce5b 100644 --- a/src/npc.ts +++ b/server/npcs/npc.ts @@ -1,6 +1,6 @@ -import { armDefs, collectableDefMap, defMap, defs, emptyLoadout, emptySlotData, Faction, SlotKind, UnitDefinition, UnitKind } from "./defs"; -import { defaultLootTable, LootTable } from "./defs/collectables"; -import { estimateEffectivePrimaryRange, projectileDefs } from "./defs/projectiles"; +import { armDefs, collectableDefMap, defMap, defs, emptyLoadout, emptySlotData, Faction, SlotKind, UnitDefinition, UnitKind } from "../../src/defs"; +import { defaultLootTable, LootTable } from "../../src/defs/collectables"; +import { estimateEffectivePrimaryRange, projectileDefs } from "../../src/defs/projectiles"; import { applyInputs, effectiveInfinity, @@ -13,26 +13,17 @@ import { randomNearbyPointInSector, sectorBounds, sectorDelta, -} from "./game"; -import { findInterceptAimingHeading, findSmallAngleBetween, l2Norm, pointOutsideRectangle, Position, Rectangle } from "./geometry"; -import { mapHeight, mapWidth } from "./mapLayout"; -import { seekPosition, currentlyFacing, stopPlayer, arrivePosition, arrivePositionUsingAngle, seekPositionUsingAngle } from "./pathing"; -import { sfc32 } from "./prng"; -import { recipeMap } from "./recipes"; +} from "../../src/game"; +import { findInterceptAimingHeading, findSmallAngleBetween, l2Norm, pointOutsideRectangle, Position, Rectangle } from "../../src/geometry"; +import { mapHeight, mapWidth } from "../../src/mapLayout"; +import { seekPosition, currentlyFacing, stopPlayer, arrivePosition, arrivePositionUsingAngle, seekPositionUsingAngle } from "../../src/pathing"; +import { sfc32 } from "../../src/prng"; +import { recipeMap } from "../../src/recipes"; +import { NPC } from "../../src/game"; +import { factionSectors } from "../state"; const npcReconstructors: Map NPC> = new Map(); -interface NPC { - player: Player; - input: Input; - angle: number | undefined; - selectedSecondary: number; - secondariesToFire: number[]; - lootTable: LootTable; - targetId: number; - process: (state: GlobalState, sector: number) => void; -} - type Completed = { completed?: boolean; }; @@ -56,7 +47,7 @@ abstract class State { return null; } - abstract process: (state: GlobalState, npc: NPC, sector: number, target: Player | undefined) => State; + abstract process: (state: GlobalState, npc: NPC, sector: number, target: Player | undefined) => State | undefined; abstract onEnter: (npc: NPC) => void; } @@ -416,8 +407,8 @@ const warpTo = (sectorList: number[]) => { return new (class extends State { process = (state: GlobalState, npc: NPC, sector: number, target) => { if (this.memory.needWarp) { - const sectors = sectorList.filter((sector) => sector !== sector); - if (npc.player.warping < 1) { + const sectors = sectorList.filter((sec) => sec !== sector); + if (npc.player.warping! < 1) { npc.player.warping = 1; } npc.player.warpTo = sectors[Math.floor(Math.random() * sectors.length)]; @@ -456,18 +447,18 @@ const makeBasicStateGraph = ( idle.transitions.push({ trigger: () => Math.random() < 0.01, state: passiveGoToSector }); idle.transitions.push({ trigger: () => Math.random() < 0.02, state: randomWarp }); passiveGoTo.transitions.push({ trigger: (_, __, ___, target) => !!target, state: swarm }); - passiveGoTo.transitions.push({ trigger: (_, __, memory) => memory.completed, state: idle }); + passiveGoTo.transitions.push({ trigger: (_, __, memory) => !!memory.completed, state: idle }); passiveGoToSector.transitions.push({ trigger: (_, __, ___, target) => !!target, state: swarm }); - passiveGoToSector.transitions.push({ trigger: (_, __, memory) => memory.completed, state: passiveGoTo }); + passiveGoToSector.transitions.push({ trigger: (_, __, memory) => !!memory.completed, state: passiveGoTo }); swarm.transitions.push({ trigger: (_, __, ___, target) => !target, state: idle }); if (!isStrafer) { const randomManeuver = randomCombatManeuver(primaryRange, secondaryGuided, secondaryRange, energyThreshold, mineSlot); swarm.transitions.push({ - trigger: (_, npc, ___, target) => Math.random() < 0.008 && l2Norm(npc.player.position, target.position) < 500, + trigger: (_, npc, ___, target) => Math.random() < 0.008 && l2Norm(npc.player.position, target!.position) < 500, state: randomManeuver, }); randomManeuver.transitions.push({ trigger: (_, __, ___, target) => !target, state: idle }); - randomManeuver.transitions.push({ trigger: (_, __, memory) => memory.completed, state: swarm }); + randomManeuver.transitions.push({ trigger: (_, __, memory) => !!memory.completed, state: swarm }); randomManeuver.transitions.push({ trigger: () => Math.random() < 0.005, state: swarm }); } else { const strafeSwarm = strafingSwarmCombat( @@ -480,7 +471,7 @@ const makeBasicStateGraph = ( projectileDefs[0].range ); strafeSwarm.transitions.push({ trigger: (_, __, ___, target) => !target, state: idle }); - strafeSwarm.transitions.push({ trigger: (_, __, memory) => memory.completed, state: swarm }); + strafeSwarm.transitions.push({ trigger: (_, __, memory) => !!memory.completed, state: swarm }); swarm.transitions.push({ trigger: (_, npc, ___, target) => Math.random() < 0.05 && !!target && l2Norm(target.position, npc.player.position) < primaryRange, state: strafeSwarm, @@ -519,7 +510,7 @@ class ActiveSwarmer implements NPC { primary: false, secondary: false, }; - public angle: number = undefined; + public angle: number | undefined = undefined; public selectedSecondary = 1; @@ -531,9 +522,7 @@ class ActiveSwarmer implements NPC { public targetId: number; - public friendlySectors: number[] = []; - - constructor(what: string | number | Player, team?: number | Faction, id?: number, friendlySectors?: number[]) { + constructor(what: string | number | Player, team?: number | Faction, id?: number) { let noEquip = false; let def: UnitDefinition; if (typeof what === "object") { @@ -560,7 +549,7 @@ class ActiveSwarmer implements NPC { speed: 0, heading: Math.random() * 2 * Math.PI, health: defs[defIndex].health, - id: id, + id: id!, sinceLastShot: [effectiveInfinity], energy: defs[defIndex].energy, defIndex: defIndex, @@ -569,8 +558,8 @@ class ActiveSwarmer implements NPC { cargo: [], credits: 500, npc: this, - warping: -defs[defIndex].warpTime, - team, + warping: -defs[defIndex].warpTime!, + team: team!, v: { x: 0, y: 0 }, iv: { x: 0, y: 0 }, ir: 0, @@ -578,9 +567,9 @@ class ActiveSwarmer implements NPC { }; } - const prng = sfc32(id % 10000, 4398, this.player.defIndex, 6987); + const prng = sfc32(id! % 10000, 4398, this.player.defIndex, 6987); - let mineSlot = def.slots.indexOf(SlotKind.Mine); + let mineSlot: number | null = def.slots.indexOf(SlotKind.Mine); if (mineSlot === -1) { mineSlot = null; } else { @@ -591,11 +580,6 @@ class ActiveSwarmer implements NPC { const isStrafer = def.name === "Strafer"; - // TEMPORARY - if (!friendlySectors) { - friendlySectors = [0, 1]; - } - switch (Math.floor(prng() * 12)) { case 0: case 1: @@ -603,26 +587,26 @@ class ActiveSwarmer implements NPC { if (!noEquip) { this.player = equip(this.player, 1, "Javelin Missile", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 3, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 3, mineSlot, factionSectors[this.player.team], isStrafer); break; case 3: case 4: if (!noEquip) { this.player = equip(this.player, 1, "Tomahawk Missile", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 2500, 3, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 2500, 3, mineSlot, factionSectors[this.player.team], isStrafer); break; case 5: if (!noEquip) { this.player = equip(this.player, 1, "Laser Beam", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 38, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 38, mineSlot, factionSectors[this.player.team], isStrafer); break; case 6: if (!noEquip) { this.player = equip(this.player, 1, "Heavy Javelin Missile", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 700, 3, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 700, 3, mineSlot, factionSectors[this.player.team], isStrafer); break; case 7: case 8: @@ -630,12 +614,12 @@ class ActiveSwarmer implements NPC { if (!noEquip) { this.player = equip(this.player, 1, "Plasma Cannon", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 800, 3, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 800, 3, mineSlot, factionSectors[this.player.team], isStrafer); } else { if (!noEquip) { this.player = equip(this.player, 1, "Disruptor Cannon", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 350, 3, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 350, 3, mineSlot, factionSectors[this.player.team], isStrafer); } break; case 9: @@ -643,13 +627,13 @@ class ActiveSwarmer implements NPC { if (!noEquip) { this.player = equip(this.player, 1, "Plasma Cannon", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 800, 3, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), false, 800, 3, mineSlot, factionSectors[this.player.team], isStrafer); break; case 11: if (!noEquip) { this.player = equip(this.player, 1, "EMP Missile", true); } - this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 3, mineSlot, friendlySectors, isStrafer); + this.currentState = makeBasicStateGraph(estimateEffectivePrimaryRange(def), true, 3000, 3, mineSlot, factionSectors[this.player.team], isStrafer); break; } @@ -661,19 +645,19 @@ class ActiveSwarmer implements NPC { public process(state: GlobalState, sector: number) { let target: Player | undefined = undefined; const def = defs[this.player.defIndex]; - const newTarget = findClosestTarget(this.player, state, def.scanRange, true); + const newTarget = findClosestTarget(this.player, state, def.scanRange!, true); this.targetId = newTarget?.id ?? 0; target = newTarget; if (!target && this.targetId) { target = state.players.get(this.targetId); } - this.currentState = this.currentState.process(state, this, sector, target); + this.currentState = this.currentState.process(state, this, sector, target) as State; } } -const addNpc = (state: GlobalState, what: string | number, team: Faction, id: number, friendlySectors: number[]) => { +const addNpc = (state: GlobalState, what: string | number, team: Faction, id: number) => { // const npc = new ActiveSwarmer(what, team, id, friendlySectors); - const npc = new ActiveSwarmer(what, team, id, [0, 1]); + const npc = new ActiveSwarmer(what, team, id); state.players.set(npc.player.id, npc.player); }; @@ -682,7 +666,7 @@ const addNpc = (state: GlobalState, what: string | number, team: Faction, id: nu const aimlessPassiveRoaming = (bounds: Rectangle) => { const roam = passiveGoToRandomPointInSector(bounds); roam.transitions.push({ trigger: () => Math.random() < 0.05, state: roam }); - roam.transitions.push({ trigger: (_, __, memory) => memory.completed, state: roam }); + roam.transitions.push({ trigger: (_, __, memory) => !!memory.completed, state: roam }); return roam; }; @@ -697,7 +681,7 @@ class TutorialRoamingVenture implements NPC { primary: false, secondary: false, }; - public angle: number = undefined; + public angle: number | undefined = undefined; public selectedSecondary = 1; @@ -713,10 +697,10 @@ class TutorialRoamingVenture implements NPC { let id: number; if (typeof idOrPlayer === "number") { id = idOrPlayer; - const { def, index } = defMap.get("Venture"); - + const { def, index } = defMap.get("Venture")!; + this.player = { - position: randomNearbyPointInSector(where, 1500), + position: randomNearbyPointInSector(where!, 1500), radius: def.radius, speed: 0, heading: Math.random() * 2 * Math.PI, @@ -740,7 +724,7 @@ class TutorialRoamingVenture implements NPC { id = idOrPlayer.id; this.player = idOrPlayer; } - + const bounds = { x: -3000, y: -3000, width: 6000, height: 6000 }; this.lootTable = new LootTable(); @@ -753,7 +737,7 @@ class TutorialRoamingVenture implements NPC { private currentState: State; public process(state: GlobalState, sector: number) { - this.currentState = this.currentState.process(state, this, sector, undefined); + this.currentState = this.currentState.process(state, this, sector, undefined) as State; } } @@ -774,7 +758,7 @@ class TutorialStrafer implements NPC { primary: false, secondary: false, }; - public angle: number = undefined; + public angle: number | undefined = undefined; public selectedSecondary = 1; @@ -791,10 +775,10 @@ class TutorialStrafer implements NPC { if (typeof idOrPlayer === "number") { id = idOrPlayer; - const { def, index } = defMap.get("Strafer"); - + const { def, index } = defMap.get("Strafer")!; + this.player = { - position: randomNearbyPointInSector(where, 4000), + position: randomNearbyPointInSector(where!, 4000), radius: def.radius, speed: 0, heading: Math.random() * 2 * Math.PI, @@ -840,7 +824,7 @@ class TutorialStrafer implements NPC { let target: Player | undefined = undefined; const def = defs[this.player.defIndex]; if (this.frame % 60 === 0) { - const newTarget = findClosestTarget(this.player, state, def.scanRange, true, true); + const newTarget = findClosestTarget(this.player, state, def.scanRange!, true, true); this.targetId = newTarget?.id ?? 0; target = newTarget; } diff --git a/server/peers.ts b/server/peers.ts index 37ea818..e84414e 100644 --- a/server/peers.ts +++ b/server/peers.ts @@ -1,6 +1,6 @@ import mongoose from "mongoose"; import { initFromDatabase } from "./misc"; -import { initInitialAsteroids, initSectorResourceData, initSectors, initStationTeams, insertSector, sendServerWarp, SerializableGlobalState, SerializableClient, SerializablePlayer, insertStation, insertNPC } from "./state"; +import { initInitialAsteroids, initSectorData, initSectors, initStationTeams, insertSector, sendServerWarp, SerializableGlobalState, SerializableClient, SerializablePlayer, insertStation, insertNPC } from "./state"; import Routes from "./routes"; import { startWebSocketServer } from "./websockets"; import { setupTimers } from "./server"; @@ -207,7 +207,7 @@ mongoose await setupSelf(); initSectors(sectors); await initFromDatabase(); - await initSectorResourceData(); + await initSectorData(); await initStationTeams(); initInitialAsteroids(); setupTimers(); diff --git a/server/routes.ts b/server/routes.ts index c2b5e68..f859378 100644 --- a/server/routes.ts +++ b/server/routes.ts @@ -7,9 +7,9 @@ import express from "express"; import { resolve } from "path"; import cors from "cors"; import { User, Station } from "./dataModels"; -import { addNpc } from "../src/npc"; +import { addNpc } from "./npcs/npc"; import { market } from "./market"; -import { clients, friendlySectors, idToWebsocket, /* sectorFactions, sectorHasStarbase, */ sectorList, sectors, transferSectorToPeer, uid } from "./state"; +import { clients, idToWebsocket, sectorFactions, sectorHasStarbase, factionSectors, sectorList, sectors, transferSectorToPeer, uid } from "./state"; import { adminHash, hash, sniCallback } from "./settings"; import { recipeMap, recipes } from "../src/recipes"; import { isFreeArm } from "../src/defs/armaments"; @@ -466,7 +466,7 @@ app.get("/addNPC", (req, res) => { return; } try { - addNpc(sectors.get(sectorIndex)!, what, parseInt(team), uid(), friendlySectors(parseInt(team))); + addNpc(sectors.get(sectorIndex)!, what, parseInt(team), uid()); } catch (e) { res.send("Error: " + e); return; diff --git a/server/sector.ts b/server/sector.ts index 9d8a44b..44afeaf 100644 --- a/server/sector.ts +++ b/server/sector.ts @@ -1,4 +1,5 @@ import mongoose from "mongoose"; +import { Faction } from "../src/defs"; interface IResourceDensity { resource: string; @@ -20,7 +21,9 @@ const resourceDensitySchema = new mongoose.Schema({ interface ISector { id: number; resources: IResourceDensity[]; - count: number; + asteroidCount: number; + faction: Faction; + guardianCount: number; } const sectorSchema = new mongoose.Schema({ @@ -32,10 +35,29 @@ const sectorSchema = new mongoose.Schema({ type: [resourceDensitySchema], default: [], }, - count: { + asteroidCount: { type: Number, default: 0, }, + faction: { + type: Number, + required: true, + min: 0, + max: 3, + validate: { + validator: Number.isInteger, + message: "{VALUE} is not an integer value", + } + }, + guardianCount: { + type: Number, + required: true, + min: 0, + validate: { + validator: Number.isInteger, + message: "{VALUE} is not an integer value", + } + }, }); const Sector = mongoose.model("Sector", sectorSchema); diff --git a/server/server.ts b/server/server.ts index bcfc8c6..6f07227 100644 --- a/server/server.ts +++ b/server/server.ts @@ -17,20 +17,18 @@ import { } from "../src/game"; import { defs, Faction, UnitKind } from "../src/defs"; -import { addNpc, NPC } from "../src/npc"; +import { addNpc, NPC } from "./npcs/npc"; import { discoverRecipe, sendInventory } from "./inventory"; import { allResources, clients, - friendlySectors, idToWebsocket, knownRecipes, secondaries, secondariesToActivate, - sectorAsteroidResources, - // sectorAsteroidResources, - // sectorFactions, - // sectorGuardianCount, + factionSectors, + sectorFactions, + sectorGuardianCount, sectorList, sectors, serializeAllClientData, @@ -40,10 +38,11 @@ import { targets, uid, warpList, + sectorAsteroidResources, } from "./state"; import { CardinalDirection, mirrorAngleHorizontally, mirrorAngleVertically } from "../src/geometry"; import { allyCount, enemyCount, flashServerMessage } from "./stateHelpers"; -import { serversForSectors, setPlayerSector } from "./peers"; +import { peerMap, serversForSectors, setPlayerSector } from "./peers"; import { WebSocket } from "ws"; import { User } from "./dataModels"; import { mapGraph, mapHeight, mapWidth } from "../src/mapLayout"; @@ -146,22 +145,22 @@ const spawnIncrementalGuardians = (sector: number) => { switch (faction) { case Faction.Alliance: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.5 ? "Fighter" : "Advanced Fighter", Faction.Alliance, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.5 ? "Fighter" : "Advanced Fighter", Faction.Alliance, uid()); } break; case Faction.Confederation: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.5 ? "Drone" : "Seeker", Faction.Confederation, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.5 ? "Drone" : "Seeker", Faction.Confederation, uid()); } break; case Faction.Rogue: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.2 ? "Strafer" : "Venture", Faction.Rogue, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.2 ? "Strafer" : "Venture", Faction.Rogue, uid()); } break; case Faction.Scourge: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.5 ? "Spartan" : "Striker", Faction.Scourge, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.5 ? "Spartan" : "Striker", Faction.Scourge, uid()); } } }; @@ -199,22 +198,22 @@ const spawnSectorGuardians = (sector: number) => { switch (faction) { case Faction.Alliance: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.5 ? "Fighter" : "Advanced Fighter", Faction.Alliance, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.5 ? "Fighter" : "Advanced Fighter", Faction.Alliance, uid()); } break; case Faction.Confederation: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.5 ? "Drone" : "Seeker", Faction.Confederation, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.5 ? "Drone" : "Seeker", Faction.Confederation, uid()); } break; case Faction.Rogue: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.2 ? "Strafer" : "Venture", Faction.Rogue, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.2 ? "Strafer" : "Venture", Faction.Rogue, uid()); } break; case Faction.Scourge: for (let i = 0; i < count; i++) { - addNpc(state, Math.random() > 0.5 ? "Spartan" : "Striker", Faction.Scourge, uid(), friendlySectors(faction)); + addNpc(state, Math.random() > 0.5 ? "Spartan" : "Striker", Faction.Scourge, uid()); } } }; @@ -295,6 +294,28 @@ const warpNonNPCToSector = (ws: WebSocket, player: Player, sector: number) => { } }; +const warpNPCToSector = (player: Player, sector: number) => { + const state = sectors.get(sector); + if (state) { + state.players.set(player.id, player); + } else { + const peerSockets = peerMap.get(serversForSectors.get(sector)!); + if (peerSockets) { + (player as any).sector = sector; + (player as any).npcReconstructionKey = Object.getPrototypeOf(player.npc).constructor.name; + (player as any).input = player.npc!.input; + player.npc = undefined; + peerSockets.request.send("npc-transfer", player, (success: string) => { + if (success !== "OK") { + console.log("Error transferring npc: " + success); + } + }); + } else { + console.log(`Server not found for this sector! (${sector})`); + } + } +}; + const insertRespawnedPlayer = (ws: WebSocket, player: Player, sector: number) => { const state = sectors.get(sector); if (!state) { @@ -399,17 +420,17 @@ const spawnPlayer = (ws: WebSocket, player: Player, sector: number) => { }; const setupTimers = () => { - // setInterval(() => { - // for (let i = 0; i < sectorList.length; i++) { - // spawnIncrementalGuardians(i); - // } - // }, 20 * 990); - - // setInterval(() => { - // for (let i = 0; i < sectorList.length; i++) { - // spawnSectorGuardians(i); - // } - // }, 120 * 60 * 1000); + setInterval(() => { + for (let i = 0; i < sectorList.length; i++) { + spawnIncrementalGuardians(i); + } + }, 20 * 990); + + setInterval(() => { + for (let i = 0; i < sectorList.length; i++) { + spawnSectorGuardians(i); + } + }, 120 * 60 * 1000); setInterval(() => { for (const sector of sectorList) { @@ -541,7 +562,7 @@ const setupTimers = () => { warpNonNPCToSector(ws, transition.player, newSector); } else { // Is npc - console.log("Sector transitions for NPCs is disabled currently"); + warpNPCToSector(transition.player, newSector); } } @@ -555,7 +576,7 @@ const setupTimers = () => { warpNonNPCToSector(ws, player, to); } else { // Is npc - console.log("NPC warping is disabled currently"); + // warpNPCToSector(player, to); } } }, 1000 / ticksPerSecond); diff --git a/server/state.ts b/server/state.ts index 6b9213b..10793b3 100644 --- a/server/state.ts +++ b/server/state.ts @@ -20,7 +20,7 @@ import { WebSocket } from "ws"; import { defs, Faction, initDefs, UnitKind } from "../src/defs"; import { CardinalDirection } from "../src/geometry"; import { initMarket } from "./market"; -import { NPC, npcReconstructors } from "../src/npc"; +import { NPC, npcReconstructors } from "./npcs/npc"; import { Checkpoint, Station, User } from "./dataModels"; import { awareSectors, peerMap, PeerSockets, removeNetworkAwareness, waitingData } from "./peers"; import { insertRespawnedPlayer, insertSpawnedPlayer } from "./server"; @@ -52,67 +52,6 @@ const allResources = [ { resource: "Hemacite", density: 1 }, ]; -// const sectorFactions: (Faction | null)[] = sectorList.map((_) => null); -// sectorFactions[0] = Faction.Scourge; -// sectorFactions[3] = Faction.Scourge; - -// sectorFactions[1] = Faction.Rogue; -// sectorFactions[2] = Faction.Rogue; -// sectorFactions[5] = Faction.Rogue; -// sectorFactions[6] = Faction.Rogue; - -// sectorFactions[12] = Faction.Alliance; -// sectorFactions[13] = Faction.Alliance; -// sectorFactions[8] = Faction.Alliance; -// sectorFactions[4] = Faction.Alliance; -// sectorFactions[9] = Faction.Alliance; - -// sectorFactions[14] = Faction.Confederation; -// sectorFactions[15] = Faction.Confederation; -// sectorFactions[11] = Faction.Confederation; -// sectorFactions[7] = Faction.Confederation; -// sectorFactions[10] = Faction.Confederation; - -const friendlySectors = (faction: Faction) => { - const ret: number[] = []; - return ret; - // for (let i = 0; i < sectorFactions.length; i++) { - // if (sectorFactions[i] === faction) { - // ret.push(i); - // } - // } - // return ret; -}; - -// const sectorGuardianCount = sectorList.map((_) => 0); - -// sectorGuardianCount[0] = 6; -// sectorGuardianCount[3] = 6; - -// sectorGuardianCount[1] = 6; -// sectorGuardianCount[2] = 6; -// sectorGuardianCount[5] = 15; -// sectorGuardianCount[6] = 15; - -// sectorGuardianCount[12] = 24; -// sectorGuardianCount[13] = 15; -// sectorGuardianCount[8] = 15; -// sectorGuardianCount[4] = 6; -// sectorGuardianCount[9] = 6; - -// sectorGuardianCount[14] = 15; -// sectorGuardianCount[15] = 24; -// sectorGuardianCount[11] = 15; -// sectorGuardianCount[7] = 6; -// sectorGuardianCount[10] = 6; - -// const sectorHasStarbase = sectorList.map((_) => false); -// sectorHasStarbase[5] = true; - -// sectorHasStarbase[12] = true; - -// sectorHasStarbase[15] = true; - type ClientData = { id: number; input: Input; @@ -345,14 +284,29 @@ const initSectors = (serverSectors: number[]) => { }); }; -const initSectorResourceData = async () => { +const sectorFactions: (Faction | null)[] = new Array(mapWidth * mapHeight).fill(null); +const sectorGuardianCount = new Array(mapWidth * mapHeight).fill(0); +const sectorHasStarbase = sectorList.map((_) => false); +const factionSectors: number[][] = new Array(Faction.Count).fill([]); + +const initSectorData = async () => { for (let i = 0; i < mapWidth * mapHeight; i++) { const sectorInfo = await Sector.findOne({ sector: i }); if (!sectorInfo) { throw new Error("Missing sector info"); } sectorAsteroidResources.push(sectorInfo.resources); - sectorAsteroidCounts.push(sectorInfo.count); + sectorAsteroidCounts.push(sectorInfo.asteroidCount); + sectorFactions[i] = sectorInfo.faction; + sectorGuardianCount[i] = sectorInfo.guardianCount; + + if (sectorInfo.faction !== null) { + factionSectors[sectorInfo.faction].push(i); + } + } + const stations = await Station.find(); + for (const station of stations) { + sectorHasStarbase[station.sector] = true; } }; @@ -539,7 +493,7 @@ const transferSectorToPeer = (sector: number, peer: string) => { return promise; }; -type SerializablePlayer = Player & { sector: number, npcReconstructionKey?: string, input?: Input }; +type SerializablePlayer = Player & { sector: number; npcReconstructionKey?: string; input?: Input }; const insertStation = (station: SerializablePlayer) => { console.log("Inserting station: " + station.id); @@ -593,9 +547,9 @@ export { sectorAsteroidResources, sectorAsteroidCounts, allResources, - // sectorFactions, - // sectorGuardianCount, - // sectorHasStarbase, + sectorFactions, + sectorGuardianCount, + sectorHasStarbase, clients, idToWebsocket, sectors, @@ -606,14 +560,14 @@ export { knownRecipes, uid, saveCheckpoint, - friendlySectors, + factionSectors, initInitialAsteroids, getPlayerFromId, serializeAllClientData, sendServerWarp, serverChangePlayer, initSectors, - initSectorResourceData, + initSectorData, initStationTeams, stationIdToDefaultTeam, insertSector, diff --git a/server/tutorial.ts b/server/tutorial.ts index 780d4d5..2c088b4 100644 --- a/server/tutorial.ts +++ b/server/tutorial.ts @@ -2,7 +2,7 @@ import { copyPlayer, effectiveInfinity, equip, Player, randomAsteroids, sectorBo import { WebSocket } from "ws"; import { clients, getTutorialNpc, saveCheckpoint, sectors, uid } from "./state"; import { defMap, Faction } from "../src/defs"; -import { addTutorialRoamingVenture, addTutorialStrafer, NPC } from "../src/npc"; +import { addTutorialRoamingVenture, addTutorialStrafer, NPC } from "./npcs/npc"; import { discoverRecipe, updateClientRecipes } from "./inventory"; import { mapHeight, mapWidth } from "../src/mapLayout"; import { transferableActionsMap } from "./transferableActions"; diff --git a/src/game.ts b/src/game.ts index 68ffb7c..afc585d 100644 --- a/src/game.ts +++ b/src/game.ts @@ -41,11 +41,9 @@ import { canonicalizeAngle, } from "./geometry"; import { ResourceDensity } from "./mapLayout"; -import { NPC } from "./npc"; import { seek } from "./pathing"; import { sfc32 } from "./prng"; - -// TODO Move the geometry stuff to a separate file +import { LootTable } from "./defs/collectables"; type Entity = Circle & { id: number; speed: number; heading: number }; @@ -133,6 +131,17 @@ type Player = Entity & { doNotShootYet?: boolean; }; +interface NPC { + player: Player; + input: Input; + angle: number | undefined; + selectedSecondary: number; + secondariesToFire: number[]; + lootTable: LootTable; + targetId: number; + process: (state: GlobalState, sector: number) => void; +} + type Asteroid = Circle & { id: number; resources: number; @@ -582,6 +591,8 @@ const applyCollisionForce = (collider: Player, collidee: Circle, collideeMass = // Idk if this is the right approach or not, but I need something that cuts down on unnecessary things being sent over the websocket type Mutated = { asteroids: Set; collectables: Collectable[]; mines: Mine[] }; +// TODO Move the update function out of the src directory so that we don't need this dependency injection + // Like usual the update function is a monstrosity // It could probably use some refactoring const update = ( @@ -1600,6 +1611,7 @@ export { SectorKind, SectorOfPlayerResult, TransferableAction, + NPC, update, applyInputs, processAllNpcs, From b0e74d04c88c27d78557c92be4d77aa069f4e9dd Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 20 Jan 2023 08:42:05 -0600 Subject: [PATCH 37/39] Make npc code safer --- TODO.md | 4 +--- server/npcs/assassination.ts | 2 +- server/npcs/clearance.ts | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/TODO.md b/TODO.md index 7e0a609..0514b4a 100644 --- a/TODO.md +++ b/TODO.md @@ -1,10 +1,8 @@ ### Broken by new multi server system - Current player information (works except logout) -- NPC sector changing -- Guardians - Deployment -- Alternative background +- Alternative background (Going to ignore for now) - Some admin routes ### Server stuff diff --git a/server/npcs/assassination.ts b/server/npcs/assassination.ts index a848d12..f700abb 100644 --- a/server/npcs/assassination.ts +++ b/server/npcs/assassination.ts @@ -239,7 +239,7 @@ class CloakyAnnoying implements NPC { if (!target && this.targetId) { target = state.players.get(this.targetId); } - this.currentState = this.currentState.process(state, this, sector, target); + this.currentState = this.currentState.process(state, this, sector, target) ?? this.currentState; } } diff --git a/server/npcs/clearance.ts b/server/npcs/clearance.ts index 41973cf..432fca8 100644 --- a/server/npcs/clearance.ts +++ b/server/npcs/clearance.ts @@ -203,7 +203,7 @@ class BasicSwarmer implements NPC { if (!target && this.targetId) { target = state.players.get(this.targetId); } - this.currentState = this.currentState.process(state, this, sector, target); + this.currentState = this.currentState.process(state, this, sector, target) ?? this.currentState; } } From 8f0ed100587ecc98c5aa03de611a75bb6e0c0c52 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 20 Jan 2023 09:13:49 -0600 Subject: [PATCH 38/39] Add emp mine --- resources/models/emp_mine.obj | 363 ++++++++++++++++++++++++++++++++ resources/textures/emp_mine.png | Bin 0 -> 543 bytes src/3dDrawing.ts | 1 + src/defs/armaments.ts | 62 ++++++ 4 files changed, 426 insertions(+) create mode 100755 resources/models/emp_mine.obj create mode 100755 resources/textures/emp_mine.png diff --git a/resources/models/emp_mine.obj b/resources/models/emp_mine.obj new file mode 100755 index 0000000..6bde81e --- /dev/null +++ b/resources/models/emp_mine.obj @@ -0,0 +1,363 @@ +# Blender 3.3.1 +# www.blender.org +o emp_mine +v 0.747111 0.000000 0.000000 +v 0.621533 0.000000 0.260766 +v 0.339362 0.000000 0.325169 +v 0.177290 0.000000 0.226891 +v 0.177290 0.000000 -0.226891 +v 0.339362 0.000000 -0.325169 +v 0.621533 0.000000 -0.260766 +v 0.528287 0.528287 0.000000 +v 0.439490 0.439490 0.260766 +v 0.239965 0.239965 0.325169 +v 0.125363 0.125363 0.226891 +v 0.125363 0.125363 -0.226891 +v 0.239965 0.239965 -0.325169 +v 0.439490 0.439490 -0.260766 +v 0.000000 0.747111 0.000000 +v 0.000000 0.621533 0.260766 +v 0.000000 0.339362 0.325169 +v 0.000000 0.177290 0.226891 +v 0.000000 0.177290 -0.226891 +v 0.000000 0.339362 -0.325169 +v 0.000000 0.621533 -0.260766 +v -0.528287 0.528287 0.000000 +v -0.439490 0.439490 0.260766 +v -0.239965 0.239965 0.325169 +v -0.125363 0.125363 0.226891 +v -0.125363 0.125363 -0.226891 +v -0.239965 0.239965 -0.325169 +v -0.439490 0.439490 -0.260766 +v -0.747111 0.000000 0.000000 +v -0.621533 0.000000 0.260766 +v -0.339362 0.000000 0.325169 +v -0.177290 0.000000 0.226891 +v -0.177290 0.000000 -0.226891 +v -0.339362 0.000000 -0.325169 +v -0.621533 0.000000 -0.260766 +v -0.528287 -0.528287 0.000000 +v -0.439490 -0.439490 0.260766 +v -0.239965 -0.239965 0.325169 +v -0.125363 -0.125363 0.226891 +v -0.125363 -0.125363 -0.226891 +v -0.239965 -0.239965 -0.325169 +v -0.439490 -0.439490 -0.260766 +v 0.000000 -0.747111 0.000000 +v 0.000000 -0.621533 0.260766 +v 0.000000 -0.339362 0.325169 +v 0.000000 -0.177290 0.226891 +v 0.000000 -0.177290 -0.226891 +v 0.000000 -0.339362 -0.325169 +v 0.000000 -0.621533 -0.260766 +v 0.528287 -0.528288 0.000000 +v 0.439490 -0.439490 0.260766 +v 0.239965 -0.239965 0.325169 +v 0.125363 -0.125363 0.226891 +v 0.125363 -0.125363 -0.226891 +v 0.239965 -0.239965 -0.325169 +v 0.439490 -0.439490 -0.260766 +vn 0.8441 0.3496 0.4065 +vn 0.2216 0.0918 0.9708 +vn -0.5069 -0.2100 0.8360 +vn -0.5069 -0.2100 -0.8360 +vn 0.2216 0.0918 -0.9708 +vn 0.8441 0.3496 -0.4065 +vn 0.3496 0.8441 0.4065 +vn 0.0918 0.2216 0.9708 +vn -0.2100 -0.5069 0.8360 +vn -0.2100 -0.5069 -0.8360 +vn 0.0918 0.2216 -0.9708 +vn 0.3496 0.8441 -0.4065 +vn -0.3496 0.8441 0.4065 +vn -0.0918 0.2216 0.9708 +vn 0.2100 -0.5069 0.8360 +vn 0.2100 -0.5069 -0.8360 +vn -0.0918 0.2216 -0.9708 +vn -0.3496 0.8441 -0.4065 +vn -0.8441 0.3496 0.4065 +vn -0.2216 0.0918 0.9708 +vn 0.5069 -0.2100 0.8360 +vn 0.5069 -0.2100 -0.8360 +vn -0.2216 0.0918 -0.9708 +vn -0.8441 0.3496 -0.4065 +vn -0.8441 -0.3496 0.4065 +vn -0.2216 -0.0918 0.9708 +vn 0.5069 0.2100 0.8360 +vn 0.5069 0.2100 -0.8360 +vn -0.2216 -0.0918 -0.9708 +vn -0.8441 -0.3496 -0.4065 +vn -0.3496 -0.8441 0.4065 +vn -0.0918 -0.2216 0.9708 +vn 0.2100 0.5069 0.8360 +vn 0.2100 0.5069 -0.8360 +vn -0.0918 -0.2216 -0.9708 +vn -0.3496 -0.8441 -0.4065 +vn 0.3496 -0.8441 0.4065 +vn 0.0918 -0.2216 0.9708 +vn -0.2100 0.5069 0.8360 +vn -0.2100 0.5069 -0.8360 +vn 0.0918 -0.2216 -0.9708 +vn 0.3496 -0.8441 -0.4065 +vn 0.8441 -0.3496 0.4065 +vn 0.2216 -0.0918 0.9708 +vn -0.5069 0.2100 0.8360 +vn -0.0000 -0.0000 -1.0000 +vn -0.5069 0.2100 -0.8360 +vn 0.2216 -0.0918 -0.9708 +vn 0.8441 -0.3496 -0.4065 +vn -0.0000 -0.0000 1.0000 +vt 0.242188 0.735491 +vt 0.242188 0.790847 +vt 0.242188 0.846203 +vt 0.242188 0.357922 +vt 0.242188 0.901559 +vt 0.242188 0.413278 +vt 0.789062 0.839059 +vt 0.914421 0.851868 +vt 0.242188 0.569423 +vt 0.242188 0.081142 +vt 0.242188 0.136498 +vt 0.242188 0.624779 +vt 0.242188 0.680135 +vt 0.290624 0.735491 +vt 0.290624 0.790847 +vt 0.290624 0.846203 +vt 0.290624 0.357922 +vt 0.290624 0.413278 +vt 0.290624 0.901559 +vt 0.837499 0.839059 +vt 0.290624 0.569423 +vt 0.290624 0.081142 +vt 0.918568 0.820738 +vt 0.290624 0.136498 +vt 0.290624 0.624779 +vt 0.290624 0.680135 +vt 0.702777 0.381754 +vt 0.339061 0.735491 +vt 0.578831 0.237620 +vt 0.642084 0.225506 +vt 0.339061 0.790847 +vt 0.870039 0.353709 +vt 0.339061 0.846203 +vt 0.339061 0.357922 +vt 0.704069 0.198288 +vt 0.339061 0.413278 +vt 0.826723 0.369342 +vt 0.879144 0.203960 +vt 0.885935 0.839059 +vt 0.870178 0.288827 +vt 0.339061 0.081142 +vt 0.893731 0.795026 +vt 0.578831 0.342422 +vt 0.339061 0.136498 +vt 0.339061 0.624779 +vt 0.891620 0.246265 +vt 0.339061 0.680135 +vt 0.633751 0.369641 +vt 0.578831 0.093485 +vt 0.702777 0.237620 +vt 0.387497 0.735491 +vt 0.387497 0.790847 +vt 0.642084 0.105598 +vt 0.704069 0.132817 +vt 0.870039 0.419179 +vt 0.387497 0.846203 +vt 0.387497 0.357922 +vt 0.387497 0.413278 +vt 0.934372 0.839059 +vt 0.826723 0.403546 +vt 0.844941 0.203960 +vt 0.387497 0.081142 +vt 0.836274 0.284310 +vt 0.895309 0.624111 +vt 0.387497 0.624779 +vt 0.826723 0.237620 +vt 0.578831 0.276952 +vt 0.387497 0.136498 +vt 0.633751 0.249733 +vt 0.387497 0.680135 +vt 0.435933 0.735491 +vt 0.048442 0.735491 +vt 0.435933 0.790847 +vt 0.048442 0.790847 +vt 0.435933 0.846203 +vt 0.435933 0.357922 +vt 0.048442 0.846203 +vt 0.435933 0.413278 +vt 0.048442 0.901559 +vt 0.595317 0.839059 +vt 0.048442 0.569423 +vt 0.556254 0.624111 +vt 0.435933 0.081142 +vt 0.435933 0.136498 +vt 0.435933 0.624779 +vt 0.048442 0.624779 +vt 0.435933 0.680135 +vt 0.048442 0.680135 +vt 0.096878 0.735491 +vt 0.096878 0.790847 +vt 0.096878 0.357922 +vt 0.096878 0.846203 +vt 0.096878 0.901559 +vt 0.096878 0.413278 +vt 0.643753 0.839059 +vt 0.096878 0.569423 +vt 0.096878 0.081142 +vt 0.604691 0.624111 +vt 0.096878 0.136498 +vt 0.096878 0.624779 +vt 0.096878 0.680135 +vt 0.145315 0.735491 +vt 0.702777 0.381754 +vt 0.829307 0.237619 +vt 0.145315 0.790847 +vt 0.771803 0.369641 +vt 0.826723 0.342422 +vt 0.829307 0.093485 +vt 0.145315 0.846203 +vt 0.145315 0.357922 +vt 0.145315 0.413278 +vt 0.844941 0.138505 +vt 0.692190 0.839059 +vt 0.145315 0.081142 +vt 0.870039 0.403545 +vt 0.827631 0.349192 +vt 0.653127 0.624111 +vt 0.913356 0.419179 +vt 0.704069 0.198287 +vt 0.145315 0.136498 +vt 0.145315 0.624779 +vt 0.145315 0.680135 +vt 0.766054 0.225506 +vt 0.193751 0.735491 +vt 0.702777 0.237620 +vt 0.829307 0.093485 +vt 0.771803 0.249733 +vt 0.193751 0.790847 +vt 0.193751 0.357922 +vt 0.826723 0.276952 +vt 0.894777 0.093485 +vt 0.193751 0.846203 +vt 0.740626 0.839059 +vt 0.879144 0.138505 +vt 0.193751 0.413278 +vt 0.193751 0.081142 +vt 0.870039 0.369342 +vt 0.861534 0.353709 +vt 0.883719 0.870181 +vt 0.193751 0.624779 +vt 0.913356 0.353709 +vt 0.704069 0.132817 +vt 0.193751 0.136498 +vt 0.766054 0.105599 +vt 0.193751 0.680135 +s 0 +f 8/14/1 2/2/1 1/1/1 +f 2/2/2 10/16/2 3/3/2 +f 10/16/3 4/5/3 3/3/3 +f 5/9/4 13/25/4 6/12/4 +f 13/25/5 7/13/5 6/12/5 +f 14/26/6 1/1/6 7/13/6 +f 8/14/7 16/31/7 9/15/7 +f 9/15/8 17/33/8 10/16/8 +f 10/17/9 18/36/9 11/18/9 +f 12/22/10 20/44/10 13/24/10 +f 20/45/11 14/26/11 13/25/11 +f 21/47/12 8/14/12 14/26/12 +f 15/29/13 23/53/13 16/30/13 +f 23/53/14 17/35/14 16/30/14 +f 24/55/15 18/37/15 17/32/15 +f 26/63/16 20/46/16 19/40/16 +f 27/67/17 21/48/17 20/43/17 +f 21/48/18 22/50/18 15/27/18 +f 22/51/19 30/73/19 23/52/19 +f 30/73/20 24/56/20 23/52/20 +f 24/57/21 32/78/21 25/58/21 +f 33/83/22 27/68/22 26/62/22 +f 34/85/23 28/70/23 27/65/23 +f 28/70/24 29/71/24 22/51/24 +f 36/89/25 30/74/25 29/72/25 +f 37/90/26 31/77/26 30/74/26 +f 38/92/27 32/79/27 31/77/27 +f 40/96/28 34/86/28 33/81/28 +f 41/100/29 35/88/29 34/86/29 +f 42/101/30 29/72/30 35/88/30 +f 43/102/31 37/90/31 36/89/31 +f 44/105/32 38/92/32 37/90/32 +f 45/110/33 39/94/33 38/91/33 +f 40/97/34 48/120/34 41/99/34 +f 48/121/35 42/101/35 41/100/35 +f 49/122/36 36/89/36 42/101/36 +f 43/103/37 51/127/37 44/106/37 +f 44/106/38 52/130/38 45/107/38 +f 52/131/39 46/112/39 45/108/39 +f 47/115/40 55/141/40 48/118/40 +f 55/142/41 49/123/41 48/119/41 +f 56/144/42 43/104/42 49/123/42 +f 1/1/43 51/128/43 50/124/43 +f 2/2/44 52/132/44 51/128/44 +f 3/4/45 53/135/45 52/129/45 +f 54/138/46 26/63/46 19/40/46 +f 5/10/47 55/143/47 54/136/47 +f 6/12/48 56/145/48 55/140/48 +f 56/145/49 1/1/49 50/124/49 +f 18/38/50 46/112/50 53/134/50 +f 4/7/50 18/39/50 53/133/50 +f 32/80/50 46/113/50 25/59/50 +f 26/64/46 40/98/46 33/82/46 +f 54/139/46 12/23/46 5/8/46 +f 8/14/1 9/15/1 2/2/1 +f 2/2/2 9/15/2 10/16/2 +f 10/16/3 11/19/3 4/5/3 +f 5/9/4 12/21/4 13/25/4 +f 13/25/5 14/26/5 7/13/5 +f 14/26/6 8/14/6 1/1/6 +f 8/14/7 15/28/7 16/31/7 +f 9/15/8 16/31/8 17/33/8 +f 10/17/9 17/34/9 18/36/9 +f 12/22/10 19/41/10 20/44/10 +f 20/45/11 21/47/11 14/26/11 +f 21/47/12 15/28/12 8/14/12 +f 15/29/13 22/49/13 23/53/13 +f 23/53/14 24/54/14 17/35/14 +f 24/55/15 25/60/15 18/37/15 +f 26/63/16 27/66/16 20/46/16 +f 27/67/17 28/69/17 21/48/17 +f 21/48/18 28/69/18 22/50/18 +f 22/51/19 29/71/19 30/73/19 +f 30/73/20 31/75/20 24/56/20 +f 24/57/21 31/76/21 32/78/21 +f 33/83/22 34/84/22 27/68/22 +f 34/85/23 35/87/23 28/70/23 +f 28/70/24 35/87/24 29/71/24 +f 36/89/25 37/90/25 30/74/25 +f 37/90/26 38/92/26 31/77/26 +f 38/92/27 39/93/27 32/79/27 +f 40/96/28 41/100/28 34/86/28 +f 41/100/29 42/101/29 35/88/29 +f 42/101/30 36/89/30 29/72/30 +f 43/102/31 44/105/31 37/90/31 +f 44/105/32 45/109/32 38/92/32 +f 45/110/33 46/111/33 39/94/33 +f 40/97/34 47/114/34 48/120/34 +f 48/121/35 49/122/35 42/101/35 +f 49/122/36 43/102/36 36/89/36 +f 43/103/37 50/125/37 51/127/37 +f 44/106/38 51/127/38 52/130/38 +f 52/131/39 53/134/39 46/112/39 +f 47/115/40 54/137/40 55/141/40 +f 55/142/41 56/144/41 49/123/41 +f 56/144/42 50/126/42 43/104/42 +f 1/1/43 2/2/43 51/128/43 +f 2/2/44 3/3/44 52/132/44 +f 3/4/45 4/6/45 53/135/45 +f 54/138/46 47/116/46 26/63/46 +f 5/10/47 6/11/47 55/143/47 +f 6/12/48 7/13/48 56/145/48 +f 56/145/49 7/13/49 1/1/49 +f 18/38/50 25/61/50 46/112/50 +f 4/7/50 11/20/50 18/39/50 +f 32/80/50 39/95/50 46/113/50 +f 26/64/46 47/117/46 40/98/46 +f 54/139/46 19/42/46 12/23/46 diff --git a/resources/textures/emp_mine.png b/resources/textures/emp_mine.png new file mode 100755 index 0000000000000000000000000000000000000000..e7bd5f1320b219dc7455540fe381b0243bf87b4f GIT binary patch literal 543 zcmV+)0^t3LP)EX>4Tx04R}tkv&MmP!xqvTcuK}4rUN>$WWauh)QvkDi*;)X)CnqVDi#GXws0R zxHt-~1qXi?s}3&Cx;nTDg5VE`tBaGOiIOk-!p?NI`^*Ix48bLX>um6ccGWk9+t>9Dj;jGPx>X ztKF8?;kfm8I-v9@P zz<7zW*FE0d*FCp?d)o8+0f|6zu&N2Mv;Y7A24YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j>A44mUaA5^dA~000|FL_t&t*JGGFckciH|NmPt h>g((8eEZac0RUhK32!a9a3cT!002ovPDHLkV1g1J void) => { "heavy_tomahawk.obj", "maintainer.obj", "infiltrator.obj", + "emp_mine.obj", ].map((url) => loadObj(url, gl, programInfo)) ) .then(async () => { diff --git a/src/defs/armaments.ts b/src/defs/armaments.ts index eec0863..aca8dcc 100644 --- a/src/defs/armaments.ts +++ b/src/defs/armaments.ts @@ -1052,6 +1052,68 @@ const initArmaments = () => { tier: 1, }); + // EMP Mine - 22 + mineDefs.push({ + explosionEffectIndex: 10, + explosionMutator(mine, state) { + // reuse the mine as the circle object for the collision detection for the explosion + mine.radius = 45; + const players = findAllPlayersOverlappingCircle(mine, state.players.values()); + for (let i = 0; i < players.length; i++) { + players[i].disabled = (players[i].disabled ?? 0) + 120; + } + }, + model: "emp_mine", + pointLights: [ + { position: { x: 0, y: 0, z: 0.5 }, color: [0.0, 0.0, 3.0] }, + { position: { x: 0, y: 0, z: -0.5 }, color: [0.0, 0.0, 3.0] }, + ], + deploymentTime: 25, + }); + const empMineIndex = mineDefs.length - 1; + armDefs.push({ + name: "EMP Mine", + description: "A mine which emits an electromagnetic pulse when triggered", + kind: SlotKind.Mine, + usage: ArmUsage.Ammo, + targeted: TargetedKind.Untargeted, + maxAmmo: 25, + fireMutator: (state, player, targetKind, target, applyEffect, slotId, flashServerMessage, whatMutated) => { + const slotData = player.slotData[slotId]; + if (player.energy > 1 && slotData.sinceFired > 33 && slotData.ammo > 0) { + player.energy -= 1; + slotData.sinceFired = 0; + slotData.ammo--; + const id = uid(); + const mine: Mine = { + id, + position: { x: player.position.x, y: player.position.y }, + speed: 0, + heading: Math.random() * 2 * Math.PI, + radius: 15, + team: player.team, + defIndex: empMineIndex, + left: 1400, + deploying: 30, + }; + state.mines.set(id, mine); + whatMutated.mines.push(mine); + applyEffect({ effectIndex: 12, from: { kind: EffectAnchorKind.Absolute, value: player.position } }); + } + }, + equipMutator: (player, slotIndex) => { + player.slotData[slotIndex] = { sinceFired: 1000, ammo: 25 }; + }, + frameMutator: (player, slotIndex) => { + const slotData = player.slotData[slotIndex]; + slotData.sinceFired++; + }, + cost: 200, + tier: 1, + }); + + + for (let i = 0; i < armDefs.length; i++) { const def = armDefs[i]; armDefMap.set(def.name, { index: i, def }); From 4addb446c1f9b7a6ed48aa694ab4b730743f6571 Mon Sep 17 00:00:00 2001 From: Josh Hoover Date: Fri, 20 Jan 2023 22:04:49 -0600 Subject: [PATCH 39/39] Add deployable gun platform --- resources/models/gun_platform.obj | 790 ++++++++++++++++++++++++++++ resources/textures/gun_platform.png | Bin 0 -> 542 bytes src/3dDrawing.ts | 11 +- src/defs/armaments.ts | 51 +- src/defs/shipsAndStations.ts | 27 + src/game.ts | 36 +- 6 files changed, 910 insertions(+), 5 deletions(-) create mode 100755 resources/models/gun_platform.obj create mode 100755 resources/textures/gun_platform.png diff --git a/resources/models/gun_platform.obj b/resources/models/gun_platform.obj new file mode 100755 index 0000000..ec0828f --- /dev/null +++ b/resources/models/gun_platform.obj @@ -0,0 +1,790 @@ +# Blender 3.3.1 +# www.blender.org +o gun_platform +v -0.000000 1.237018 1.326735 +v 0.399193 0.705064 1.565705 +v 0.611688 1.073117 1.326735 +v 0.685541 1.201033 0.593671 +v 0.742529 1.299740 -0.055448 +v 0.736390 1.289108 -0.752446 +v 0.526764 0.926023 -1.171731 +v 0.365038 0.645907 -1.468565 +v 0.811132 0.481949 1.701482 +v 1.479836 0.868025 1.598586 +v 2.217168 1.293724 0.779044 +v 2.387538 1.392087 -0.157919 +v 1.899885 1.110541 -0.936381 +v 1.213173 0.714067 -1.411462 +v 0.710065 0.423598 -1.577762 +v 0.936615 0.013641 1.701482 +v 1.708767 0.013641 1.598586 +v 2.560164 0.013641 0.779044 +v 2.756892 0.013641 -0.157919 +v 2.193797 0.013641 -0.936381 +v 1.400851 0.013641 -1.411462 +v 0.819912 0.013641 -1.577762 +v 0.691422 -0.385551 1.565705 +v 1.059475 -0.598047 1.326735 +v 1.187391 -0.671899 0.593671 +v 1.286098 -0.728888 -0.055448 +v 1.275466 -0.722749 -0.752446 +v 0.912381 -0.513122 -1.171731 +v 0.632265 -0.351397 -1.468565 +v 0.399193 -0.677781 1.565705 +v 0.611688 -1.045834 1.326735 +v 0.685541 -1.173750 0.593671 +v 0.742529 -1.272457 -0.055448 +v 0.736390 -1.261824 -0.752446 +v 0.526764 -0.898740 -1.171731 +v 0.365038 -0.618624 -1.468565 +v -0.000000 -0.922974 1.701482 +v -0.000000 -1.695126 1.598586 +v 0.000000 -2.546523 0.779044 +v 0.000000 -2.743250 -0.157919 +v 0.000000 -2.180156 -0.936381 +v -0.000000 -1.387210 -1.411462 +v -0.000000 -0.806271 -1.577762 +v -0.468307 -0.797491 1.701482 +v -0.854384 -1.466195 1.598586 +v -1.280082 -2.203526 0.779044 +v -1.378446 -2.373897 -0.157919 +v -1.096899 -1.886243 -0.936381 +v -0.700426 -1.199531 -1.411462 +v -0.409956 -0.696423 -1.577762 +v 0.000000 0.013641 1.755856 +v -0.691422 -0.385552 1.565705 +v -1.059475 -0.598047 1.326735 +v -1.187391 -0.671899 0.593671 +v -1.286098 -0.728888 -0.055448 +v -1.275466 -0.722749 -0.752446 +v -0.912382 -0.513122 -1.171731 +v -0.632265 -0.351397 -1.468565 +v -0.000000 0.013642 -1.780250 +v -0.798386 0.013641 1.565705 +v -1.223377 0.013642 1.326735 +v -1.371081 0.013641 0.593671 +v -1.485059 0.013641 -0.055448 +v -1.472781 0.013641 -0.752446 +v -1.053528 0.013642 -1.171731 +v -0.730077 0.013641 -1.468565 +v -0.811132 0.481949 1.701482 +v -1.479836 0.868025 1.598586 +v -2.217168 1.293724 0.779044 +v -2.387538 1.392088 -0.157919 +v -1.899884 1.110540 -0.936381 +v -1.213173 0.714067 -1.411462 +v -0.710065 0.423598 -1.577762 +v -0.468308 0.824774 1.701482 +v -0.854383 1.493478 1.598586 +v -1.280082 2.230809 0.779044 +v -1.378446 2.401180 -0.157919 +v -1.096899 1.913526 -0.936381 +v -0.700425 1.226815 -1.411462 +v -0.409956 0.723706 -1.577762 +v -0.000000 0.812027 1.565705 +v -0.000000 1.384723 0.593671 +v -0.000000 1.498700 -0.055448 +v -0.000000 1.486423 -0.752446 +v 0.000000 1.067169 -1.171731 +v -0.000000 0.743719 -1.468565 +v -0.727751 -2.702361 -0.130686 +v -0.669082 -2.483408 0.798747 +v -0.458306 -1.696779 1.675468 +v -0.247481 -0.909972 1.780015 +v -0.220099 -0.807779 -1.680988 +v -0.390740 -1.444620 -1.545736 +v -0.598140 -2.218647 -0.954071 +v 1.458261 0.404382 -1.545736 +v 2.232288 0.611781 -0.954071 +v 2.716002 0.741392 -0.130686 +v 2.497049 0.682724 0.798747 +v 1.710421 0.471947 1.675468 +v 0.923614 0.261123 1.780015 +v 0.821420 0.233740 -1.680988 +v -1.252115 1.265756 1.675468 +v -0.676132 0.689774 1.780015 +v -0.601321 0.614963 -1.680988 +v -1.067521 1.081163 -1.545736 +v -1.634148 1.647790 -0.954071 +v -1.988252 2.001894 -0.130686 +v -1.827967 1.841608 0.798747 +vn 0.1783 0.6653 -0.7250 +vn 0.2588 0.9658 -0.0170 +vn 0.2541 0.9481 0.1910 +vn 0.0620 0.2312 0.9709 +vn 0.1046 0.3905 -0.9146 +vn 0.1862 0.6948 -0.6947 +vn 0.2552 0.9523 0.1672 +vn 0.1302 0.4860 0.8642 +vn -0.1286 0.3313 0.9347 +vn 0.0007 0.4418 -0.8971 +vn 0.0041 0.7549 -0.6558 +vn -0.0499 0.9942 0.0953 +vn -0.1522 0.4920 0.8572 +vn 0.1941 0.6585 -0.7271 +vn 0.1491 0.9887 -0.0164 +vn -0.1021 0.9174 0.3847 +vn 0.4820 -0.3473 -0.8044 +vn 0.9776 0.0472 0.2053 +vn 0.1729 -0.1636 0.9713 +vn 0.2507 -0.4125 -0.8758 +vn 0.8083 -0.0693 -0.5847 +vn 0.6928 0.0442 0.7198 +vn -0.2869 0.1018 0.9525 +vn 0.2181 -0.4156 -0.8830 +vn 0.4974 -0.4732 -0.7271 +vn 0.6235 -0.7816 -0.0164 +vn 0.3703 -0.8455 0.3847 +vn 0.0543 -0.3513 0.9347 +vn 0.2216 -0.3822 -0.8971 +vn 0.3810 -0.6518 -0.6558 +vn 0.4539 -0.8859 0.0953 +vn 0.1142 -0.5022 0.8572 +vn 0.7070 -0.7070 -0.0170 +vn 0.6941 -0.6941 0.1910 +vn 0.1693 -0.1693 0.9709 +vn 0.2859 -0.2859 -0.9146 +vn 0.5086 -0.5086 -0.6947 +vn 0.6972 -0.6972 0.1672 +vn 0.3557 -0.3557 0.8642 +vn 0.4870 -0.4870 -0.7250 +vn 0.3822 -0.2216 -0.8971 +vn 0.6518 -0.3810 -0.6558 +vn 0.8859 -0.4539 0.0953 +vn 0.5022 -0.1142 0.8572 +vn 0.4732 -0.4974 -0.7271 +vn 0.7816 -0.6235 -0.0164 +vn 0.8455 -0.3703 0.3847 +vn 0.3513 -0.0543 0.9347 +vn -0.4479 -0.8702 0.2053 +vn -0.2281 -0.0679 0.9713 +vn -0.4826 -0.0109 -0.8758 +vn -0.4642 -0.6654 -0.5847 +vn -0.3082 -0.6221 0.7198 +vn -0.1976 -0.2316 0.9525 +vn -0.3967 -0.2509 -0.8830 +vn -0.5417 -0.2438 -0.8044 +vn -0.6585 -0.1941 -0.7271 +vn -0.9887 -0.1491 -0.0164 +vn -0.9174 0.1021 0.3847 +vn -0.3313 0.1286 0.9347 +vn -0.4418 -0.0007 -0.8971 +vn -0.7549 -0.0041 -0.6558 +vn -0.9942 0.0499 0.0953 +vn -0.4920 0.1522 0.8572 +vn -0.9481 -0.2541 0.1910 +vn -0.2312 -0.0620 0.9709 +vn -0.3905 -0.1046 -0.9146 +vn -0.6948 -0.1862 -0.6947 +vn -0.9523 -0.2552 0.1672 +vn -0.4860 -0.1302 0.8642 +vn -0.6653 -0.1783 -0.7250 +vn -0.9658 -0.2588 -0.0170 +vn -0.3830 -0.2203 -0.8971 +vn -0.6558 -0.3739 -0.6558 +vn -0.8361 -0.5403 0.0953 +vn -0.3500 -0.3778 0.8572 +vn -0.6673 -0.1611 -0.7271 +vn -0.9308 -0.3652 -0.0164 +vn -0.7434 -0.5471 0.3847 +vn -0.2226 -0.2771 0.9347 +vn 0.0552 0.2315 0.9713 +vn 0.2319 0.4233 -0.8758 +vn -0.3441 0.7347 -0.5847 +vn -0.3847 0.5779 0.7198 +vn 0.2316 0.1976 0.9525 +vn 0.2509 0.3967 -0.8830 +vn 0.0597 0.5910 -0.8044 +vn -0.5297 0.8230 0.2053 +vn 0.1611 0.6673 -0.7271 +vn 0.3652 0.9308 -0.0164 +vn 0.5471 0.7434 0.3847 +vn 0.2771 0.2226 0.9347 +vn 0.2203 0.3830 -0.8971 +vn 0.3739 0.6558 -0.6558 +vn 0.5403 0.8361 0.0953 +vn 0.3778 0.3500 0.8572 +vn 0.3473 -0.4820 -0.8044 +vn -0.0442 -0.6928 0.7198 +vn 0.0693 -0.8083 -0.5847 +vn 0.4125 -0.2507 -0.8758 +vn 0.1636 -0.1729 0.9713 +vn -0.0472 -0.9776 0.2053 +vn 0.6221 0.3082 0.7198 +vn 0.6654 0.4642 -0.5847 +vn 0.0109 0.4826 -0.8758 +vn 0.0679 0.2281 0.9713 +vn 0.8702 0.4479 0.2053 +vn 0.2438 0.5417 -0.8044 +vn -0.8230 0.5297 0.2053 +vn -0.5910 -0.0597 -0.8044 +vn -0.5779 0.3847 0.7198 +vn -0.7347 0.3441 -0.5847 +vn -0.4234 -0.2319 -0.8758 +vn -0.2315 -0.0552 0.9713 +vn 0.2994 -0.0553 0.9525 +vn -0.1018 0.2869 0.9525 +vn 0.0553 -0.2994 0.9525 +vn -0.0190 0.4690 -0.8830 +vn 0.4156 -0.2181 -0.8830 +vn -0.4690 0.0190 -0.8830 +vn 0.0133 0.7582 -0.6519 +vn -0.0771 0.9867 0.1433 +vn 0.0142 0.5387 0.8423 +vn -0.0888 0.6063 -0.7903 +vn -0.0720 0.9515 -0.2990 +vn 0.1704 0.9677 0.1860 +vn 0.6167 -0.0629 -0.7847 +vn 0.9687 0.0845 0.2335 +vn 0.1263 -0.2940 0.9474 +vn 0.2832 -0.3486 -0.8935 +vn 0.8556 0.0673 -0.5132 +vn 0.7529 -0.1115 0.6487 +vn 0.2262 -0.5694 -0.7903 +vn 0.4134 -0.8601 -0.2990 +vn 0.6314 -0.7528 0.1860 +vn 0.3906 -0.6499 -0.6519 +vn 0.4266 -0.8930 0.1433 +vn 0.2816 -0.4595 0.8423 +vn 0.6499 -0.3906 -0.6519 +vn 0.8930 -0.4266 0.1433 +vn 0.4595 -0.2816 0.8423 +vn 0.5694 -0.2262 -0.7903 +vn 0.8601 -0.4134 -0.2990 +vn 0.7528 -0.6314 0.1860 +vn -0.4112 -0.8811 0.2335 +vn -0.3177 0.0377 0.9474 +vn -0.4435 -0.0709 -0.8935 +vn -0.3695 -0.7746 -0.5132 +vn -0.4730 -0.5962 0.6487 +vn -0.3628 -0.5026 -0.7847 +vn -0.6063 0.0888 -0.7903 +vn -0.9515 0.0720 -0.2990 +vn -0.9677 -0.1704 0.1860 +vn -0.7582 -0.0133 -0.6519 +vn -0.9867 0.0771 0.1433 +vn -0.5387 -0.0142 0.8423 +vn -0.6632 -0.3676 -0.6519 +vn -0.8160 -0.5601 0.1433 +vn -0.4736 -0.2571 0.8423 +vn -0.4806 -0.3800 -0.7903 +vn -0.7880 -0.5382 -0.2990 +vn -0.9232 -0.3363 0.1860 +vn 0.1915 0.2563 0.9474 +vn 0.1603 0.4195 -0.8935 +vn -0.4861 0.7073 -0.5132 +vn -0.2798 0.7078 0.6487 +vn -0.2539 0.5655 -0.7847 +vn -0.5575 0.7966 0.2335 +vn 0.3800 0.4806 -0.7903 +vn 0.5382 0.7880 -0.2990 +vn 0.3363 0.9232 0.1860 +vn 0.3676 0.6632 -0.6519 +vn 0.5601 0.8160 0.1433 +vn 0.2571 0.4736 0.8423 +vn 0.0629 -0.6167 -0.7847 +vn 0.1115 -0.7529 0.6487 +vn -0.0673 -0.8556 -0.5132 +vn 0.3486 -0.2832 -0.8935 +vn 0.2940 -0.1263 0.9474 +vn -0.0845 -0.9687 0.2335 +vn 0.5962 0.4730 0.6487 +vn 0.7746 0.3695 -0.5132 +vn 0.0709 0.4435 -0.8935 +vn -0.0377 0.3177 0.9474 +vn 0.8811 0.4112 0.2335 +vn 0.5026 0.3628 -0.7847 +vn -0.7966 0.5575 0.2335 +vn -0.5655 0.2539 -0.7847 +vn -0.7078 0.2798 0.6487 +vn -0.7073 0.4861 -0.5132 +vn -0.4195 -0.1603 -0.8935 +vn -0.2563 -0.1915 0.9474 +vt 0.801885 0.640663 +vt 0.623697 0.208166 +vt 0.168225 0.628737 +vt 0.641035 0.203983 +vt 0.640072 0.217575 +vt 0.802752 0.659976 +vt 0.252347 0.237069 +vt 0.779414 0.661823 +vt 0.231744 0.238688 +vt 0.758811 0.663442 +vt 0.737191 0.665041 +vt 0.256630 0.635588 +vt 0.203516 0.683333 +vt 0.206117 0.698451 +vt 0.717973 0.211375 +vt 0.245163 0.636129 +vt 0.678927 0.273697 +vt 0.207572 0.709892 +vt 0.680382 0.285138 +vt 0.709955 0.211731 +vt 0.180314 0.632136 +vt 0.653124 0.207382 +vt 0.812312 0.686351 +vt 0.667842 0.685014 +vt 0.660091 0.230807 +vt 0.785113 0.702325 +vt 0.682386 0.712787 +vt 0.258046 0.277571 +vt 0.228523 0.282992 +vt 0.755589 0.707746 +vt 0.233981 0.686444 +vt 0.732532 0.700236 +vt 0.272752 0.714810 +vt 0.256527 0.737234 +vt 0.226462 0.704592 +vt 0.699271 0.279839 +vt 0.217193 0.716367 +vt 0.690003 0.291614 +vt 0.192852 0.624180 +vt 0.665661 0.199426 +vt 0.682965 0.216292 +vt 0.690716 0.670499 +vt 0.716656 0.691040 +vt 0.263814 0.305943 +vt 0.152836 0.372468 +vt 0.234734 0.313544 +vt 0.178507 0.364518 +vt 0.802073 0.754939 +vt 0.776804 0.764761 +vt 0.296243 0.735307 +vt 0.744337 0.325569 +vt 0.271527 0.750323 +vt 0.256599 0.761670 +vt 0.729409 0.336917 +vt 0.197423 0.610209 +vt 0.670232 0.185455 +vt 0.692563 0.643392 +vt 0.684812 0.189185 +vt 0.703947 0.646478 +vt 0.160034 0.343194 +vt 0.176880 0.221724 +vt 0.178507 0.337417 +vt 0.785226 0.802538 +vt 0.186475 0.224335 +vt 0.772713 0.801274 +vt 0.292153 0.771820 +vt 0.273978 0.773266 +vt 0.746788 0.348512 +vt 0.260422 0.774432 +vt 0.733232 0.349678 +vt 0.197423 0.597287 +vt 0.670232 0.172533 +vt 0.684812 0.169384 +vt 0.692563 0.623591 +vt 0.176880 0.199533 +vt 0.264155 0.401788 +vt 0.703947 0.624286 +vt 0.186475 0.200299 +vt 0.255543 0.401781 +vt 0.782610 0.826535 +vt 0.770118 0.825072 +vt 0.289557 0.795618 +vt 0.272121 0.790289 +vt 0.744931 0.365536 +vt 0.259136 0.786229 +vt 0.731946 0.361475 +vt 0.192852 0.582764 +vt 0.665661 0.158010 +vt 0.690716 0.594940 +vt 0.888922 0.773251 +vt 0.682965 0.140732 +vt 0.716656 0.577833 +vt 0.862686 0.749699 +vt 0.275007 0.448945 +vt 0.335620 0.324946 +vt 0.261735 0.451892 +vt 0.308327 0.313544 +vt 0.788802 0.876646 +vt 0.766243 0.861609 +vt 0.285682 0.832155 +vt 0.264783 0.812165 +vt 0.737593 0.387411 +vt 0.252652 0.797867 +vt 0.725462 0.373113 +vt 0.180314 0.575560 +vt 0.653124 0.150806 +vt 0.660091 0.127590 +vt 0.878662 0.797365 +vt 0.847314 0.785828 +vt 0.320247 0.361075 +vt 0.152836 0.306087 +vt 0.291773 0.352449 +vt 0.137779 0.291149 +vt 0.818840 0.777203 +vt 0.664846 0.715903 +vt 0.802073 0.774306 +vt 0.639773 0.722404 +vt 0.159213 0.692951 +vt 0.608953 0.283861 +vt 0.136143 0.708614 +vt 0.122822 0.721995 +vt 0.595632 0.297241 +vt 0.172547 0.603915 +vt 0.168225 0.580511 +vt 0.641035 0.155757 +vt 0.871308 0.817241 +vt 0.640072 0.143678 +vt 0.848578 0.812846 +vt 0.137301 0.349542 +vt 0.321512 0.388092 +vt 0.301602 0.384035 +vt 0.654272 0.765728 +vt 0.127205 0.340974 +vt 0.828669 0.808789 +vt 0.640251 0.758615 +vt 0.809034 0.803112 +vt 0.159690 0.729162 +vt 0.141528 0.731266 +vt 0.614338 0.306512 +vt 0.128040 0.733168 +vt 0.600850 0.308414 +vt 0.331751 0.581324 +vt 0.203444 0.732717 +vt 0.236095 0.777748 +vt 0.104656 0.741216 +vt 0.157538 0.587293 +vt 0.630348 0.162539 +vt 0.875851 0.371194 +vt 0.623697 0.154070 +vt 0.863565 0.379008 +vt 0.871316 0.833215 +vt 0.321520 0.405995 +vt 0.848586 0.830749 +vt 0.301611 0.403427 +vt 0.828678 0.828181 +vt 0.809043 0.822344 +vt 0.159690 0.750792 +vt 0.141528 0.746739 +vt 0.614338 0.321985 +vt 0.128040 0.743891 +vt 0.600850 0.319137 +vt 0.146062 0.597296 +vt 0.881171 0.381929 +vt 0.618871 0.172542 +vt 0.870939 0.404118 +vt 0.878690 0.858325 +vt 0.605351 0.621452 +vt 0.597600 0.167245 +vt 0.847355 0.877162 +vt 0.588759 0.617555 +vt 0.320289 0.452408 +vt 0.152836 0.408814 +vt 0.291818 0.450801 +vt 0.137779 0.401770 +vt 0.818885 0.875555 +vt 0.664846 0.826523 +vt 0.639773 0.810431 +vt 0.802109 0.852569 +vt 0.159213 0.780977 +vt 0.136143 0.764824 +vt 0.608953 0.340070 +vt 0.122822 0.754894 +vt 0.595632 0.330140 +vt 0.146062 0.612455 +vt 0.618871 0.187701 +vt 0.597600 0.194902 +vt 0.809000 0.612652 +vt 0.780151 0.591906 +vt 0.253084 0.167152 +vt 0.223180 0.164088 +vt 0.634625 0.857200 +vt 0.750247 0.588841 +vt 0.615725 0.834842 +vt 0.135164 0.805388 +vt 0.728281 0.605618 +vt 0.247720 0.576164 +vt 0.120787 0.780412 +vt 0.825202 0.133613 +vt 0.236095 0.598351 +vt 0.343914 0.567667 +vt 0.816724 0.142913 +vt 0.157538 0.622597 +vt 0.630348 0.197843 +vt 0.778441 0.640178 +vt 0.251375 0.215425 +vt 0.757757 0.639997 +vt 0.230691 0.215244 +vt 0.736146 0.641791 +vt 0.255585 0.612338 +vt 0.244416 0.619498 +vt 0.717226 0.194744 +vt 0.829506 0.156571 +vt 0.709437 0.200206 +vt 0.199342 0.708141 +vt 0.822519 0.154755 +vt 0.349710 0.579508 +vt 0.826891 0.755974 +vt 0.773574 0.890327 +vt 0.299825 0.331221 +vt 0.854807 0.766419 +vt 0.327740 0.341665 +vt 0.672576 0.130640 +vt 0.885169 0.784311 +vt 0.186589 0.577528 +vt 0.659398 0.152774 +vt 0.246317 0.802126 +vt 0.117009 0.717772 +vt 0.589818 0.293018 +vt 0.719127 0.377372 +vt 0.600544 0.275452 +vt 0.127734 0.700206 +vt 0.255262 0.821137 +vt 0.728072 0.396383 +vt 0.806869 0.756115 +vt 0.149187 0.683333 +vt 0.273610 0.845058 +vt 0.754171 0.874512 +vt 0.736973 0.314756 +vt 0.706791 0.289480 +vt 0.264163 0.739510 +vt 0.767796 0.749559 +vt 0.734275 0.716820 +vt 0.287236 0.720105 +vt 0.790153 0.738298 +vt 0.759403 0.726361 +vt 0.232337 0.301607 +vt 0.701005 0.704847 +vt 0.261438 0.294276 +vt 0.672576 0.226539 +vt 0.680327 0.680747 +vt 0.186589 0.629313 +vt 0.659398 0.204559 +vt 0.251331 0.756146 +vt 0.221325 0.722580 +vt 0.724141 0.331392 +vt 0.694135 0.297826 +vt 0.593264 0.180969 +vt 0.812312 0.604852 +vt 0.601015 0.635177 +vt 0.143761 0.604706 +vt 0.616571 0.179952 +vt 0.117009 0.759563 +vt 0.338823 0.562225 +vt 0.811633 0.137471 +vt 0.589818 0.334809 +vt 0.816760 0.123625 +vt 0.127734 0.774398 +vt 0.600544 0.349644 +vt 0.149187 0.796905 +vt 0.629748 0.826358 +vt 0.225663 0.153079 +vt 0.125025 0.420423 +vt 0.652092 0.845177 +vt 0.782369 0.582475 +vt 0.255302 0.157722 +vt 0.140564 0.425548 +vt 0.585217 0.638320 +s 0 +f 85/211/1 8/20/1 86/213/1 +f 83/206/2 6/11/2 84/208/2 +f 1/1/3 4/8/3 82/204/3 +f 81/202/4 51/123/4 2/3/4 +f 59/143/5 86/214/5 8/18/5 +f 84/209/6 7/16/6 85/210/6 +f 82/205/7 5/9/7 83/207/7 +f 81/203/8 3/5/8 1/2/8 +f 2/3/9 51/123/9 9/21/9 +f 59/143/10 8/18/10 15/37/10 +f 6/13/11 14/35/11 7/14/11 +f 5/9/12 11/28/12 12/29/12 +f 3/5/13 9/22/13 10/25/13 +f 7/17/14 15/38/14 8/19/14 +f 5/10/15 13/32/15 6/11/15 +f 4/8/16 10/23/16 11/26/16 +f 94/240/17 20/50/17 21/52/17 +f 96/246/18 18/44/18 19/46/18 +f 99/252/19 17/41/19 98/249/19 +f 100/255/20 21/51/20 22/54/20 +f 95/241/21 19/48/21 20/49/21 +f 97/247/22 17/42/22 18/43/22 +f 44/105/23 90/224/23 51/123/23 +f 59/144/24 100/253/24 22/53/24 +f 22/54/25 28/68/25 29/70/25 +f 20/49/26 26/63/26 27/65/26 +f 17/42/27 25/59/27 18/43/27 +f 16/39/28 51/123/28 23/55/28 +f 59/144/29 22/53/29 29/69/29 +f 21/52/30 27/66/30 28/67/30 +f 18/45/31 26/62/31 19/47/31 +f 16/40/32 24/58/32 17/41/32 +f 26/63/33 34/81/33 27/65/33 +f 24/57/34 32/77/34 25/59/34 +f 23/55/35 51/123/35 30/71/35 +f 59/144/36 29/69/36 36/85/36 +f 28/67/37 34/82/37 35/83/37 +f 26/64/38 32/75/38 33/78/38 +f 24/58/39 30/72/39 31/73/39 +f 28/68/40 36/86/40 29/70/40 +f 59/144/41 36/85/41 43/103/41 +f 34/82/42 42/101/42 35/83/42 +f 33/79/43 39/94/43 40/96/43 +f 31/73/44 37/88/44 38/91/44 +f 35/84/45 43/104/45 36/86/45 +f 33/80/46 41/99/46 34/81/46 +f 32/77/47 38/89/47 39/92/47 +f 30/71/48 51/123/48 37/87/48 +f 87/219/49 46/110/49 47/112/49 +f 90/225/50 45/107/50 89/222/50 +f 91/228/51 49/119/51 50/122/51 +f 93/234/52 47/114/52 48/116/52 +f 88/220/53 45/108/53 46/109/53 +f 67/162/54 51/123/54 102/260/54 +f 103/262/55 59/145/55 73/182/55 +f 92/231/56 48/118/56 49/120/56 +f 50/122/57 57/139/57 58/141/57 +f 48/117/58 55/132/58 56/135/58 +f 45/108/59 54/128/59 46/109/59 +f 44/105/60 51/123/60 52/124/60 +f 59/145/61 50/121/61 58/140/61 +f 49/120/62 56/137/62 57/138/62 +f 46/111/63 55/133/63 47/113/63 +f 44/106/64 53/127/64 45/107/64 +f 53/126/65 62/153/65 54/128/65 +f 52/124/66 51/123/66 60/146/66 +f 59/145/67 58/140/67 66/160/67 +f 57/138/68 64/157/68 65/158/68 +f 54/130/69 63/154/69 55/131/69 +f 53/127/70 60/147/70 61/149/70 +f 57/139/71 66/161/71 58/141/71 +f 55/134/72 64/156/72 56/136/72 +f 59/145/73 66/160/73 73/182/73 +f 64/157/74 72/180/74 65/158/74 +f 63/154/75 69/171/75 70/173/75 +f 61/150/76 67/163/76 68/165/76 +f 65/159/77 73/183/77 66/161/77 +f 63/155/78 71/178/78 64/156/78 +f 62/153/79 68/166/79 69/169/79 +f 60/146/80 51/123/80 67/162/80 +f 102/261/81 75/186/81 101/257/81 +f 103/264/82 79/198/82 80/201/82 +f 105/270/83 77/191/83 78/193/83 +f 107/274/84 75/187/84 76/188/84 +f 102/260/85 51/123/85 74/184/85 +f 59/142/86 103/263/86 80/200/86 +f 104/267/87 78/194/87 79/197/87 +f 106/271/88 76/189/88 77/190/88 +f 80/201/89 85/212/89 86/215/89 +f 78/195/90 83/206/90 84/208/90 +f 75/187/91 82/204/91 76/188/91 +f 74/184/92 51/123/92 81/202/92 +f 59/142/93 80/200/93 86/216/93 +f 79/199/94 84/209/94 85/210/94 +f 76/189/95 83/207/95 77/190/95 +f 74/185/96 1/2/96 75/186/96 +f 41/100/97 92/232/97 42/101/97 +f 38/90/98 88/220/98 39/93/98 +f 40/98/99 93/237/99 41/99/99 +f 42/102/100 91/229/100 43/104/100 +f 38/91/101 90/225/101 89/222/101 +f 39/95/102 87/219/102 40/97/102 +f 10/24/103 97/247/103 11/27/103 +f 12/30/104 95/242/104 13/32/104 +f 14/36/105 100/256/105 15/38/105 +f 10/25/106 99/252/106 98/249/106 +f 11/28/107 96/246/107 12/29/107 +f 13/33/108 94/240/108 14/34/108 +f 69/172/109 106/272/109 70/174/109 +f 71/179/110 104/267/110 72/180/110 +f 68/167/111 107/277/111 69/170/111 +f 70/176/112 105/270/112 71/177/112 +f 72/181/113 103/265/113 73/183/113 +f 68/168/114 102/261/114 101/257/114 +f 51/123/115 90/224/115 37/87/115 +f 9/21/116 51/123/116 99/251/116 +f 99/251/117 51/123/117 16/39/117 +f 100/254/118 59/143/118 15/37/118 +f 43/103/119 91/226/119 59/144/119 +f 59/145/120 91/227/120 50/121/120 +f 85/211/1 7/15/1 8/20/1 +f 83/206/2 5/10/2 6/11/2 +f 1/1/3 3/6/3 4/8/3 +f 84/209/6 6/12/6 7/16/6 +f 82/205/7 4/7/7 5/9/7 +f 81/203/8 2/4/8 3/5/8 +f 6/13/121 13/31/121 14/35/121 +f 5/9/122 4/7/122 11/28/122 +f 3/5/123 2/4/123 9/22/123 +f 7/17/124 14/36/124 15/38/124 +f 5/10/125 12/30/125 13/32/125 +f 4/8/126 3/6/126 10/23/126 +f 94/240/127 95/243/127 20/50/127 +f 96/246/128 97/248/128 18/44/128 +f 99/252/129 16/40/129 17/41/129 +f 100/255/130 94/238/130 21/51/130 +f 95/241/131 96/244/131 19/48/131 +f 97/247/132 98/250/132 17/42/132 +f 22/54/133 21/51/133 28/68/133 +f 20/49/134 19/48/134 26/63/134 +f 17/42/135 24/57/135 25/59/135 +f 21/52/136 20/50/136 27/66/136 +f 18/45/137 25/60/137 26/62/137 +f 16/40/138 23/56/138 24/58/138 +f 26/63/33 33/80/33 34/81/33 +f 24/57/34 31/74/34 32/77/34 +f 28/67/37 27/66/37 34/82/37 +f 26/64/38 25/61/38 32/75/38 +f 24/58/39 23/56/39 30/72/39 +f 28/68/40 35/84/40 36/86/40 +f 34/82/139 41/100/139 42/101/139 +f 33/79/140 32/76/140 39/94/140 +f 31/73/141 30/72/141 37/88/141 +f 35/84/142 42/102/142 43/104/142 +f 33/80/143 40/98/143 41/99/143 +f 32/77/144 31/74/144 38/89/144 +f 87/219/145 88/221/145 46/110/145 +f 90/225/146 44/106/146 45/107/146 +f 91/228/147 92/230/147 49/119/147 +f 93/234/148 87/217/148 47/114/148 +f 88/220/149 89/223/149 45/108/149 +f 92/231/150 93/235/150 48/118/150 +f 50/122/151 49/119/151 57/139/151 +f 48/117/152 47/115/152 55/132/152 +f 45/108/153 53/126/153 54/128/153 +f 49/120/154 48/118/154 56/137/154 +f 46/111/155 54/129/155 55/133/155 +f 44/106/156 52/125/156 53/127/156 +f 53/126/65 61/151/65 62/153/65 +f 57/138/68 56/137/68 64/157/68 +f 54/130/69 62/152/69 63/154/69 +f 53/127/70 52/125/70 60/147/70 +f 57/139/71 65/159/71 66/161/71 +f 55/134/72 63/155/72 64/156/72 +f 64/157/157 71/179/157 72/180/157 +f 63/154/158 62/152/158 69/171/158 +f 61/150/159 60/148/159 67/163/159 +f 65/159/160 72/181/160 73/183/160 +f 63/155/161 70/175/161 71/178/161 +f 62/153/162 61/151/162 68/166/162 +f 102/261/163 74/185/163 75/186/163 +f 103/264/164 104/266/164 79/198/164 +f 105/270/165 106/273/165 77/191/165 +f 107/274/166 101/258/166 75/187/166 +f 104/267/167 105/269/167 78/194/167 +f 106/271/168 107/275/168 76/189/168 +f 80/201/169 79/198/169 85/212/169 +f 78/195/170 77/192/170 83/206/170 +f 75/187/171 1/1/171 82/204/171 +f 79/199/172 78/196/172 84/209/172 +f 76/189/173 82/205/173 83/207/173 +f 74/185/174 81/203/174 1/2/174 +f 41/100/175 93/236/175 92/232/175 +f 38/90/176 89/223/176 88/220/176 +f 40/98/177 87/218/177 93/237/177 +f 42/102/178 92/233/178 91/229/178 +f 38/91/179 37/88/179 90/225/179 +f 39/95/180 88/221/180 87/219/180 +f 10/24/181 98/250/181 97/247/181 +f 12/30/182 96/245/182 95/242/182 +f 14/36/183 94/239/183 100/256/183 +f 10/25/184 9/22/184 99/252/184 +f 11/28/185 97/248/185 96/246/185 +f 13/33/186 95/243/186 94/240/186 +f 69/172/187 107/276/187 106/272/187 +f 71/179/188 105/269/188 104/267/188 +f 68/167/189 101/259/189 107/277/189 +f 70/176/190 106/273/190 105/270/190 +f 72/181/191 104/268/191 103/265/191 +f 68/168/192 67/164/192 102/261/192 diff --git a/resources/textures/gun_platform.png b/resources/textures/gun_platform.png new file mode 100755 index 0000000000000000000000000000000000000000..0fe4cac1e210db1a7b73aca59491fa193fd56ec6 GIT binary patch literal 542 zcmV+(0^$9MP)EX>4Tx04R}tkv&MmP!xqvQ>7vm2djuUWT-A$5EXHhDi*;)X)CnqVDi#GXws0R zxHt-~1qXi?s}3&Cx;nTDg5VE`tBaGOiz=x)?jk(PyYJ8HQF0~&d?N82(+!JwgLr1s z(mC%FhgeZkh|h_~4Z0xlBiCh@-#8Z>7Idz$n60c!Gcq(`TwDF6Tf24YJ`L;wH)0002_L%V+f000SaNLh0L z04^f{04^f|c%?sf00007bV*G`2j>A502eXIZ;LAc000_EL_t&t*JEH{U|{g{^o(cF g*Vq63|NsAZ03aj=A831{Jpcdz07*qoM6N<$g0;Ng!T void) => { "maintainer.obj", "infiltrator.obj", "emp_mine.obj", + "gun_platform.obj", ].map((url) => loadObj(url, gl, programInfo)) ) .then(async () => { @@ -403,6 +404,11 @@ const clientPlayerUpdate = (player: Player) => { mat4.scale(modelMatrix, modelMatrix, [Math.max(1, 10 / (warpFramesLeft + 3)), Math.min(1, warpFramesLeft / 10), 1]); } + if (player.dp) { + const deployingAmount = (player.dp / def.deployment!) * 0.7 + 0.3; + mat4.scale(modelMatrix, modelMatrix, [deployingAmount, deployingAmount, deployingAmount]); + } + player.modelMatrix = modelMatrix; }; @@ -416,7 +422,8 @@ const drawPlayer = (player: Player, lightSources: PointLightData[], isHighlighte const def = defs[player.defIndex]; let bufferData = models[def.modelIndex]; - if (player.isPC || def.kind === UnitKind.Station) { + // No names for gun platforms (index 15) + if (player.isPC || (def.kind === UnitKind.Station && player.defIndex !== 15)) { const name = getNameOfPlayer(player); if (name !== undefined) { let nameData = nameDataCache.get(name); @@ -1658,7 +1665,7 @@ const drawEverything = (target: Player | undefined, targetAsteroid: Asteroid | u if (isRemotelyOnscreen(player.position)) { clientPlayerUpdate(player); - if (!player.inoperable && !player.docked) { + if (!player.inoperable && !player.docked && !player.dp) { const def = defs[player.defIndex]; if (def.pointLights) { for (const light of def.pointLights) { diff --git a/src/defs/armaments.ts b/src/defs/armaments.ts index aca8dcc..6392922 100644 --- a/src/defs/armaments.ts +++ b/src/defs/armaments.ts @@ -4,7 +4,9 @@ import { availableCargoCapacity, CloakedState, EffectAnchorKind, + effectiveInfinity, EffectTrigger, + equip, findAllPlayersOverlappingCircle, GlobalState, Mine, @@ -14,7 +16,7 @@ import { TargetKind, } from "../game"; import { canonicalizeAngle, findHeadingBetween, l2Norm, l2NormSquared, Position, Rectangle } from "../geometry"; -import { defs, PointLightData, SlotKind, UnitKind } from "./shipsAndStations"; +import { defs, emptyLoadout, PointLightData, SlotKind, UnitKind } from "./shipsAndStations"; import { clientUid as uid } from "../defs"; import { asteroidDefs } from "./asteroids"; import { projectileDefs } from "./projectiles"; @@ -1112,7 +1114,52 @@ const initArmaments = () => { tier: 1, }); - + // Gun Platform - 23 + armDefs.push({ + name: "Gun Platform", + description: "A deployable gun platform", + kind: SlotKind.Large, + usage: ArmUsage.Ammo, + targeted: TargetedKind.Untargeted, + maxAmmo: 1, + fireMutator: (state, player, targetKind, target, applyEffect, slotIndex, flashServerMessage, whatMutated) => { + const slotData = player.slotData[slotIndex]; + if (slotData.ammo > 0) { + slotData.ammo--; + const id = uid(); + const def = defs[15]; + let platform: Player = { + position: { x: player.position.x, y: player.position.y }, + radius: def.radius, + speed: 0, + heading: Math.random() * 2 * Math.PI, + health: def.health, + id, + sinceLastShot: [1000], + energy: def.energy, + defIndex: 15, + arms: emptyLoadout(15), + slotData: [{}], + team: player.team, + side: 0, + dp: 1, + v: { x: 0, y: 0 }, + iv: { x: 0, y: 0 }, + ir: 0, + }; + platform = equip(platform, 0, "Heavy Tomahawk Missile", true); + platform.slotData[0].ammo = effectiveInfinity; + state.players.set(id, platform); + // TODO Make a new sound for this + applyEffect({ effectIndex: 12, from: { kind: EffectAnchorKind.Absolute, value: player.position } }); + } + }, + equipMutator: (player, slotIndex) => { + player.slotData[slotIndex] = { ammo: 1 }; + }, + cost: 100, + tier: 1, + }); for (let i = 0; i < armDefs.length; i++) { const def = armDefs[i]; diff --git a/src/defs/shipsAndStations.ts b/src/defs/shipsAndStations.ts index 943ee98..2fcbeb4 100644 --- a/src/defs/shipsAndStations.ts +++ b/src/defs/shipsAndStations.ts @@ -56,6 +56,7 @@ type UnitDefinition = { model: string; modelIndex?: number; pointLights?: PointLightData[]; + deployment?: number; }; const defs: UnitDefinition[] = []; @@ -486,6 +487,32 @@ const initShipsAndStations = () => { isCloaky: true, model: "infiltrator", }); + // Gun Platform - 15 + defs.push({ + name: "Gun Platform", + description: "A static gun platform", + health: 800, + speed: 0, + energy: 1100, + energyRegen: 0.5, + primaryReloadTime: 10, + primaryDamage: 15, + radius: 25, + kind: UnitKind.Station, + slots: [SlotKind.Normal], + hardpoints: [{ x: 0, y: 0 }], + dockable: false, + deathEffect: 4, + healthRegen: 0.1, + repairsRequired: 8, + primaryDefIndex: 0, + mass: effectiveInfinity, + model: "gun_platform", + deployment: 120, + pointLights: [ + { position: { x: 0, y: 0, z: 5 }, color: [2.0, 2.0, 2.0] }, + ], + }); for (let i = 0; i < defs.length; i++) { const def = defs[i]; diff --git a/src/game.ts b/src/game.ts index afc585d..003d4b8 100644 --- a/src/game.ts +++ b/src/game.ts @@ -129,6 +129,8 @@ type Player = Entity & { dd?: DelayedDamage[]; // For the tutorial only doNotShootYet?: boolean; + // deploying + dp?: number; }; interface NPC { @@ -967,10 +969,19 @@ const update = ( player.energy = Math.max(0, player.energy - 2 * deltaEnergy); } } else { + // Handle deployment + if (player.dp) { + if (player.dp < def.deployment) { + player.dp++; + } else { + player.dp = undefined; + } + } + // Have stations spin slowly player.heading = positiveMod(player.heading + 0.003, 2 * Math.PI); // Have the stations fire their primary weapons - if (!player.inoperable && !player.disabled) { + if (!player.inoperable && !player.disabled && !player.dp) { let closestEnemy: Player | undefined; let closestEnemyDistanceSquared = Infinity; for (const [otherId, otherPlayer] of state.players) { @@ -1022,6 +1033,21 @@ const update = ( state.projectileId++; } } + const targetKind = TargetKind.Player; + for (let slotId = 0; slotId < player.slotData.length; slotId++) { + const armDef = armDefs[player.arms[slotId]]; + // Targeted weapons + if (armDef.targeted === TargetedKind.Targeted) { + armDef.fireMutator(state, player, targetKind, closestEnemy, applyEffect, slotId, flashServerMessage, ret); + // Untargeted weapons + } else if (armDef.targeted === TargetedKind.Untargeted) { + if (slotId !== undefined && slotId < player.arms.length) { + if (armDef.fireMutator) { + armDef.fireMutator(state, player, TargetKind.None, undefined, applyEffect, slotId, flashServerMessage, ret); + } + } + } + } } } else if (player.inoperable) { for (let i = 0; i < player.repairs.length; i++) { @@ -1037,6 +1063,13 @@ const update = ( if (player.disabled > 0) { player.disabled = Math.max(0, player.disabled - 3); } + // Run the secondary frameMutators + player.arms.forEach((armament, index) => { + const armDef = armDefs[armament]; + if (armDef.frameMutator) { + armDef.frameMutator(player, index, state, flashServerMessage); + } + }); } // Update primary times since last shot (secondaries are handled in the frameMutators in the armDefs) for (let i = 0; i < player.sinceLastShot.length; i++) { @@ -1369,6 +1402,7 @@ const findPreviousTargetAsteroid = (player: Player, current: Asteroid | undefine return ret; }; +// Note that this function return the new player object which has been modified (old is unmodified) const equip = (player: Player, slotIndex: number, what: string | number, noCost?: boolean) => { const def = defs[player.defIndex]; if (slotIndex >= def.slots.length) {

    t*blL&1iRPAv|kF81arys96K#4BGp14!`4 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 z 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

  • aARc@_7FWm< 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