From 88c1d33c60b076cb421927c4ebcf0a2815b2f9f5 Mon Sep 17 00:00:00 2001 From: MrMcX Date: Sat, 10 Sep 2016 15:46:09 +0200 Subject: [PATCH] Included experimental mode --- build/classes/dungeon/Dungeon$Mode.class | Bin 1053 -> 1053 bytes build/classes/dungeon/Dungeon$Type.class | Bin 1001 -> 1120 bytes build/classes/dungeon/Dungeon.class | Bin 4936 -> 5105 bytes build/classes/dungeon/Enemy.class | Bin 2207 -> 2230 bytes build/classes/dungeon/Room.class | Bin 7494 -> 7522 bytes build/classes/main/DungeonGeneratorUI$1.class | Bin 791 -> 791 bytes build/classes/main/DungeonGeneratorUI$2.class | Bin 791 -> 791 bytes build/classes/main/DungeonGeneratorUI$3.class | Bin 791 -> 791 bytes build/classes/main/DungeonGeneratorUI$5.class | Bin 791 -> 791 bytes build/classes/main/DungeonGeneratorUI$7.class | Bin 791 -> 791 bytes build/classes/main/DungeonGeneratorUI$8.class | Bin 557 -> 791 bytes build/classes/main/DungeonGeneratorUI$9.class | Bin 0 -> 557 bytes build/classes/main/DungeonGeneratorUI.class | Bin 19275 -> 20090 bytes build/classes/main/DungeonGeneratorUI.form | 24 ++++++ src/dungeon/Dungeon.java | 20 +++-- src/dungeon/Enemy.java | 4 +- src/dungeon/Room.java | 76 +++++++++--------- src/main/DungeonGeneratorUI.form | 24 ++++++ src/main/DungeonGeneratorUI.java | 29 ++++++- 19 files changed, 129 insertions(+), 48 deletions(-) create mode 100644 build/classes/main/DungeonGeneratorUI$9.class diff --git a/build/classes/dungeon/Dungeon$Mode.class b/build/classes/dungeon/Dungeon$Mode.class index 97af331e5f13e046c6766dd33526d05d619a73f5..50eb143f97a2411b134fd3b35feaf0339610cc95 100644 GIT binary patch delta 43 wcmbQsF_&Y*KPJYI$^V)3fuugO9gxgpZr}}N;AIG7kYWgDP-h64{F_+`03jF)r~m)} delta 43 wcmbQsF_&Y*KPJY2$^V)3fuugO9gxgpZr}}M;AIG6kYWgCP-h63{F_+`03Qqsi~s-t diff --git a/build/classes/dungeon/Dungeon$Type.class b/build/classes/dungeon/Dungeon$Type.class index 3b16ae9d39ed2eaa7941d0e1d6818f9969563ee8..f0ca8fee4f9d86d12a4e24925bec73be56dc985d 100644 GIT binary patch delta 485 zcmZvZIZne+7=%A>v11&v;3Oo0uoKp>?-WoVQA7xlAd#>YT!I1#afHYxiBll49e`8N zB5?-9|11g$T+C?R%$xsz@~8db)ZV|J-hfqhX;kaopfR*4md ztm0LNoZ>ZyyyA76jrQ(gU(dnW@%7Pu|rqQcZ=k`WR_p8o=$0l1g+Zukm?Uy~u z?0AeZ?vcj#$STMw$m0jTe!rEH<*dDevO!o95lbjy$w8`!^h?qtPLUEC1Hp@4$_~m| zOcb=lDKiu~UwWzX*BKVyi&8EljEd6LPJ#nL)#%^(KWj6gW-}S(D>zJ1QT?LtWE1r@ zf(N5`_l()hc-A9Mmqa9bW06SOuVNV?@p{t?>8UrZkVL&13rW_yXdS80P~&r0g6AZ- gkOyAMpey-jEsWps)69skGfSVaE4NG*$m|t<0L4r-IRF3v delta 457 zcmYk2OHKko6h%*ept{=v`Lqg%3jPH|QHBl}I#4DgAiHn}tbwo*fkcc(!`LM_a_T0G zuNo4mO6um_d%EAN`u2X*&FAmy2hgPH<8mBu!l@#ws03)L=BRlj0tst|IQK{!tt&2u zcemqd&q`+upVeH_P+VDr!^bex72lxknptYCumj6KJBlFDLB&Uln{h0l>+@=ff>4Ki-!h1eX|@b)S{pdglBU~E&2 z02xy-)3Sjh8&suQoDm;K@oK;S&lP)Sc1jUb#*=x=%SqaD6SL}Xxc!WBW_VM4DMnvT y(2l)}>rC)FeRslIXNqMSEiRUf`uF649%R<8R3*u54mgbTh;`9GXqPjRt^6M@9xBEF diff --git a/build/classes/dungeon/Dungeon.class b/build/classes/dungeon/Dungeon.class index aa0d11188444fe8bc31348f2c338de483e222b61..c49f194270df1635b721f69b0cdac98a644ada22 100644 GIT binary patch delta 1885 zcmZXVcXU)m6vltE?PXskn`O-*1`g;^K}f(L1R+u+^pYTiAVm=u2_XU4+kre4 zvN@j`iy1a9YW(DLrNvb?-s8qhi>qx?jvLq5628{vIUUtlf^u<&NpI?&CT3mv|G)|+hXRx?IEeaN#$TCp;Oo7xZ_YW?(JwGof`1^02k)V9WmwZ?oRl_yze#Cjt(Sk&2cqQ<6k z2K7dLDuo8KZnSvXVw1&Yg&q`%lveer2v=8^R$FXQcuHnYFSXcO*H#rNuO}*&Gs_iG z^PB^&^=a17aI~f>T%pKnQ|K)4Wmw(Xj#a3Lv%)>zv&~|=qdW^+4(1ufDO18T!nrlk z@`~Jos;cnJ!t&~+c>k` zEgUQL^yc}>QdmO^N=6nJ6e?2tjUF~WVbx`)o~lk)DO&lJ)?8uusuW^WnhIzlOxBb! z*_og_t6<$?t(B*VqLs5Rt)v2Ec=W$f)YVB+DI;vY%ViOaf}^-{erP9 zy-&fPQbt)3e7q7VorXC&F&rIaGG!Y#ytKu@kA`6|Z!G1Aw&U^u5?hv>Ral-{Jnl8( zcMH~u%7*{1vJ55(v$V!s(uX_X?xljZX?Oy-L5lK8tT?BhcFxcynX&du$<6ZCb51?E zOE@b#CvI$_gPSGzY6&GgS>8>Y>tWPfkE%VkZGEzcW^ug!WHLa$!UO3ZABXQd`X| zUz=8DwwNs@K^QKyqnTy4*`95dWs7BHX4<*KNPRy2bC!GV`JMBA=iGPT^lhirY(KiO z3CL0bo4%A=TyEo{JU})T7L_*M7N^Rh+Q#4F%(5kXh0Sc{*tF+Lb8D^6Je&Dk{;3yfZ9#C)4YTx+cBOy>19CgFy#bZ|=oOS#oVZZl_d!zk`BXLtI!D=a}?z32FalcJBR)ul1I*fUyaH)h196NJZzWp19YV6+;a!XOG`o3U^8rmEK1}rSQHaYlAM=UkQ$AA=Vo#!%&qI7+j=$7= z#n;Xb@7O+h?3Mf97@%*(*r)l92F>^E*Ze?{=10a@{G|Dr1Dap>RdbLgXNvEHw!bk+ z^E-bil&v|RNp(wneO(?7@u#!YO7@L6J9pUG>)+tc<}YVeV6BTIPQJZM+`pYJ2|1#V z*3C`ms7~UT78JLp)O^znXU3{q)$P-A?pJhkP7ZcYbBaOMREseEU1uuH#@5=oVvgzgkDO0=;? zGe+(i>s$&2)mY~-R;szoxMLXY6L$;7{>0oGgHb5>6C^&KB0-zpYAtNFmXR5cB1>?* zRu=GI!x@mdoEH-yzbI~eSAganI;hv_M`g>UI&ghUGjT{-JQ>AmvB^Tm1|i0Mbi z>{H@(E{I1bi&k97MIuKyZQ2g2F?r@qBK+CHUT20$je;0PQtZpK;uyB@G=&H%WShAd z1j%ZUT%YK|w0cqt(whdk`*=EdPFziHdIwL>{@xUCJ!vb*Fgm@S?#nqfH7({ea)z6( z%kixt96w6&Hj?3?Xpu*)Iku%%VBO?9`Qa`xicLGoWHF6m`SBRaFA=hp&<;s>jv9uh zD|LiSi%Sm^JcL(Tl|72Lnl1Tel!4T=MlxL#nF1~h1Lil1?2TVG=U?^$Ed>N*yzFHh zB}cBB)kxk%kBJ-Tnc6_F2C~AvMKsW7eJkewr;!}PBjhr>Zs453?K;IK&{98(0KNai zyd7uW^w;vKZlW>#GWv_|D%|%IO~}sxd2nYANs<3}HiL$wD5ZSLMG7}cI7{fdNvK@R c%`Ayo%W$|oX5HP9<*bN@ABcw+^B_z90SiDi`Tzg` diff --git a/build/classes/dungeon/Enemy.class b/build/classes/dungeon/Enemy.class index 914eb6e9dfbf449ec82e009d1bef52032003c3c3..e2ff4ce22f73f024675f8d168f53100dfde4e0bc 100644 GIT binary patch delta 270 zcmbO)xJ}UG)W2Q(7#J8#7?QXcOx)i^mALf9EX*%`tnmM>vtDXA<-ovg~J%@{g4 zkg-#MogtEkA&McIogs#YA(kO-@^i*?iFk$tMh0F5x17|J)S}$OOG=AVc^Kju5;vzY zSuut(GKi#<=B20R=jppZXq6D4p^Oa78k%8@4E$)4j1264i6x~)i8+i6k{Ui}vS6*& fno*NaF&9tvXE9~j!N4+ea|eqM3#%1_ii0Eo(U(BO delta 222 zcmdlcIA75F)W2Q(7#J8#7!tV{6Ft<}*cn3D8A2zPFX7_MEcQz*DJ@FOnXJI5 z%@{J-hq05Fhar+dmz^Pshas9FX7W?UbctAoI7S9u1-G2kl+>c!!%IqwQ+XI-8R9pm zFj+A&voj=2p2sZD!S3f65*p;_Gx;-fu@EBze@baydTM^2z6*q&oW^3xvWbCZ+2;8y MLM*Id3@Q$i0P~_ToB#j- diff --git a/build/classes/dungeon/Room.class b/build/classes/dungeon/Room.class index eddd1ae27ca5e9c02d21e6ec25734ceee6c0cc00..24aaabc8a954e50d7950016f1cca9ef4e06d9fad 100644 GIT binary patch delta 513 zcmXYtOGuPa7>3{1`R#n3Io@h6|6~@{B8^~LxM?;Ok`PF(LTJ^Lvlx|#W|V?Js717h zva^Wx?rNd@L=t!@FO_z&w6ZKMySHjv3u#Wjo98_5%f~q%XF9W*(KBoJMgcT)TfaWg zH=^NTG>S2dYh-X=;{hfrN;au5r4hrl3lAM0DLmHjG3dgK!mLJJ7@oN1slzje=L&Ng z4Hy)>aOX>hd4~m!S9mRWBUlu?73_N_SQ5M!d~k~_3s&5t3xbbs{*z$U-S}DXMetSd zP4Hdehv28+S7~8e&E1~huhRhsx*4N?WhetyPBAtRZ5Z+1_lrrM_ zHQdCQ!Bt#Sj2kAHv{%%{xX+ZK&&>w?xUN`dxP|q0yR=7qZVk@MKv}ROx{LObsi`8= z;cT(zOtzayHQJ#_lE>^(vnRM=n##Rl?7SIF);31|oBbV|2<2{kB$Ts>3!$tf)|;{9 UdUMbZhXa#p_BNFM{lxy%KMtmWHUIzs delta 484 zcmX|*%P*W!7{;I1e4O_?bKHjU&6qYJP2&>6!p5vjQX9%bG}hD9qDdExs>EuNvK5!( zPY?_3V&Y3IBrbKQC>@k)RnemVK`q1_U((I*{GK=GyyrQKu0-X=?er{wI(j%PV~HsV z3p0MqVooB8d5Mo$u+z3Euq084WfN8mRt451LP(mhF0dgH@xmuF*)-TP*cSLKQHmsE z$DF$cUkp+<;@D&CGY%ME8I6aGBgQwzu_^MM@xy$YVw{-!KN+WH<1fY;#5!+NazGrWZN&_w8p#NcEw)_vUQSntnS{|oo;`|GLh6x z)<5#QPcl8XC|{6N6rciyK@15hR1~BlJs|o54uups z6jm6B!C6B;ps delta 23 fcmbQvHl1xlI}_vH$sJ5ytos=_7!FLn&g1|9UkC@$ diff --git a/build/classes/main/DungeonGeneratorUI$3.class b/build/classes/main/DungeonGeneratorUI$3.class index bf012e7dc79ef5179e5598d88de151e4fcb60fbd..f249efd0e7df8a98b4f20cdc2b21be8de9f2dc0e 100644 GIT binary patch delta 23 fcmbQvHl1xlI}_uH$sJ5ytfv?_7*0>V&g1|9U`Ge? delta 23 fcmbQvHl1xlI}_va$sJ5ytS1>b7*0*T&g1|9U@8ai diff --git a/build/classes/main/DungeonGeneratorUI$5.class b/build/classes/main/DungeonGeneratorUI$5.class index 9c36993ff01763cb32a8b2fc51be51a45ccb0150..dec141f69f9e3361c149cffc2f62b26277dd7f66 100644 GIT binary patch delta 23 fcmbQvHl1xlI}_vG$sJ5ytoIo>7#>W%&g1|9VyFl) delta 23 fcmbQvHl1xlI}_ur$sJ5ytalhV817EK&g1|9Vo?Yv diff --git a/build/classes/main/DungeonGeneratorUI$7.class b/build/classes/main/DungeonGeneratorUI$7.class index 68109d161c6980e3a3a5fd80d77663ff88ad0793..ad4aafa460e45bcd76159ceb8448f7cfaab34b50 100644 GIT binary patch delta 23 fcmbQvHl1xlI}_uF$sJ5yte+S-7(P$F&g1|9WX}j{ delta 23 fcmbQvHl1xlI}_u#$sJ5ytUnky7=BK^&g1|9Wqk;I diff --git a/build/classes/main/DungeonGeneratorUI$8.class b/build/classes/main/DungeonGeneratorUI$8.class index b71f2c3c2b12fbd7359530ae7fb927315f67dbea..eff345615e90d16c24e90b09deb465ff27c59ae7 100644 GIT binary patch literal 791 zcmaJ+!1 z;s<|#KT5n47Zo%OOy=IpnRD*z`;V{R06f6G5I$~3Si(kx8`uo672sBYZNde6s;Xq4 zu%1nY(&^)wo=BsgN-axaP5I{JfI*LxR`!sv*=z(G$|x~&ZI4JtBigr%eSVS$}wTPo1KZdNX2`b z%DL1wJ*pwc&OUHid2((!_48na=#`n3xqPBrx@-S-;l2}L{bQXMrc!$HOxja34zLsB zHtxg-upA?F)?Fmr&W3I#eL|;BxDa}hz8Ia!oU_~dZw;BMtQ!Pp)IdjAaibZS={uvj zU~Zt-bwx)a&t+955BGVt{pPWq*OlENc6f1?z#9PSbX<+RPc1$nB92~U>yUjHiF$jV zK)ugseW)=p|M?X_giCB+|AoQ|I_xpNW+O&i#_EFWXu%csK7#hX!23fLx##3znf$-# g!rycuuHY)uc(}&oEtXs3+vjaxN4u8e_2iqspFMoHumAu6 delta 356 zcmYjN%T5A85Uk#v-N9i{L}A6}b>Xtcc<~Xxz>_AMsHZVOG6v=Vi&wsZV8T~;@FIyO z9*z1@#$GYvVY;f)UDchLgb!lx^XvH)z&>^qLR2Mc3LdI?i6qt}>JsaO@Yp(=oe=zZ z)V&dYZ{WsFIw)yuU{j-j1wu4RqJqX2wh49S<9mvRm0NRXl8$lhHT>NU@86?;}V)*5k(;St(`-BQXZeDd_R1UF4b% zgNAR=Ec9#wB`mQbl>gj^oR+)w3%rXdeDMS^56Qm)^o}BZ{L9h5IX;%z>7jxZM!{?q Mi_8=!28?{=Hx-;O!vFvP diff --git a/build/classes/main/DungeonGeneratorUI$9.class b/build/classes/main/DungeonGeneratorUI$9.class new file mode 100644 index 0000000000000000000000000000000000000000..3bcef0aed1340d258cb63ee0b7321975b622428d GIT binary patch literal 557 zcmZ`$$xZ@65Pb~;qr)hQ0wOLK4&XsNctMO8Tw;Qnh?1zM20GAW=t*Yrzr0AIi67wI z=+_vlfryFW(6!gASJm&|FK+<$v27uaw26#`2+~?)O{|&7nOJ9tA4(;IBZg?P)MPMf zZbvXA>r#o!aL^Lo4R1LVN!8spcbeRj+MfiCpeKC>`&=pE)g12og4}$4z@;i5hpH=F zbtWjs1J}DfFI1{D#|ssM)o??vEl#Dz&i*gm?ej-YJWf>Gaeb+}7b57n9UFOU*qFmS zb)Py literal 0 HcmV?d00001 diff --git a/build/classes/main/DungeonGeneratorUI.class b/build/classes/main/DungeonGeneratorUI.class index 86a614e3b7fab9212311ed8e84be47fa58439272..a817a61a9f2727816c30a1a75d1be02b8f3feb27 100644 GIT binary patch literal 20090 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 delta 9400 zcmb7K349b)(yw|oGu`Pl5GFU_NVrLYfe->lu5g1%IKmYXFu(|bkU&Vdp+ydFLC1qb zR76D-6$0r*Mh;QI3l&|@byr<)*H!Vp`Kr1n39RVn{=!t%t5>i3y{doLd)>`Xx8bw5 zp!Lje2Mz&17QJl1kNBC8{|Nb9$QMGs6mm+)R|by2uSNPs!*6x`&Hw|y7xIHBf7I|N z1DfI25#0D$!(R;WyNzE(^P7gJ4Ty6z3Rt61Qc?@XfHoVgB)0AdFimTB@ z6CuRVRHOkNU9~BiCYow$K&q>0rl}|cy1I?#((M-#EhI)rtdKY%@evl&1WhFx(90dr zLQ_cwO=nGY;n=8DU8M<6 z*Hl;G=V>a#fHBJICavz8$~0h{#MZBRXe!HqiTJgydUCu}wx)U+Fj@7M#`(I+5u*z< z)yIHKR5wlaNy6P`HTRI15D%XI$YM=qL)F6(j8Z2apkfFL7rm5kY8lkI^y0R`b zpiJd)lvTd23UoC}SEF?`Mpt8XRmfpfv&S|RHUcv!8M%v~YUl_FiGsjCfm zL|vn)YYhmg>qL3INTs6QV5p7ih6r_|3L5Grb#tV;Mct~YO$I!nt`mdJk!p+DD(-HR z$Z;UH8Ssqc_jbdAXVe|sQg;fuO;_6ud`tLU2EHoxezk*1w|L<*G(gwzO-R$gOLAtm<_2 zh=G~vfapU)9@W%ALmg6wWx7XX*khVHDw@Z2^@P|ysi|X{I&P?^)ILK!t)7Wc&#LD{ zI-#rQb@hU-Uewe{15v%Csh15Tz9*2>-&j(w2zgcdUehe~x`7eu4PCvdtG`Q3--=*} z{lifIRB!9*9YejV{-vw;4E4VHz)&Bmk9761@K1F0sjmL5tIu@xA6MLDwY`@Xfx4QaHSKsUE2VMQBtDkiBv#x&8)vvnxO;@LN0^K6iN$Es7c{K9!+Q?^+ zM!HTB1|H|tK{**LQKYC%jhblGRHJ4ZMQPOBzw~4f)P0A2i+xeYHEPAF<*ag=IK;uBO^Q7y zHT8P%fhN_#)?*2KecId<}}z{VW2cHqcSivzkFsuqvYVD%~In=AT+Dj7Zg`k zRTP(MloI@`{rGu z)=*oM+EIIxI#5T1xFANvO*OF!7a{oP6fY`XlCf}cN!hH7k)w;t0;MJ{z%modu?!*l ztnPtTm6he(H3r9;xKR4f9-db`U4~D_qTtEqiTX-hW#S}mjPkeWJ`u;6co7zvScu~g z;?HtCu6X+Nz)ZQii56aF;(RO%Zt=JDEyg7XvB6Uju~ST3jhCA^Pv*81mzY=~Ql*fK z#qAU!Q?Upk<}Ba&fwHQB#T6zN<8*}Pzw0w`8eS4SFSC`oNDmsDAql};#(}}uK+u+9dr1Ve?ND_&S>QWo_L&W`CBmn|+M#}-%3n^(M~WM0)g>FO2S7t=1jH=Qp7b4}Ap< zDl+LJT&vM!lP;F^Hk;`NJfp$w6q*`Na7Jk{!+AtmWnfl-6ETfAb$`cyn)nL7F5xIP z@j}cqX*$g?F&_&MS_iL>Z0(i4nZY>;ow}|ehT9J;3_H47+O-w(7K8inRGQ>6HI8)smZl;ok`czH70GKjlsMYse^AY z=|&2gbd#9fOt&B;IOEIM!KLgVW7PaW*{J!I0!F%(HnIOD?vg&6q*$B)PxTrfU=;1EXKqjYfJmr3Mpx0w!Ubl9XL^caG#pk&_kDo)Q)dfcQZ zBmz(JofVf-ozYvPV0j3p%~V-A8Tr_D9g z;am*?al9i>U^}jpXSKP0I(=L^9nQto;au|^&SlTxQ_*q-u4ayc%bmlycsZQQnZvoZ zIh^a6!@0saoJ*U-xvDvwtD(cWAUd22ufus?a5$G}hx2CP@Ctue;ElmiaA^*9%W5-j zh125Az~Nlp9nQs^c{Hz;_bR6AxHSz36!WCiTG06y5dx#gA6W}#UTT^RO>Aho*BQJ% znAS7Nx`O36cK}|AS8>Y^5qLFT1IU5o-H$1|)i!~~8t`778iHm;wGdSU%~|xb7+nJ~ zjbbc|ajcE6frLhFB8x3pn^XfWS!~5(>l$d2YBi{nS)Ib_wl&bM(YSr1wgZbD*`QMm zbY?MpN7Z!Q^3kqwY!iI%mFYUs1?ZZym`zsrrv=4W75GOv@NtHNRR9NKoFJ@2H z8Lm2nttA|Z{v~cWVz?3OU+OlxoE6UuzT`6Q&WMV!VYvvp4J(9)U}X^z)xs){Fe}nU zX~SjAx=6F$d1t@1T68vC&aB&6-n+9V(;d@|#qNz`)`+b;L}u67zgA{v!#Zxnh}n7; zdPo{QT0A{^@;g$CETURz}dxo{y{;L|5*^bh6-ot;j>%5Qu8XK-Y^*d!*l?eW8|mNWT8s?A{c@cL-0O(V$TO}p#JLVD&$nSWC;q{3LFb+E zQ&<+9e?f{h2}Z&UxDd)950*kctc3#D0Ha_FjD~w)4D5li5Q0KD2IJr)jEA>i0(=A$ z;VYN~zd{k}a1lnsWNZx=V;7i$Suhp*!!#TTm+(GY%-h~{oC`B>5d?5KT#Bn<7GA+6 zU=z&2d!f|A{ZNK{!{KvKiEqFn`~;TZDOid>!7}B86)J_Fc6-1o)ekH+5>~6RaJiZc zYt$@Qr`EuFwE?bFx58EGPPkg_hHKRcxK6zR8`OtzgZdhRgm5!Oz%As5Td4(XqBPh{ z*|3!c!8RHV)*Unzwo?i0pha*Gt%04i5q8lwcz_;+2N^gI(NWk#&%$1M4ffGHu%A8y zn|_2kkAef9W)Siuz@wgIIOxfMqn-=k3D0nN(lZ8*d5Yk;XEr?Nsf6b}E8zvtIymXM z9$xZngV#K};0;eTyy<;9buf@Sf*Gc;E8{eBk*FKJ^;#nKuqT_qKsAz3Fhu z+Y`R>=EB$BeE8No0lxDF;Aigw_|>}-PJ7oOdapvoVFfVVz1Q8L@jBKtf=T3{j#NJm_=0y8FI2yzjF)2Jt3m-{kVEM1D>x9Ct0!~+@D?F|B~Ck z--egZ>>uC>SF$kAWiB;`3;y4Zz_=W5qE}i{fnRBi^H{KAIAjr!jFFIrCck5C0)wzA zT!_t}5Tp41@xxrczZPLET#j+D5#wPGCculB2w!3n{DAzj1Y4nwtuY4M@L#f%uzqeT z>J!FVH(|Zt6TAg)<@6T93EYI6Ej|R!g&N#~TRGb?VB&4K4ZMsJe!US!Nj2LLgJd+X zpuX`thDeK0z_zIHr97NB?m{E{XN&DZ%z zs_|8hgy2m^!Qb;k@K%xkA093{7M~XW$=mze1?gRFcqiTet_}Z6=TiAzwkOuJ1vWCi z-k0pz@PYqB8$Q|se9-u~C=3VDf5JGBE&)p|eCitido#qR`ai3K|781OeVf6vS4=;j zDD(?D2w&F0sT^OTPqr1_@V~O*Yu0{K2j5Oi^?z3f-|vLD9IyXJ8-A*TpR3^)l###g z<&|Z^GT042z;f8-aB?Cz0b)6V863fGkc8bCQJMS&pa;hz3oCIGwdGZ zLA}9y8Uo1YHe)$PxbYNziny&+Rwi1CVwmtl;wV1FXbIhr8gK z11&hH7c#i=7+m=lqpN_?HHy(Sn$b0u(N)Oz=Q!TmC-7E25f98MX@HD2td;GR9l3xHe#hDnz?*LP9wgb3JxgIQT0Nhqc#2U0gXTYt% zTD0mM6u#`DkjrEP_ONX|_E>UDo{lZ*vB!9+$KJP$y?W?f2~AGJtUra`K+w;Cp5-7@ z!$&kcARs&tIgH70{+;G$Y~u{eGYuPzJ*W9b_%A5Kz%Z8iCG($Et!Rw&9JB<@(P;i2 z&JAe3{wy?`e}ZQ2`%7qMpdPfb2{x-ntEmU;u$k1aXpBnq)?xGiw`yg-=#hGQj^@cD58F6Lw55?F=SQa-mVhjq9THt~y& z9mr1k1;=i@jKQ^+!$wGmT>9#eOQ=Q%R(aIA6N@dK&gEgHM~>aa)SStw3Iz zC>-PK>M$!W?NDFp*Q(`R&?&7|W{xKsdvg3R+s0m-p{a+t-Y5V4kU=jk_h!sxs+ zcj7eOG=AlJe74fjbv}nK=6AXf_T!zPe;p3k%d?WA+mm-?;Ujow7Cwb{XWuj`S=`Qyu9!mMR?S1WPahuEXc? z1)h)W+-*Sr4I(sr5wYzL;N?PgvQWd9`1dmZ{uad>G=B(i(*VagRkCDxx6{GK+#^t) zmzJ;krQ0|#xN2mQzsgBMH1*pFP1F60xD|Y0WLs;{o@yM-zae{gup1ErjZ^T6C40Go?VTqtj-~T%)VYubDwd=1c9f3q;Jab> zIqY7ZxO}N;wV*Y^-*LtNLqlA-v-jb@oY$;ui`IMcyv2^*Ker>_Uv*UP=Yw$wR`Qhp2u+AD`Qi`d=sX$(eq_>zAD2|Ky0F z^(jwX;lKHf2*7mSj`}eNKFi$iaDcnRe0!MR9_E|F{3hmUB2Nx0hVg$PTF%AoIBERU U&EL@BVSH^sBEH4^9|IEq50tyudjJ3c diff --git a/build/classes/main/DungeonGeneratorUI.form b/build/classes/main/DungeonGeneratorUI.form index 00895d6..c76f644 100644 --- a/build/classes/main/DungeonGeneratorUI.form +++ b/build/classes/main/DungeonGeneratorUI.form @@ -196,6 +196,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/dungeon/Dungeon.java b/src/dungeon/Dungeon.java index 1a00f43..17dc5f1 100644 --- a/src/dungeon/Dungeon.java +++ b/src/dungeon/Dungeon.java @@ -23,15 +23,15 @@ public class Dungeon { private final LinkedList toGenerate; private final Counter counter; - public Dungeon(int size, Type isNatural, Mode mode){ + public Dungeon(int size, Type type, Mode mode){ rooms = new ArrayList<>(); toGenerate = new LinkedList<>(); counter = new Counter(); - generate(size, isNatural, mode); + generate(size, type, mode); } - private void generate(int size, Type isNatural, Mode mode){ - toGenerate.add(Room.RandomRoom(true, Exit.Start(), counter, isNatural)); + private void generate(int size, Type type, Mode mode){ + toGenerate.add(Room.RandomRoom(true, Exit.Start(), counter, type)); while(!toGenerate.isEmpty() && rooms.size() < size){ Room next; switch(mode){ @@ -48,7 +48,7 @@ public class Dungeon { next = toGenerate.getFirst(); break; } - next.generate(counter, isNatural).stream().forEach((r) -> { + next.generate(counter, type).stream().forEach((r) -> { toGenerate.add(r); }); toGenerate.remove(next); @@ -77,14 +77,20 @@ public class Dungeon { return g; } + public static boolean Natural(Type n){ + return (n == Type.NATURAL || n == Type.EXP_NATURAL); + } + public static enum Mode{ STRAIGHT, BRANCHED, - RANDOM + RANDOM, } public static enum Type{ NATURAL, - ARTIFICIAL + ARTIFICIAL, + EXP_NATURAL, + EXP_ARTIFICIAL } } diff --git a/src/dungeon/Enemy.java b/src/dungeon/Enemy.java index a286775..243d98a 100644 --- a/src/dungeon/Enemy.java +++ b/src/dungeon/Enemy.java @@ -14,9 +14,9 @@ import main.Dice; public class Enemy{ private String enemy; - public Enemy(Dungeon.Type isNatural){ + public Enemy(Dungeon.Type type){ enemy = ""; - if(isNatural == Dungeon.Type.NATURAL){ + if(Dungeon.Natural(type)){ switch(Dice.Roll(20, 1)){ case 1: enemy = "Höhlendrache"; diff --git a/src/dungeon/Room.java b/src/dungeon/Room.java index c22f5c5..82f9cc9 100644 --- a/src/dungeon/Room.java +++ b/src/dungeon/Room.java @@ -17,44 +17,44 @@ import main.Dice; public class Room { public int number; public Exit[] exits; - public Dungeon.Type isNatural; + public Dungeon.Type type; public boolean isRoom, hasMonster, hasTrap, hasMagic, hasSpecial, hasTreasure = false; public Enemy monster; public Treasure treasure; public Trap trap; - public String type, magicPhenomenon, specialPhenomenon = null; + public String desc, magicPhenomenon, specialPhenomenon = null; - public Room(Exit predecessor, int numberOfExits, boolean room, String type, Counter c){ + public Room(Exit predecessor, int numberOfExits, boolean room, String desc, Counter c){ exits = new Exit[numberOfExits]; exits[0] = predecessor; this.isRoom = room; - this.type = type; + this.desc = desc; number = 0; } - public List generate(Counter c, Dungeon.Type isNatural){ + public List generate(Counter c, Dungeon.Type type){ number = c.Next(); List list = new LinkedList(); for(int i = 0; i < exits.length; i++){ if(exits[i] == null){ Exit predecessor = new Exit(this); - Room newRoom = RandomRoom(false, predecessor, c, isNatural); + Room newRoom = RandomRoom(false, predecessor, c, type); exits[i] = new Exit(newRoom, predecessor.type); list.add(newRoom); } } - SetContents(isNatural); + SetContents(type); return list; } - private void SetContents(Dungeon.Type isNatural){ + private void SetContents(Dungeon.Type type){ if(isRoom){ switch(Dice.Roll(6, 2)){ case 2: case 3: return; case 4: hasMonster = true; - monster = new Enemy(isNatural); + monster = new Enemy(type); return; case 5: hasTrap = true; @@ -74,19 +74,19 @@ public class Room { case 9: hasMonster = true; hasTrap = true; - monster = new Enemy(isNatural); + monster = new Enemy(type); trap = new Trap(); return; case 10: hasMonster = true; hasTreasure = true; - monster = new Enemy(isNatural); + monster = new Enemy(type); treasure = new Treasure(); return; case 11: hasMonster = true; hasMagic = true; - monster = new Enemy(isNatural); + monster = new Enemy(type); // TODO: generate magic here return; case 12: @@ -103,7 +103,7 @@ public class Room { case 3: return; case 4: hasMonster = true; - monster = new Enemy(isNatural); + monster = new Enemy(type); return; case 5: hasTrap = true; @@ -115,14 +115,14 @@ public class Room { return; } } - this.isNatural = isNatural; + this.type = type; } @Override public String toString(){ if(!isRoom){ return "Gang " + number; - } else if(isNatural == Dungeon.Type.NATURAL){ + } else if(Dungeon.Natural(type)){ return "Höhle " + number; } else { return "Raum " + number; @@ -136,7 +136,7 @@ public class Room { } else { out += "Gang "; } - out += "Nummer " + number + ": " + type + "\n" + + out += "Nummer " + number + ": " + desc + "\n" + "Ausgänge:\n"; for(Exit x : exits){ out += x.toLongString(); @@ -168,61 +168,61 @@ public class Room { } - public static Room RoomBigExits(Exit predecessor, Counter c, Dungeon.Type isNatural){ + public static Room RoomBigExits(Exit predecessor, Counter c, Dungeon.Type type){ int rand = Dice.Roll(3, 1); - if(isNatural == Dungeon.Type.NATURAL){ + if(Dungeon.Natural(type)){ return new Room(predecessor, rand + 1, true, "große Höhle mit " + rand + " Ausgängen", c); } else { return new Room(predecessor, rand + 1, true, "großer Raum mit " + rand + " Ausgängen", c); } } - public static Room RoomSmallExits(Exit predecessor, Counter c, Dungeon.Type isNatural){ + public static Room RoomSmallExits(Exit predecessor, Counter c, Dungeon.Type type){ int rand = Dice.Roll(3, 1); - if(isNatural == Dungeon.Type.NATURAL){ + if(Dungeon.Natural(type)){ return new Room(predecessor, rand + 1, true, "kleine Höhle mit " + rand + " Ausgängen", c); } else { return new Room(predecessor, rand + 1, true, "kleiner Raum mit " + rand + " Ausgängen", c); } } - public static Room RoomBigNoExits(Exit predecessor, Counter c, Dungeon.Type isNatural){ - if(isNatural == Dungeon.Type.NATURAL){ + public static Room RoomBigNoExits(Exit predecessor, Counter c, Dungeon.Type type){ + if(Dungeon.Natural(type)){ return new Room(predecessor, 1, true, "große Höhle ohne Ausgang", c); } else { return new Room(predecessor, 1, true, "großer Raum ohne Ausgang", c); } } - public static Room RoomBigExitsStair(Exit predecessor, Counter c, Dungeon.Type isNatural){ + public static Room RoomBigExitsStair(Exit predecessor, Counter c, Dungeon.Type type){ int rand = Dice.Roll(2, 1); - if(isNatural == Dungeon.Type.NATURAL){ + if(Dungeon.Natural(type)){ return new Room(predecessor, rand + 2, true, "große Höhle mit " + rand + " Ausgängen und einer Treppe", c); } else { return new Room(predecessor, rand + 2, true, "großer Raum mit " + rand + " Ausgängen und einer Treppe", c); } } - public static Room RoomSmallNoExits(Exit predecessor, Counter c, Dungeon.Type isNatural){ - if(isNatural == Dungeon.Type.NATURAL){ + public static Room RoomSmallNoExits(Exit predecessor, Counter c, Dungeon.Type type){ + if(Dungeon.Natural(type)){ return new Room(predecessor, 1, true, "kleine Höhle ohne Ausgang", c); } else { return new Room(predecessor, 1, true, "kleiner Raum ohne Ausgang", c); } } - public static Room RoomSmallExitsStair(Exit predecessor, Counter c, Dungeon.Type isNatural){ + public static Room RoomSmallExitsStair(Exit predecessor, Counter c, Dungeon.Type type){ int rand = Dice.Roll(2, 1); - if(isNatural == Dungeon.Type.NATURAL){ + if(Dungeon.Natural(type)){ return new Room(predecessor, rand + 2, true, "kleine Höhle mit " + rand + " Ausgängen und einer Treppe", c); } else { return new Room(predecessor, rand + 2, true, "kleiner Raum mit " + rand + " Ausgängen und einer Treppe", c); } } - public static Room RoomGiant(Exit predecessor, Counter c, Dungeon.Type isNatural){ + public static Room RoomGiant(Exit predecessor, Counter c, Dungeon.Type type){ int rand = Dice.Roll(2, 1); - if(isNatural == Dungeon.Type.NATURAL){ + if(Dungeon.Natural(type)){ return new Room(predecessor, rand + 1, true, "gigantische Höhle mit " + rand + " Ausgängen", c); } else { return new Room(predecessor, rand + 1, true, "gigantischer Raum mit " + rand + " Ausgängen", c); @@ -253,7 +253,7 @@ public class Room { return new Room(predecessor, 1, false, "Sackgasse", c); } - public static Room RandomRoom(boolean first, Exit predecessor, Counter c, Dungeon.Type isNatural){ + public static Room RandomRoom(boolean first, Exit predecessor, Counter c, Dungeon.Type type){ int number; if(first){ number = Dice.Roll(6, 1); @@ -263,18 +263,18 @@ public class Room { switch(number){ case 1: case 2: - case 3: return RoomBigExits(predecessor, c, isNatural); + case 3: return RoomBigExits(predecessor, c, type); case 4: case 5: - case 6: return RoomSmallExits(predecessor, c, isNatural); - case 7: return RoomBigNoExits(predecessor, c, isNatural); + case 6: return RoomSmallExits(predecessor, c, type); + case 7: return RoomBigNoExits(predecessor, c, type); case 8: - case 9: return RoomBigExitsStair(predecessor, c, isNatural); - case 10: return RoomSmallNoExits(predecessor, c, isNatural); + case 9: return RoomBigExitsStair(predecessor, c, type); + case 10: return RoomSmallNoExits(predecessor, c, type); case 11: - case 12: return RoomSmallExitsStair(predecessor, c, isNatural); + case 12: return RoomSmallExitsStair(predecessor, c, type); case 13: - case 14: return RoomGiant(predecessor, c, isNatural); + case 14: return RoomGiant(predecessor, c, type); case 15: return CorridorStraight(predecessor, c); case 16: return CorridorRight(predecessor, c); case 17: return CorridorLeft(predecessor, c); diff --git a/src/main/DungeonGeneratorUI.form b/src/main/DungeonGeneratorUI.form index 00895d6..c76f644 100644 --- a/src/main/DungeonGeneratorUI.form +++ b/src/main/DungeonGeneratorUI.form @@ -196,6 +196,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/DungeonGeneratorUI.java b/src/main/DungeonGeneratorUI.java index 92ee864..a8abece 100644 --- a/src/main/DungeonGeneratorUI.java +++ b/src/main/DungeonGeneratorUI.java @@ -70,6 +70,8 @@ public class DungeonGeneratorUI extends javax.swing.JFrame { jPanelSettings = new javax.swing.JPanel(); jLabel4 = new javax.swing.JLabel(); jSpinSize = new javax.swing.JSpinner(); + filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(1, 0), new java.awt.Dimension(1, 0), new java.awt.Dimension(1, 32767)); + jCheckBoxExp = new javax.swing.JCheckBox(); jLabel1 = new javax.swing.JLabel(); jComboBoxNatural = new javax.swing.JComboBox<>(); jLabel2 = new javax.swing.JLabel(); @@ -125,6 +127,15 @@ public class DungeonGeneratorUI extends javax.swing.JFrame { jSpinSize.setMaximumSize(new java.awt.Dimension(40, 30)); jSpinSize.setValue(1); jPanelSettings.add(jSpinSize); + jPanelSettings.add(filler1); + + jCheckBoxExp.setText("Experimenteller Modus"); + jCheckBoxExp.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jCheckBoxExpActionPerformed(evt); + } + }); + jPanelSettings.add(jCheckBoxExp); jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); jLabel1.setText("Wie ist der Dungeon entstanden?"); @@ -423,6 +434,10 @@ public class DungeonGeneratorUI extends javax.swing.JFrame { + "Icons made by Revicon from www.flaticon.com", "Über", JOptionPane.QUESTION_MESSAGE); }//GEN-LAST:event_jMenuItemAboutActionPerformed + private void jCheckBoxExpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxExpActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_jCheckBoxExpActionPerformed + /** * @param args the command line arguments */ @@ -471,11 +486,23 @@ public class DungeonGeneratorUI extends javax.swing.JFrame { } private Dungeon.Type SelectedNatural() { - return jComboBoxNatural.getSelectedItem().equals("Künstlich") ? Dungeon.Type.ARTIFICIAL : Dungeon.Type.NATURAL; + if(jComboBoxNatural.getSelectedItem().equals("Künstlich")){ + if(jCheckBoxExp.isSelected()){ + return Dungeon.Type.EXP_ARTIFICIAL; + } + return Dungeon.Type.ARTIFICIAL; + } else { + if(jCheckBoxExp.isSelected()){ + return Dungeon.Type.EXP_NATURAL; + } + return Dungeon.Type.NATURAL; + } } // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.Box.Filler filler1; private javax.swing.JButton jButtonGenerate; + private javax.swing.JCheckBox jCheckBoxExp; private javax.swing.JComboBox jComboBoxMode; private javax.swing.JComboBox jComboBoxNatural; private javax.swing.JLabel jLabel1;