From 605ff449333484fc2680525df303ebbbdeae26f4 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 7 Dec 2016 18:17:12 +0100 Subject: [PATCH] added castle tiles --- bin/de/deadlocker8/roadgame/logic/Board.class | Bin 5364 -> 5474 bytes .../roadgame/logic/CenterType.class | Bin 0 -> 1141 bytes .../deadlocker8/roadgame/logic/EdgeType.class | Bin 1067 -> 1116 bytes .../deadlocker8/roadgame/logic/Textures.class | Bin 1133 -> 1727 bytes bin/de/deadlocker8/roadgame/logic/Tile.class | Bin 2922 -> 3228 bytes .../roadgame/logic/TileTypes.class | Bin 2147 -> 3831 bytes .../deadlocker8/roadgame/resources/castle.png | Bin 0 -> 713 bytes .../roadgame/resources/center_castle.png | Bin 0 -> 635 bytes .../resources/center_castle_triangle.png | Bin 0 -> 1534 bytes .../deadlocker8/roadgame/ui/Controller.class | Bin 8185 -> 9942 bytes src/de/deadlocker8/roadgame/logic/Board.java | 2 +- .../roadgame/logic/CenterType.java | 6 + .../deadlocker8/roadgame/logic/EdgeType.java | 2 +- .../deadlocker8/roadgame/logic/Textures.java | 18 ++ src/de/deadlocker8/roadgame/logic/Tile.java | 14 +- .../deadlocker8/roadgame/logic/TileTypes.java | 41 +++- .../deadlocker8/roadgame/resources/castle.png | Bin 0 -> 713 bytes .../roadgame/resources/center_castle.png | Bin 0 -> 635 bytes .../resources/center_castle_triangle.png | Bin 0 -> 1534 bytes .../deadlocker8/roadgame/ui/Controller.java | 200 +++++++++++------- 20 files changed, 196 insertions(+), 87 deletions(-) create mode 100644 bin/de/deadlocker8/roadgame/logic/CenterType.class create mode 100644 bin/de/deadlocker8/roadgame/resources/castle.png create mode 100644 bin/de/deadlocker8/roadgame/resources/center_castle.png create mode 100644 bin/de/deadlocker8/roadgame/resources/center_castle_triangle.png create mode 100644 src/de/deadlocker8/roadgame/logic/CenterType.java create mode 100644 src/de/deadlocker8/roadgame/resources/castle.png create mode 100644 src/de/deadlocker8/roadgame/resources/center_castle.png create mode 100644 src/de/deadlocker8/roadgame/resources/center_castle_triangle.png diff --git a/bin/de/deadlocker8/roadgame/logic/Board.class b/bin/de/deadlocker8/roadgame/logic/Board.class index 57c8bd9335e70decc0b5a8ad7f84bd7d51ebbc47..1b11f364cb1c2ba2d180a4668e20ae5608ef4dd5 100644 GIT binary patch delta 1106 zcmeyO`AAFP)W2Q(7#J8#7>=?tFflSHPd>;dw^2`>RV0idmxm#bA)k?fB|WvonUO(9 zLvwN>tGtABYF<fdQAlM$sx=pb3PT|e11CcfBg5IritGxL8(14Bce2WhA}P`g11T%v zVJO|q%{GNmpoNE_j-j55fsvt&hoPOJWAb|Tb;A8T3`PvbAcg5%43ik9uro}aT)?5t zICb(Ij^hGzco-TO8o3zw80PUX%x73IxtOzpap~j)7RAZ;IXStw7?v<B2RUQKWCgA| z#!ZvwbII6lVPxQS%1<mxQHU<d%t<Y_<zm>#unnYYJ0pXrhEG;vS)zVUVqUs_a7j^S zUb;2Nof{c;@-XaT*gg3Nmo@)hMh3=Mkgok8u>+HxxQ#eAG92PzSkJIwa}75e6Xy>G zb_R9^28Q6t-Mre;y4x6Xwlfr1v1qexV~93mWj145&cH3nvW=m5@>yQ3dJ_f{25SaW z21f>S1~&#%h5!aD25|-k1`miC3=#~I3=9k$4BiZ74CM@r41x?!3>6H13``8-3^ojv z3{?!w3?>Zn4Al&J3@i-R3=#}A41Nr(40a4c47Ch?3~UU63=9mC3{3wS92wZz85r3a zf*9Eu!q^#97#SJBA`Ep5^^^DW*iYWWSH;`F(8$09wwsBeX|glFF@N(c230K`Q5I2F zmXz%bt&>~%72skl38JhZu`T=xc1Y?HwllQOWDwWg%^(*k%F-^%%97B&ok3w6gJ!sv zC<{x9DC;%`m~s#gWQ34FO+CmHj0_A6w-`DZ^ca{JI2bN5bTP0oFf#}-oM7-}@MB<M zkYU)z;1Bj<Hv<C$4+A4qRSyF**sHt@EdLn1*%|m48TIr)hO{$uFfcN3GcYjnF|abQ zFfcH5Y01d4q-<kop2;Aky^Wz4%I&M)#xP+U!^Bw(tjue)WLOep;Yy}KxqaIhrXy6y zvLwJ&OaK{@u#KT_8$&Nb1xpITjOki3U~b<whG{SrENd7T7?>Hv7#JAL7<ec52zoPC zPrf0j&O3u)COjHuP393YW|_T>VeVvSAs0<ZAaOA0F)U<YV_;&CXW(WCV9;Y=W<Uf8 zNUmq{1|cQpMGT84Ulp3owIotnMpl$%JHxWcRl*7KD;fM47#Ua?CNZo6Cnh$A2@I<l z{1})SI2n2w)=d5>9L&6yVcleZ5m#e~g^ZvS4hcvGX9i{lP&`TQX4n`hw0S$jR;?`z eg4-B&2<_R%ux}f~!O6!()YuO*FfcGN9035G+4vj) delta 1003 zcmaE)^+i+Q)W2Q(7#J8#7!I;CFflSHPu|Ebw^2`>m0N`&mxqCqA&-$^@#F=p3%NAI zxENFz3V0X_H<z+aVH9ZKVW?uL=3-!EXyRdLW@wo#$+1qXn}@-O!5E}4or|H5VFEit zKO=)0$jr$HSUH$^7$#0;<2)`fgNLDpp_Yq*k6{)M!)%5*lkaj?FfN>&z@jMZl9`*D zSDcxj$HlOKVKK-BOD1=5)iJJ{%*ibyy@8Q|*C{`-C`BQ<Br_+q*p`c7EyE^|s?C!f zxTQGOGHm5x*v7DZauT;S|4v2*##oSo-5{|&lh<$?aja$7$HTCiVa?`e+-yvoUl`aJ z*cliY{3n0q)fV5*kYmN7&9;pp+KiRijBPmsw<OCphWyFad|EjM3?>Zb45kdW4CV|@ z45kb|3|0){3=9k&5d91i43Z2C3>*yZ3`GpZ42%qd40a4941Nqu4B`wH45bWZ49pA$ z4Dt-+40;SK4CV|H3>6H146F=R3_=W*41Nr341o*`43Z2?{~2s2U*r>Ku41U3{F-kk zZw*5&0~6R1CWgAn8~KfM>t`{jYUzlwh_bSzY-ebk$sn$~n?Wv8l%*Xc(!QNRVH<;H zxRxjjOM)otHU^k-5D!H;OG3LSE0S_iR+a>Wau9DjL*wK?0R?`z5h<dqAh8C48c~o( z7#SECZZWhn=rJ%ca4=kAXqzl3C|Tdmz`(%6zz7jx=wM(5dySWY<sXALI|Cmhqn;i} zLo-7Q10w@B0|O%;11kdy0|P^smW(V*$~K1jnG90e+ZZ~b+^%g5J=++1XECrcuhEiW zNsxuBm;~i^ZDW`WS79e33-$-ZkRFgB3ELRDwlQ?VmB_H9APkwT1>tsWW0<s!p?C6g z!8pe9$!<dGyi*va!h?R=<SHR!mg(CVW=`HH<e~}jJqLpx!(0Y71||l125yD`20aF5 z288cHavhW9gq4`*G0dOrEIgZQL8P>dtSHNNhDDQK2q(xdW$<HQWME;K#IOvUQrH+K zFf3>AV_;_BWawpBF*#i%n0Y0`s>yprT#X?XGJ=vWB-9w38JHPB5g@snVQr+)`t1xG hwYD$_Ze!RYv|}5?u5Ao^C!30@vF~SKU|?c6006a>;%)!{ diff --git a/bin/de/deadlocker8/roadgame/logic/CenterType.class b/bin/de/deadlocker8/roadgame/logic/CenterType.class new file mode 100644 index 0000000000000000000000000000000000000000..95d4df8668b7d78b6ad344bfab615e7cc65471cc GIT binary patch literal 1141 zcmX^0Z`VEs1_l!bBX$NRMh1<PRQ;6H#FU);<m}WU3;m+}#FX^J+*JLX{PfIZedpA? zlGLJ*%7RpO1{OvJzO2NuME#t^ymWonywY4o23A+!fRIQ=1}z_A&9P==U~_g14)Jki zWZ;J|;zNQw9sS%vBHXTip}s0%jy|ET!Hf*r(WDs5VUwJbnU`5&$H>5}p&7==z~Y>r zlFGrr%EiFQAi%>Q$RNbXz-9wgBBtSk@Jw(?QD$DcwWnqnCj%pc2oD1*0~-eeJBTCB z!@v&WaDX^cJPaHRY#^2l4+AFy7b63|Pi9`KUukYqYEejHQcfx(gOE>ta$-(cVo@fD z4;JKNU}g|tWMC=D$Sh`LU@J?^DNQYAWYE>nB*BAR3@Qw2><p@m3<5|FuPiP}&E;WG zXV73|;7lwkN~}!IFQ{Z>&_ec}e^ORza*4Gkl8<3Ro}hqY2fN5Wjgi3)SsOG|G>MM{ zkVkcR7&IAl85vBGjdIROEH1W2vL9|X!Y`l{WzERI6`WsMl$`382?|VpL;}<Usbpl} z49-l?ODriZN@ZlQK{61e+lF|T+F3goGB7eQGcYi)I7ouxn}NYW5){>7nuCFjfk8kD z6vrSH3>*yH3_J{s47>~s45<t(3?SgRn}IP>h>v+Y1OH|QVK7IO1<Vlxb0k>797(pl z42+S?n;3+HBUv^vhy_QoZeoxO-pnAqk%57Mi9wcufq{#GiGhKEl|h|>nL!RL3X&0I z5Q181$iNJCD!Z1p%ytHOghn<7Mg|6`CXo9W7}yyUKyGK?WKd*Kf@(KoU<GRz+r%Ip z>CLRQFVY6&CSPXh9Sq7k8^9KVoB=V75$*&|22BPns2N%eOklgXgc!AUFlZlOV8pGD Pi9ru+raprKm^K6eodp2w literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/logic/EdgeType.class b/bin/de/deadlocker8/roadgame/logic/EdgeType.class index 182bf379e3f568a0046606bc46906f13cdebc40b..9f4e1e0a5de4ad1283c3f0f788cba96bbce0f029 100644 GIT binary patch delta 506 zcmZ3@afd_T)W2Q(7#J8#7>w8%m>3z<CU0a?n`jom&gSeG9OC0Tu_cmCfQLblL1^M* zH7yYy237_(4hD8k21W*P9tL(0hXcfs;$h%mU<0vaco;YtxF)MHYBLH<4q|kWQ(;hJ zXHaEi5Xed_OVrOv%uCk~t}HG|&E;WGXV93ufw7HEhlfFvL3gqZ)AD*22T70}3=9sE zAmhO_2Ll@egMbvsTm}XP76uLmZU!C(Mh0F628L7y76uS-+|9rkDa6OToq>NdgD{vQ z$^zzyfjJVaV2&i)UIxZU=1mO3!I3PR7{r1jSvN6A25)AN-pIhfz{F55%fP_E#lXbC zz`)9&&cMtd2NniN2{H&l?KEUyW?*JuU|`qMmf6lA577zI$i~3PzyQ?*av%c(JA(qq z@eG^{iVR9n?Pd(DVC`a?7^EY;nYH#s+JGG8%PhTvAyrvt1K37{ag1;`a588zXh99p gVqgMW#wEn4wSz(X00Sd#eM}5`U^Dd@48XJ@0I<9~<p2Nx delta 458 zcmcb^v6@5R)W2Q(7#J8#81&c~m>3z<CMz<jO*9Lb*dNZu&%+?VAUN@jnyfGn11kd? z2Ln4N10#bN4+A>`8;B*r!@$A7IoXC$n~{HV2BU+V0)rAegCZk?KvrT|qJB<dUb=p8 zWpPPrE)Rn;gUaM%jBRWhJPfJ~nv;W=me(^oNP>)IU~rHGnaIE(AO$jyfq{XAfrEjI zft!Jmfro*CA&7y60R;4RGcZO9@iK2`;M>d~1m=jafH|V9dl?ubnKv;A1xK=MVh|19 z%pkszfq{XEL6U)ifs28Ofq{XQL5hKyK?*Dik`bt95QJJ_$iU3N%)r3FuB9!rok1F* zlZ}CqfdQ(E2h3(?kYQkBU|`^6kY$jAYBytG1#1`E#2_B&&8)RA(gx%lUuNkY4Dvb~ zz&3*10Wpmc<_0eYP6ky5HK-w43`}4PxP%zBb}*<PU|__lk%5Up3v8%1gASP11pszK BH244j diff --git a/bin/de/deadlocker8/roadgame/logic/Textures.class b/bin/de/deadlocker8/roadgame/logic/Textures.class index 9328b2686bb49ac6158a7a90a35af6482bc3a888..0c0a89d2c7471997ac3cb9eb6a0f1bbbb6e8c5c3 100644 GIT binary patch literal 1727 zcmX^0Z`VEs1_l!bM|K7#Mh3N%RQ;6H#FU);<m}WU3;m+}#FX^J+*JLX{PfIZ{gBj( zlG38oVs-`=Mh1bb#Ii*FoW#6zegCAa)Z`LI2CmH9#Pn3x+=7xyMg}P#kb<-d{o>@* zyi|R#l)fiOfi)uoH<;^`UzCzs1k>kUlvrHM$iNAf3d&DRfhluNEH24OWn>Tp%Q&az zm82HI#3V7qLW(jI^U^`;*=#cNGE3|j8JIOR!x$M@obyvsxfqxk1bG;E8Ti;4gc%tm zaJi9#L6ng}8&_}?r55Lx7A2<^>!*S|t5=Yh&cz_aAPzEEf{{T~1MGK5-~^WxW#*+@ zYld+$FfvH-Ft9SPaWKd*GUyOCJP8~=Ak#s5<#-s_L3$O4a#%VjG+|nmco;Z9T2&Ys zv<O=ZiglPyH68{|kWLMv9Gnb}DVSa@9tJLuUL8gTW5Tv3gX1+G)d)Qv25yiM28;|g zBpMN40!;`o=NR!Y@G!73GVuFk=B4_T<|d^Ug(N0{5{i&desW??SYlBohz}KHDaptz zW@OOt!DTOMp0H+Q;7w000Vi;14v^8%1g8TWd4Lb59F`5>`k^_22c`g$8Q|(+X<q~; zkD4W9un8k_1y?XQ>AGcte9jBY(t4nbz@W&$$iU3Nz`)MH1WKn23=B-5GzX?R7}&rx zCzR%b(%ev*2TXG?FoH4{10w@J0|Ub<1{MZJ1_p)%t?di~TDuv9B85b@Gl*?vkc4og z!5mo#M;^>kgm9F>990NM9n8^$aJ0c3T?j`X%rV>uc9}5)1A`g^Cj$cmKLZN`JA)tt z2ZI~~CxbQv7lQ=@H-jq!4?_?GFGD<o5Q7N=0|O7lZ49OiW(*7rj11-s7EpKVGcbbX zShcn=NN#`|&IT3~L(<F&*KCPZvn;x1X{?&9uxeIB*Q|h5vo%)Ds_2?kv1+!#s#z0V gvldp(wpcamqHEU2s@V>!W<zw%CRjDwgX6>j06-6PCjbBd delta 562 zcmdnb`<8?2)W2Q(7#J8#81yG{O`UjGf|HMjfs28gok3vYKUo$bMh5MP0uqxiFmhR^ z<`$Gx>J{Xrb20EUh=5dyGBSv2_+%xPCF<uS=B4WgmlS2@rCV!;aWXJ6i1RS8GO%$l zNHQ|$K#iC@kCBf@numcMBrXd#TAWj!hk*kmra1Wnqalkj4+H1q4@`R|e`Z!;WSK0% zqFB$$zzA{`10w?u0|P@j0}BHq0|SGl)^-M7t=$a#kwSvo8HBeoh(S0KV2%`oBLn8h zK{yIvj?zX31_mYu6$S<dDF!wM1_mAm76x_(K?V*6IR;J!Z3Zp|3kH4$Rj>@mqIydP zH3oGC1_nk34F*l9EA$x{!LDG{+QJ~V0d682SWp;AH!EDT7FNwt=$a+aHP?f!*2bz^ b4qdk_x^A#$9juy_&^0Sz)y%F7_MRR9iYr8$ diff --git a/bin/de/deadlocker8/roadgame/logic/Tile.class b/bin/de/deadlocker8/roadgame/logic/Tile.class index 5347d9b7f579065c7f814af569c2ae146b3adc09..6c03737627235fc1e125273bd591da9a847b6ba1 100644 GIT binary patch literal 3228 zcmX^0Z`VEs1_l#`B6bEQMh2ynRQ;6H#FU);<m}WU3;m+}#FX^J+*JLX{PfIZ{gBL@ zRCWdyMh1bb#Ii*FoW#6zegCAa)Z`LI21Y+d1`Qwl`dw4fQ$s2XQmq*o7+o0|7=sxZ z7{eJE7@Zjzv<PT*PR%PxErM$1D9A6)EXmBzV`Px@0XZeDLO(q<KR30cs8T;5KQphy z$i<qGfz2i}FSEpsk>Nbi4kO?SxCiL04$1ePo|<8d3@pz1DXClx%nU+2415g2j10^g znqiy_j0~bY46F=nAeJ}}13QEz$-}?_VM+5aa6(wJJPce6-0TeUj11y9LXe9=jzJM* zyb>b=tA>jU!~zu_1|9}pMh1SL%)C^;(%hufqL9R-oK!{zA)ox@#GJ6iqD&AUD#%ij zky*^hph6(PKq(89Dk>Nm7(E#o7%LeW&JLqU14mhUYKb2sgO-LSfv|ulGDZfL^wbhp z2o(&W!XcD1BZCe>gOE}UBLjDOYDoY*+em9@;>kGN#mH)9G;k^f`HQ<Kza+6FH7GMZ zqlA%xr6e`CfRTX<BIuKvR>H`@QIa2AQk0pO&d4AFwHH!$Kt!$C8SJ2`5Lwu%G&3h9 zwTOekfsug&ls*)q{cO1yY#E$DY0{aIK@{RHWIfiJVIUQ*JPd9O?u-m<i3J6zc`1wx zy2wf)C6+ZL0FZS<ZM5cK@ML6Q(NS;(Tjvcj%m>X3sLS!0;RiM&*p`DK0L%)v<zNV6 zWZ>3OfR$dh91J0h42-cLCx`JcSToo#GVqq<2WR9Ll|U@uV2EU7VBlnkW{72Hh+$+< zBd&bqVTfa3V`N|n@^^IMVu)r);9*E)NMdAQOD!x-%qd0-I#_r_aWSMYq_H!kqLl9t zhww0@Gh{F_u$Lv~l&1QpF*2wT6{6N046Gas>>Lan91NU{3~WWI#icnVprQg)<{*c? zH6sIWa7kivwr^qqwCLap&Mz%WPIb!!6)v2h6rcyv#h}Q*$iU3Nz`(}91S;zo7#Ns9 zB^{XNU|<8&oKTvJfg8-{Vc=z8VBlq7WZ+}qXJBLyU|?X_%fQaS!N9;^sI{FzP)mC& zgNT;SRt7OG-K`7~T9PbV8Kkr%S+_FCXzgZ@ixg#R7iDkX&Y-ZBL3tzCNL2;~1|_fo zd<-lM0t}oCf((2NLJYzT!VHoOA`J2jq6`KMVhm~w3=BbFb%qS;3>pj|U<h_NBgk^F z)0x05kmErfGXxdV3@l(VkOx@7EKLS2u%`?ev>CJ**uh@WfqG>w0~1(Im5^5$u{d9X zfrUYefs;X+fsa9kL6||7L6Sj^L7qXLL4`p9?0h?j;c(}x!kw=QcfKm9jseGuD%|<1 zpgM+um4T5#mq8EeRDA|U29U>DwYD&bY=DO(8(2^UY#k4n%?h=SkwG7;W-)Zlnpia( zVAU*vu2~POW<#u+rO-7SW7TZLV2s7jGU%Euuxd78FvX%-8C|n2R?TJ%=1|Rc3``85 z#Ki_m-$)6U3oPoyz{=nZHbD%`XM+YgC~tvs3@D~77=)o_WkbzU2F09@mev*qDNvr# z+QJ|K$}3u17{ow1M|&%S7$S#Afs>9q11p0E122OogD8U+gDitLgA#)elEunUi&+`u z7%Uk;X@QZ!3XjEN2#dv_4v_%)Pzv4R00vfuKn7lhAO=x}U<O%+5C$cNPy!ZPGuS|V zT+F}>PKutp8Ehkk?6)&Gg1o+s!9~bp8-o|f!yvXVge?JL`$O1LAa)>xtqfuZZ)5P< z#t@1geNkYiK+?M>Gz=IS!r>11#J~)Wm`<SxACT3X7^1c@#Lr|92RTT42Sf6921lVx zh}j?oVptVqArwepRgjHPAca*y4pf0Q$OFs_prTKUfs28GA)bMmA&EhNA%#JOA)UdH zA(O$CA%`J|A&()Ap^%}Np_rkap$zOvNDAwOdXkx;jUksIkAaaPpMiman}OvIg9<xC Qih_ay10zELxKt<v00pm_%m4rY literal 2922 zcmX^0Z`VEs1_l#`9CijKMh2ynRQ;6H#FU);<m}WU3;m+}#FX^J+*JLX{PfIZ{gBL@ zRCWdyMh1bb#Ii*FoW#6zegCAa)Z`LI21Y+d1`Qwl`dw4fQ$s2XQmq*o7+o0|7=sxZ z7{eJEI12KMGfOh_^B5T<eLyCsRp_Uu=I5rC6jka6<Y(rU7`a$8GO*cX=4F=HF)}PA z+8$!vLv3}Qo|<8d3@pz1DXClx%nSlN3_J{ij10^gnqiy_j10m&46F=nAeJZ(13QEz z&cna~VM+2Za5Av5Ge|Qsh~o$iE(R$ES&*S}j0~(AE-nyb6?ho97`Pc3_<b_-QvFJE zlTwR95|eUL85x9p@{<#D!V-%zL42qnOG!p%F(ZQt0ndXX9TZ^|j0}vPj0}vGj0}qh zeFT7mKRva?kC8!3Lz93Hk&-1#dTNO)BLj#EhEU;*4BY9dB?0gxDy^Z3Cy{a&Bde9s zz^N4ELhhpclEjkKpv?4)5=I7=lGNM+Mg}g3pigRA2_pkXNq%riQD$B`BZCOkUP!is zh+4BVSU^(=vanNWW==|K5eI`6BLfF0{uHA9Y`GZB8Eiml#+H#m6yh#qJ=U6GAQkpJ z3=RyAj0|jv1qG>jDU1xd$VwrZ-5L@A$hx66T5~WsGcvH~D7b>Ha|IdZhGquT<@n6- z0GknP%fa9UW`)~wF!(SsaO)_*N(x&J20umy##oS(19%ur8O#_NcuVqwGxCc{AQo^i z1T!))a5984gtIe*F*2wTS2Xc3L@=;1GOz^sJGyW&gfc|&Fhn!NFfy>E7M3RF6r%+l zEIgvP7~&Wb*cswcibjY-co-5Hk{B7-%Mx=+Q~lEz8PtdhQELtcRt^Ss4h9Ym22Mr> zwxZPH(wq`dRtA*`$YF2I$iN$1l9-(Bn^*wN+FZf;rA5i9ZkeFW&k0HadLUg4iVTbl z%nS?+tPD(`5{Q9;feBRpfN2f}HZaWzrMVcm85kIN7#JCN7<d^N8Tc3&7*;Z{Gq5u- zFlcLSXW-Y;-pU}PrL&bmL`!!ogP4{i%T@*nt=$Y#k)o{aqHOKk8DzFH$ZrH2s>r~= zAP3gU%fQ0G&%ntbz`(~K$RNxh#30Ea%%H^}!l1;!z~BK^qs^eqpuzwG+F)lgf~*8P zlnKlNIThp$ZBRkUzycOiWl&>a1+&x{)EL;n&eniByA$kP1_pWD&Su2oR51n?1_=gE z21y1!1}O$%25AOK1{nr923fFEO~BU4!<{M*cd9(xsq&yQ9US8FP^U67XfkL)ou$vf z$N=&htJW3<p$+hG0=b=mK@n^TDEL9q1qlyE25qdGMbI^?Vb!dIRkIknW^JsRb+Kxe zK-X-5RkI!g$giLj1fpSnmPglYidC}#gCR7)>=>9BKq-I?l=P5N78h95ih-5E8f=0X zn9l}}8a7b92o7u`20^G<*-*2TL4oh1rL~1Y0+gJ!wlIi+lCjnn1`$xA*51k>f=I$r z;Jjhaz{=pjz{}vsAj;sxAj{y)pv2&UWU(^TVpaw@24iqiWMnYGW3dRrViBlA#6Uij zK)2X~ftA6NftSIHL6pIpL6*UXL5abafW@W^W>6m&Gcbdbo9Au@^GG4f?F`l+uWw_p z6LQ+d-~#e6i0uwxi-Fjl5Viz}?G0hegV?^?7+kh7_@hT(5ZEb@B<l$c14f2GxC1^h zFoPqeQz*y>Wc4P7kZlZ+Ga1A|4$|Ji5WAhhS|}M}Hb{X8Rs|^t1!7ngq#_hZU{#O? zRiF*>05b!qY|>)jVqjnhXJBTCVh~`6VNhX+XE0<)WN>9jVF+SKV@PAjWGH6HW@u-~ u1A7vZ!aAXzWM*h%NN31kU}VT-U|`^8VEMzK!p;z<prF9O$dCoj*x3Mk&`i(( diff --git a/bin/de/deadlocker8/roadgame/logic/TileTypes.class b/bin/de/deadlocker8/roadgame/logic/TileTypes.class index 61650ecfdf66a824d80d0adee3c61be9dc2cb6c2..943e11dd0df0c4c8980be70480f14c940358db84 100644 GIT binary patch literal 3831 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 delta 1113 zcmew^`&dBW)W2Q(7#J8#7^2u2m>3z<Cp&VePc-jiW%OfY(3tGNAwRj6Nqq8ArZ6^f z21#}XiOGu0+D1|gJd6x1LH>>|oDAX&GCT~jAOTkQAjjZfE(S&hc^(D@21P~&Hk-`6 z%o00BhHaDgF>mqG4C7>AWKiZ|U}a$AU|<Jv)OZ-!K^zVcN0Wzv1H|D3addbXI6)jP z5J#Vffs26+#4_Yz5MU6Te1TP)%@kyd*<?mGSrrQ&25tr(kh~QS122SS!^6M_VcGF8 z@H6mC_F<EpoXO@n`30MWoDYK^JA*GHgFsedS)zVUVqUs_aAk2xYAz3hKSRJ|JN9<A z5FUm=hS15U*;g`hO)llosApgTS;D};zyz`aO!G1DfN6dZEg%JQ8Uq6Z2LlI#5Q8uS zBZCM71H*L&4h9fdyqkeBQb?3}6NA_$25AV|&LFp$K?y9O!UB^3NrNR+!4m4MU<t8$ zBrO_X87(%5449M#YtaTv=(2-_#2_SCLXTrF17jrfCI+S8NR~|us=<-0n;0~LBiS}F zXa`5KZ(`63-ppXI5$qcy1_lNx1~vu;237`11~vvG26hH-hI$T$6b4R)S_WnYW3Vz% zKqxRMLcQ6-z|6qTz`!7<r7g3a!9+`UD}%X~B+FI?OD##(tqj&$l5ATUY|$+cU|?eq zV&G;FW)Nf$VGw5!WsqeM1DkKczzQ;r!5-`o1_rr$1_uTn24=9JBLfcu3z+4^07^~_ z3~~(43_J{M42%pe46aZo=`%1gFoJxcwS~ca1K7<VuYnYSJP7gy4@3df7Dfg)teP!B zn(LVu5W3~TZbaAZj#alcNH?-(6|9;)uxhr2Ypw_Tj)6fFi*8N^PX;fjugw@(!J#C! ziNPS!n^|jLqzx$QeVL_qFnH_0jf0xT2sVw0fq{XOA&?;mYK9gA6F6YFgc!AUFa#f9 bVBEl<35st-2p}{vF@%A`Hk=^>Oh*C$i)x4R diff --git a/bin/de/deadlocker8/roadgame/resources/castle.png b/bin/de/deadlocker8/roadgame/resources/castle.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6bbe406fd37c89a36b0654672a9e0c122b3b26 GIT binary patch literal 713 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_tsSkfJR9T^xl_H+M9WMyDr z;4JWnEM{QfI|#yzJ0@noWnf^CEOCt}3C>R|DNig)Whh9@%q!8$OD$0_(KFC9G;(Ii ze#5}P<mTz(7*Y}U_SWiR;Xs+AA3Hc)TwGW-DKP~$_VhR?DQQi(aYjKvw8DjjsnH?C zB_t%|3%`Scz!?$2Mh68gK~WBtMT_Q4{$sT{GVf&b-8X7K>(b8o?C#(Fed68SH*+2r z-Po)8wUhlxbe-Z#9btYC`|T4#CQCmpJpASO?lW9LzHXNf8vMN+v@b1e(%EO-mwFz~ zxY*?UG(5+_Z2J6Djy#8L)>h2BIUz@_`Ncnz+z)2knKkv-FS`BTS9;#_GL@t0GI#gR zF#D$RUvsmurkVJuKPvk=$`S%jb^hKWdUuc1+Z%mML9COneh!SxH+Z*$;i<ET$F+X_ z;Q!_l<slcCTRZFi_DsF{tS5EFh3hk$Cmj9wdF9i*-0Mr3Wi)FR$Ir=r>RA%Kvt+?K zqfX|@`yZdQ{%f&B$7;dzsS_VvHVR!?d*+MKQW5)j9dGvcnl_qpW%k;e?;EdL)@34E zZ}hD&?_<nIr<L#4?C96J8t6Brc1O?7-ux+kCj0k=oOC~x8De#HM((-%qw>4X`rUF3 zSZZtVezD-nW4XaKmf!sE-ZmGg%xan6S=qNUD5!UB@t?4B8!z=edn0CgCV%ITH9r?F zv0A`ac(=yv%c5Jm{d>R8oymTDf55eecMbMuJa`}acg3T+V0W94d75$x_b*Sc<bJ#9 zZ|<$*QX0D}EwyG@oib<jpE|uuU$O4do4!BmD(t-O9<7{ty;3^AdfAT0v2CYcxqW0H e8i;0@{A0Lfdn<a^vB|SQx;$O|T-G@yGywovXEjm) literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/resources/center_castle.png b/bin/de/deadlocker8/roadgame/resources/center_castle.png new file mode 100644 index 0000000000000000000000000000000000000000..0ddb1de6225d11a962956dc866d5b63d8eee8657 GIT binary patch literal 635 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_tsSkfJR9T^xl_H+M9WMyDr z;4JWnEM{Qf+YiEw7OcT43=9mCC9V-A!TD(=<%vb93<Zgqc_n&zsU->~dIoxiM$RnR zZx|RDe|Wk$hE&A8onY8^*Fog)zr=4vJG1n@Zog>4He2Kv$3l(`m94&Kpa1@QPU)k? z`_AK){x;{T9~Isc?*BZmV$Sy?kN2p{J+~z&b-upMuISJ2=g+gh{N#I*ec^ncNcIP+ zu|zelB|Q7?xRK3xKYy3$jGwguYYv`y-<-soRwpl#ZSeW`f{5ms_t}q1o%v%o(v<#_ lNbWH_hC=-BJpWw$zWJxq&uTqpF)%PNc)I$ztaD0e0sy9iFl_(; literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/resources/center_castle_triangle.png b/bin/de/deadlocker8/roadgame/resources/center_castle_triangle.png new file mode 100644 index 0000000000000000000000000000000000000000..7f03ee6bdfdf9260222cd17313e0dab9268ee04d GIT binary patch literal 1534 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_tsSkfJR9T^xl_H+M9WMyDr z;4JWnEM{Qf+Xupoubeg>U|?X7EOCt}3C>R|DNig)Whh9@%q!8$OD$0_(KFC9G;(Ii ze#5}PTJ7oL7*Y}U_HOEW*-(*VA7=|_h-P?a7G8fKpyDw>!Lf;zQ^<~CedB|7e2z^l z+(HmRmj7Y`cVdfwt}o+_-Cq9n-b_p5^l!5^&wuj0?c1BZ*Ef5v-*Yqh@R|1IdAk_% zj#NCmyy_PJ?6vLEZ=T&ui3;DHxVW^?_MfiVxtgfR>cq*V1-kz<&CX8q&(2oQ*<iNr zVEoaxn^(5%dUp6x_M@ynkvY?R{a<IB>Fi-!cS!!ITcl-FVsYX{*Bwmz#b>8H&Fnqf z!Ycl#=ucG6gwVyId~#yZ4W~bNZ>$KLd(AQ;BEvMMYkqg@=Bh21ekD%)xkJKUv^(u< z=Gw1^m_8Q>)@g{HVOxAPj9-3UH}}WdjS*%RYqv-Jc%Zd|;l3z$>e&ljr`!3@9;*DY zEkY%`?^=vqO@{TJJn@sW7Mq51%iFNZ-)`NMmT~mz;dcLH?qwTu3ZnA&ZaCoi<AB}_ zUboe2<;5%o-`{rK{A<g#gNK~dAK30L2<s2Cs)%?~u_s&n{Hn`VvpKot+RNXtMVdyX z7AIaz{<!U~inf1tj+ssk&%I63sZTRn&$b`!KQ_B;b52!Mymeyp;ty?i4Q9^@yB>Gr ziN}-swNsaD-70Nn#kBrrukrk_Yjro?6zs_|Kd*LqSDUbz4bS=;%qhZ|p@+F=%XLkE ztGH?DmSqpydif7}e^a<A6m{{#;b-iRU8`rTIm|t=prQFglkJ5Sm$P<pw_6CDzwO*> zw07z3f(gtY=Gfj?ami~JfBQ}O^S2K7Dy>!SEm-jPLyzr)6&JNGakk$Q_rLAjC$v^^ zZNY}x4^wPkthm5+iM#!_wEwNceN3|UXA2JO{m^1taR23tmu=4PI*-3y_}k~WpS4U0 zzfBtdy>P3dUk^9zejHf+!%j+Cp1)Lc_d`Kzhx<DFCL~PXq%F72`OC@w;zDnN$__f0 zP1rZ1K=GhnYPwBE`^#oeu<#+~vIQ^ha0><=60m+$XC0FAE>&bvi(}b=+OiER?sRWh z)RMUE_};P|9e2DV!loEp*tX+1pG0pp<2;ST6}bi5WsQWk|9RRe#CBV%{HEjLg6{cV zQw;8e?YPV*-5C9=WKj#__9L=o53cNNoi3=#vy(M%yYuohy1UnCBwjdMI9t{xH1A@l z3+Lgyw&=GXG>g2~X?aOh2;WKK_UMf+kPSR^LHco8w3FAJqSswQZ1*|LZz=^n6tnKo zNc_P&@lLjV-b&vN0j>!7Pp|xq_|NW0HB)ucaGaO4i?3dMX~{|5O`d{If}d0-?_s*~ z^RRJVr*F5wsR_$xJ~3UOC%@q55#0^Ef=-Irj&ZE79x2Z9FWeO!7p>G1^kn5S?T^xX z9^LvNdG0`0USV#RK-Wa|*-xe}NVM_!Y<cd8SGW0huk7fSfC)BtRo1g^{poO4+=AP< z<aVB(iwlSANnyWFSpm}gS8F;q8wPKW7Fxe1u~UF+^71))j+6PX)$|q{cyEuCTE8N( zOQ37A`rId?3)SS-{bc*J>qt&)UDBROZMsex0rScxU2kElJm5C(hlPA`$<31=xn4Q7 z1T3-nsIs2xYUK$xJLUcdYgV29`SH|CuNIGm6aJrGZIhw=|H?_%b5~QR$*-TG=gM*P z)MWopr4IWns>Kuja{T;d>~C*Zx+iFtn4*Xc`}0TI72=9dtc`#2<?gG?`Bl-nM8Qd; z%IwMQ@Sii2Zl0bnKlaJSv#h_apFXOsEGp>q&{)wv_q6}rqp2s>$2?&_b@l7|sr}(D zUP>*G!rT7XdDVGp?4L3vey7eA`*mXLTdufph#N33cl^g0z2yJSsy$3WB8o9bxIWY~ z=}YJT2<dg%b1?YY?+WMT>#l!f>szq>V_WZ{=^xp8my~~O>sc25k*#Ni`Ny{IRpKAn rx^-&yEL_Abo4>%WW9G(<{~0cP+B1QFi*Pan0|SGntDnm{r-UW|^&Zgh literal 0 HcmV?d00001 diff --git a/bin/de/deadlocker8/roadgame/ui/Controller.class b/bin/de/deadlocker8/roadgame/ui/Controller.class index ed189f709b208353aa5da985c7e2b3a8652b7486..da6912eebc7b6b41608ad1889c1eca56f26e5c9d 100644 GIT binary patch literal 9942 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 HbdUr9a%*XC delta 4109 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 RI=Eraz-Yv%&)Di92>=@-qwoL# diff --git a/src/de/deadlocker8/roadgame/logic/Board.java b/src/de/deadlocker8/roadgame/logic/Board.java index ab24c7b..c390f32 100644 --- a/src/de/deadlocker8/roadgame/logic/Board.java +++ b/src/de/deadlocker8/roadgame/logic/Board.java @@ -46,7 +46,7 @@ public class Board Random random = new Random(); int index = random.nextInt(TileTypes.values().length); TileTypes tileType = TileTypes.values()[index]; - Tile tile = new Tile(tileType.getN(), tileType.getE(), tileType.getS(), tileType.getW()); + Tile tile = new Tile(tileType.getN(), tileType.getE(), tileType.getS(), tileType.getW(), tileType.getC()); //random rotation int rotate = random.nextInt(3); diff --git a/src/de/deadlocker8/roadgame/logic/CenterType.java b/src/de/deadlocker8/roadgame/logic/CenterType.java new file mode 100644 index 0000000..3e7114b --- /dev/null +++ b/src/de/deadlocker8/roadgame/logic/CenterType.java @@ -0,0 +1,6 @@ +package de.deadlocker8.roadgame.logic; + +public enum CenterType +{ + EMPTY, CASTLE, CASTLE_TRIANGLE +} \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/logic/EdgeType.java b/src/de/deadlocker8/roadgame/logic/EdgeType.java index 54f9903..6f049c0 100644 --- a/src/de/deadlocker8/roadgame/logic/EdgeType.java +++ b/src/de/deadlocker8/roadgame/logic/EdgeType.java @@ -2,5 +2,5 @@ package de.deadlocker8.roadgame.logic; public enum EdgeType { - GRASS, ROAD + GRASS, ROAD, CASTLE } \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/logic/Textures.java b/src/de/deadlocker8/roadgame/logic/Textures.java index 5dd21b0..9625830 100644 --- a/src/de/deadlocker8/roadgame/logic/Textures.java +++ b/src/de/deadlocker8/roadgame/logic/Textures.java @@ -8,6 +8,9 @@ public class Textures private Image imageBorder= new Image("de/deadlocker8/roadgame/resources/border.png"); private Image imageGrass = new Image("de/deadlocker8/roadgame/resources/grass.png"); private Image imageRoad = new Image("de/deadlocker8/roadgame/resources/road.png"); + private Image imageCastle = new Image("de/deadlocker8/roadgame/resources/castle.png"); + private Image imageCenterCastle = new Image("de/deadlocker8/roadgame/resources/center_castle.png"); + private Image imageCenterCastleTriangle = new Image("de/deadlocker8/roadgame/resources/center_castle_triangle.png"); public Textures() { @@ -33,4 +36,19 @@ public class Textures { return imageRoad; } + + public Image getImageCastle() + { + return imageCastle; + } + + public Image getImageCenterCastle() + { + return imageCenterCastle; + } + + public Image getImageCenterCastleTriangle() + { + return imageCenterCastleTriangle; + } } \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/logic/Tile.java b/src/de/deadlocker8/roadgame/logic/Tile.java index b78a6b7..93e7c56 100644 --- a/src/de/deadlocker8/roadgame/logic/Tile.java +++ b/src/de/deadlocker8/roadgame/logic/Tile.java @@ -8,23 +8,26 @@ public class Tile private EdgeType E; private EdgeType S; private EdgeType W; + private CenterType C; private Point2D position; - public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W, int x, int y) + public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W, CenterType C, int x, int y) { this.N = N; this.E = E; this.S = S; this.W = W; + this.C = C; this.position = new Point2D(x, y); } - public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W) + public Tile(EdgeType N, EdgeType E, EdgeType S, EdgeType W, CenterType C) { this.N = N; this.E = E; this.S = S; this.W = W; + this.C = C; this.position = null; } @@ -46,8 +49,13 @@ public class Tile public EdgeType getW() { return W; - } + } + public CenterType getC() + { + return C; + } + public Point2D getPosition() { return position; diff --git a/src/de/deadlocker8/roadgame/logic/TileTypes.java b/src/de/deadlocker8/roadgame/logic/TileTypes.java index 80a0ce9..81fccb9 100644 --- a/src/de/deadlocker8/roadgame/logic/TileTypes.java +++ b/src/de/deadlocker8/roadgame/logic/TileTypes.java @@ -2,23 +2,45 @@ package de.deadlocker8.roadgame.logic; public enum TileTypes { - ROAD_END(EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS, EdgeType.GRASS), - ROAD_STRAIGHT(EdgeType.ROAD, EdgeType.GRASS, EdgeType.ROAD, EdgeType.GRASS), - ROAD_CURVE(EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS), - ROAD_T_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS), - ROAD_X_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD); + ROAD_END(EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS, EdgeType.GRASS, CenterType.EMPTY), + ROAD_STRAIGHT(EdgeType.ROAD, EdgeType.GRASS, EdgeType.ROAD, EdgeType.GRASS, CenterType.EMPTY), + ROAD_CURVE(EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS, EdgeType.GRASS, CenterType.EMPTY), + ROAD_T_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS, CenterType.EMPTY), + ROAD_X_JUNCTION(EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD, CenterType.EMPTY), + + CASTLE_SINGLE(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.GRASS, EdgeType.GRASS,CenterType.EMPTY), + CASTLE_TWO_SINGLE_OPPOSITE(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.CASTLE, EdgeType.GRASS, CenterType.EMPTY), + CASTLE_TWO_SINGLE_NEIGHBOR(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.GRASS, EdgeType.GRASS, CenterType.EMPTY), + CASTLE_THREE_SINGLE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.GRASS, CenterType.EMPTY), + CASTLE_FOUR_SINGLE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, CenterType.EMPTY), + + CASTLE_TRIANGLE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.GRASS, EdgeType.GRASS, CenterType.CASTLE_TRIANGLE), + CASTLE_TUBE(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.CASTLE, EdgeType.GRASS, CenterType.CASTLE), + CASTLE_FULL(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, CenterType.CASTLE), + + CASTLE_SINGLE_ROAD_STRAIGHT(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.GRASS, EdgeType.ROAD,CenterType.EMPTY), + CASTLE_SINGLE_ROAD_CURVE_RIGHT(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.ROAD, EdgeType.GRASS,CenterType.EMPTY), + CASTLE_SINGLE_ROAD_CURVE_LEFT(EdgeType.CASTLE, EdgeType.GRASS, EdgeType.ROAD, EdgeType.ROAD,CenterType.EMPTY), + CASTLE_SINGLE_ROAD_T_JUNCTION(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.ROAD, EdgeType.ROAD,CenterType.EMPTY), + + CASTLE_TWO_SINGLE_OPPOSITE_ROAD_STRAIGHT(EdgeType.CASTLE, EdgeType.ROAD, EdgeType.CASTLE, EdgeType.ROAD, CenterType.EMPTY), + CASTLE_TWO_SINGLE_NEIGHBOR_ROAD_CURVE(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.ROAD, EdgeType.ROAD, CenterType.EMPTY), + CASTLE_THREE_SINGLE_ROAD_END(EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.CASTLE, EdgeType.ROAD, CenterType.EMPTY); + private EdgeType N; private EdgeType E; private EdgeType S; private EdgeType W; - - private TileTypes(EdgeType n, EdgeType e, EdgeType s, EdgeType w) + private CenterType C; + + private TileTypes(EdgeType n, EdgeType e, EdgeType s, EdgeType w, CenterType c) { N = n; E = e; S = s; W = w; + C = c; } public EdgeType getN() @@ -40,4 +62,9 @@ public enum TileTypes { return W; } + + public CenterType getC() + { + return C; + } } \ No newline at end of file diff --git a/src/de/deadlocker8/roadgame/resources/castle.png b/src/de/deadlocker8/roadgame/resources/castle.png new file mode 100644 index 0000000000000000000000000000000000000000..1b6bbe406fd37c89a36b0654672a9e0c122b3b26 GIT binary patch literal 713 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_tsSkfJR9T^xl_H+M9WMyDr z;4JWnEM{QfI|#yzJ0@noWnf^CEOCt}3C>R|DNig)Whh9@%q!8$OD$0_(KFC9G;(Ii ze#5}P<mTz(7*Y}U_SWiR;Xs+AA3Hc)TwGW-DKP~$_VhR?DQQi(aYjKvw8DjjsnH?C zB_t%|3%`Scz!?$2Mh68gK~WBtMT_Q4{$sT{GVf&b-8X7K>(b8o?C#(Fed68SH*+2r z-Po)8wUhlxbe-Z#9btYC`|T4#CQCmpJpASO?lW9LzHXNf8vMN+v@b1e(%EO-mwFz~ zxY*?UG(5+_Z2J6Djy#8L)>h2BIUz@_`Ncnz+z)2knKkv-FS`BTS9;#_GL@t0GI#gR zF#D$RUvsmurkVJuKPvk=$`S%jb^hKWdUuc1+Z%mML9COneh!SxH+Z*$;i<ET$F+X_ z;Q!_l<slcCTRZFi_DsF{tS5EFh3hk$Cmj9wdF9i*-0Mr3Wi)FR$Ir=r>RA%Kvt+?K zqfX|@`yZdQ{%f&B$7;dzsS_VvHVR!?d*+MKQW5)j9dGvcnl_qpW%k;e?;EdL)@34E zZ}hD&?_<nIr<L#4?C96J8t6Brc1O?7-ux+kCj0k=oOC~x8De#HM((-%qw>4X`rUF3 zSZZtVezD-nW4XaKmf!sE-ZmGg%xan6S=qNUD5!UB@t?4B8!z=edn0CgCV%ITH9r?F zv0A`ac(=yv%c5Jm{d>R8oymTDf55eecMbMuJa`}acg3T+V0W94d75$x_b*Sc<bJ#9 zZ|<$*QX0D}EwyG@oib<jpE|uuU$O4do4!BmD(t-O9<7{ty;3^AdfAT0v2CYcxqW0H e8i;0@{A0Lfdn<a^vB|SQx;$O|T-G@yGywovXEjm) literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/resources/center_castle.png b/src/de/deadlocker8/roadgame/resources/center_castle.png new file mode 100644 index 0000000000000000000000000000000000000000..0ddb1de6225d11a962956dc866d5b63d8eee8657 GIT binary patch literal 635 zcmeAS@N?(olHy`uVBq!ia0y~yU`PRB4mJh`hJr^^Ll_tsSkfJR9T^xl_H+M9WMyDr z;4JWnEM{Qf+YiEw7OcT43=9mCC9V-A!TD(=<%vb93<Zgqc_n&zsU->~dIoxiM$RnR zZx|RDe|Wk$hE&A8onY8^*Fog)zr=4vJG1n@Zog>4He2Kv$3l(`m94&Kpa1@QPU)k? z`_AK){x;{T9~Isc?*BZmV$Sy?kN2p{J+~z&b-upMuISJ2=g+gh{N#I*ec^ncNcIP+ zu|zelB|Q7?xRK3xKYy3$jGwguYYv`y-<-soRwpl#ZSeW`f{5ms_t}q1o%v%o(v<#_ lNbWH_hC=-BJpWw$zWJxq&uTqpF)%PNc)I$ztaD0e0sy9iFl_(; literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/resources/center_castle_triangle.png b/src/de/deadlocker8/roadgame/resources/center_castle_triangle.png new file mode 100644 index 0000000000000000000000000000000000000000..7f03ee6bdfdf9260222cd17313e0dab9268ee04d GIT binary patch literal 1534 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 literal 0 HcmV?d00001 diff --git a/src/de/deadlocker8/roadgame/ui/Controller.java b/src/de/deadlocker8/roadgame/ui/Controller.java index da34629..7886299 100644 --- a/src/de/deadlocker8/roadgame/ui/Controller.java +++ b/src/de/deadlocker8/roadgame/ui/Controller.java @@ -31,67 +31,67 @@ public class Controller @FXML private StackPane stackPaneCurrentTile; @FXML private Button buttonRotate; @FXML private ScrollPane scrollPane; - + private Image icon = new Image("de/deadlocker8/roadgame/resources/icon.png"); private final ResourceBundle bundle = ResourceBundle.getBundle("de/deadlocker8/roadgame/main/", Locale.GERMANY); private GridPane grid; - private Game game; + private Game game; private Textures textures; public void init(Stage stage) - { + { textures = new Textures(); - + anchorPaneGame.setStyle("-fx-border-color: #333333; -fx-border-width: 2px"); stackPaneCurrentTile.setStyle("-fx-border-color: #333333; -fx-border-width: 2px"); - + grid = new GridPane(); scrollPane.setContent(grid); - + game = new Game(); - + updateGrid(game.getBoard(), null); - + nextTile(); } - + private void updateGrid(Board board, ArrayList<Point2D> possibleLocations) - { - grid.getChildren().clear(); - + { + grid.getChildren().clear(); + int width = board.getDimension().getWidth(); int height = board.getDimension().getHeight(); - - Point2D center = board.getDimension().getCenterCoordinates(); - + + Point2D center = board.getDimension().getCenterCoordinates(); + for(int x = 0; x < width + 2; x++) { for(int y = 0; y < height + 2; y++) { if(x == 0 || y == 0 || x == width + 1 || y == height + 1) - { + { if(possibleLocations != null) { if(isInPossibleLocations(possibleLocations, center, x, y)) { - grid.add(createStackPaneForTile(null, true, -((int)center.getX() - x), -((int)center.getY() - y)), x, y); + grid.add(createStackPaneForTile(null, true, -((int)center.getX() - x), -((int)center.getY() - y)), x, y); } else { - grid.add(createStackPaneForTile(null, false, 0, 0), x, y); + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); } } else { - grid.add(createStackPaneForTile(null, false, 0, 0), x, y); - } + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); + } } else - { + { Tile tile = board.getTile(x - (int)center.getX(), y - (int)center.getY()); if(tile != null) - { - grid.add(createStackPaneForTile(tile, false, 0, 0), x, y); + { + grid.add(createStackPaneForTile(tile, false, 0, 0), x, y); } else { @@ -99,40 +99,40 @@ public class Controller { if(isInPossibleLocations(possibleLocations, center, x, y)) { - grid.add(createStackPaneForTile(null, true, x - (int)center.getX(), y - (int)center.getY()), x, y); + grid.add(createStackPaneForTile(null, true, x - (int)center.getX(), y - (int)center.getY()), x, y); } else { - grid.add(createStackPaneForTile(null, false, 0, 0), x, y); + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); } } else { - grid.add(createStackPaneForTile(null, false, 0, 0), x, y); - } + grid.add(createStackPaneForTile(null, false, 0, 0), x, y); + } } - } + } } } } - + private void placeTile(int x, int y) - { + { game.placeTile(game.getCurrentTile(), new Point2D(x, y)); nextTile(); } - + private StackPane createStackPaneForTile(Tile tile, boolean possible, int x, int y) { - StackPane stack = new StackPane(); - + StackPane stack = new StackPane(); + stack.getChildren().add(new ImageView(textures.getImageEmpty())); - + if(tile == null) { if(possible) { - stack.getChildren().add(new ImageView(textures.getImageBorder())); + stack.getChildren().add(new ImageView(textures.getImageBorder())); stack.setOnMouseClicked(new EventHandler<MouseEvent>() { @Override @@ -141,77 +141,127 @@ public class Controller if(event.getButton().equals(MouseButton.PRIMARY)) { placeTile(x, y); - } + } } }); } } else { - stack.getChildren().add(new ImageView(textures.getImageGrass())); - - if(tile.getN().equals(EdgeType.ROAD)) - { - ImageView imageViewRoadNorth = new ImageView(textures.getImageRoad()); - stack.getChildren().add(imageViewRoadNorth); - } + stack.getChildren().add(new ImageView(textures.getImageGrass())); - if(tile.getE().equals(EdgeType.ROAD)) - { - ImageView imageViewRoadEast = new ImageView(textures.getImageRoad()); - imageViewRoadEast.setRotate(90); - stack.getChildren().add(imageViewRoadEast); - } - - if(tile.getS().equals(EdgeType.ROAD)) - { - ImageView imageViewRoadSouth = new ImageView(textures.getImageRoad()); - imageViewRoadSouth.setRotate(180); - stack.getChildren().add(imageViewRoadSouth); - } + //North + stack.getChildren().add(getImageForEdge(tile.getN())); + + //East + ImageView imageViewEast = getImageForEdge(tile.getE()); + imageViewEast.setRotate(90); + stack.getChildren().add(imageViewEast); + + //South + ImageView imageViewSouth = getImageForEdge(tile.getS()); + imageViewSouth.setRotate(180); + stack.getChildren().add(imageViewSouth); + + //West + ImageView imageViewWest = getImageForEdge(tile.getW()); + imageViewWest.setRotate(270); + stack.getChildren().add(imageViewWest); - if(tile.getW().equals(EdgeType.ROAD)) - { - ImageView imageViewRoadWest = new ImageView(textures.getImageRoad()); - imageViewRoadWest.setRotate(270); - stack.getChildren().add(imageViewRoadWest); - } - } - + //Center + ImageView imageViewCenter = getImageForCenter(tile); + stack.getChildren().add(imageViewCenter); + } + + stack.setStyle("-fx-border-color: #cccccc; -fx-border-width: 1px;"); return stack; } + + private ImageView getImageForEdge(EdgeType edgeType) + { + switch(edgeType) + { + case GRASS: + return new ImageView(textures.getImageEmpty()); + case ROAD: + return new ImageView(textures.getImageRoad()); + case CASTLE: + return new ImageView(textures.getImageCastle()); + default: + return new ImageView(textures.getImageEmpty()); + } + } + private ImageView getImageForCenter(Tile tile) + { + switch(tile.getC()) + { + case EMPTY: + return new ImageView(textures.getImageEmpty()); + case CASTLE: + return new ImageView(textures.getImageCenterCastle()); + case CASTLE_TRIANGLE: + ImageView iv = new ImageView(textures.getImageCenterCastleTriangle()); + if(tile.getN().equals(EdgeType.CASTLE)) + { + if(tile.getW().equals(EdgeType.CASTLE)) + { + //North and West + iv.setRotate(270); + } + } + + if(tile.getS().equals(EdgeType.CASTLE)) + { + if(tile.getE().equals(EdgeType.CASTLE)) + { + //South and East + iv.setRotate(90); + } + else + { + //South and West + iv.setRotate(180); + } + } + + return iv; + default: + return new ImageView(textures.getImageEmpty()); + } + } + private boolean isInPossibleLocations(ArrayList<Point2D> possibleLocations, Point2D center, int x, int y) { for(Point2D currentPoint : possibleLocations) { - int currentX = (int)center.getX() + (int)currentPoint.getX(); - int currentY = (int)center.getY() + (int)currentPoint.getY(); + int currentX = (int)center.getX() + (int)currentPoint.getX(); + int currentY = (int)center.getY() + (int)currentPoint.getY(); if(currentX == x && currentY == y) { return true; } } - + return false; } - + private void nextTile() { game.setCurrentTile(game.getNextTile()); - + stackPaneCurrentTile.getChildren().clear(); - stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); - + stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); + updateGrid(game.getBoard(), game.getPossibleLocations(game.getCurrentTile())); } - + public void rotateRight() { - game.getCurrentTile().rotateRight(); + game.getCurrentTile().rotateRight(); stackPaneCurrentTile.getChildren().clear(); - stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); - + stackPaneCurrentTile.getChildren().add(createStackPaneForTile(game.getCurrentTile(), false, 0, 0)); + updateGrid(game.getBoard(), game.getPossibleLocations(game.getCurrentTile())); } -- GitLab