From fda6ca1a63bf1b75d72fcbba4105a28b503e5c6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Tue, 13 May 2014 20:12:01 +0200 Subject: [PATCH] Fixed the bug & finished load&save mechanism --- res/img/gui.png | Bin 6667 -> 7004 bytes res/img/gui.xcf | Bin 187969 -> 195159 bytes .../math/algo/pathfinding/PathFinder.java | 2 +- src/mightypork/rogue/Const.java | 2 +- src/mightypork/rogue/Res.java | 4 ++- .../rogue/screens/game/HudLayer.java | 18 +++++++--- .../rogue/screens/game/InvLayer.java | 12 +++++-- .../rogue/screens/game/ScreenGame.java | 27 +++++++++++---- .../select_world/ScreenSelectWorld.java | 32 ++++++++++++------ src/mightypork/rogue/world/PlayerControl.java | 2 +- src/mightypork/rogue/world/PlayerData.java | 6 ++-- src/mightypork/rogue/world/PlayerFacade.java | 6 ++++ src/mightypork/rogue/world/World.java | 12 ++++++- src/mightypork/rogue/world/WorldConsole.java | 3 -- src/mightypork/rogue/world/WorldProvider.java | 15 +++----- src/mightypork/rogue/world/entity/Entity.java | 9 +++++ .../rogue/world/entity/impl/BossRatAi.java | 2 +- .../world/entity/impl/EntityBossRat.java | 5 ++- .../world/entity/impl/EntityBrownRat.java | 4 +-- .../rogue/world/entity/impl/MonsterAi.java | 7 +++- .../entity/modules/EntityModulePosition.java | 8 +++++ .../rogue/world/item/impl/food/ItemMeat.java | 2 +- .../world/item/impl/food/ItemSandwich.java | 2 +- .../world/item/impl/weapons/ItemHammer.java | 2 +- .../world/item/impl/weapons/ItemSword.java | 2 +- 25 files changed, 129 insertions(+), 55 deletions(-) diff --git a/res/img/gui.png b/res/img/gui.png index 890576a47365acbccdde8854ba7fe24f1ccdc3fc..f0b389e34258efb5ae5e1eac7a2b1f84445e38a1 100644 GIT binary patch literal 7004 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 Y#P-zEAjIkT(+e;+wl=CVaDV#006#1`JOBUy literal 6667 zcmeHsc{J4D|Nm>oU}WDaJ4r&J5ZMOViV(77ElaXZvSghZStFt-B|~pQcG=gNNNSX& zY!O5D#@J`ZFw4*TbH3m6JLmiV_rLEs_j&I`6&+~cDy^n3I%(#z<9s>Y? z`>MIIEdYRyx*!0`cGS2&DEB>T*zQ=E83RmU4=@tZO1W}`aNIX{4g~;C!G8q=ynb`? z2xJetdfkM5mi5>P)$`cvck_-QkuVdduq*JOAfMnc;K~D^+hIQ5(hu*2`AM5yy>8=LoKk4u)2ObsV1MP;Tx<6G%&j zprXmu3byBLin-G}ua^dBy8B;$}y zA|__B1_H5(<#hP&!PhC~rGwDhM_AHb03vPq4#|b(j@Cofem4@ba>#Ax@^p_RB?=gKq183a`7mGwFzBdLo|@ROYDq0yYM)f7ypP zzfC`#VI%{nZymPr#J<8D=T+H7@lqryVdZPFl%C*Z9u*&=z+-i1ENui!md&@epcrJE zqOwBAfK|=SSj6d~%LGh}m;Q<2*?u+iFKuXW$)+SH*R};^1p;X0tHl%d82|0_KaT&e z`mY`MUm@a4KI>b2=fhrsU)Mh}$+#TVm+)V8#%Yo`dG8TX6eZZ{6z9p+iaFaT9+=L> zCh0}N4}RRJ>R5Rz^hP=M=E4A-LVe}@gootSoU(%q=`@fvIDVeK-1GQ(S@s&c&4nJ8 z+lw5_F~I#NlweZz9@8Fg!I6saYI(@1>w-`1iJJ*;DRN2%?^P3W;~K)*|0p59k}}LncGyp= z#mO{(#h0ubE&8%734U0WMTstH>U9h9vpSjka9KK@63b@f@B;0JzDLtUoS{D2+B#nzQlWxuf_)=E~~bk zfm(d|uYNfPm3yi7Mr?IXPZ;4QYn2*L=B?3eRG_pJhb@9%LL@J!hI}A!zobR{wKks- zi>H5=?H|6Shg^g?0tUbAzzwRn0RZM@{*XUVTgId)D!Wh16xql>oE*<5a2({cNyx$5 z$12@2!a?zcdkQQ0G(=SYQ^~z7XR~2>*yH%K#3I)deVc;B(^1oec{ zscjEjyJjE;s;2jdo_cbPwW<@QC}5DcqS+iy6i?x^Ed&Dg`%lmn6ovU)eW%Ps;jGH;b7={Bie+BReL&-H-LW5h`^Z!=7u z+)0UINb`D7x@#j2^}X1wj90`F_(b&@L94kcOvO%2Gj?0A(`%efTtZW8cGa+$+LCI{ zIptK!FMZld>dkVF9kgHRSn?V2hufR@txJhn8^%ER>w8fl3U20(M%P*#)_nF>jBe+m zvm`|Ui>HNI$b6Vjm+bY*<>8%{^K}t*w(F7xrVX= zg*}+7h$uJ=*o2R>%DUEzJ?nJ@KQXWw^mv>K*<&^Altg8v3K=MJ|B#IlnC(-~+*t)@ z)~<&)(CEl91*C@Q>EJU(TLCHe=iG3W^3t#8G0m>IY+R{uF0D`I=8d2&_@qolnxgj@ zbpPc67!@WB{tWeuVzfhxviV#^z-HrOAg5$$)wtBuGf8w3B06FBFSh=_OCb39WM`?oY{TV0rd z^Zk*Cg37}&#Aqg0Ybv^HF@**?p}w7FVC4UPL~edGnV`W`GR^lOX}Tx#m)jwJo;ChG zWWl3FdfOQVXQD2HOCNOb-%Ae8mzo;`5=TW)M*%EbQuNVkr36oo>9$onj!zm3nD^S0 z2a%#-+NqRiYj|moGtIJrLdbQQ9-TX66)fUw>(?C;ejl4u|ue0@m|P zLVB{cj!m#qVdG+LXL-jF{0$21cQy51e17%e%{r=UxBGy+_YE-sXgzoo=(zIb7j7be z`ae@$XVjd{Ng4k2j;3vwFM;%rZDrOg-$2NR)2VL?LPNA+?7-O}M-`p!75Uxt&sh@M zVdh}$yO-|Q7G~rgw7r4c7eq;AWMptu51PhncJq`?ywp^)Qj12mp>r$ZDqsc%}^>U=2NxTJL7Mj$A&COjqV}X~|*A}MWmTB$^8146`t}Yek zL)N%ka)-4@HhsGOh!U%&Fg@N)XGx_{$994| zm%y6_5wZcdURCH&?}{sv1+Gv7a`Xb@hE4(RC54WzN>`PTS$|jzf-4dy2JP=}l^D14 zI$d6OW8eQ|_VR162&kIIJlJJ^E{s%~jfYr&JfcT2Y!ZI)!UYfzj#Jr;k6q5AFmPk2 zeIujK=1Lfc1NnEKNJzHW?L%9!co%Y~G-yuKOxGlK`+3Xh0||)2{?g0pbXTh{1L>~H z@}X_Nug};cOsbz*UwiCh^e-u=UJeA^ApWy*bamws*BT!CGPh_iLXQIrbNmh&K2a9M*6K6Fxua>8 zIrmREK|l>UMPM>4UV_93vZ#l;ht9E;%n0~2FM=;}11dS$WEU|7Et*ckT$QE&*nHVk z>qX~KNKo%W{>aAKrO4O&&_5)%sN9S$qDkz~4k??wB(kq|k!(U`_pjSYngqas+dzqy z&hhwS?*5LOjvTrYzf4t%__G5fjBv<$j)8+e5I_mn)RwmL|}!ui&DZ z4fd$RR#9wjrOq1xh!B8}z{~C&t+J>XRbux@>&ja@P!J>-Lyvf6%s*_80AOJ0_Ir>A zZNJA1@1YbS5feaXH~&s9ojr>!>ncd;5(w71zysumnDpS7p91>K2F1?dAJCKe7fU<0 znd$w>G)ie*wj~T@YligmV32zS05Y8>5_loULn0mM>?nN9lUd`}$6LH0gET%r*JnL@ zs*!@MXZZ(qktvPF+_}3R(ax7=5Alpf?B1P_ldWUL+O@e3DnS%CYt2BCt>IPG1?j%I zOlD4IwK)rK?zmU)eD7qtM5~u(T?Y${=BCMuo0!e3#f+2z%Owd9yTWZ0U|W?Fckizh zH~e{tY_fD`@P2&?_G8(43u79X^&&cW_|&=ll=E+(I{S6(qEAb2=U^qdq2(aJ{2W-7 zGaeJW0aeBXx|QF_pFShPaACs+6Cy9D21;U|x5VI>t~~oRyXv^1>n6Z0Dl(O1z|lIl zb^BXUC~i}yAU%1@wubDEO>tM5OHS|VEmR&nGzEYcCC^|vWgGFIDqH67o`5|`VXVbW zZqH9^*U+@NwZc}jI=4TI(Zf8M40?AD9?7KtumrU`?=@Ty*8d8X_S;vf@g0^isoLF} z$%B^kFtOdl4&j{-7v^?dq+Kq6xsh{yB=lY9dXC7|x#&Rc*h%XDcmSX%u*>ajr+dmj`M%8+&x7#>0IYxUu;X zdLQN2>bh?XCIx`@E;I{psCRB7yOG7NQCo6VlMwM47E5p*+ty}9*H1RUp&RD*ra#n- zQwv_lOL!4O?3cG_T|R&BvkCN${mk*MQEq9COR*u%8qP2J?95A{Gc<#JiGZ5M_t>yyw+&g_*5piZJG{W6xSk3 znrm9`8_8}AT*oP~e_d;?59nLa_!F-kWu>hETRqHh*@$3@y*GMX zg4Yf@Hmne_0cCr-9H7meEkxw*m1k&}45$@Y9#fj*;ayc*d3N!%A$Fpd&A}F7P_oceCo)v27 zpyoI01-fy(T9cFH2u$z6ufHJ?e>*i|VnNyQHaLtBRtrT@Sh74oDg8}hN&!~jJlh8) zw%z=|z*s=}m7Tl58;9CX+aC9U&G-DC5QBqJUW7RIJ8-eEBbcana!YhT&1CbsVzGnM zKw8d}WN4F)3LyfZFv9+%1GB|X4Emr+4cE4nfx0`CaSO5$_1%xXCm)8d_$M`0aYy0= z%DK_O>~(SYfoc0NmMi*!RF4_;c1H>fRveLM3&xFqxT96VjGEz@t4Sz(v`85RQeljl zmM^Du9V==t1>v~VeO*e^mP*MkHLdYP@`0AMA7$W$VDbyWW~Q%R*Ne&_$BEpbM5R z6Y{)_3I`mJJ_Na#Q2D_>qpyq_W2;U3vV77brfakKNl8Xzocl34H%MFEp+)GzZs{^~9-M1WR{i0vCY~$WT&wEzK9Cu{MyI&UTDy};4fI2s~MkG*>|FRg2r|iT$(e+@5 zUMY;4w)LPQe+VJ;?9w)o^=*uRgaTd2QT-8DLGsce~h|I^|Zbh(=%z-BBa++@cq^f=ZJzqH=nq|WVS(I zkKRgAE5EPYVVu{Qv^P7;>a7lW)`y}MSRKbPGVB~Z1UI@Kj zFRHj-Lc^}!Re5}AACUpqDq$-cC$QTK?_|q8TJ=);J}S4{ofjDPVRJyGQ5oi;Jh8Oj zO|vxTHmLS^cf2gUdf+a^0J;_o;aj=)dQc{RuaP*|YJuC8m$+abz)_vy&=`#t)02vy zem5GRh5b3*8#e_~xv4ZbjxaFeiW(5M8Z!2tzqfRw0fe4a-X!$NIV-g(j~a7DRYu&8 z(7qF?#tPSk3C^t%=k@zim5+ZL{f}K`hrBP269=e*r4uz!8$Ziec+(BmNezE1FdyT) zUxdz?X12^sCDWr~4od>~B4EX*5^Y5oXHn$6spogkPk5XhWRGUFau}}JpRq^OLy$rS zG10`Y4KD~P-kkAhSg?`J89gCIWINY?jhLOAfE6gP{l`XjT;CXKWhnu0q%8ORgkOays%Du0Eh=(rkJxioIyFpij3$I8W$_gWsr5OJ0b%cr z%z&R$?<$e9BL9xQj3HPHT`@vk3;>QE8wEh>`GPICe8vxXcT+?9`ClBi{H3~Nx_Rj$ z8?p^M)Hqxu-f?I@U9)F9d&1urJk4BRPfF2UkJ_ixCXqVY}4~+7X)o4fCuBP-BSGJ`PzBxiiz;>t z+j9|k0zjR=@f*BJsn@e`wVGLtjGZKBjGykATF`YX?#~VL=AXbf2MC6a?8>c^rQ4K} zU(B`OLZ=*Amg$D5DRF%NQ)m@=ek%1;+IIHtc7^CHZP)wTho=A6TwbtM}fULHg6||y|aS?9*fx@Bf*r* zc)PXu;BII#C4=?8&V4*EOg$g1`1fw~-`V~%-L&_F@eSy2T;}hWx4t{X{F<`DAEz}u z?TVJ_3;?BFyxrof<);Ko=oDGnRfa^U+KlI(TIcQIjQJ_*7KOM)PV8YoEws5Ga;0c6+v~e$CHNv zEUtiymYNV6(RNx5|d$iXU z`l_dc`e&euweHW`N>eG*DFSx8bE3X=`>=D2Sw!57KCsWCMTr8UD0fl7jQWu7R|m6+ z5Bst3?&sD=^?=B(4 z3j%fB`(}Dxzt{bG=9}*6*S(KDQvAGCd}E8a|AE#GV(G0!pM9O^2OEht=Mz1C70FGv zki2s?$$OhgK6p0C9zV(L8p+)^k$mb(lF#D&!s{eo+)Z+SiP0yj3-Z@}{^BdHx{^%0 zTV842_Nbh_;C@O6>7^rJ1wc7Oa;KZ^^5mbo_sNo6^TT`Pa^prBHa=cZq6=3Br-HbX zW|m^3jDo9S{9e$D*?9#|An(thS3wq0A!G|HKvB>_&@!T`=8k!dT6}8x}S#TefJ$vSp{YU${!F5*F zO^X*V(zHfL6^gm>g3f|?pLqv#^>|*qs53u)P-!Yf)@x~L^|gwYL(NN?npoM~T0?fGy4L#Ern)*srXJe|HFMqLvN{;g zi7T;OM=Uq~SM!#~<-Do*FCKwEwfq6|GdpFSKB@fUHUEgW35}lWHaYTU zj6pTZ$yzCTiwet?I}z8!Lwq5F&TI%G#x{IGGGKO8*VcuwYnuLS#9|0xbW z6bdfcB~K|?>EcCnSS!uVyJU6c;kbj+rj@H0Fn$1LXr*yk*);`Y{#>dc%V%D^TSoG7 zsfrH!%uTyxb@9+?^J?bJ^HZ2CV@04&hRL`#Fpp1n2ckHcEeSbKgbh1zDvqa@*W>u< z^16${bimOp4}~f!tE#GJ)zsAbYDLYVS=H55m6f4Ty5KiG!HUXC$jz#$t(`4qi`u># zN3>#Gbf5XjC*`SJ?bmV6fmQpAr9oyGmj%NiSEC|B!?-!%t3C;DPBC~XltmB07Y^XNlwj3}oK}Mbr_iV&x-o8gh z3dTL31vvVkts&bE z;;NJ&8?=KWXyMw4WK&6+-9OGQBauki36U7F6NthdN!XAr1zXxFW(+bvf!YF;vTxx$u;fbt>BvUB?sEt zlWiH$0$jO~<8ama@iZr8azINyojjVPLLur+hNH<$L7){yPC#oi89psTPNCJ#wX@Nh z6iJ~+Wzu^~9Jty(dm>z$lR3%ZX4g0mt*CSoTDc)Z5X?raeH66nX#OO)S`1eUaJ96c zWw~&*1UQ41rdgU5#D#-ai_wZ}Cz9o&mD&B{Y=u^f(P||Sg*B3}APcnW32CL6GsqbU z)CRa(3|AKLBH-#J`3$sLDPko@f|aDzuP$)loMT0+KHl9<-H}e!;l3@j#@gF$`-&r> z)y2Q+4}7+0AF|uCL5N$C0apf6%$D|mX8+4RnxH}}>b1jBJ5vy72re z1y{K`^WhTt}%vdEP*IuBZ(MGk$MbV z%ot>T{aX!plSaE*#hH4z>z@CUM$z3h>!0)WAVx#Hh&&QhX?>8=yY#8fWz@@$`qiVn;d0PY1n<96qg4H-d|Y2~HF=$_d;tX7_vSvAQM*LS~m?ug`uTBwCPQI5jtXVFk6p?cjhy$ zqoH0!4xiSrtm^+^f)mkDPN1P&e!s^~o1oYuitSpfj68zL+)#b_^HP5h?;sk=uOCO@ zyrR%@66%E=Lk=2>Zh{VHzR@lh4b9*p$%3x_uvhFTv(ZqmB8N|FSXOl%Fu{pvC@0WR zF2CPnr%h1o5yf_`RYo4cWNzqx+I00q|DVvs2PPVNBB3juq*0MmP*hPgT96}X4h_k? zK+T-F(Li))?wszk+PBH|osVSukJvxe`2w6`>p)j!=dH$EWA#GNGSCH}wM1*`iN4T6 z^u<#^XA`Z14{2QoXg$&8!0^>)!J7o9)pwpW&)P0O+Wo@|^9rZ`WBKiUE6+^rW~O!+ zA!ep_GgCXKv0ncCrdU}kEUp02(tr*=lyted+x zTwD~yS|Fx(+Xn4z+iZ?gPw%#+=T`5%>0ROO?%Jzr1UJ+YZG%=@o5gYJ>0MiTZuQ=q z-WBdP?%2|=FL=Mt?(jf2tjrPbf5!wr&^u2v8o&1I^_xDDJyGLH+@{q;cN_$bWan+# zioD;0o(5s_z^45~H*6vL5#)b-KB$YxSP8lqbUD#aalZK>qFZhvy6s$N5@%fV-CVu2 z$eF#e|7V!pGLEk(%NaD)3JW}U6C5+}>M_Uj$&4sRPMPNd%2;?&V(xMcrq3MH>owlx zu`SoI@%%EgPiGj@RQOy}50L5LnabY|<6UQq?)h6_J+nMV%ZT#M!1_s!cqKN$T|eP+ zveH!Edp16%v-NP)4D(>>cuuptHdFauVf_RT3XErt=R6rv9v2ut$uFzKGQGDt-}-S^ z%v*SKGe-Pr!i}yT{&4`u1ImPDzhlEqF7^Wf@9;2oH*8Gi>v`m}fmf7Sl;!lqQWg6_ zOUUme0yG90pA9!ApGqibm$7eBVHhm-FTWQP231FdeZg2HP_?Lo zDjAEBg;2p8{vz!FXf{f3C(~(aw%Ys?_J~$EUQ7VBt@uC#4 zlFxD-jyweFo*>SSOj%Za!YLW6PM%pYKn$oU!n(t_L(%8J4Q4qBm<1VM3@$=G!K@g} zVhlME>kcYWjF$kfKmlv{Vy=I1fe}6L3qjfV5Ke(*fwGe&(@8#gN_o9rA z9~tRjaZtye9p!RFT5aDc#ipLpgf7oJ0UIZ#@CEDM9+xAnSx@K234Y=e_Dwhr=Sf>E zPRz!MDfUh1@8re_G(T(K1fZcG1sm@KH1zCkVbi!v!2#P_ZBpR+(|f?Cb(g}iZBpR9 zEKv*;)4xmM*fuHX89l>9Y#cu{j(tbKyJ;aq9NZvVt4_ZYQ(6@wI5I)=7e1UhL=?$i zg!p2u@xgn-#_YQSMj&yT(UpiA8+JDQ_It85zwSQH=MZrTh1^%c41|axd0({W^Eb#p z<<~tp#9V}kOAvmjlo<#SMe?DOdOA({j6AjHP39s*T!Qe!f*A-AMe^Zt>N!J~XXKmu zX8DJ@?PHvW5OE1AJIa}X5K$y|%<1{u7TJ_vm*`|JLc}EqC$3-yLPU{Fe9MF}TF)mR zkvoL>yRC9>-5#~GKP{r}+Mev9rep@MMoI7X1y=y@~0No0@7xV<^&!AWN19Z>K{}*QdzrcUn$o!kf zd+PrSVe`N)xpwAH3@7YQ3|~1Re_#mrM4pj1i23{BXH{V%ju8+#$o>ByIgB~93LA06 SP`7`8;Es+Le?e# delta 6610 zcmeHL3v5%@8UD|2Cw3Cz*tve>0paq9VarBEfg~((53qPfF}mcB#u=6l4?og}V% zg81b{#H(H)e)VDEb@PdTeU$h&JBUNL@BA9^?iAw2Hmy~-Y_>^HKll6H)1TeHPMtGr z_VaU|&@9|=KfO#nh2M)ks<@*VbSHjqb@yM|~~J&`}4 z?KOWeuzA$zqVeMk9~wVCub`;N<0&ii3a`<}UM>@!_TpgUF&^Y7C=x|iqpC!xL>YT7 z7Hc0TWn{IF9#tc~^I#!7qD*+rJ^^3$XkAJD2egikX`{?upYR#|tXl|=_VwhUiYMwN zd}hCZ+)&n96I^?WGu7sT{QNOdZ#^on&oBImgzhWg8?>C@ zApu#3?~2q{R3=mk=)3$r_BBVnb!JIiQc`Lt6(voc;-VtS9#w-{a>KQ<%1|ZXezn~1 zN8>NV-3tp5m&a35S~^aQ6QxZh9x%xGVgxS9fXYFT0D`89a!KH;39dWA?*3pB{!YnX zC91fZt2!$yD$3D6M|?Hf=9JuQ-JnBvuc|gw3s78x0sD{E1g$6ewg$H+xKI;ZaFX4D zTZVAncZ)W*+}K7?bo6TD>3AFU@pO|OMhEruaP}>`xVa{nbBc#%-r@tc)Mz=WgR|u* zzjCwh-&&(Rkg8_fd|*Y#=1_YXlEd2-9gqU!+2FlcqrH}zk=>d`TNzHDVM8b3Wt2_TnD7!EXSYD2o(ps>PMlS`*DpIac%$Yw+pAP?~fUYZaDx zX;&>KK_+5hB!h^Uv_^}XZ=xi;7|1C8VH%#Bm78lxOS4*SHbp3AJ1fG**2_`3bWMb% zL0n?ZndUZ|$SfF+T1i^2If42K0i8BIZK&Bu7HBYEElbNyFpyOkw5@5w5}48jYe&<* zf+t0Y;K;wRd%7T}XpYukQxv2zggWn~+(MOI6u%jI-96eX(0WM&dZW0JTKH@7<+ zu+GfN&h9Vzi|ppCsDu5wL!wADn#B=qp>>!E-ttA;XdPx2=9uD>UW#kh41Y_M!`{OY z^XduFju2fpglPXlh+35`*C?B&{lq34j^?5Z9NKo9ZKU1}bTQfp+0|&Z!zr9b7dwSR z*dvO~7FD801=)qxVjE%-j5kGSj&!$481S5qj!(~a#=Z_i&y*~>2+9krO-pyd6W%Z_qD8@6S$74=7~Vg5210mvUpUg3P>KZX_KDZLZ4_ zGR{h5N9A404maYwZFVFbpny22RaH8*AMgD%Q23=z5_Ia%mKw#Ed|FI8pfye&t~J!Z zT|4(|-&~M+GA|K-ih=;fxh(NKnTMR1Hx-x#ECN;%&3}Ms0qhsF69r5F{+lc`0~x?@ zqDAwGevbTkF%ADQe4+Ep>k{-_nY!wXDPXy~i$~y22||Gcg!o@uIgomHTsrQY8#2Uy zZP^Iuv;DulZrpy^km)N!yvdpo_@8YPZvLT@|G2 z_th;s3f<>G2T^?zkV({lHDTo?BJD76n&=nU0=5@{RWApM@YOihs5vf zBu>6d;@Sk_%x2>Jdg6z_x_IsW@Y?-i*N5_mA!WqOtxh(2I&+2^a@41L;M@FX9SL4Ssx-3&In&bCBJu z?~f{b)35$k9~rNn6i(g2XHD+)*i-36#jgbD*H6M-7F7qYpAjCgmy1m9jj@@qH}l4@ zv_w&L@WumS#L_N;)-b0A7ain%?oAC+kD|taIyUvC;!UA&?T0d;ZEK|^iW&oqw}qqt zMb*LE_J`;FnMa!3JKLlbMU4T*yON~_{n`bC%x{BMxnkE>W})cNM@Ab?77F Y<74nF%R&GP{-IOEhh5=I=XjdspFxS(9RL6T diff --git a/src/mightypork/gamecore/util/math/algo/pathfinding/PathFinder.java b/src/mightypork/gamecore/util/math/algo/pathfinding/PathFinder.java index afb5ed8..eb9eb86 100644 --- a/src/mightypork/gamecore/util/math/algo/pathfinding/PathFinder.java +++ b/src/mightypork/gamecore/util/math/algo/pathfinding/PathFinder.java @@ -232,7 +232,7 @@ public abstract class PathFinder { * @param pos tile pos * @return true if the tile is walkable */ - protected abstract boolean isAccessible(Coord pos); + public abstract boolean isAccessible(Coord pos); /** diff --git a/src/mightypork/rogue/Const.java b/src/mightypork/rogue/Const.java index 47d383d..05a91f7 100644 --- a/src/mightypork/rogue/Const.java +++ b/src/mightypork/rogue/Const.java @@ -9,7 +9,7 @@ package mightypork.rogue; public final class Const { // STRINGS - public static final int VERSION = 2; + public static final int VERSION = 3; public static final String APP_NAME = "Rogue"; public static final String TITLEBAR = APP_NAME + " v." + VERSION; diff --git a/src/mightypork/rogue/Res.java b/src/mightypork/rogue/Res.java index 6a9a647..7e7dd83 100644 --- a/src/mightypork/rogue/Res.java +++ b/src/mightypork/rogue/Res.java @@ -94,11 +94,13 @@ public final class Res { textures.add("nav.button.fg.eat", grid.makeQuad(0, 6)); textures.add("nav.button.fg.inventory", grid.makeQuad(1, 6)); textures.add("nav.button.fg.attack", grid.makeQuad(2, 6)); - textures.add("nav.button.fg.options", grid.makeQuad(3, 6)); + textures.add("nav.button.fg.menu", grid.makeQuad(3, 6)); textures.add("nav.button.fg.help", grid.makeQuad(4, 6)); textures.add("nav.button.fg.map", grid.makeQuad(5, 6)); textures.add("nav.button.fg.pause", grid.makeQuad(6, 6)); textures.add("nav.button.fg.magnify", grid.makeQuad(7, 6)); + textures.add("nav.button.fg.save", grid.makeQuad(7, 5)); + textures.add("nav.button.fg.load", grid.makeQuad(6, 5)); textures.add("inv.slot.base", grid.makeQuad(0, 5)); textures.add("inv.slot.selected", grid.makeQuad(1, 5)); diff --git a/src/mightypork/rogue/screens/game/HudLayer.java b/src/mightypork/rogue/screens/game/HudLayer.java index 39b1492..1d7d33e 100644 --- a/src/mightypork/rogue/screens/game/HudLayer.java +++ b/src/mightypork/rogue/screens/game/HudLayer.java @@ -34,7 +34,7 @@ public class HudLayer extends ScreenLayer { } }; - protected Minimap mm; + protected Minimap miniMap; private final ScreenGame gameScreen; @@ -70,9 +70,9 @@ public class HudLayer extends ScreenLayer { private void buildMinimap() { - mm = new Minimap(); - mm.setRect(root.shrink(root.width().perc(5), root.height().perc(15))); - root.add(mm); + miniMap = new Minimap(); + miniMap.setRect(root.shrink(root.width().perc(5), root.height().perc(15))); + root.add(miniMap); } @@ -130,12 +130,22 @@ public class HudLayer extends ScreenLayer { // TODO actions //nav.addLeft(new NavButton(Res.txq("nav.button.fg.options"))); //nav.addLeft(new NavButton(Res.txq("nav.button.fg.help"))); + + nav.addLeft(btn = new NavButton(Res.txq("nav.button.fg.menu"))); + btn.setAction(gameScreen.actionMenu); + + nav.addLeft(btn = new NavButton(Res.txq("nav.button.fg.save"))); + btn.setAction(gameScreen.actionSave); + + nav.addLeft(btn = new NavButton(Res.txq("nav.button.fg.load"))); + btn.setAction(gameScreen.actionLoad); nav.addLeft(btn = new NavButton(Res.txq("nav.button.fg.map"))); btn.setAction(gameScreen.actionToggleMinimap); nav.addLeft(btn = new NavButton(Res.txq("nav.button.fg.magnify"))); btn.setAction(gameScreen.actionToggleZoom); + } diff --git a/src/mightypork/rogue/screens/game/InvLayer.java b/src/mightypork/rogue/screens/game/InvLayer.java index 554284c..238d027 100644 --- a/src/mightypork/rogue/screens/game/InvLayer.java +++ b/src/mightypork/rogue/screens/game/InvLayer.java @@ -139,8 +139,16 @@ public class InvLayer extends ScreenLayer { gl.put(txp2, pos, 0, 1, 1); txp2.setPaddingHPerc(0, 25); - bindKey(new KeyStroke(Keys.ESCAPE), screen.actionToggleInv); - // TODO needs some rewrite of keys system + bindKey(new KeyStroke(Keys.ESCAPE), new Runnable() { + + @Override + public void run() + { + if(isEnabled()) { + screen.actionToggleInv.run(); + } + } + }); bindKey(new KeyStroke(Keys.E), new Runnable() { diff --git a/src/mightypork/rogue/screens/game/ScreenGame.java b/src/mightypork/rogue/screens/game/ScreenGame.java index ded51cb..b0a1a81 100644 --- a/src/mightypork/rogue/screens/game/ScreenGame.java +++ b/src/mightypork/rogue/screens/game/ScreenGame.java @@ -14,6 +14,8 @@ import mightypork.gamecore.input.Keys; import mightypork.gamecore.logging.Log; import mightypork.gamecore.util.math.Calc; import mightypork.rogue.Config; +import mightypork.rogue.GameStateManager.GameState; +import mightypork.rogue.events.GameStateRequest; import mightypork.rogue.world.PlayerFacade; import mightypork.rogue.world.WorldProvider; import mightypork.rogue.world.events.WorldPauseRequest; @@ -66,7 +68,7 @@ public class ScreenGame extends LayeredScreen { @Override public void execute() { - hudLayer.mm.setVisible(!hudLayer.mm.isVisible()); + hudLayer.miniMap.setVisible(!hudLayer.miniMap.isVisible()); } }; @@ -103,7 +105,7 @@ public class ScreenGame extends LayeredScreen { } }; - public Action actionRestore = new Action() { + public Action actionLoad = new Action() { @Override public void execute() @@ -119,7 +121,17 @@ public class ScreenGame extends LayeredScreen { } } }; - + + public Action actionMenu = new Action() { + + @Override + public void execute() + { + // TODO ask to save + + getEventBus().send(new GameStateRequest(GameState.MAIN_MENU)); + } + }; /** * Set gui state (overlay) * @@ -175,7 +187,7 @@ public class ScreenGame extends LayeredScreen { worldLayer.enable(true); worldLayer.setVisible(true); - // TODO temporary here ↓ + // TODO temporary, remove bindKey(new KeyStroke(Keys.N, Keys.MOD_CONTROL), new Runnable() { @Override @@ -195,7 +207,9 @@ public class ScreenGame extends LayeredScreen { bindKey(new KeyStroke(Keys.M), actionToggleMinimap); bindKey(new KeyStroke(Keys.Z), actionToggleZoom); - bindKey(new KeyStroke(Keys.R, Keys.MOD_CONTROL), actionRestore); + bindKey(new KeyStroke(Keys.R, Keys.MOD_CONTROL), actionLoad); + bindKey(new KeyStroke(Keys.L, Keys.MOD_CONTROL), actionLoad); + bindKey(new KeyStroke(Keys.S, Keys.MOD_CONTROL), actionSave); // add as actions - enableables. @@ -208,7 +222,8 @@ public class ScreenGame extends LayeredScreen { worldActions.add(actionToggleZoom); worldActions.add(actionSave); - worldActions.add(actionRestore); + worldActions.add(actionLoad); + worldActions.add(actionMenu); worldActions.enable(true); diff --git a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java index 638889c..a616c33 100644 --- a/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java +++ b/src/mightypork/rogue/screens/select_world/ScreenSelectWorld.java @@ -35,6 +35,11 @@ public class ScreenSelectWorld extends LayeredScreen { class WorldsLayer extends ScreenLayer { + private WorldSlot slot1; + private WorldSlot slot2; + private WorldSlot slot3; + + public WorldsLayer(Screen screen) { super(screen); @@ -61,18 +66,15 @@ public class ScreenSelectWorld extends LayeredScreen { layout.put(tp = new TextPainter(Res.getFont("thick"), AlignX.CENTER, RGB.YELLOW, "Save slot:"), 0, 0, 1, 1); tp.setPaddingHPerc(0, 20); tp.setShadow(RGB.BLACK_50, tp.height().mul(0.6 / 8D).toVectXY()); + + slot1 = new WorldSlot(root, Paths.SAVE_SLOT_1); + layout.put(slot1, 1, 0, 1, 1); + slot2 = new WorldSlot(root, Paths.SAVE_SLOT_2); + layout.put(slot2, 2, 0, 1, 1); - WorldSlot wsl; - - wsl = new WorldSlot(root, Paths.SAVE_SLOT_1); - layout.put(wsl, 1, 0, 1, 1); - - wsl = new WorldSlot(root, Paths.SAVE_SLOT_2); - layout.put(wsl, 2, 0, 1, 1); - - wsl = new WorldSlot(root, Paths.SAVE_SLOT_3); - layout.put(wsl, 3, 0, 1, 1); + slot3 = new WorldSlot(root, Paths.SAVE_SLOT_3); + layout.put(slot3, 3, 0, 1, 1); } @@ -82,5 +84,15 @@ public class ScreenSelectWorld extends LayeredScreen { return 2; } + + @Override + protected void onScreenEnter() + { + super.onScreenEnter(); + + slot1.refresh(); + slot2.refresh(); + slot3.refresh(); + } } } diff --git a/src/mightypork/rogue/world/PlayerControl.java b/src/mightypork/rogue/world/PlayerControl.java index 8aae2ec..56c0791 100644 --- a/src/mightypork/rogue/world/PlayerControl.java +++ b/src/mightypork/rogue/world/PlayerControl.java @@ -87,7 +87,7 @@ public abstract class PlayerControl { public boolean canGo(Step side) { - return getLevel().getTile(getPlayer().getCoord().add(side)).isWalkable(); + return getPlayer().canGoTo(side); } diff --git a/src/mightypork/rogue/world/PlayerData.java b/src/mightypork/rogue/world/PlayerData.java index 48b5115..6c4a93e 100644 --- a/src/mightypork/rogue/world/PlayerData.java +++ b/src/mightypork/rogue/world/PlayerData.java @@ -33,9 +33,9 @@ public class PlayerData implements IonObjBundled { @Override public void load(IonBundle bundle) throws IOException { - eid = bundle.get("eid", eid); - level = bundle.get("floor", level); - selectedWeapon = bundle.get("weapon", selectedWeapon); + eid = bundle.get("eid", -1); + level = bundle.get("floor", -1); + selectedWeapon = bundle.get("weapon", -1); inventory = bundle.get("inv", inventory); } diff --git a/src/mightypork/rogue/world/PlayerFacade.java b/src/mightypork/rogue/world/PlayerFacade.java index 03e8018..02ec7e8 100644 --- a/src/mightypork/rogue/world/PlayerFacade.java +++ b/src/mightypork/rogue/world/PlayerFacade.java @@ -366,4 +366,10 @@ public class PlayerFacade { { return world; } + + + public boolean canGoTo(Step side) + { + return getEntity().pos.canGoTo(side); + } } diff --git a/src/mightypork/rogue/world/World.java b/src/mightypork/rogue/world/World.java index dfc9232..426a8d4 100644 --- a/src/mightypork/rogue/world/World.java +++ b/src/mightypork/rogue/world/World.java @@ -85,7 +85,17 @@ public class World implements DelegatingClient, BusAccess, IonObjBundled, Pausea playerEntity = levels.get(lvl).getEntity(eid); if (playerEntity == null) { - throw new RuntimeException("Player entity not found in the world: " + eid + " on floor " + lvl); + + Log.e("Player entity not found in the world: " + eid + " on floor " + lvl); + + for(int i=0; i