7T6Mbd;{)fXZduRz^VvUmgGlF+yCWaveoAO-He1ucVFuXrQR7gU z_g;@S^{hnNmi(x&le_0#L!Ofn`~S7ZbLlnmEZOASZ*iVf6L751nXrE@y=7-(;mFw% zv7f`LNuagh2FdMz%dXL%FL4CzWIw<9??srLPNB?%ZphOZUy7|#{>IoBXJy^h`{OrG zXdAjf%&cqdE?uO?zt($6Db(dx)qwA%BraI!hg3t=I)-$nP6i-7jgc;d?>`--(j|&i zX|t!FG5^%pe)Gwnid7#}J6xV}R;*mgBg#sxb}jI+4YD7*eKjM<-K-3kZ^JLmuD5Dh zS@k}E2CdckKBETtsF~ zYb)>LGb{5|tk12O89QSMI?Z=VNFIj_Rr5Y1MDeq|V7;YEO=_-tmPcho@OL-W>1{vI zzZBaZ_cIZAX58fJmefeEXA@f)L2%KzvQJt*$&;N18O|mCz*k-OQliS+)_wE4(-NXC z8p)Aew@i_G >u^=oCCU zZf>x{7;+RO)}SEY|N7(o`=K #r4WcJY|=ap0JkiKtUX7sv)Lo{njU)w_q$KGU?do8ifPKI!CA z26dL&S2ga}d;0~lT~ZF>?6lC?)REoXsncta+0E5QZzb{7XD*lcpZS;ng2%tPE0n>E WWjahmBL}vR6d>5U;aMjFQ~w5(Y=aH} literal 9814 zcmZ8nRa6uJv)-jsx+PXhdV!@IS8@pjrDN#^0qITwL8ZG>y1N^eSddQX4rvg${^!2j z|31t&4|C3(d7AjlOe|{Ep`SiG(5|ma{)msDE=PhFGLJ z-Rej<kMqd2_rQ O^Akybk)5fG4iN!_f$VzSa6!#vpTG@ck`4b1|&x! z4|ZaSq$s@|wj)gp1@+tZ6qfe>a4x+F0RU_!?kj#DAhjO6m*vbHq}&5hMs3dR@-$N3 zgRxL>R)*~kwzoOtsJViXLt{F@t0}x=Ybwej()h9EbPC-{^Wz$dYY(1)Vcna;&?d(b zh`*RAWFfYzxX5Uv(@msQ~4flZOS*xhI#AqzmE8(e?h#NdP01^q2)G}34ZJM3&NY&MJobiv3otgl=;vDeST zLUwA-?fUNe%glYnzxP-WqAAZOKHao_%e)=7bX-ifXKD_^;-?arg=t@p1VAxK0PLP6 zxb%lP?-INfgIx%1%eubh;=mo~sUQ*zf>@uHn(QmF@fb%!`-%(SvkwJ)+0O|2wYVe~ zJ`E9%_5Sqm!haw-hEad?Krwl?kazk!yaStxZSnp?1HlEuS01a~V*4v61(X0FaCM7n zihbGTkm5O$+p6Agq)O0?tB5Ne*G!@Mx3?aW0S*;ih_$v|5!?|Tg}l?=L`-sCUuq9K z0Cs5 l4HR^wlC-b~|y0 z2L=aun{tn47y}SwYvj(7jzn;qP?i7yqqKUsTm|$^NW>POC>N)Nb%3WuJrUsT9fFK| z=P><`V`T9#MOeA`O6+(%Ro?0CV5Oq}oQgO1Yt!%|CwT@1r}Hs_X9{#3{;q@^H$d1bH9Y(ll zbV0108!{TAu}Nz81#CMwrKV>_)d8=cpiBlcq^x5H)`9$7M<6#aqhDa{L-YNuxE@F+ zE_rf^JyyVmn~ +k6`rjDY>&A)5cu ; NV)Aaaj2!bUgC!`=m4x@3!_ Kmj^M$7Bgq4hX z>U! v)+vn8w-GsyiL8;c n>0pU{B(Q!hp4Y4D+YUmMfMfw zS-QGlt5=NnL**i%#vui!#aU|c&=%}krzVuc Q9v1xrvNbt+iD?%(T{VNKF+Rc7FRy2k=nwft$P}Ea$I+72UTQY3-wa zIm)dyBA^ mG5_-Dn`KR>8j?pC(%dryo{NpRT#DU_2mlU>s6E1W>QmR>Vf*QS^+ zMis>6n9xzycKgnX{Vpq(I2OeHTRVk6=w$}x!z<21^rzoAH@R;Q@N}FGA(54K%_Yu1 zP6y~d8lh|Ig=_DL)QL=|*=zd_hEA8pq*WV$%PG-*%m&IXH{AyJTHZ)3w6aKCoO_x_ z;}@WIr=qf{6mCpm-N`yBQKE+DUOy7$nXXlIcRxOSEE@_#5wLoPU%CdsI@(i ^~l9t8S0g3J^w8pp=kU#}d^n~D21IxZRj02q+K*urI!FY~*LArHF0 zE~L |@LCO3?v)@LlN7sfIfB11V zYY-9b&Yh4F72s*`nMx=eEr_`-jAn{>$KV`#;D)fk$pJ0v4eI9xRb8eyK&Pxh*5R8D zz8!QO+GqzAJvkwzmX>r-`X~6a%@iL`<>BF@CEg1OCEPhiu8nt7_~@CLG$^6HzATd{ z9~~vlIVaFfGaRmYj?Ff9lT=j1mCG1}Pi@~wGvp(bKDp?QH12=-Tx6|7cyYOwg0F&K z%TP=yM)s_K%lj~QePRaK1Pm;NhZ};WZw_;_Fv K z6-iQvT+Ojd>K2z~e%A66v-GoIKJ2O6tJZVOip-!9HI_ZH#r_+gmw>^aw} x-(ErT=G!7CYPw-NXT2NK=lj%asvnsSj50DsuQD@_j03vuoAqt7cYm{b z4ZFkLK2LsO7NuD{6Cz08KN5cK>h=wu_@>`Md3^GutwfpIL;?p^DPZ;HsA9VZ0s%Ea zR!z)Lok#7BPkw6Sk41Wh9{a(S%hioP({^_FSsPWMn^}rt;}RmQ>_BW2d~TblW?x7O z8VX=ntmSF4?P4qo9bkmj 1GMA(}SpP?8K8Sq(luMf;JPzA22nna5!k)ZUKOti=!=^3{_|aoTiza^(AA{ zwQZ;bH&mVBeS>|K>9%?Nyjnjm-Wzaj@gDzAL0eRV(WJR@4KX8+^CT_Tx=PxEgZo~6 z`9WV?BtI8U&*h@) AO(`b6{P5LNABbUvi#9HyKDTnmHRGG(B23 z)u5%x6mr>Bquq>@HfRvPNj}|)e8@4&uGhSGhN8=F0I#+~tZ+lX%5#5k9vGDU6UG}7 z4U?bJKwWlh3AOP`eG<=BP_{}BcNMP5 HqE3T3ygH#l_#%UtnFa*||I)`=5$dg!*a=PQ;E zH4FX`mMckI6Qxuo8*)7#Ug3>tW@&-F{*IJ;YXInU1U#O;vmsjb&oH{7p(<5)K^*;c zOBU~p6<*} Ow##a%d`!L_Zt0^WsFYwvcspRSY}kJy%c1`FuPokxnD T@R$@7U{1YnNi>4h`fAncV4BavThNRC?=sx-Tdtyl_&&GsY~G zI%;shd!^;_@$$VKrPTMTqxw*EDU%?xou*SM$2S?wCbOxzY@q8cm >(l z(z4cEnPTJil>gjLGyPKfxL;;6=+CPZ$`_c}X^(1+_p9=YKF?aS1@GyNcA5!j%DVG` zR)o0F&*0hP0?AdP+s@YI&z1?c)dbiWpJd*s8pXAougt_!@j+Ue%f!s_yGpOMKj@R; zlPEHWFESha2?h07;p3DWo&=Gh`EB4#OU^eS(AQ6>B%gak+)l6Sv A1lFYm{!St{B@(yGk`nFNrY5K4!3n;PhiO7Wq`p7@ z>p=dmd$}N>zrMWa#j^LGx+^dFLp9jKbw;;-TBJ_xCZ?qrCePzcsh%TsS=(RSqVY)= zTCPSW*hP0bM0Y2xs3+IOmYcuHlke`~TZK_tilgovO;pcj1<{elCI@RqCjIEbxI`_q zktgVna$}5U(W2<05ehgMY;FAodvsO6n!58lZ-tq>7!Wq3)KWEYLyz)r54jq!XH}bL zG@w0IOq-QQwLaD)bQ{C`Lq{M2n$57aeMF3uoHzDQX%NsFRbOlVCO0BRXF>$zmxC%0 zWFdgJQ{&0_CsEDaRZLhHI~uGec`>!7kz3&`jL622wJ`4VpsS 7BEvCltajBCcrAcYpLAFv5D+hr|!mctE#r|+}e;Of&EoZ8< zw;;y;rdz-LP|{k7!k989?or`>_x#Rt&Xf5q1au^%)8K%7?+g5(8WP3f-{yO}G0`}v zR|8}^pc29Y2% )1o|NL1Ss>3r-u FcU328KBC`HQv3ANUb$<+f-vW?(#?xVqYs$MAchuLiyPh94l<(}a}PY%Opd ze^9r+$~37LXSfqcX(JBM;W<|0k$_}^1y4fb!C&cQXS&@#xq%58h<|x;UAWi(i@Zse z+{-Ck(Q8x8hJa_@OUHrngOV8(L&IZS# =g9|ntROi@v z4dx$TwoX~iK+#^A<#Ijec$?i;VZ}#GB_>VLM$5GbD0b&ZBpb6IH=v({&cg2D(^pe7 z1s|?<>`i##7u6)CqJsmSOz~6dN{s59K>=*)cm pj*_1L}q-eTmfeypwM*CT* zEv1mL2OfNy_Jt!Jk&eo2fj71%<2$N1<~5Gm^|fYpl+!n?_B)PH-{-@y_jw^cR<|fk zTbM(wrYK=@qI76$F_=$M?#%~wI=N* IuT z2q+PD0ibTM$IdsiAhW81VC7QQxGXA4+Q*|O^9%~5X^4wtno@0v08JUZDy#s-90Pyw zy*{5du^ RD3|eco7}r!FNGQqw0Zu`Pc-hkr7glRTbp%}6h9MQPeja_eOM9`^ zPBAf^Zyu*k%*nT>%6vZaS?^HwboFAlKg2$GWcPEaY;9PcFO;?L7FjN2g!CB^3mcD2 z$7+9VlbMw)HL*w$at*^!!z(Lo^|_&y;v85Mt7J;6m6hpvL8?2A?dP#s*m9Ty>aokD zTq48ToU1LIN5GgUNw0!HVrdVXZ#W)0kXD64Dokz|LC-F;@nUGWz>hC)T=I@dH2m*3 zTJXR9@^YJ7^U+ziclUM8tvzP-0ohd;Ch`sHVHiv2FmKZ( &0@m^GCcD`GEA0+dKm^E ?U=UvD=;pOpmR^a%S@(XZw2KDR)kv1U+P z%??+YJ#D6pTKTQ`TQl8EB*P)%XynkGd%SiFlK~p=p=9}&JAhLh?h~sH*T!Q{pD2qU zL|g#ujTBxJ1JHmk>2MWM9HMW7Te;g-ox3AXhWfu=iSW1RNBH!~{G8L`KB5!v%^tow zq)T>9fAS!Fi3#4dwrmaOu4r5DbMqE?9%Bn$1mupae4Ei8B&{&?l073uUT^a5_7X9A zxsIOoQ~X;C)02;>YVcmaavG)zN!XveZ=J2cD0G5 rivD{v=mw*YVASIO+ovND~o#7B{dzk-?>*f0Ds*hm#!^cr6uP52RZ6lwv zs?rUttryX8lPo;LOEta#Ud+joVUJ(~3dzX)s;)AEcQG^cum9#93ML59@;?N1=k8py z;!Ef5@oVF)e=&hcW%n`W4Yi*IGyUPrZRsr*fKnDlHl#=2MhCD fRL z&Bgck!Lw(s!W6!sGFWtPYm&blKt`Z>HA$>LQj|8nry`H`?(O%u^wo&D3QlGEV56R+ zGe}%=`WAM_E2v`h=W;y1&Ad-m28+jg&8h5)giY@nC@mTG%2W25P2)Ot*WNNZ{GDua zJ~)vT?_xzGv0Cc`S_TMgS0KmecP9T1=PBBl)TE71*p8G1;4ltb{P7&idleoC9$^hf z)<6g98od{n$-mWGs4G%3dNiy|&|VcV%a9rBc@9<-U%vtlXNj1~OVJTVS{@Py%#Jep zzoA_*GVa#bWd$(Qv#1~vE89F~E5%+8=Yqbnrdvt#`G`fq^RW7WoaG x6H^U$z3H(g?7znsULF2QqixQcvX2)HJmAm?1BNm1_W^b`X@Kih#5+~9U z6!eALy~av(Cxjxyur-FJ>*b&7PTHJM2=T>N5)^$}G?0EuD&pQ2F{CEpF;b28X;(;1 z+rxwD>UqaPeBB9fL=?F+$i^{36D9t2Dm|7!_(p@iQypv4eVp5x)Uv4H(<6z?(5ht0 z(=;7fdaJQ^>i{G2+ZNtGf*n;xI_mDu7l#l4WC@%K!zM7PJRyJ>L14)`jhsd_DDRM6 zzhy&;%64EUqYob|{K_-Y48112HHI*6tW}EqgYa#Albv;*4QHLqEk62*MRv>9SBw5i zg84t`+0M<*OnxgfNI*I34;(%Zez)DZB(OExBaj0eeiGlj`G^M{p|R?gK&@<3ZjoHX zV31}Hy4=xX)eT+zX&f*cZf&|~9PKsyKC&W!1$3KML8Sj$fxHZkem^WX-9o2LNV9W) z?>YVr9Dlk@jsHjb<%>cA20`(QI^nwpcSv2` CtM=fhL?Zzr7zO8yzlz#xfVl%`mCDug73pEPze^(1S2eYWC{JtsP+=A;ho?3pw5 zSLp$i4&sAC7~~<~xtY)>>QW&Vd=^E;-qqwEJC6ORn@|p_&KK)TbAqgMn7GwE5tM|s z1Z~Ss(?53Q6b?o5IQ7*OLN3@s8)bLp%ay9OagcFwa{dFZ8*}{M=7_b#%U&oz(fU}^ zXK3h`1x0cIK|gs@ w;vPl8cHIdEVIt3wB9=7RW0JNM6Xyf zPRE^l_P!~cP6)BG44{wh*AGp3vBTDRr30myT~a#rH!qUtX|#RoM_o7ZO9hCc_1sRI z?5|KfTeD~5WhH^#0p$2p8FN1`*hc?elwuez-OX=GEiFtVAMP9MpL-i~Z+M4@u`C_y z0w^2H0(nQNixZ6D>khW%-kcZjPc=8-00F^A9xR70xIj-Bg+6g?9XM169}Pxt?CLwH zeP#UIeyR#kxKvf4a~gV-F;e0OGvSo_Fi-o uXR?l56qj|j_xgS>Y z9!n4Tk{!`F5wF>#ehg@;rt8QQoYIivS^@wD!x8f0O97x 18=wNu<={f0KpJg}!f zCAth1{OChilg`3HEY}$jz+>>Z%!5a6$1e$zl9zGu?AR{4w&e6(yA@vUbd&11E1&4A zNs;=(A;nw%u6PS`+K;+GN_uY>T~1ooBA-Y_ch*@;{khdpOuG?v`f7m8mJ)^V>X9LF z>|Q-pM)VXU*qRGsc{N)W!XUIkX+0?DDk1-EnIYL@UB>-kJ10k9^ez^9tqRtfg?~EF z)&AGLBi|l>t%GI?003&KZpLDr?yfT
nro! z5k4ppk=kVZkx7*<%fSP>mECMZ{AHD0jjSarn2);X<+G*o^;b}4Ysm$-pjImiqalt+ zM>G7xA|SimttQlD%C&(BZ@2JE4{1PweDVlfAP^M=KSQ_HOEqg=sm{E1H>J2j0ZV^u z!{|0}KYj5ep<{-+%j&6!yDa6UNG1-77Opi|CQLUWhs`Ivj`Rn|uq)ZJN3TuxdLS=> zrYQQ@r<*o2NK7f8(3IE4FVlsDM^u@z&!5?eJxf{5NzqjhTE~+WG%nihYi`BG008>m z|7Zbzoi|VzechL?#|*-I!|x0=gwRoW?(7%{+>j+~tgi~uqMRvn#73+Hetce6Z1%io zAA2rn9ndxlNx6Q_0n3^a$Mn*_F1cTNOpJQN!85;u$~H-d0UM@ }_tar85e2FtzU!Zi9jfi%<@7(|y&vVy-E^#ap z!U-4O$APX55T5$}Q&^Yau+Z5XiORMX>wsS_Jjc!Tg-cxzH^)MT>ic@WtSulF%Hkq| zA)T ` z;!y+G%f{Prv%eeY2$Qj33~D1E(V-+3uD!F2n62N>rI{>FQuqS9zBqisx6QECrHyY4 zgn*XO1`!B#gnpq%$Si|Z;hAi=C^J6X3qzEz>YnBEWaIvN2Y2sWHlIc4bwV8{p4_XY zny{I%P*MnLUv`f;-C+y<9)^?Yi_%K;7Ky7ezF vAciYhD%8&xr-XlVT+J={RBaVqn=FqSFCQ@WKSx+CB< z1~I9F0340!-lxAa)5iWGTfIMn@or}5??@Y*!Prz|wHg(MW)e2pm-t7X^P?hbM!7A& zPjJ(D*o@}9Z`1c==4P&vUs+sgYQ8tJwo77i$Mb`+i68X+;nMj>Ly@j)BV>1-qpTF3 z_XGQnlfUs}1xyT260U}~=m+`s-^d917P ;xdd+)~I{=uwv`$|2wn?sseHb4;|{b1PaR4{oh7od?>H^=z;9e1rAZ_Sz3llr?t z^@hA mWQ&d}{WVIO;WqCyja(AC`sbOlXFW{i7%Z9Htjc%DytBAYHKi-5Qb*x)Q zqx=AXnEJz}%o*m^jzcP6IlWt`K2Uvl!yS8}=~C |*xsJobUT%c`CKQ50y6X(*k4i0S_|@0&vB;$3*^zfb!s_9P>=?#`#xU#2N3Q?S zvtbww^a=hgS$r#%G@0trah-}0d=Z*)@){cLMDH7M8A=X%avmA2x71y1@J!SOvUgYt zfLCJC!pLryAMQ)S7nABwh4?gv2d__3FA|PuJN` A}LU^b7#Tw#v>I(oR2)IPB+*D=QK6S}~th)R3eBL`6LgGlo z`6anKP$^o4SuV3 9YTGx AvBYXC!|}3vVUj`08 From 07c76740c50a5c185a59324c44d92e583bd8c1fe Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 20:51:06 +0900 Subject: [PATCH 38/53] =?UTF-8?q?=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=A0?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=AB=E3=81=AB=E6=96=B0=E3=83=90=E3=83=8B?= =?UTF-8?q?=E3=83=A9=E3=83=AD=E3=83=BC=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Roles/Core/CustomRoleManager.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Roles/Core/CustomRoleManager.cs b/Roles/Core/CustomRoleManager.cs index ac20737b3..4b58f7c5c 100644 --- a/Roles/Core/CustomRoleManager.cs +++ b/Roles/Core/CustomRoleManager.cs @@ -365,6 +365,7 @@ public enum CustomRoles //Impostor(Vanilla) Impostor, Shapeshifter, + Phantom, //Impostor BountyHunter, FireWorks, @@ -393,6 +394,8 @@ public enum CustomRoles Engineer, GuardianAngel, Scientist, + Tracker, + Noisemaker, //Crewmate Bait, Lighter, From 8a7ba9524489e61e4c05a49705f672d970eabe7a Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 20:53:24 +0900 Subject: [PATCH 39/53] =?UTF-8?q?=E6=96=B0=E3=83=90=E3=83=8B=E3=83=A9?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=AB=E3=81=AE=E3=83=A9=E3=83=83=E3=83=91?= =?UTF-8?q?=E3=83=BC=E3=82=92=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Roles/Vanilla/Noisemaker.cs | 10 ++++++++++ Roles/Vanilla/Phantom.cs | 11 +++++++++++ Roles/Vanilla/Tracker.cs | 10 ++++++++++ 3 files changed, 31 insertions(+) create mode 100644 Roles/Vanilla/Noisemaker.cs create mode 100644 Roles/Vanilla/Phantom.cs create mode 100644 Roles/Vanilla/Tracker.cs diff --git a/Roles/Vanilla/Noisemaker.cs b/Roles/Vanilla/Noisemaker.cs new file mode 100644 index 000000000..a9fa36138 --- /dev/null +++ b/Roles/Vanilla/Noisemaker.cs @@ -0,0 +1,10 @@ +using AmongUs.GameOptions; +using TownOfHost.Roles.Core; + +namespace TownOfHost.Roles.Vanilla; + +public sealed class Noisemaker : RoleBase +{ + public Noisemaker(PlayerControl player) : base(RoleInfo, player) { } + public readonly static SimpleRoleInfo RoleInfo = SimpleRoleInfo.CreateForVanilla(typeof(Noisemaker), player => new Noisemaker(player), RoleTypes.Noisemaker, "#8cffff"); +} diff --git a/Roles/Vanilla/Phantom.cs b/Roles/Vanilla/Phantom.cs new file mode 100644 index 000000000..337dc236d --- /dev/null +++ b/Roles/Vanilla/Phantom.cs @@ -0,0 +1,11 @@ +using AmongUs.GameOptions; +using TownOfHost.Roles.Core; +using TownOfHost.Roles.Core.Interfaces; + +namespace TownOfHost.Roles.Vanilla; + +public sealed class Phantom : RoleBase, IImpostor +{ + public Phantom(PlayerControl player) : base(RoleInfo, player) { } + public static readonly SimpleRoleInfo RoleInfo = SimpleRoleInfo.CreateForVanilla(typeof(Phantom), player => new Phantom(player), RoleTypes.Phantom); +} diff --git a/Roles/Vanilla/Tracker.cs b/Roles/Vanilla/Tracker.cs new file mode 100644 index 000000000..46068392d --- /dev/null +++ b/Roles/Vanilla/Tracker.cs @@ -0,0 +1,10 @@ +using AmongUs.GameOptions; +using TownOfHost.Roles.Core; + +namespace TownOfHost.Roles.Vanilla; + +public sealed class Tracker : RoleBase +{ + public Tracker(PlayerControl player) : base(RoleInfo, player) { } + public readonly static SimpleRoleInfo RoleInfo = SimpleRoleInfo.CreateForVanilla(typeof(Tracker), player => new Tracker(player), RoleTypes.Tracker, "#8cffff"); +} From 8c2980209eb28a57351037264b625a8f0208fc53 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 20:56:12 +0900 Subject: [PATCH 40/53] =?UTF-8?q?=E5=BF=85=E8=A6=81=E3=81=AA=E7=AE=87?= =?UTF-8?q?=E6=89=80=E3=81=AB=E3=83=90=E3=83=8B=E3=83=A9=E3=83=AD=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E3=81=AE=E5=88=86=E5=B2=90=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Helpers/CustomRolesHelper.cs | 11 ++++++++++- Modules/GameState.cs | 3 +++ Modules/OptionBackup/OptionBackupData.cs | 2 +- Patches/GameOptionsMenuPatch.cs | 6 ++++++ Patches/onGameStartedPatch.cs | 22 ++++++++++++++++++++-- Roles/Core/RoleBase.cs | 4 ++++ Roles/Core/SimpleRoleInfo.cs | 13 +++++++++++++ 7 files changed, 57 insertions(+), 4 deletions(-) diff --git a/Helpers/CustomRolesHelper.cs b/Helpers/CustomRolesHelper.cs index 98d4d18f7..b030b9c49 100644 --- a/Helpers/CustomRolesHelper.cs +++ b/Helpers/CustomRolesHelper.cs @@ -47,9 +47,12 @@ public static bool IsVanilla(this CustomRoles role) role is CustomRoles.Crewmate or CustomRoles.Engineer or CustomRoles.Scientist or + CustomRoles.Tracker or + CustomRoles.Noisemaker or CustomRoles.GuardianAngel or CustomRoles.Impostor or - CustomRoles.Shapeshifter; + CustomRoles.Shapeshifter or + CustomRoles.Phantom; } public static CustomRoleTypes GetCustomRoleTypes(this CustomRoles role) @@ -74,7 +77,10 @@ public static int GetCount(this CustomRoles role) { CustomRoles.Engineer => roleOpt.GetNumPerGame(RoleTypes.Engineer), CustomRoles.Scientist => roleOpt.GetNumPerGame(RoleTypes.Scientist), + CustomRoles.Tracker => roleOpt.GetNumPerGame(RoleTypes.Tracker), + CustomRoles.Noisemaker => roleOpt.GetNumPerGame(RoleTypes.Noisemaker), CustomRoles.Shapeshifter => roleOpt.GetNumPerGame(RoleTypes.Shapeshifter), + CustomRoles.Phantom => roleOpt.GetNumPerGame(RoleTypes.Phantom), CustomRoles.GuardianAngel => roleOpt.GetNumPerGame(RoleTypes.GuardianAngel), CustomRoles.Crewmate => roleOpt.GetNumPerGame(RoleTypes.Crewmate), _ => 0 @@ -94,7 +100,10 @@ public static int GetChance(this CustomRoles role) { CustomRoles.Engineer => roleOpt.GetChancePerGame(RoleTypes.Engineer), CustomRoles.Scientist => roleOpt.GetChancePerGame(RoleTypes.Scientist), + CustomRoles.Noisemaker => roleOpt.GetChancePerGame(RoleTypes.Noisemaker), + CustomRoles.Tracker => roleOpt.GetChancePerGame(RoleTypes.Tracker), CustomRoles.Shapeshifter => roleOpt.GetChancePerGame(RoleTypes.Shapeshifter), + CustomRoles.Phantom => roleOpt.GetChancePerGame(RoleTypes.Phantom), CustomRoles.GuardianAngel => roleOpt.GetChancePerGame(RoleTypes.GuardianAngel), CustomRoles.Crewmate => roleOpt.GetChancePerGame(RoleTypes.Crewmate), _ => 0 diff --git a/Modules/GameState.cs b/Modules/GameState.cs index 57ebdc0c7..ebce5cfc3 100644 --- a/Modules/GameState.cs +++ b/Modules/GameState.cs @@ -58,9 +58,12 @@ public CustomRoles GetCustomRole() RoleTypes.Crewmate => CustomRoles.Crewmate, RoleTypes.Engineer => CustomRoles.Engineer, RoleTypes.Scientist => CustomRoles.Scientist, + RoleTypes.Noisemaker => CustomRoles.Noisemaker, + RoleTypes.Tracker => CustomRoles.Tracker, RoleTypes.GuardianAngel => CustomRoles.GuardianAngel, RoleTypes.Impostor => CustomRoles.Impostor, RoleTypes.Shapeshifter => CustomRoles.Shapeshifter, + RoleTypes.Phantom => CustomRoles.Phantom, _ => CustomRoles.Crewmate, }; } diff --git a/Modules/OptionBackup/OptionBackupData.cs b/Modules/OptionBackup/OptionBackupData.cs index 10ca2f47e..2b99724f2 100644 --- a/Modules/OptionBackup/OptionBackupData.cs +++ b/Modules/OptionBackup/OptionBackupData.cs @@ -37,7 +37,7 @@ public OptionBackupData(IGameOptions option) // TryGetUIntが実装されていないため、別で取得する AllValues.Add(new UIntOptionBackupValue(UInt32OptionNames.Keywords, (uint)option.Keywords)); - foreach (RoleTypes role in new RoleTypes[] { RoleTypes.Scientist, RoleTypes.Engineer, RoleTypes.GuardianAngel, RoleTypes.Shapeshifter }) + foreach (RoleTypes role in new RoleTypes[] { RoleTypes.Scientist, RoleTypes.Engineer, RoleTypes.Noisemaker, RoleTypes.Tracker, RoleTypes.GuardianAngel, RoleTypes.Shapeshifter, RoleTypes.Phantom }) { AllValues.Add(new RoleRateBackupValue(role, option.RoleOptions.GetNumPerGame(role), option.RoleOptions.GetChancePerGame(role))); } diff --git a/Patches/GameOptionsMenuPatch.cs b/Patches/GameOptionsMenuPatch.cs index 25c9c38d4..37c81b2e3 100644 --- a/Patches/GameOptionsMenuPatch.cs +++ b/Patches/GameOptionsMenuPatch.cs @@ -391,13 +391,19 @@ private static void SetStandardRecommendations(NormalGameOptionsV08 __instance, __instance.VisualTasks = false; __instance.roleOptions.SetRoleRate(RoleTypes.Shapeshifter, 0, 0); + __instance.roleOptions.SetRoleRate(RoleTypes.Phantom, 0, 0); __instance.roleOptions.SetRoleRate(RoleTypes.Scientist, 0, 0); __instance.roleOptions.SetRoleRate(RoleTypes.GuardianAngel, 0, 0); __instance.roleOptions.SetRoleRate(RoleTypes.Engineer, 0, 0); + __instance.roleOptions.SetRoleRate(RoleTypes.Noisemaker, 0, 0); + __instance.roleOptions.SetRoleRate(RoleTypes.Tracker, 0, 0); __instance.roleOptions.SetRoleRecommended(RoleTypes.Shapeshifter); + __instance.roleOptions.SetRoleRecommended(RoleTypes.Phantom); __instance.roleOptions.SetRoleRecommended(RoleTypes.Scientist); __instance.roleOptions.SetRoleRecommended(RoleTypes.GuardianAngel); __instance.roleOptions.SetRoleRecommended(RoleTypes.Engineer); + __instance.roleOptions.SetRoleRecommended(RoleTypes.Noisemaker); + __instance.roleOptions.SetRoleRecommended(RoleTypes.Tracker); if (Options.CurrentGameMode == CustomGameMode.HideAndSeek) //HideAndSeek { diff --git a/Patches/onGameStartedPatch.cs b/Patches/onGameStartedPatch.cs index 7d6726663..860f63609 100644 --- a/Patches/onGameStartedPatch.cs +++ b/Patches/onGameStartedPatch.cs @@ -124,7 +124,7 @@ public static void Prefix() if (Options.CurrentGameMode != CustomGameMode.HideAndSeek) { - RoleTypes[] RoleTypesList = { RoleTypes.Scientist, RoleTypes.Engineer, RoleTypes.Shapeshifter }; + RoleTypes[] RoleTypesList = [RoleTypes.Scientist, RoleTypes.Engineer, RoleTypes.Noisemaker, RoleTypes.Tracker, RoleTypes.Shapeshifter, RoleTypes.Phantom]; foreach (var roleTypes in RoleTypesList) { var roleOpt = Main.NormalOptions.roleOptions; @@ -178,6 +178,9 @@ public static void Postfix() List Engineers = new(); List GuardianAngels = new(); List Shapeshifters = new(); + List trackers = []; + List noisemakers = []; + List phantoms = []; foreach (var pc in Main.AllPlayerControls) { @@ -211,6 +214,18 @@ public static void Postfix() Shapeshifters.Add(pc); role = CustomRoles.Shapeshifter; break; + case RoleTypes.Tracker: + trackers.Add(pc); + role = CustomRoles.Tracker; + break; + case RoleTypes.Noisemaker: + noisemakers.Add(pc); + role = CustomRoles.Noisemaker; + break; + case RoleTypes.Phantom: + phantoms.Add(pc); + role = CustomRoles.Phantom; + break; default: Logger.SendInGame(string.Format(GetString("Error.InvalidRoleAssignment"), pc?.Data?.PlayerName)); break; @@ -252,8 +267,11 @@ public static void Postfix() { RoleTypes.Impostor => Impostors, RoleTypes.Shapeshifter => Shapeshifters, + RoleTypes.Phantom => phantoms, RoleTypes.Scientist => Scientists, RoleTypes.Engineer => Engineers, + RoleTypes.Noisemaker => noisemakers, + RoleTypes.Tracker => trackers, RoleTypes.GuardianAngel => GuardianAngels, _ => Crewmates, }; @@ -288,7 +306,7 @@ public static void Postfix() } } - RoleTypes[] RoleTypesList = { RoleTypes.Scientist, RoleTypes.Engineer, RoleTypes.Shapeshifter }; + RoleTypes[] RoleTypesList = [RoleTypes.Scientist, RoleTypes.Engineer, RoleTypes.Noisemaker, RoleTypes.Tracker, RoleTypes.Shapeshifter, RoleTypes.Phantom]; foreach (var roleTypes in RoleTypesList) { var roleOpt = Main.NormalOptions.roleOptions; diff --git a/Roles/Core/RoleBase.cs b/Roles/Core/RoleBase.cs index f5e64916f..bbd27c56f 100644 --- a/Roles/Core/RoleBase.cs +++ b/Roles/Core/RoleBase.cs @@ -46,8 +46,10 @@ public RoleBase( this.hasTasks = hasTasks ?? (roleInfo.CustomRoleType == CustomRoleTypes.Crewmate ? () => HasTask.True : () => HasTask.False); HasAbility = hasAbility ?? roleInfo.BaseRoleType.Invoke() is RoleTypes.Shapeshifter or + RoleTypes.Phantom or RoleTypes.Engineer or RoleTypes.Scientist or + RoleTypes.Tracker or RoleTypes.GuardianAngel or RoleTypes.CrewmateGhost or RoleTypes.ImpostorGhost; @@ -343,6 +345,8 @@ public virtual string GetAbilityButtonText() { StringNames? str = Player.Data.Role.Role switch { + RoleTypes.Phantom => Player.Data.Role.TryCast (out var phantomRole) ? (phantomRole.IsInvisible ? StringNames.PhantomAbilityUndo : StringNames.PhantomAbility) : null, + RoleTypes.Tracker => Player.Data.Role.TryCast (out var trackerRole) ? (trackerRole.isTrackingActive ? StringNames.TrackerAbilityUndo : StringNames.TrackerAbility) : null, RoleTypes.Engineer => StringNames.VentAbility, RoleTypes.Scientist => StringNames.VitalsAbility, RoleTypes.Shapeshifter => StringNames.ShapeshiftAbility, diff --git a/Roles/Core/SimpleRoleInfo.cs b/Roles/Core/SimpleRoleInfo.cs index 4621ee7ce..86f51a815 100644 --- a/Roles/Core/SimpleRoleInfo.cs +++ b/Roles/Core/SimpleRoleInfo.cs @@ -154,6 +154,14 @@ public static SimpleRoleInfo CreateForVanilla( roleName = CustomRoles.Scientist; customRoleType = CustomRoleTypes.Crewmate; break; + case RoleTypes.Noisemaker: + roleName = CustomRoles.Noisemaker; + customRoleType = CustomRoleTypes.Crewmate; + break; + case RoleTypes.Tracker: + roleName = CustomRoles.Tracker; + customRoleType = CustomRoleTypes.Crewmate; + break; case RoleTypes.GuardianAngel: roleName = CustomRoles.GuardianAngel; customRoleType = CustomRoleTypes.Crewmate; @@ -168,6 +176,11 @@ public static SimpleRoleInfo CreateForVanilla( customRoleType = CustomRoleTypes.Impostor; countType = CountTypes.Impostor; break; + case RoleTypes.Phantom: + roleName = CustomRoles.Phantom; + customRoleType = CustomRoleTypes.Impostor; + countType = CountTypes.Impostor; + break; default: roleName = CustomRoles.Crewmate; customRoleType = CustomRoleTypes.Crewmate; From 497b611e3802b47b2b98d6781e9308bb53a76d60 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 20:56:48 +0900 Subject: [PATCH 41/53] =?UTF-8?q?=E3=83=90=E3=83=8B=E3=83=A9=E3=83=AD?= =?UTF-8?q?=E3=83=BC=E3=83=AB=E3=81=AE=E7=BF=BB=E8=A8=B3=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/string.csv | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/string.csv b/Resources/string.csv index 26e9f3912..683155c92 100644 --- a/Resources/string.csv +++ b/Resources/string.csv @@ -11,9 +11,12 @@ "Crewmate","Crewmate","クルーメイト","船员","船員","Член Экипажа","Tripulante","Tripulante" "Engineer","Engineer","エンジニア","工程师","工程師","Инженер","Engenheiro","Engenheiro" "Scientist","Scientist","科学者","科学家","科學家","Ученый","Cientista","Cientista" +"Noisemaker","Noisemaker","ノイズメーカー","","","","","" +"Tracker","Tracker","トラッカー","","","","","" "GuardianAngel","Guardian Angel","守護天使","守护天使","守護天使","Ангел-хранитель","Anjo da Guarda","Anjo da Guarda" "Impostor","Impostor","インポスター","内鬼","偽裝者","Предателей","Impostor","Impostor" "Shapeshifter","Shapeshifter","シェイプシフター","变形者","變形者","Оборотень","Metamorfo","Metamorfo" +"Phantom","Phantom","亡霊","","","","","" "# 特殊インポスター役職" "BountyHunter","Bounty Hunter","バウンティハンター","赏金猎人","賞金獵人","Охотник за головами","Caçador de Recompensas","Caçador de Recompensas" From 521cc838f9f9c378da35b649c2d71fac0c3fb320 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 21:07:37 +0900 Subject: [PATCH 42/53] =?UTF-8?q?=E5=BD=B9=E8=81=B7=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=82=BF=E3=82=A4=E3=83=88=E3=83=AB=E3=81=AE=E7=9D=80=E8=89=B2?= =?UTF-8?q?=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Patches/GameOptionsPatch.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/Patches/GameOptionsPatch.cs b/Patches/GameOptionsPatch.cs index 09c338119..1675b4d13 100644 --- a/Patches/GameOptionsPatch.cs +++ b/Patches/GameOptionsPatch.cs @@ -23,7 +23,6 @@ public static void Postfix(RoleOptionSetting __instance) if (!__instance.titleText.text.Contains(DisableText)) __instance.titleText.text += DisableText; - __instance.titleText.color = Utils.GetRoleColor(CustomRoles.GuardianAngel); if (__instance.roleChance != 0 || __instance.roleMaxCount != 0) { __instance.roleChance = 0; @@ -31,10 +30,6 @@ public static void Postfix(RoleOptionSetting __instance) __instance.OnValueChanged.Invoke(__instance); } } - if (__instance.Role.Role == RoleTypes.Shapeshifter) - { - __instance.titleText.color = Utils.GetRoleColor(CustomRoles.Shapeshifter); - } } } From a95062106d482e7a99653bbce4cb74f9de5b3c34 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 21:29:26 +0900 Subject: [PATCH 43/53] =?UTF-8?q?=E3=83=87=E3=83=90=E3=83=83=E3=82=B0?= =?UTF-8?q?=E3=83=A2=E3=83=BC=E3=83=89=E6=99=82=E4=BB=A5=E5=A4=96=E3=81=AF?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=83=B3=E3=83=88=E3=83=A0=E3=82=92=E7=84=A1?= =?UTF-8?q?=E5=8A=B9=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Patches/GameOptionsPatch.cs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Patches/GameOptionsPatch.cs b/Patches/GameOptionsPatch.cs index 1675b4d13..00fa73b27 100644 --- a/Patches/GameOptionsPatch.cs +++ b/Patches/GameOptionsPatch.cs @@ -11,18 +11,19 @@ class ChanceChangePatch { public static void Postfix(RoleOptionSetting __instance) { - string DisableText = $" ({GetString("Disabled")})"; - if (__instance.Role.Role == RoleTypes.GuardianAngel) + // The Phantom does not work together with desynchronized impostor roles e.g. Sheriff so we need to disable it. + // This may be removed in the future when we have implemented changing vanilla role or some other stuff. + if (__instance.Role.Role is RoleTypes.GuardianAngel || (__instance.Role.Role is RoleTypes.Phantom && !DebugModeManager.IsDebugMode)) { + string disableText = $" ({GetString("Disabled")})"; //+-ボタンを非表示 - var tf = __instance.transform; foreach (var button in __instance.GetComponentsInChildren ()) { button.gameObject.SetActive(false); } - if (!__instance.titleText.text.Contains(DisableText)) - __instance.titleText.text += DisableText; + if (!__instance.titleText.text.Contains(disableText)) + __instance.titleText.text += disableText; if (__instance.roleChance != 0 || __instance.roleMaxCount != 0) { __instance.roleChance = 0; From 65fb3f76330bb72d493cbbcb62f8cb151ac592d1 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 23:03:22 +0900 Subject: [PATCH 44/53] =?UTF-8?q?=E3=83=97=E3=83=AC=E3=83=AA=E3=83=AA?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E3=81=8B=E3=81=A9=E3=81=86=E3=81=8B=E3=81=AE?= =?UTF-8?q?=E3=83=97=E3=83=AD=E3=83=91=E3=83=86=E3=82=A3=E3=82=92=E4=BD=9C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/main.cs b/main.cs index e5f0fe67a..ccae51e66 100644 --- a/main.cs +++ b/main.cs @@ -56,6 +56,8 @@ public class Main : BasePlugin public static readonly string LowestSupportedVersion = "2024.3.5"; // このバージョンのみで公開ルームを無効にする場合 public static readonly bool IsPublicAvailableOnThisVersion = false; + // プレリリースかどうか + public static bool IsPrerelease { get; } = true; public Harmony Harmony { get; } = new Harmony(PluginGuid); public static Version version = Version.Parse(PluginVersion); public static Color UnityModColor From e949fdf186f443492854891b60b81284876a668c Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 23:03:52 +0900 Subject: [PATCH 45/53] =?UTF-8?q?=E3=83=97=E3=83=AC=E3=83=AA=E3=83=AA?= =?UTF-8?q?=E3=83=BC=E3=82=B9=E3=81=A7=E3=81=82=E3=82=8B=E3=81=93=E3=81=A8?= =?UTF-8?q?=E3=82=92=E7=A4=BA=E3=81=99=E8=A1=A8=E7=A4=BA=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Patches/CredentialsPatch.cs | 4 ++++ Resources/string.csv | 1 + 2 files changed, 5 insertions(+) diff --git a/Patches/CredentialsPatch.cs b/Patches/CredentialsPatch.cs index 87944caa7..28db5c617 100644 --- a/Patches/CredentialsPatch.cs +++ b/Patches/CredentialsPatch.cs @@ -67,6 +67,10 @@ static void Postfix(VersionShower __instance) { TMPTemplate.SetBase(__instance.text); Main.credentialsText = $" {Main.ModName} v{Main.PluginVersion}"; + if (Main.IsPrerelease) + { + Main.credentialsText += $"\r\n<#F39C12>{GetString("Prerelease")} "; + } #if DEBUG Main.credentialsText += $"\r\n{ThisAssembly.Git.Branch}({ThisAssembly.Git.Commit}) "; #endif diff --git a/Resources/string.csv b/Resources/string.csv index 26e9f3912..8ff707ae3 100644 --- a/Resources/string.csv +++ b/Resources/string.csv @@ -662,6 +662,7 @@ "FireworksReadyFirePhase","Fire!","打ち上げろ!","烟花来咯,大型烟花秀开始!","準備就緒,煙火秀開始!","Огонь!","Lançar!","" "StandardHAS","Hide And Seek with Roles","役職入りでかくれんぼ","在躲猫猫模式中加入职业","在躲貓貓中加入多職業模式中的職業","Прятки с Ролями","Esconde-Esconde com Classes","" "StandardHASWaitingTime","Standby","待機時間","躲猫猫猎人等待时间","躲貓貓偽裝者等待時間","Время ожидания","Tempo de Espera","" +"Prerelease","Pre-release","プレリリース","","","","","" "InvalidArgs","Invalid Args","無効な引数","无效参数","無效的參數","Недопустимые Аргументы","Argumento Inválido","" "On","ON","オン","开启","開啟","ВКЛ","Ativado","" "Off","OFF","オフ","关闭","關閉","ВЫКЛ","Desativado","" From 2e6df0b9479c5d9a72be1f3d6e627a0e1ccf687a Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sat, 29 Jun 2024 23:28:42 +0900 Subject: [PATCH 46/53] =?UTF-8?q?=E3=82=AB=E3=83=A2=E3=83=95=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E3=82=B8=E3=83=A5=E3=81=AERPC=E3=81=AE=E5=A2=97?= =?UTF-8?q?=E3=81=88=E3=81=9F=E5=BC=95=E6=95=B0=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Modules/Camouflague.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/Camouflague.cs b/Modules/Camouflague.cs index 36659a92f..9b0e3baf0 100644 --- a/Modules/Camouflague.cs +++ b/Modules/Camouflague.cs @@ -104,27 +104,32 @@ public static void RpcSetSkin(PlayerControl target, bool ForceRevert = false, bo target.SetColor(newOutfit.ColorId); sender.AutoStartRpc(target.NetId, (byte)RpcCalls.SetColor) + .Write(target.Data.NetId) .Write(newOutfit.ColorId) .EndRpc(); target.SetHat(newOutfit.HatId, newOutfit.ColorId); sender.AutoStartRpc(target.NetId, (byte)RpcCalls.SetHatStr) .Write(newOutfit.HatId) + .Write(target.GetNextRpcSequenceId(RpcCalls.SetHatStr)) .EndRpc(); target.SetSkin(newOutfit.SkinId, newOutfit.ColorId); sender.AutoStartRpc(target.NetId, (byte)RpcCalls.SetSkinStr) .Write(newOutfit.SkinId) + .Write(target.GetNextRpcSequenceId(RpcCalls.SetSkinStr)) .EndRpc(); target.SetVisor(newOutfit.VisorId, newOutfit.ColorId); sender.AutoStartRpc(target.NetId, (byte)RpcCalls.SetVisorStr) .Write(newOutfit.VisorId) + .Write(target.GetNextRpcSequenceId(RpcCalls.SetVisorStr)) .EndRpc(); target.SetPet(newOutfit.PetId); sender.AutoStartRpc(target.NetId, (byte)RpcCalls.SetPetStr) .Write(newOutfit.PetId) + .Write(target.GetNextRpcSequenceId(RpcCalls.SetPetStr)) .EndRpc(); sender.SendMessage(); From 3eb722c02002ad83167695bd9be92df149b489e4 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sun, 30 Jun 2024 17:14:30 +0900 Subject: [PATCH 47/53] =?UTF-8?q?=E3=82=B5=E3=83=9D=E3=83=BC=E3=83=88?= =?UTF-8?q?=E3=82=A2=E3=83=A2=E3=82=A2=E3=82=B9=E3=83=90=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E3=82=922024.6.18=E3=81=B8=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cs b/main.cs index ccae51e66..659bee6d2 100644 --- a/main.cs +++ b/main.cs @@ -53,7 +53,7 @@ public class Main : BasePlugin public const string PluginGuid = "com.emptybottle.townofhost"; public const string PluginVersion = "5.1.6"; // サポートされている最低のAmongUsバージョン - public static readonly string LowestSupportedVersion = "2024.3.5"; + public static readonly string LowestSupportedVersion = "2024.6.18"; // このバージョンのみで公開ルームを無効にする場合 public static readonly bool IsPublicAvailableOnThisVersion = false; // プレリリースかどうか From b287d5fb01faedd0452a62fb37c66479fc2c9330 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sun, 30 Jun 2024 17:33:14 +0900 Subject: [PATCH 48/53] =?UTF-8?q?readme=E3=81=AE=E3=82=A2=E3=83=A2?= =?UTF-8?q?=E3=82=A2=E3=82=B9=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E3=82=922024.6.18=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README-EN.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README-EN.md b/README-EN.md index 35be9dfbb..3dff4a9da 100644 --- a/README-EN.md +++ b/README-EN.md @@ -15,7 +15,7 @@ This mod is not affiliated with Among Us or Innersloth LLC, and the content cont ## Releases -AmongUs Version: **2024.03.05** +AmongUs Version: **2024.6.18** **Latest Version: [Here](https://github.com/tukasa0001/TownOfHost/releases/latest)** diff --git a/README.md b/README.md index 31341871c..4bf706573 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ ## リリース -AmongUsバージョン : **2024.03.05** +AmongUsバージョン : **2024.6.18** **最新版は[こちら](https://github.com/tukasa0001/TownOfHost/releases/latest)** From 60c8511cef245c4b82c6462fe56e61742aefb0cf Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sun, 30 Jun 2024 21:09:44 +0900 Subject: [PATCH 49/53] =?UTF-8?q?=E3=82=A8=E3=83=A9=E3=83=BC=E3=83=A1?= =?UTF-8?q?=E3=83=83=E3=82=BB=E3=83=BC=E3=82=B8=E3=81=AE=E7=BF=BB=E8=A8=B3?= =?UTF-8?q?=E3=81=AE=E8=A1=A8=E7=8F=BE=E3=82=92=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resources/string.csv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/string.csv b/Resources/string.csv index e3d01aa89..9d2263416 100644 --- a/Resources/string.csv +++ b/Resources/string.csv @@ -609,8 +609,8 @@ "Error.InvalidColor","Error: Only default colors are available.","エラー:デフォルトカラー以外は使えません","错误: 仅默认颜色可用","錯誤: 無法使用遊戲自帶以外的顏色。","Ошибка: Нельзя использовать другие цвета, кроме цветов по умолчанию","Erro: Apenas as cores padrão estão disponíveis.","" "### ErrorText関連" -"ErrorLevel1","Bugs may occur.","何らかのバグが発生する可能性があります。","可能同时产生多个bug","可能同時產生多個Bug","Могут возникнуть некоторые ошибки.","Bugs podem acontecer.","" -"ErrorLevel2","This may be a bug.","バグが発生している可能性があります。","可能出现bug","可能出現Bug","Возможно вы столкнулись с ошибкой.","Talvez isso seja um bug.","" +"ErrorLevel1","Some failure may occur.","何らかの不具合が発生する可能性があります。","","","","","" +"ErrorLevel2","Some failure may have occurred.","不具合が発生している可能性があります。","","","","","" "ErrorLevel3","This version shouldn't have been released.","このバージョンはリリースされるべきではありません。","未发布版本","未發布版本","Эта версия никогда не должна быть выпущена.","Esta versão não deveria ter sido lançada.","" "TerminateCommand","Abort Command","廃村コマンド","强制结束游戏命令","強制結束遊戲指令","Команда устарела","Abortar Comando","" "#### 000 Test" From f733b3f1e3f82b000467bf0fd080407001ffbde4 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sun, 30 Jun 2024 21:20:28 +0900 Subject: [PATCH 50/53] =?UTF-8?q?=E5=8F=B3=E4=B8=8A=E3=81=AE=E3=83=86?= =?UTF-8?q?=E3=82=AD=E3=82=B9=E3=83=88=E3=81=AEz=E3=82=92=E8=AA=BF?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Patches/CredentialsPatch.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Patches/CredentialsPatch.cs b/Patches/CredentialsPatch.cs index 28db5c617..84e2b3735 100644 --- a/Patches/CredentialsPatch.cs +++ b/Patches/CredentialsPatch.cs @@ -38,8 +38,8 @@ static void Postfix(PingTracker __instance) if (pingTrackerCredentialAspectPos) { pingTrackerCredentialAspectPos.DistanceFromEdge = DestroyableSingleton.InstanceExists && DestroyableSingleton .Instance.Chat.chatButton.gameObject.active - ? new(2.5f, 0f, -1000f) - : new(1.8f, 0f, -1000f); + ? new(2.5f, 0f, -800f) + : new(1.8f, 0f, -800f); } sb.Clear(); From 5beb111030ae5969ce2d589bec3571185c3f8162 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sun, 30 Jun 2024 21:22:42 +0900 Subject: [PATCH 51/53] =?UTF-8?q?=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7?= =?UTF-8?q?=E3=83=B3=E3=82=925.1.7=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.cs b/main.cs index 659bee6d2..e7bbe660c 100644 --- a/main.cs +++ b/main.cs @@ -51,7 +51,7 @@ public class Main : BasePlugin // ========== //Sorry for many Japanese comments. public const string PluginGuid = "com.emptybottle.townofhost"; - public const string PluginVersion = "5.1.6"; + public const string PluginVersion = "5.1.7"; // サポートされている最低のAmongUsバージョン public static readonly string LowestSupportedVersion = "2024.6.18"; // このバージョンのみで公開ルームを無効にする場合 From e375683021d21da609a2a686fa8332afaa8b8b60 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sun, 14 Jul 2024 20:24:43 +0900 Subject: [PATCH 52/53] version 2024.6.18.0 --- main.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.cs b/main.cs index 423cf8992..21dda5e17 100644 --- a/main.cs +++ b/main.cs @@ -55,7 +55,7 @@ public class Main : BasePlugin // ========== //Sorry for many Japanese comments. - public static readonly string ForkVersion = "2024.3.5.4"; + public static readonly string ForkVersion = "2024.6.18.0"; public static readonly Version ParsedForkVersion = Version.Parse(ForkVersion); public const string PluginGuid = "com.emptybottle.townofhost"; @@ -65,7 +65,7 @@ public class Main : BasePlugin // このバージョンのみで公開ルームを無効にする場合 public static readonly bool IsPublicAvailableOnThisVersion = false; // プレリリースかどうか - public static bool IsPrerelease { get; } = true; + public static bool IsPrerelease { get; } = false; public Harmony Harmony { get; } = new Harmony(PluginGuid); public static Version version = Version.Parse(PluginVersion); public static Color UnityModColor From 4677f0243e436353d9702a17319d9b4b0c5a18d9 Mon Sep 17 00:00:00 2001 From: Hyz-sui <86903430+Hyz-sui@users.noreply.github.com> Date: Sun, 14 Jul 2024 20:37:44 +0900 Subject: [PATCH 53/53] doc: readme sns link tw -> bsky --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5d45bd963..55b4cfa9b 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ - - + +