From dd8f4abb351b4751d79c65ddaf997e2bc2f77c71 Mon Sep 17 00:00:00 2001 From: Marisa Kirisame Date: Fri, 18 Dec 2020 02:27:17 +0100 Subject: [PATCH] Ynykron is locked and non-buyable in Strife. --- language.def_base | 1 + language.es_base | 1 + language.version | 2 +- sndinfo.txt | 1 + sounds/ynykron/mc_locked.ogg | Bin 0 -> 4840 bytes zscript/swwm_deathlydeathcannon.zsc | 15 ++++++++++++--- zscript/swwm_funstuff.zsc | 2 +- zscript/swwm_kbase.zsc | 2 ++ zscript/swwm_player.zsc | 2 ++ 9 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 sounds/ynykron/mc_locked.ogg diff --git a/language.def_base b/language.def_base index aed157c48..8cf79c8d3 100644 --- a/language.def_base +++ b/language.def_base @@ -864,6 +864,7 @@ D_FROGGY2 = "\cj... for \cdFroggy Chair\cj.\c-"; D_BARRIER = "The Elemental Coating wore off."; D_MASHIRO = "\cjShe knows where you are...\c-"; SWWM_YNYKRONREADY = "Ynykron Artifact ready for firing."; +SWWM_YNYKRONLOCKED = "Ynykron Artifact not authorized for use."; SWWM_SWAPWEAPON = "\cjPress \cfUse\cj to swap \cf%s\cj for \cf%s\cj.\c-"; SWWM_TITLEPRESENTS = "presents"; SWWM_TITLEMODBY = "a mod by \cxMarisa Kirisame"; diff --git a/language.es_base b/language.es_base index 6033f26a2..0dfd5fe13 100644 --- a/language.es_base +++ b/language.es_base @@ -807,6 +807,7 @@ D_FROGGY2 = "\cj... por una \cdSilla Rana\cj.\c-"; D_BARRIER = "El Revestimiento Elemental se ha desvanecido."; D_MASHIRO = "\cjSabe donde estás...\c-"; SWWM_YNYKRONREADY = "Artefacto Ynykron listo para disparar."; +SWWM_YNYKRONLOCKED = "Artefacto Ynykron no autorizado para el uso."; SWWM_SWAPWEAPON = "\cjPulsa \cfUsar\cj para cambiar \cf%s\cj por \cf%s\cj.\c-"; SWWM_TITLEPRESENTS = "presenta"; SWWM_TITLEMODBY = "un mod de \cxMarisa Kirisame"; diff --git a/language.version b/language.version index c0eae3cd7..7ad8939b6 100644 --- a/language.version +++ b/language.version @@ -1,2 +1,2 @@ [default] -SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r688 \cu(Fri 18 Dec 00:58:35 CET 2020)"; +SWWM_MODVER="\chSWWM \czGZ\c- \cw0.9.11b-pre r689 \cu(Fri 18 Dec 02:27:17 CET 2020)"; diff --git a/sndinfo.txt b/sndinfo.txt index 765b07777..96e9e4110 100644 --- a/sndinfo.txt +++ b/sndinfo.txt @@ -880,6 +880,7 @@ ynykron/vortexflash2 sounds/ynykron/mc_vortexflash2.ogg $random ynykron/vortexflash { ynykron/vortexflash1 ynykron/vortexflash2 } ynykron/vortexend sounds/ynykron/mc_vortexend.ogg ynykron/wind sounds/ynykron/mc_vortexwind.ogg +ynykron/locked sounds/ynykron/mc_locked.ogg misc/secret sounds/menu/findsecret.ogg misc/keytry sounds/menu/failuse.ogg diff --git a/sounds/ynykron/mc_locked.ogg b/sounds/ynykron/mc_locked.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f4d179ca85d64961a85febad6b4b1e8689946bf6 GIT binary patch literal 4840 zcmeZIPY-5bVt@kePrr3R%t@^cix}k?%kqnoGK)b1jDp%Aih*HA2ZWx<2-XSVFfcHH zbTTq9FdXi!kK=av4+C47A!e8`Ffc@97G&u87o{uYWG01yO;+$!FfuSQFfcbTQP2oV zO({*z%u82r%`3|+%FoM9%`4Fana{`yF+<47IgF8kfsuhHNJLRpGT1AbV`@;4CaY|6 zK(xDT@)b)r#T0?y4o}IY)&5#jBfL%s21RJP$_D!cdrl3Srs*o1EE4RY7<|nzbz!lH zcbg}tYL4%^5;5-=Gn1zoy2&P=i}ISAe9h2RHaRHBb78TBRhnvwh?U#X7fCe+R#O)_ zY3w_GFX*LiYgcsF-s@7quXS4_yfY7SBo@Ejdi9Q1)=`P%9>Zft9|dbPU6>FGawmfW z3nSRgTnr3{0(e{l8$c2cYzz$yBCdrZ#|vfLC#jrf0xNM~0L6kv-$RW_%AS)_BB!NB zPFq$vZN<)2`oGudyrr5ig~=)6pQ*iPbj#Yv(%hB#m7ry?UretoVru5DLtPv#m`G^=@zk|(@UmYbJAvI zU|_LeU|@;hXl+}=!LW#dL7;g;kcZ}xDM@~Y?NfsKG>=aRI%9csMp2L93x$v~h9_iN zJT#9=6#H2|Q%K>_dM4AtV+4vrJ_ZIxF{g!!+Dr`=j10{xnX{H=F3QN9rBStP#i~Ub zt5!X&T=sJ2vQ<@!R<2sMYS+4ztJdXI&dUVJ&eL4AYUQeR*{fE)?pl>~dfDn*+g`5P z_U6>4yxp7D+@81U)V7toHs!5am%DpY&g*qLw|70MT=i<^ve#A1UhZ1;`qrjbyEeU@ zx$Jea-PffiXni@GZ^=?^e_;lCnTXRFF)y9^l#!t_^`#m-C zdhO-X(&(wFx5HB-zo*82Z;jkudp9^V+B`P=y6^R?wb9pW6Sw8w7mp3U9(wayYv{Dn z``2nyXOzx0*tKrm>TPdcuhMzFZ{6!-2CsJ+tl5?OXWd%v!>eB(+xU9lx;y*&vu^ME z@M@dko?Uq|yEjPhfBXB`#+9pbXRllRdYSg?T{*A!<-gul*t2f+>s30xcfC3V;(mC& zPoHP;>sPz9PVd@qYt#DEyYzT=uaiEUb^Fk}Te}L*Y|`V|{$Bg|dT!^d+gcx9EnU3& z_OX2K!LTzUdLpn2zYra zPPwFYOd+Mu^MuS~0k4deQ!aREEL|Gl<-KsqwV*8BWmlqj7H$#o%3M3;QdE}awktt7 zqR9eA&zGe1d1@@(66TeuS?uF=Y{3#fC#|JRE_r#bO+Dv%a>3$DmL4mYTnh4Bxi!Em zd*PI8US1oQUh>LadsNCRQ+LUwD9@E!uLR|;-5RBQOd+Mm@#LJzL0+CKr(BA9HfIW- zmDbGWNnV;Or%no5Gh^~4M-A2H9xu6A%Po-2yG1SLWKSVcA)_+X9@j7cLR=)-v2GmYloxsDxMM+9g8Knk$crMfa}V z8WHSmI&D%?&f2RtymT$EMP+;GUb__3vv%u@XrG-&BeHo_!A4EF6y>${=(VV|Aj`Ej zPMs75(h=2TI^|N5rsmcOUO8*GMnvbBE}NE=v+-&~P`BZ+h+^-pSEodEuiYBqt!;Wt zB0JCYX%GX$fd*yyl$>$u^Ra*p{G?%srIB6`M!o=H%(mN(SE72hmI(x9=^l%621#U}14*ngy$+IicBdL7QG9ME1H&Cwc7_ei(ynIe z5}aBvPbe%AN$#<1pOVyL_ulprt7rBi~uRxF0Hm=r-=uo$h0sZhJ2_An^i z=VE90&n}%F;c2BU!>b1h2LV0?28qKGEj^&XZZqUqTH@#BscPEesIjzID9B5*`9f6I z(j}LIyd+zuBylTFof5^hbW2#a=E|*8f;2RbN_l&&Tzbvuxyq7BQQm8}&9G!&y5w3^ z*4m>2PF@?gUJJ_JSQ-@MxpwQds9fD8Q=+nUk6la3QC&JMDtqP8Yf(Ncw~9r3gT%bo z9=(y&ZFo$Io8duT0YihwhQhX~OEw?6_yC+96d4&PEd%0VhNN6gSfpD3 z7RPVD%2=_G?cl}eBU|Jp0uuhdFq_M|_3y-og&}3B>kVVX6f3_8aju`iRJOogD`I)< zhX}?;Z`WUbw)eVRMs~LTzJL4G-S+?gP-1kd;Q)isg==9mer>Hke&5>tiu~K6|M&ABC*PQw75skMW|t|+xe{Jy zo^Q(9`*gyaAZw$om-VlBo;kC?wfmQ@$(bVFyPW^uy}C2eHBznJ=GL-J@>)_Gy<~ZP z;vGMP)ORv^zuBcAbZ^(M|0m8}yOAQifbkLEgoZEvm+dpurJkRhtSMo#Ja4)5npnx- zx6XcBu9L%Wd++tLot7ahS`usyp2%$KDX7Y5zPQMAw|-RWH2%9^bv7-|{rFj8w&>*= z#bxTIQAZgCmnjD7O!((lD3Z^xPtmIK(~b3tsv9<@Y+_*G5n`xzV6sWy<+e~>?cJos zyZ)cbEUPj3c_we2}y|Rdi;?)VE^E;m@ml7MBYa86NcD`7$?LPPKG`(uKTh$J2h>`YEyQQ?$}#X1I|e zm~gO}O{KxtfoY3b?~;$F&VHG7b;_IQx-&<%X@9%-Jmt}{z0>c_Id)d*)54^kmrcz= zwoF~M@?Tur$6&)UiJ5lzpTsCvyc5J z7e5Y3zVm0EM5MU!-0w%9weenlq^`Sl%gOEK8(O}(99tM#b7hswCzZT2rT$aaF!s}l~mop^0+or9($Qx`Z#dS=v>gmSc>=&aBsJ$?8V7kG~ ze&NjtoHQ^~$22ufF@cz%G`3idOe_{qnz* zk)k%YtC{NpdyM+U?S=a{#2xpaRhnuOFKv=o?6m#Tn=fiPuItybZ7)3ieuLlo=vY73 zEF<}lUup9^6i#t23^FL2Gpj(3z2-QZ{mxd)z_v_3mb{KT?q2N~Rx|tmyG%LaDh%STw_FWUC{ z)+A=^Hd)BSwM$V5lqM?zMUt3SG+cI?$>y`K*K5)xkKcFmqJ*Q2r}~*EhbJz7_IBQ} zg{GN7r{(^g$-nsQ^4qoZ?tfYQ*f>+$`Tqy|KHj^B^!s#n%u>?y(`LyCu-ecVpZ1~3 zPVVixBQ5npGgur}B~JF<$Z$;2?Nih@c2{NhZ+!cEVpc}2XnFnZ z$#$8S&uHs>ysa+0sCL#{-?>}NlasbYiFU-BGb5+P#nB z(9AgP7L#S~x7{qhu0T_Yt7YSq`!ydj%eoEsDH_#Ee*Tx0tz&kRWd*}VrhRiK?#rw7 z*G_L^e!K5hWW`(Ev$3c7rUvI#g^Q`n3Okp-jFZp~+U)S@>zh2zQm-ko@9!0rOxG3_ zsjevFHB4om|MkTmhb`RN(*%}F1ij;bT&-!hL^b;LK0{Fptpg1E6y5feegzkjPYfeZ zu~+a2DXf(JabxnI$698)&Y2poKC$trqW|qJ**u3&`u)4RIf3*1hSmGt?`qeY8)4MC zcS+F3yPNF9*Y8NYRQ1_p?zLK#*Cw3rU+>}noU(uF`QUO>Tg#F;K78KSr1!s`takcb zOyyFaLyB%TeSfo5HW>P3F(l1BP_4hTns=#j<#NeTGt=&$XYL-+|1BKraa+g!>UeN%Vj!-g5YPa;Lvn@XyNAG23wpBy(?Ffw~?boc2nsXw!M49k@kygQ~i zcUS%+nH-Myb88s2m^sC~_~yx9n{?`v`jG>#9{-O2zVmra!Ro~w|3lyWW_;hRu&p4XpwGPM+``LO&nC|3oj7UrYxCk` V=M1MMGq_Iv?_PAdDVmXi0RZYqdVc@_ literal 0 HcmV?d00001 diff --git a/zscript/swwm_deathlydeathcannon.zsc b/zscript/swwm_deathlydeathcannon.zsc index 1ba6e5c9b..60349bc88 100644 --- a/zscript/swwm_deathlydeathcannon.zsc +++ b/zscript/swwm_deathlydeathcannon.zsc @@ -3105,9 +3105,18 @@ Class Ynykron : SWWMWeapon XZW3 EFGHI 2; XZW2 A 0 { - invoker.chargestate = CS_CHARGING; - invoker.ventcooldown = Random[Ynykron](6,15); - A_StartSound("ynykron/ready",CHAN_WEAPONEXTRA2,CHANF_LOOP,.01,2.); + if ( gameinfo.gametype&GAME_Strife ) + { + A_StartSound("ynykron/locked",CHAN_WEAPON,CHANF_OVERLAP); + if ( player == players[consoleplayer] ) + Console.Printf(StringTable.Localize("$SWWM_YNYKRONLOCKED")); + } + else + { + invoker.chargestate = CS_CHARGING; + invoker.ventcooldown = Random[Ynykron](6,15); + A_StartSound("ynykron/ready",CHAN_WEAPONEXTRA2,CHANF_LOOP,.01,2.); + } } Goto Ready; Reload: diff --git a/zscript/swwm_funstuff.zsc b/zscript/swwm_funstuff.zsc index 895a44dfa..74645c4eb 100644 --- a/zscript/swwm_funstuff.zsc +++ b/zscript/swwm_funstuff.zsc @@ -892,7 +892,7 @@ Class Chancebox : Actor // no candidates? just burst into treats if ( Random[Chancebox](0,1) ) { - let a = Spawn(!Random[Chancebox](0,2)?"GoldShell":Random[Chancebox](0,1)?"GrilledCheeseSandwich":"YnykronAmmo",pos); + let a = Spawn(!Random[Chancebox](0,2)?"GoldShell":(Random[Chancebox](0,1)||(gameinfo.gametype&GAME_Strife))?"GrilledCheeseSandwich":"YnykronAmmo",pos); a.bDROPPED = true; a.bNOGRAVITY = false; a.vel.z = FRandom[Chancebox](2,4); diff --git a/zscript/swwm_kbase.zsc b/zscript/swwm_kbase.zsc index e48662165..c62676812 100644 --- a/zscript/swwm_kbase.zsc +++ b/zscript/swwm_kbase.zsc @@ -2150,6 +2150,8 @@ Class SWWMKnowledgeBaseMenu : GenericMenu if ( !type ) continue; // no collectibles if ( type is 'SWWMCollectible' ) continue; + // no Ynykron in strife + if ( (gameinfo.gametype&GAME_Strife) && (type is 'Ynykron') ) continue; // skip maxed items let cur = players[consoleplayer].mo.FindInventory(type); if ( cur && (cur.Amount >= cur.MaxAmount) ) continue; diff --git a/zscript/swwm_player.zsc b/zscript/swwm_player.zsc index e422f6452..2d54c37ec 100644 --- a/zscript/swwm_player.zsc +++ b/zscript/swwm_player.zsc @@ -225,6 +225,8 @@ Class Demolitionist : PlayerPawn { let type = (class)(AllActorClasses[i]); if ( !type || (type == "Weapon") ) continue; + // no Ynykron in Strife + if ( (gameinfo.gametype&GAME_Strife) && (type is 'Ynykron') ) continue; // Don't give already owned weapons let owned = FindInventory(type); if ( owned && (owned.Amount >= owned.MaxAmount) ) continue;