From 34d5fd25839fd8f53bc220a8e289d36062204bd4 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Wed, 14 Sep 2022 11:28:20 -0400 Subject: [PATCH] v1.4.0: implemented the actual page items of new lore documents --- .../assets/messages/items/items.properties | 15 +++ core/src/main/assets/sprites/items.png | Bin 20133 -> 20470 bytes .../items/journal/RegionLorePage.java | 94 ++++++++++++++++++ .../journal/Document.java | 11 +- .../levels/RegularLevel.java | 13 ++- .../sprites/ItemSpriteSheet.java | 28 ++++-- .../windows/WndDocument.java | 2 +- 7 files changed, 145 insertions(+), 18 deletions(-) create mode 100644 core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/items/journal/RegionLorePage.java diff --git a/core/src/main/assets/messages/items/items.properties b/core/src/main/assets/messages/items/items.properties index 1f953256d..bb6302a80 100644 --- a/core/src/main/assets/messages/items/items.properties +++ b/core/src/main/assets/messages/items/items.properties @@ -590,6 +590,21 @@ items.journal.guidebook.desc=An adventurer's guidebook, left here by someone who items.journal.guidepage.name=torn guidebook page items.journal.guidepage.desc=A torn page from an adventuring guidebook.\n\nMost of the text is too small to read at a distance, but you can make out the title of the page:\n\n_"%s"_ +items.journal.regionlorepage$sewers.name=worn letter +items.journal.regionlorepage$sewers.desc=What looks to be a letter, written on a dirt-stained piece of paper. You'll need to pick it up to be able to make out what's written on it. + +items.journal.regionlorepage$prison.name=worn journal entry +items.journal.regionlorepage$prison.desc=A journal entry, or some other kind of record, written on an old piece of paper. It seems to have fared better than the letters you found in the prison, but you'll still need to pick it up to read it. + +items.journal.regionlorepage$caves.name=old log entry +items.journal.regionlorepage$caves.desc=What looks to be an entry in an explorer's logbook, preserved surprisingly well despite how old it must be. Pick it up to read it. + +items.journal.regionlorepage$city.name=rusted tablet +items.journal.regionlorepage$city.desc=A smalled rusted metal tablet with a message magically etched into it. The letters are still clear despite the tablet's age, but you'll have to pick it up to read it. + +items.journal.regionlorepage$halls.name=glowing tablet +items.journal.regionlorepage$halls.desc=A small black tablet with glowing green letters etched into it. The glowing letters blur together into a haze at a distance, you'll have to pick it up to read it. + ###keys items.keys.goldenkey.name=golden key diff --git a/core/src/main/assets/sprites/items.png b/core/src/main/assets/sprites/items.png index 129da29f032ce360a8caf2b284a410a433c693e7..7a0c05951a5aca05262900b90f7d46f4d5593e2b 100644 GIT binary patch literal 20470 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 V;oZJ-O&<%0gSUUPt!fJ^^IxxOq-y{G literal 20133 zcmbrlcT`hd*Dt!#NT>l3L0Z6uq7)TT5l93T8-k*Mw4jKhh#;u+By>A=P>_I+N^c^) zB!Ga55)>gyOOPr75=tN;?ZoH(zH{%mL9FN&4%4y00 z02B`$+;;*1h%^ZWC>d!K@Zy~SfMb^r?b~}Y3^Mfs8Emu_1z(C~i`$-KrVqaz{Bfgw z*U*%`6Vy#_n#XArGEmaO;(Ugmc$U;B@uIh3CLAI0ejWM2hLe0Ha1>3oFQxh zM?aBMOqd(v7LIS;m_bDrFU8z~48im?Ky>7dOHswgRkPMSZ_HG6cq*DL9tBm^P#xyf z+m~A}FmpyJXp%n!9Nd|VCEqriEqVpju!lPiRwIwp`?k?_=HS}9t8S_{P|KA_+HhPK zv^5!fL2L7dgEA-*=z2^}Y0w4%wU7B#J^1XfD`BTH34+85!+zQftbrcC`YL#!gYamW2V<=av3ylq0${?fVF1(GEG%u1 zY(kiUF>}m8(tg0v&1lm_g21drcM|8sv9br#|3rV4|3vH4AY`CT@JJ-JW6k8n5Y@rZ z)&_#^gFC%Hwna(!4NCGq62|aTFOg5QyPt|9=U1%KM%_`~Z4k5Cc|(EeX>W~f^0wP- z#tw~`-c)#W_50^{=eGI8l@yfM5nbO4cZ_(ij)9&1c*f=IyjySuzic;Cz%Eu|?7lve zOYmg(Jc)=HBaBC7|DG=TGs9RK%%6Nw!5wT({cYkJ3i}aWU6ZAfD?@1?ol}<5(Puvy)_rj; zxARo;WA2hYe{D=YoJ#tre3xH7+d$zqosB8fkD%XX!Dp`7ng$M9##E;ZE$VixGfipJ z7TPWyeRU)O3|#=G@HLI5Qyibec)@~vdwV<>qD1zO)D^a^4t_R^@v=KMvpP_bRALSz zafnNQ1l!c%dr!tojyT|-pGG$J3WY^(<&)*MO1npPd~tZbZNI5~f<)yZeTG7O_@(Oi z;nhwM9B=EJ>VBnl8V|@fKJ9554KqFIqD#1FxB_a#lC_Ei@867u4L7jfT&xg2jg4n^ zU5|rt1lgFUyD@Oz$m4)0`QuLI>v@aZ5{P$N32 z-b@3TEEMQn0czAAXaL9t-hydU;DdTDktd0|udlZ>*lY4L65V(h@FT{{NiB%z-K6m1a zKBGeHm+1k3btiOl(LPuD9VRZ;-`i1O66>DKS7q)*0B<@cMG^drQpyAb8DN`f&8z2* z%VJ@|lLdX4*1;+=bL@GYK$^p6}LJ{jRzWxK0=LFTeh9VgDn++cY#h$BT zIiEITWtiosqU#}@42H=ej#G7!BsCU~BvmxXWfpp6zVi{k8nVeYfjOTdL2At_*LzLI z(ceOCNqZl3F5AZFQ}s$J#TyVA(@BNR#w2VHGu!4`KjUmY;h~w(0x+d*?I@^|k`SaV zouVqo*V7XQ9kz-iahk;~WMd0tW}B##8gpFOgAxXtiDwC4xI?vmJhx3q*W`i~0+F?*x1jZjJEd8Ie|C-NU`2 z(FUuD%d1&FeLUB>GS>DS!P0Zwg?3j=U+c2Et%!bPo*v> zY67IRc7FH(?4}I3`=USUJ(3DEG&FA3cmm-(Rub}~1;VrfDVsa}{>WNK!Y-kd&vO4e z30OdHB*1ee*vfl)9q@JoqZG2x7L{499%!(@{1q)QKTe~4;TvRxt)XZuf`I#yi}jw;KHDVk2a901v|*xK zARUtVbrxG#83`PVaIm@5dBJ3a%-#<*UPus=B%jg;|2Oi11huHSjNIEw7_uycG2LCh zKi}O-yBjX;j{2hoJ^u2Z=ydYGxpZ2`$26ZPjroXLBx!TDM>}nmmwUN5fqR*IXYx8L zP#X%y4%-5%$9YtyyWodD>B_WI5~wM6(1A|$3?>0%R(=0$KsReOm|6_+Lc@9ypjMRb z(hPLK>|;`It^uU{u>Je0v9V>!}FbvW*k z74TTQ9}?tTEeCS)y$}bb^7AAMNF#7ZTIHz@e$th}H+`x`WqbE=u31)w>`qAX3qjTf zJR?40LqFW|(o9=KO8aPVwMR1#3ku|V6PJ&PE(|{SU4DvzkicT!(VZpQh`8xw7utAR znB^q{ex>@p38IC|XK`b+I&DRjA+AhIF=jJ?R3Nua`9p+ojn$e3cg0VULE>{SlCkOB zm{7CdLYbG)5^>L(FKJId|CsN)T^BCfdg${L@QvZ|p71je|Nh`Jw4$$9`FZ>2ZL)KZ zitj1?N0&7i*9VhS%K#@B`2 z7;~YNBemsYf_m(*hd=h!C?r=A4OW3`X8;FW2R~Lpck{Lyxm|IgfgEM%UIcDa*{TOh zR)jT2y|;GvDBIR}HPhPe^r#ZPutuK%?|QfUw=1`+h8Y{kfW=YzldXZW;JrBK3=18y zTW$tVJg=kAf&U#H6Nf3WZCAfFlERK&BEQ3R>OVjOzSns^JJMP%r+kv>i#7vY4C_;2}MQYm3->f&@5;Kl($~5e@lwIOVq|z_6KxfSgCE%W5ddN8cMEu8 z8B%!;l4(`Qehdw%wgDe%&*Y;iMb}Wuylj+ZiWAKHI>{aaGLaqWPe#PHi;q3P%4SI= zBjr|Yz}<^|fFx`2wnmqA7J`Ejj-bH+;pmwoAhR!d(--}{zjp(iLs^e5&=k7@<%POC zbTt_;gh4%m+`niIIy~m(jH2U+twS;IQJ`WueFFk8$FcNpfnS5Tu%H0 zkbIlGtbA?tMzY%KVksv(`AP;^akuDwav*!tqHE zmJbAkOcgUt5PEIG)L`rNVAojNllh>}k)*2xczrWTLTuLHy58a1@#_ZJqPCoCD zbzhgX9zZ>RsJgoAo9^0$Wx$lTlx-N*rcTLk_(wi^V7au|Q!k&9@t7}Q)H!M> zNO;K-6lZrgL|GnE^WzXTZt>?`0ZTU~D01p(u%WQvjVy(`O>d~utK|%EbtA47cB}1X z(Y!lZmy`gNyb6%K@X#+b_hWhMm5@!Hoon~K>^b?eH#FE<}f|R z?Jha7E6V{vEo8|O>oUGW9&FJ8xzcEZ8pthIp>N(Hrnwh)>9zut8H^;^n|5CY)Cx_< z=X(%OBcLsE{ymn)@w!f1v@+-`pbDUgwh5+3P{Nh}-fDM$KfSCancfB?Rmgw=}v+3on}&*xnrgHcOf;Za|o2fas<{6+ik!*Swu=Ge5qww3MulnP}>2gL6JK^DvskaghZ*?y$_X2w-Z${>GQ?azODD(tv5Ssv`oVTxY+Zhv58k z0adyc>RMMpcX-HXZ<^D^joSheOdJIOA+9 zp{j3cDPS$9Ro7%T^w|Jo;o*`*Jc24{MCbe- z;kNwJt@yf0ZmX)za%rngbiw&8-E6`8YZLtFsWs`C`^!((ogb(RpNID(cMouN!bJ7f zdzB~~kyV$XZB`(|y7NvIpXrqQ>VADBl)#-5_ZE0HV;7o+ zpCd7DH#gbp{SmbZ&WnUoRm1ng4Z2~=0ychKGQnq6wl38732}Z*LE)gJyzI7q1-;G5 z3MzTD{)pGGIZT+#)fA6Nm1CBZ7gn1%$#URr`jW4FQ+fu+I&6oZxQ}7uCudc~r_0Va z8p3~b<-`Y3@1G*U&<+Idbpvl!o6s{H#$PT)f{grx zO?0u5z%&Ua3n5($1|V1wn~h2etG@%f#z1FBrGiH`CfVT2qahb*=OYmaVsO0*p@FdL zMnDrj4+%Ks;l`PsB71sbQxAq!Qusw+vb|iE$Oj}NNRa6LWA{aH-s9?emd_lxd3R{Y zyKp?X7Eoo&PV!D!4OL2)5mKMXm|JFr0AE;U%Wl#WK$_ zhyzMq#=L=D&T-I$GS96}2eh0#x(nE102xw_O{7HE%Rv;em#d%;f`uzW>oW9}V=yxh zgxkD@TkkFD-Tl6N-%AG038xcRmqfr`+k(!JNlqy5#`l|^ggt@dM11F89m4oOs>J`t zsK$10wSe3nbyO^-FX)P|tSw>`%@Kb3i?%B>F`^0b=#U*dMH5fLnN*86KF40iuGTk+ zAic@mx-^zgktC>lDSt^B!2F&&7>0G-V`{3GzC^=8g z#&6P^Ev-=!#{+8dI^X-1RX2D;>v+Y#T+ZW7_0hx}!FDD`3ksT$cF4U0&1j3c)}%A> z*t;8en|f3Tws*7;uA28QaWGa5hQh|7;y=50@FJ=^fS;it8kQ61w@l6EB08Zb2 z-i4PXI;7<48GT^u{iR$O?s#CE)H<7LI}->FWTU8?(&Vj6G{vRLAby8rZ)V%!N=zn5 zeJDpHq>b)UP^A8hAycj~Oj+G-1qIhbQ>TNq)G5y^G=@WeW6H zUh}+=8kDdJs9@D4)_hJ=ztqM&+|Mrs+`#P$>#Uv z=&U;AH$>&+veqeL^yh|`%Rz_$2?ccHn~hN~9H+KkbqK4|#g~-yuYMMUy^*>97ORlv zpDSSPH~1JjhB1V>%ycZ9I!jDQ+#ONep@EUoNb}zz&X+6~qi1&idP&9(`*?)6+LkWs zJrT{*MN9GiqeE!@gMop8zkMdqUIKJ~A7hu-pj%jaT}7sgm$>&^?08Z&d34c9Ug*)I zZ|a7HMM$I;>*^j5zmiw|Wr-puOe2Tf-wirmSmGCd@n1W0V>12ccQ^{Jv9$sZ%~=Xd zMk%FRyy{Y~8!bV?h+K%Um=SteRqS)F#nbLnXy6{34AJK^7Vr~Hv@`EI>h21j?P*?$ zk^2S@JLMD1Y;H*3P^IVkpM)~eXfrE7Cm??8DC1V&Ffq9qZJ=Yj4$N`LdVwaEUW0y3 zlFwFcAMb=>)-!6O-)*6cnw~aiJBE+7BgZq%n=unNI7x#>@Sb|o@qXaP+YTck{SL8PioXl zoSBSsah_@Azh>9%@YtDAU+>2&y-SbN-?fc4(*qT>OT6W-Eh4`E9a}|Oo!;zELuT(M3qo}+dCYNl z!^{XKk<4Ph`}}XybO_*32&04Bg8pO#kMCEFhv0mOHt7Jn(v@x~{o2+V0o}R_sxhos zOuI9WA5mGYpfMwEJrJvGN~MjT^~bOm4XDKLhYUs|h-)oDuzsg34;EncXW=*X_*|2x zow)-~XSOj_qD&%(?=5SQ^!i4A@>F+t&}aP9^UCvvv=JET%tNB$iVk^rO`01qT1Xc3 zzdeom0l|8}vHoW{Ny?w2Lf4Jh>ZuTVw!;(E2rq0KAF2a6DAc=dZ9AaUBVS>+RQ+fx z6KTx<)0g}V!(oJf(+y_vYd^WXoi?oD8VIj7g+q*F0OMLy@@!@vrc~cMkqq8zE;R)} zpR5tq1;_Iz)-xS2V!`)NCR@&yI>&!WSZ>WJyDL~7h2S_T#HeV1WsFUZ^1+55ZP%|a z;TDi%zlybQKf_!QTx~-85UvTzq~p>8o3JKRC(Ojzxf9_rH)EAzuEdbZkVKp|>2(iU z?%L!9Lp1TS5Y0gkOjaV=4dIU>jFK>QkjZ^7RZSNnP7WNL5swd<1f9Ifo3>Iu>ZGcj z`P)LW7N5Ef-T%ILOI;q)M_kY+QB%bByDis|{wSEfbY;xS0DaQq*q}8)PCVK8dWgP; zC6v^xK4GXF2{Y9rD*c-NP+P z^;*(JMerkX-o7T*`bL1QDAg%*kI>{3)Smh0hjR>PbMn(#OIQH>BRlx|^#z2&{v!QO z4hintNHWoAQJ6I)n$TtsYwl z+UBFnDp3@?kG8)4wYI&PI=Zc2wTLO1eT-36g9iEXiW}IC6_qk9!8ad>sek+RQ5I4X zV;TM>Q2~7M(Wz*W*ww}AHbU&0sH2*1mf|<_DADw9P0Ft30k-qLHj0w+(5OORpd97K zh&^owlp}s{!ncy$$!I9u?{TxkCf+F&c)JpXs*j~ihb}^_>^Ya@NFbz2dHdq(rx0c^ z@48|Z{fzf60~}|_&&90~A2okS5keaG2JdGl6hTTe-WCPduuVD-aU)bsV|~~0;>nEd zIr_jAFGJ{7y;^->7#r`%tU$*sCPRP<@Sq!mDl`j%rR4h6$tf#>%RW|1wD1o|QoGuW zWg?bh6~!szZjpn`xX2K`pf8s{eeJPC=U&r+fZ@RPoYd^@WtG*y*oD`%c7vR)_pTwA zW{9eA7Wm<5H5SFtm5^d+)*dKzRNoOnct58}=>02{b;J=cuz?d+S0~>f&kVlTuS~kf zX>;S_ToUMBcw3Ou7E>BH=)vaH9(dREYHcLEi={NUeg$;)3Q^$PFwdc@0l2Q9tDu`( zq_QcA+>U}&9R)dCiJ??!anYE63T6vv5OKbw35sYaMgJ#)~Qb`*Ou( z&zTny$e*Kl=%jG|m%q&i|Isl2u#QeX{pD?X=x=W6OjpdHyGY{H6!zuJ#KXC>OmScLGIr2K#D_2&^reD}dwSea}(N5~N5^*b5n)TML-uNdR;<-lH zI9GYV*xS{RWg&|VXX`sA zl(hjp%;w?Ndrsw}HsD|~OIR)}O<>Hk9<86LNK`+>bX@GeqCf103~9AyR;V zWq+|ZK>#BdZ|3)u=clb+@G-qkXWp5q{jkt4jd8}Kx^&3FUcbTK?=5D=H{=quN*$YipWs$*}|52>)5LY+GA zujXxvUeo!Y)fk<8P`!b*a*88hH`aQ@EDp2ZVZ#)9BJ1gqCnVnD+_$B=Ml`N-o+NU2 z&Iu7|$|;xdC-OwDc)>(LS~yBNnU~Tcah>L-5#Ls4R2Dhs68DLEL%vFqo1P+xIi-bv zjv6(lJXdtGYQ#i*c6Q(x6g>CNGvJ+ZJj#U=%gW9_pOh6hZFfnVlx@(SugT3|I_wE} zB#nkG%HL!#8QV-VS<{uO+3iE*@?p#oH6F6^@T2A;EbvPMAY(7+f z0wMkr9VdOZL^9T%VzOVF?KPy*Omb3(C_lsO^oOLt>{XlkI}9f}C+R~(Q(&Qiu;>3J z8jC<+rw&)|)Cq+K5BTLTMHGkf)7V@uc4r^nvUq8^s3?^8=9}`*<=;|fg&wbOXG9e* zMYs&z*;&%<90jqvDrI5)=8>=J$tKK+LTPh)FoOF#q15SbA99l|TIJH1YfR~CXVnk> zwTtx|$CmSGWJkMG60J3PSq+PHT987~aU)UMh=Iv7W#~&ITU%R)eMB|CSw(}-1r55- z_lSbNu}lMyvv*7yHXcbaRy$gKzdf}gVy0WNP~{Ok^e}eQ7tzG2z=1WUi;ZThltZIf zTCc_)LnlTql2xpVwVkTYr6nKUTxPupds1ItAH|rsJfOIO?btrqx zN=R3L94+%bm_$m%VnFzIAZLqfq(t$9Prvtj_}*U-ejy&TGH4 zBBG$Q8;TXE2Y#$&H*7AJH1|E<0sgXY6}PW&8niMu{0U*=jL03+au4I%-2FW{Fa;b%2-wJ_JA41vLUw zhlPtgS*wb!LMZ8i*rnJ@@xr{7)o2lpcL?XA{CN=Oo$uiC2g3Y-i3H_Jkgzq5Xo#_e z&#^z_2T~Z@;2-y_0uc;Xv>suMVkOjt>H;{!44%1KW|I{FlJXYftxX+b11|V|1uxH> zKeigG95(%kYl%@tld7Z^!5v(wTN6f#Si`6krT!Cj+O8vRkRk~?d(wK*5fE)a>V5s* z9T$h0zr@#sG&kHz^Kxj=%ykMe?XP0wEoHcM`Daq(2bYE20vDGeE$Cfh3&0< z%w4poS@t(IpY#vA();#UJ#la3mqu*R*9IGRy(jr^Wdm}_oQ^$Eg9gan5wjQuf3K}E zaq-t-3~4hh?BE86I@bcOe^0^g>wbQIcz+RWJle*qVMe30hi36czh0HdSXfTh+Ih^| zAJvX@s}6qSYI`on?p())x61(A5Rui-8OT3Mlyttnlc4+8?_&E7&23UO=8%ch&qI`8 zpZ!Bs9J%jYrHj`?9SqUq1PnM)B`rJrWlYPX{u{nn_e%;iv^b)9f;0}VS3ZREw7ZompeVYp*J(CEM&EoYradur~NlCPE z2UWs}a4$1o*MzNUe2(c|tWK25)0_M?pJpagoP zH-gXL_-97$=VLWE!f`n2aEJj#Ux;&D}RwLNd#ZBhkPAlKy9bo34LRf$qp->N1ahvIRjbBD{sp}0-k+0Qn~Wq5zb3UNA>u`} zrC#3_55GL5(4KS7+ZzYO)D&+u@Nn7Q{AYPJ`@m0zoMhOZr@kZk%tJM?Nz~YeYQ6Nd z@PKBNXFb8mgo^sS$+lOqpo?)JgQ7DN_V-nSteT$)B2jVIMyPlGN$NG$!4M zcvjlQ*_r<3=4@S_i}?`#TRd_9b>5!t>B`WwU(<{meF1L z=R#$~JM5+O$!C01{<5do^QqJZ|7Vnq66*N#b;OfK*hWm~@Vx;!Nv%DPZkBw;UcHHS z1$!y~n&32>ll<}uk^79ylnmWnJRACd0I){MgOHy1U5+s^BRMdJ?>ax!G%hO8*MA4Ji~|JZ$(>lXUS5^2?b3K2w$nX zP>lKSV_>c*U8*lMo7gK}t~y>G*`QVHoG+p6+1$NTCL*sJW7cp&)G2vem7Me1)b1@rxB%WY*Cq5it|H(qc>A=EM35ZN)<07`$T1E{ z8Gm!`GvP?yf-pPr5o>Xl7O;VlojG7&Z z93G{x`5RwGs@R46s}^xud@h~UWtn1cOO+p%=Q5(pWMZP|ua1=vRVh2Rt>WHH#9wWS zc_(!zJ$dkNT3zk-G}ntU!2Mrd925;gvkjkIJIN}lz2Y}?V6%Z`Xo+@NeM4f~!5lC^1$OM@nYc4Yum>)Gw_gi7Okw2Hbda80YG=Zba zD`6-FnL8{^*Iz#`6CfzUMGLeE!-S@HY#r0f{L`V_ek%G;SgPOyusujC*Kf%Zdgd@+TB z9qS)Ib}@C*#3L}yhFm|h9Q4|&vDkA1I6ByxsVb zSY;9vf=rcaq#~tf7q_g1YbYl`GQH`L&QRw0@Clghek8bZ_R~PmXWx!AD6Sc=4Bakk zmd$^LVVUvLH^gG^aWveR4?QqVA8gO@=SElOsC$KFRank{*&ZA12C+0fW8=)I?1)G> zV6}Mh6lH3-HYxeYOBf{n2ax{2FQ|S;>QXWBHV&eXE3V2k(H5K9N9p`OQisaOa2l z#ra8+%$ro8|2i%>D*~#7CgI$!n_VvZo`gV3S|DS+TtqbB4>UjrYQ()R@;8P!5D$;EMcnjm!>9ECk| z4*}ewG&$qom}AaYOy)095%xMzKiT3Uj( zL`aDeSb(FdWhkMQvjEfO2TIx{X_Q&5E)=%^3hKd5>UflRowvry=gVIuu3EMvAQ4vk zpIeNkf6Tt{()gkaM9wX;oU8;N2w$UWwHJl_9Svjo)^^@5+tCB#{a48J(_=nvi;f-ThsLg&!n2QsV|L`C1Nca zCp5%e)pM1)$G(>*Jx-%Vj=X-WMym0uWX7v^1sS_>;+H8uZJ*iue`M~K_U%f(rtQf6sUfYlIjz9q4+!9NjjkwER0 z^O_M9WD!&yOS1w^XmndWs6k4h+$ePB{YZ!g*z9cC)q{>2+k2)^M|xRLz06Ny8-k(d z&rTnr!w7dJTkQ)B>NF^-zfW*ckfy+#;cDmCGe#y5t!zW+{4aB-z^fK z@~*uG>Lg;5SH?=DOB^R(w@BBoc18afyiadFne1$dmoI7m@sAS6eKJcUYL`6Phy2iu zk?&D*<>Y2CwW7!f7!E3|%xfyP)#L7wbhEvu{G#=Qe9>+*s+luG6bh?}ZG35+=o+y8 zSD@&6=s!;EuA+vn!cBBu-#mpALUqnbLm0Z-0mI!>T5WfO=XG%+l=7iJ`hT&lZ&@Qnkgb4(tiD zT>*kB0P^o zqN;jsqs*+hPhjyKF_?j(M#{_=2h^7U4?A+?h!@|@kh+sNiHn(+-ZGWWyl4=u!)L?1 zBRVWVl{nqDVucQ9MwFBy&^ceb^V@P=j9oelYhr7sZz%Fw45l}mRU z-{_kCriMq7VhwP7V{tQ5?*-(5r|yUxw**PbpTE#_0H3Bg=CuCh{2Zx;f`s|T-4+2!7zwVd?T%2;dTm}}TbABu8)JW_jZ zC*Pwbcw>JXV(8i)MCQC?*Mo5DPnqxNXI&P?ZxQsb=_}o0AaOjEuzB+AAl8s{mh*jy zI=!5rd`*+7|9dBBU-<}Wx>!D{ZZl%+F%s7WETBwi(EcFQFZw$?>Y<%FbjUnjP=)#& zuY4ANhoBFa@M+C7BI2fr%x&9)nn3f9R#-~f? zeNKQ%F>^)av^vZ)p^ewHNRl?vl9&7*J}|PBqA2;DeBbZOeXxosii%t;Wv~7b+J8kS zdsf5JoMT%q;&AcY-AC!qi5IbBkqjesA5EV(qeyQqMUlzCpN)`9q2X*l!+RAU! zjH#LnQL>Iq(!K2_pN zDIft8Nx(G!18z1aTTzlbtBgp?T0w$9XhoDp^ETA8|> zb`zq{=~tYTMJJxtddlK=6Sr7D#J}u^MTn1hM>^_7EP@GOYS;^j^%C zw#(To-6}}o8iseA;^icr8>Sx<&1ZJqlafBfrBK z!fw-?W|xZVgqA&I;$}k5Z4ArGRbu}N%3<~lf_k{2Oy{Xjc#X~c@U_||2qvqRKpN&U zJ}i#2bPjt;;^mk`M$LVldiJx#*=5zw6cR^`{7(TUZ`dTvkRRQkaW%4FoYt^{fWM)B z#f3{ZBv}wHhqx-`Of8Pjk3JNwQ7B2GoB&a_c{;$7wrdM0*mJiKo-;ESa*NKf-68ZT z6Qk6qfhIIVvTd2YVM6IU35Ry&_Mfd1Q5M!qQWW}u*z#?ATa=ii z+t7Dj`K?wOaXtrRnnNA0i&Le4Y;30PcbG?XZWpiWA%D!8gFM2Ey*PKG=0-j}TjLcY zWhRV}3H^Dw>}!o&a+dt2k$+j4l^*=1;}n0J*eeN|cLn2#ouf4|_5r#C;8 zeo<=T`o-RMkGeHd_9uz%H__$<(v;obl#9dc;U{?U;GDcyc!gi%N7s{A*B>Cbgk#61 zFI^B%3nGV?ipzvE0R-`yq}Zq9O>*&b#ss;b8b-b4TS0BuV^NXCe9|P1QbcYMkKu_q z_ZZk{{{FgI_~r*fZR#rFl>JgO{j{%8Lp|zqVDj`_ExkK~l0Ywxin;k{+T9;^aLMQL zR|ndTMGE#LopzR3R*Y@ES|+?Jr{~6Z>>|{WzS8i7dU2D>!OEwtn;i)J$R>vz_<`dy zQtk}S!yY1~vF@z=|2(m7rmv$2twsZ}+h;@GYYOv|e|?ha_{9i|k+RE0v}0lyO(vMW zi~llokiTM~-C(9Xg}7W&&mT)O*<1Cu_h0z9^zmEd9S>?-KSiIZyA`Fc#~)?;5*00I zW&HjfOYOWb(R-zRg^H#xB$EFrgx*w_egcu-@f46~?zy%y@P|p^SbM%W_M-{0n9owD z^8H5^S*Kb9AS1J}IO$7#EM7(g(KW-*?{P6EWo7Bdf!3`iV9N*ZiiW+<0xl|3HH_~H z)H}>3ii=(ZC{t4>Da${;WM;YB!A;*Tmo)?!#mR*3M0p?O7GFO@+3S>2=lhokADXr| z?k#P*v|^FChP8d7>T;(ZX=}L1w@u6JNpzPq-A!p;R#mXLlzmGEayM7Jdi!||GwH8b z((zA9u0&4zb}EWQ(wa|w3>~cLM6tLnO`4kt+_uMGAt0rAj!_T{vE+|DE>y#Ly#jh0 z&~kbUNQAN=4ti6x7xF=z3C}^Xk71O@i^a`ZF8mGQFf}N@tRE zSCEhM;-3E0`b*mQhML(b4ITe`ftvk^^6nMX5t0MqtrcFQVSk!&Hqym8LT*}ajQK24 z{-DPHXT?q7aoK(19QYdIN$5kYVa!L&Q`|`MVZAxK^~(QMU4nnYJGj2EPIo~%DG;7H z_;+&uCCzW9m#>ftYkZ@Ge?2KR|8tsY#W|CZQ?ru6vFG`>DU2ItE^3l`3FFJD7UIO4 zxUsz75{Bq}ks(2g_fNH9A%&&1T}mJ|9sd$Y9y`3qzs- z#f16s<$o)6)Wtm1n^mNw|CxyX_0HGY#*nlvl8CmFU$PUQojASe|MYPv2LE9w>41R} zk%?}`@R~VDv8gZytMI?f#&M8@hifP9m=AP^#h*~3C@(Z}w-2ivo?SZub2;C-_Q`L% z&ay_&yLKB}k~3-8A^Lxc=r3whW>If=DhtD_6f~0^Z)5giev0?}r*i4Vo;GP`LX?Fy zjQVd6lppj9mNuIR@Mv#uYFPYP%15iIf)9&dq|cL-q?b=8mrBY`h;(l_=P{Z)4s#=a zp3WtprD!4h%!N10|97JA!Zk^|ctt0%NJ;@Y4&Os-G+~W1Q@A0V_T}9?Uy-)(9YKk3 z`oF6gTX_#UTQJgX_5V;3gHO-|30}ki%7P9{I51g1r5+(F7kv*cm=DcgdWWCj(ie{~ zN;?>ZgK>l`I=;_@rajm90~fAJASf-CRjN=v4s(&87!4HJ?-YFfRxB17sWpG+{-{n$ zm9UVfrRSh%`XhwU$TBv*%I{mE|07-!&?N*BuP-LXVds))0f+DoEV$H35f0xlhFR+r zO0FA=pY3%Laq*MI61lXBYY2W^?;FW%&u=HC9S9FT4ww#-@je*O|12|Pvo*CwIl~S@x`vUtKUn}#2N*j z8DCb7ioxK!GbNR0RZ}2jC5oapVa$gDn)1aRZ6rMhi26)#3gGaM!&Yii32O1 zx04)dDY?@-1;5Q@d@G|q`%<%;rzKMlr-`3A71pCeDiF$mcrh(Vjx%7J{gZW}kak!c zG1l!+{bR%6;t}U}k}1pWejNY(zMsUO9vf&a455it8yD{!?_q4mdP!%p+*~{y(Z_hR;jHzIJc<9D{D62y0P}m_^U@E)%%!VV)|*}!Q&$ij2oU)fx?$e`A~e@ zjMa_2Q=;um!Tnv|dg>O(&S9}_<4Rwq{Kw%#?BDpv>GA+pVWsh((34Pldc*Ddu%%kV zV#(?47kcZGqb+~28|2Gw$ymMkYG@dajGykQ9C&p?^h>Oz`NXrz=lCbW<)wz{;_!j5 z)*A$+1IrcePXujqfsNYzbr-P{zmbZ({e3KQv=p{9x=pqdALvZlv`@goqSp}x{|7dc zvJC@WOx(ZfQCaVjf1i#+pQ92NADU{Ej-}@%N`Gul6ERChpNh=Cyz_1UiCJE?#ns#K zk=ss%4RueG@IULeexZ762+S!zX?{4Vj z6WEe*DC+awMIlLEuZ4YP39Q;DZskm8o|p}j8o!zE2+}D4LzbO1QwMjG#j1g)IBkM4 z*f^)9awY!#(hz6(&MGI^-O=Gu?3G6EcZ?3&-DYeRVN85Ji(~5nop<0}uk@YeB-e1YDJ`w>{UxvY%=Bwg`4 z1W;?nSAa|#p8H0S6T(xK2a_7&4^WatB5{kH_mjCpFN>2H@>J>R$%%wiJrd~>OaMJ~ zB^c2khyL`R(cah}7jjcrk+f-U-s`40wTRHm%v(h=2^@uzl!fNt; z<1<4b3Lekb3skNdlP(9PoWsU;AUJOttQV6{%fg4yNAyrcSLj~eDX?$mH?#JHXr=Hw z!ApYJacDY#YAdyjrBY!*H_9cC@i)^#@U(ve?R-kwy)q*LPB0{W|2IetNRyM`{)7kk zBOT?Mg*wjSr93VN>{}tF6CepDq`bdD%YoREe*^mUUx*IBTYJadfSoDu6HlDb8Zr=|4QTxK?g|=sJV@6N$B%Ic= zR>S$TUO^x4%XmhAIVLr)Ipal0B=IuMYAIbUfqcq{JW8D3dEgbF?k=+^re!zy4V)ZZ zauqX=%RD9E*S3FYyw(k!^L5z7cELyQ$Z%jv|KE6*O(ygTcYl6XNu2RruVkG-tQ?p^ zGir3#KE;J%n`(mS|D$p<|4KSh!}yo4kcf^TVV0TbH0G8|O($~&X^c@zvC?dEtA>`_ zRF*p82BMhW7Hw6hQe39e+ooxusemh*qgdLwGzw^nH6#crDBI`Uu)^|hd!$Eg{ph$dReN5j(WJVGv`$BMo1oQJQl~oJyFH4uZ7|V$n$6oGw#*K zeyQtHhMmS^GC8pxO7Pf@D<%Jl+X_Vt8=gqTk>2SF!Gk08G)gR4JVS+IUn>TEpHi55 zKbHg~=gb3Be`5i!iuyveS_nzJFy=d1sIk@E2Im`DvqP5e4fSoII(o#&Rp)C-nk5Uf zDF*Sh$!4nazDsrUKYGbOY1%Af`S%UWtK)yCncziJ>yHv;+Xh(uP>!l4#my6uh`}!h zc8i5W>WFq0NBgDl!xZ+#_?k)}Gkw+xg7AmgX6R}Fzs9-C9Yu+$%e-T_e2)qBv1AY7 zP?AtDdnfG#E3zHkj1HP1z%mq-X44Z9`gQ61(FUt5B|*B{ zACXg6_(DVe`BTNCsGLHnIcy`ES7Qok`#bL>#M}O3*<+Z=^ z-X4(DdhBBz$}a*vr`g6iJ zY{@Jd-$eWdw~$NG-3cuy&&?gI7VzT)Et~%`GDaHHqE#Dmiat2Ot{OEepT86vCnLm1 zPo~Mzq*AImTdL*#3vmBqi*?7KfkM3DKq*7PZ<$27Q|~_2_}_u9Yp^a!7B`H`EC)Eh znnYOCQFIF}vk8n%?O5lWd*(gm*mjy)-1++S@6c1y__KVz?bPt`kDI-x)K=Q|Db6A& zL)$HCQkJkIuQ_ZMePz_Ca#g{%_*cTmrHAq z{)?M)LsspQA`jD^x9$9ykNc#s>~vD~>%S6+D>JY2^b0N0OCjeAVs=J$>ibxcWMrHf z+trL?%tTbs;z)RmP8X_j&29arHg#TjF+DGMg zV}S4gDzX05%}nO+vg7w-hg#6Pg(Br<`u0cWt-RE#1N1NvYqr^6T^(sQOvPd>0cUq$ zLY<*H^sXAP1Rfsl-c2*7Mr2M&MX3%9XQC>Wi~yz;y7BL5F)Z0}%-;BbciY|)?fr|bWK2*|7?E`5jg4LH$7(U*hQU!Pu@H=Jxky-L<&_Q0-h*Wd3z-VDta7$q#$2C`6AIamhgMtDLMH0ra=6w&(lO}8hU zb{L6;sG`X_jBYRyvTHVk%hwO<(ZbLBK^tnUg;US4xav6e%Zi2WTs8K$9ozId_;GZv zx5Os1H!IG3axP!E8&N$Z79SqC6$K`9jLY)Ws$=&0=H)KJRpT0{XY8x4Y0etBeY*TW z(n4^P3khBcTKpgQ-&$3;Qm+}*s4mp=BFj^U!qLa}_Qsd(=-b-=WY?BoZa1G%>KpF_ zY8tBMs6Y3=i&tHcY%a3y3ZUNCCKm^i%k`2Xc7N2s_Ipdu{@9sCJCTC;%(=gd)K6R5 z<~z>yR^JN^vg^5QLpSJ0kYJ?lvp-Y%c-U5VB|nS%?b%nN2^0bd(T$FsiMjaC!10sH zZKoQ+Ri1QjV|#bW#Jdli{STq?nber~E+u$-)zHx-^;3e$$JD7bap;f-mcxsqE+0*D zJMv26Q1b~yO(=@2w=#6A{)fIFbzqh!P?`C(3O(Z)L006SZ2Qr{^Rwnu(fRSlYbebi z3@?&$p72|N1s`plXF(j`dQO}99^Gq^9(B=#1o6vME1yOKp~YJxAO-akinSOjRFE>) zsyti|Jd01>l@lSc4r{xS~gJ*CgM28b>aYK7!?U1_*!4RNnMx;=Gj^xGTiun6V%QfLS2jMU}`TD zWE%~YeK=0TD@bhdfnle=X?k-nTh@${IH@i`x*SLtEBtT621M$17<6A22miym5=^|X z0iVptJpkZFu_=;hpn?S6n6~S35E6}o`9Y72sNHsZlu^!*y|*|ij9yo&Ck&Q-JvE{P ztVn~k=ihg6K;?5nP3% + */ + +package com.shatteredpixel.shatteredpixeldungeon.items.journal; + +import com.shatteredpixel.shatteredpixeldungeon.journal.Document; +import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSpriteSheet; + +public class RegionLorePage { + + public static DocumentPage pageForDoc( Document doc ){ + switch (doc){ + case SEWERS_GUARD: default: return new RegionLorePage.Sewers(); + case PRISON_WARDEN: return new RegionLorePage.Prison(); + case CAVES_EXPLORER: return new RegionLorePage.Caves(); + case CITY_WARLOCK: return new RegionLorePage.City(); + case HALLS_KING: return new RegionLorePage.Halls(); + } + } + + public static class Sewers extends DocumentPage { + { + image = ItemSpriteSheet.SEWER_PAGE; + } + + @Override + public Document document() { + return Document.SEWERS_GUARD; + } + } + + public static class Prison extends DocumentPage { + { + image = ItemSpriteSheet.PRISON_PAGE; + } + + @Override + public Document document() { + return Document.PRISON_WARDEN; + } + } + + public static class Caves extends DocumentPage { + { + image = ItemSpriteSheet.CAVES_PAGE; + } + + @Override + public Document document() { + return Document.CAVES_EXPLORER; + } + } + + public static class City extends DocumentPage { + { + image = ItemSpriteSheet.CITY_PAGE; + } + + @Override + public Document document() { + return Document.CITY_WARLOCK; + } + } + + public static class Halls extends DocumentPage { + { + image = ItemSpriteSheet.HALLS_PAGE; + } + + @Override + public Document document() { + return Document.HALLS_KING; + } + } + +} diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java index 4b24444af..3d345607a 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/journal/Document.java @@ -39,12 +39,11 @@ public enum Document { ALCHEMY_GUIDE(ItemSpriteSheet.ALCH_PAGE, false), INTROS(Icons.STAIRS, true), - //TODO separate visuals for these? - SEWERS_GUARD(ItemSpriteSheet.GUIDE_PAGE, true), - PRISON_WARDEN(ItemSpriteSheet.GUIDE_PAGE, true), - CAVES_EXPLORER(ItemSpriteSheet.GUIDE_PAGE, true), - CITY_WARLOCK(ItemSpriteSheet.GUIDE_PAGE, true), - HALLS_KING(ItemSpriteSheet.GUIDE_PAGE, true); + SEWERS_GUARD(ItemSpriteSheet.SEWER_PAGE, true), + PRISON_WARDEN(ItemSpriteSheet.PRISON_PAGE, true), + CAVES_EXPLORER(ItemSpriteSheet.CAVES_PAGE, true), + CITY_WARLOCK(ItemSpriteSheet.CITY_PAGE, true), + HALLS_KING(ItemSpriteSheet.HALLS_PAGE, true); Document( int sprite, boolean lore ){ pageIcon = null; diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java index 961f92337..bdaa5b2af 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/levels/RegularLevel.java @@ -40,7 +40,9 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.Artifact; import com.shatteredpixel.shatteredpixeldungeon.items.artifacts.DriedRose; import com.shatteredpixel.shatteredpixeldungeon.items.food.SmallRation; +import com.shatteredpixel.shatteredpixeldungeon.items.journal.DocumentPage; import com.shatteredpixel.shatteredpixeldungeon.items.journal.GuidePage; +import com.shatteredpixel.shatteredpixeldungeon.items.journal.RegionLorePage; import com.shatteredpixel.shatteredpixeldungeon.items.keys.GoldenKey; import com.shatteredpixel.shatteredpixeldungeon.items.keys.Key; import com.shatteredpixel.shatteredpixeldungeon.journal.Document; @@ -526,8 +528,15 @@ public abstract class RegularLevel extends Level { //TODO maybe drop last page in boss floor with custom logic? if (Dungeon.depth >= targetFloor){ - //TODO actually drop the page, need to look into documentpage class a bit - //if (limit != null) limit.drop(); + DocumentPage page = RegionLorePage.pageForDoc(regionDoc); + page.page(pageToDrop); + int cell = randomDropCell(); + if (map[cell] == Terrain.HIGH_GRASS || map[cell] == Terrain.FURROWED_GRASS) { + map[cell] = Terrain.GRASS; + losBlocking[cell] = false; + } + drop(page, cell); + if (limit != null) limit.drop(); } } diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java index 7ca27123c..7b47d4780 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/sprites/ItemSpriteSheet.java @@ -88,11 +88,8 @@ public class ItemSpriteSheet { public static final int SANDBAG = UNCOLLECTIBLE+5; public static final int SPIRIT_ARROW = UNCOLLECTIBLE+6; - public static final int GUIDE_PAGE = UNCOLLECTIBLE+8; - public static final int ALCH_PAGE = UNCOLLECTIBLE+9; - - public static final int TENGU_BOMB = UNCOLLECTIBLE+11; - public static final int TENGU_SHOCKER = UNCOLLECTIBLE+12; + public static final int TENGU_BOMB = UNCOLLECTIBLE+8; + public static final int TENGU_SHOCKER = UNCOLLECTIBLE+9; static{ assignItemRect(GOLD, 15, 13); assignItemRect(ENERGY, 16, 16); @@ -102,9 +99,6 @@ public class ItemSpriteSheet { assignItemRect(SANDBAG, 10, 10); assignItemRect(SPIRIT_ARROW,11, 11); - assignItemRect(GUIDE_PAGE, 10, 11); - assignItemRect(ALCH_PAGE, 10, 11); - assignItemRect(TENGU_BOMB, 10, 10); assignItemRect(TENGU_SHOCKER, 10, 10); } @@ -697,7 +691,23 @@ public class ItemSpriteSheet { assignItemRect(VIAL, 12, 12); } - //16 free slots + private static final int DOCUMENTS = xy(1, 32); //16 slots + public static final int GUIDE_PAGE = DOCUMENTS+0; + public static final int ALCH_PAGE = DOCUMENTS+1; + public static final int SEWER_PAGE = DOCUMENTS+2; + public static final int PRISON_PAGE = DOCUMENTS+3; + public static final int CAVES_PAGE = DOCUMENTS+4; + public static final int CITY_PAGE = DOCUMENTS+5; + public static final int HALLS_PAGE = DOCUMENTS+6; + static{ + assignItemRect(GUIDE_PAGE, 10, 11); + assignItemRect(ALCH_PAGE, 10, 11); + assignItemRect(SEWER_PAGE, 10, 11); + assignItemRect(PRISON_PAGE, 10, 11); + assignItemRect(CAVES_PAGE, 10, 11); + assignItemRect(CITY_PAGE, 10, 11); + assignItemRect(HALLS_PAGE, 10, 11); + } //for smaller 8x8 icons that often accompany an item sprite public static class Icons { diff --git a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java index 0b0e54057..34d8aa677 100644 --- a/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java +++ b/core/src/main/java/com/shatteredpixel/shatteredpixeldungeon/windows/WndDocument.java @@ -36,7 +36,7 @@ public class WndDocument extends Window { list = new ScrollingListPane(); add( list ); - list.addTitle(doc.title()); + list.addTitle(Messages.titleCase(doc.title())); for (String page : doc.pageNames()){ boolean found = doc.isPageFound(page);