From ff17bece91825078950587ab4dba9fe45fcef72d Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 20 Feb 2025 15:28:24 +0100 Subject: [PATCH] Removed check of distance to stop organic room placement. --- .../DungeonMapConsolePrinter/Program.cs | 4 ++-- .../Debug/net9.0/DungeonMapConsolePrinter.dll | Bin 6656 -> 6656 bytes .../Debug/net9.0/DungeonMapConsolePrinter.exe | Bin 145920 -> 145920 bytes .../bin/Debug/net9.0/DungeonMapGenerator.dll | Bin 31744 -> 31744 bytes .../DungeonMapGenerator/DungeonGenerator.cs | 5 ++--- .../netstandard2.0/DungeonMapGenerator.dll | Bin 31744 -> 31744 bytes 6 files changed, 4 insertions(+), 5 deletions(-) diff --git a/DungeonMapGenerator/DungeonMapConsolePrinter/Program.cs b/DungeonMapGenerator/DungeonMapConsolePrinter/Program.cs index 53a86e0..779bee9 100644 --- a/DungeonMapGenerator/DungeonMapConsolePrinter/Program.cs +++ b/DungeonMapGenerator/DungeonMapConsolePrinter/Program.cs @@ -13,8 +13,8 @@ class Program var generator = new DungeonGenerator(); // Call the method you want to run - int width = 40; - int height = 28; + int width = 30; + int height = 20; DungeonMap map = generator.GenerateDungeon(width, height, 5); DungeonLockPopulator.PopulateLocksOfDungeon(map); List potentialLootRooms = new List(); diff --git a/DungeonMapGenerator/DungeonMapConsolePrinter/bin/Debug/net9.0/DungeonMapConsolePrinter.dll b/DungeonMapGenerator/DungeonMapConsolePrinter/bin/Debug/net9.0/DungeonMapConsolePrinter.dll index 38a600ca902775fc35b401b20a6ca7b76124fe38..1453861c0deb210ec769db4e5bb18096418ec2cc 100644 GIT binary patch delta 245 zcmZoLX)u}4!Lq4&+18CcHyByuxaCDQXD}sj2zbT+=e=EC=CgDC+@tsHE~Re1!L^c6 z!_+*@EH%~CFxAk|$RyP?Db+MN(KN-xJk31CIMKi~#mpqx)X2chV)9BJX_lkD+b>T( z!4n|xZcb{_F^0K5la6Pqvaxq>pRB>#ssIxVf(n9E@BivE{bjmZ$(8oR`Lm+7gghmV|V15#qOlC*~%B29sKx)l_EMuUE0a(loD4Gmp83Flb M3>KT&MSijZ00Ns%2LJ#7 delta 245 zcmZoLX)u}4!J-wj>+!~(8;mR(-10J;Gnf)M1O#vYIdtXJRPR|=y5>E8viJGs8(b?H zH7pFw%}mXb3=NGelgx}vl1O-5biNGFgMSRRJm(tOXSWsWvM4zwt_U`62OllL|MV<$cZS zZ^2-|V9sF1U<$-Z42D2x#9#?znE`1NhGZa41F}+ps#1V*20#%rAT|ZEO&C(aI1R`% RU`Pb&v1Bmb%r5ei6#(IAOu7I7 diff --git a/DungeonMapGenerator/DungeonMapConsolePrinter/bin/Debug/net9.0/DungeonMapConsolePrinter.exe b/DungeonMapGenerator/DungeonMapConsolePrinter/bin/Debug/net9.0/DungeonMapConsolePrinter.exe index ac95f10c1df9e30834e6e15ee2a68f301bb17afd..c2903ddbe5c764e0428c40f7af1da0a3e529edcf 100644 GIT binary patch delta 99 zcmZqp!qEUkEsR^3R+##mGMF=@F_R delta 99 zcmZqp!qEUkEsR^3R+#!*Fc>hHGng@$0&x<9ArKldSOQsQK-z>M8Hm$>tQ4TC6rh{| hP{a&~O@V9^hEy<41M&)^I diff --git a/DungeonMapGenerator/DungeonMapConsolePrinter/bin/Debug/net9.0/DungeonMapGenerator.dll b/DungeonMapGenerator/DungeonMapConsolePrinter/bin/Debug/net9.0/DungeonMapGenerator.dll index a1835388933d0933853ff5e7627234a378ad33d2..46597d091f7bca9407a73047436361a529485ccf 100644 GIT binary patch delta 5628 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 path = GetPointsOnLine(startingRoom.GetCenterOfRoom(), targetRoom.GetCenterOfRoom()); bool roomPlaced = true; - while (currentRoom.GetCenterOfRoom().ManhattanDistance(targetRoom.GetCenterOfRoom()) >= - GetRoomSizeByType(type) && roomPlaced) + while (roomPlaced) { Room newRoom; // Get sides of room to try and place new room diff --git a/DungeonMapGenerator/DungeonMapGenerator/bin/Debug/netstandard2.0/DungeonMapGenerator.dll b/DungeonMapGenerator/DungeonMapGenerator/bin/Debug/netstandard2.0/DungeonMapGenerator.dll index a1835388933d0933853ff5e7627234a378ad33d2..46597d091f7bca9407a73047436361a529485ccf 100644 GIT binary patch delta 5628 zcmZ9P3s@BA)yK~}_nn!Ay}}|WtRRAmf{VZkYA~XRpyC~GjR<(ftO!P;n1vu-a#3+C zO|;J=G?=ux7#mEqtwxMCYBffaG|^N|ti&dtNzA8dntbKa@4W9$jZb%<`Oo>CbKc8& z=bf3|#ve)Jk7WC1;n|Z*o^O37j=bCYyIG{xAY`Dpq!nPg;pNhd*<>I&Yc!Ei%u73f zea545AVTRB08c&uG05s1qm-Mf*I(gtNmcqVzkE3K;{{TMH^%1V?RA>USr+MPTZkI31;X?N;&oFd9hx9gM^qA9^m`iejf=HRcCtwZY|7CWfzPKWuKq1j4m? z12<@`UYx_HF@?l$^zSnq?~-|aDoA`+cb}b{n~tIeGy+h&20PGXx<|T}_T>p?tmxOD zXf#9fji+~uu`9k13;BEej99j1C2pM^Clubl2sQ>rT(ZYlme3u~a(oG4KOfHW*~4uR zyNbMz3S^*hXh1INodGGRamkrO*?@tqbm9-(q2+Xm!Z*m=pKp-xJe4%n!Lo zxj`?AB)MyKMg>oLx-Ml7P=?9;WE&^7P%WW+VLBl)+qVq`(2-o zIE0Qg+`fPfl;OhVxZ1|&$+KR`WBK1OYG zZDU=0hS5ZzUHlWSqyCz^j?qS3QaZrb=qZNpPzlq)9JQD5RHFo{2l>0Ge+8Qw1r6L? zY@6?<7mM~^nh?TW3T?1P?xzxHPoT6BerZitd8o&i2tX5jXUkC~IE*h7O5fUZR2drZ zu}^6ek^*)3Qla#JdX8#=%_i-_m@0;4Zg;mO*8)`ja99nqyink3FceNR2!Vd zHw7hKTcNt39&ZRrPb!b&%=ep=Xbq`&f2D{R=K3m>$U{1LlV zFC4(9Eu}-^esur@@M%LSQF&WUff1QN$8Un^`WbZ)xQ5Z-Mp)^(p{B#LVe;&XB;beV z7`4Gk>pxXLc!tx=R_L((Tg`;=Cf%^=S~k3z8;*6$Nm?GnwKhVOtP_9r%A<(4l@dE1h;b`rd~FKcN~;@O}ecP7e}*SGjwHctIILw##a|zwN7!h z_AvNOdKzgAlrq`~88}1%Tr?@!K}jzNPqdFMgal(*FCl0rTM+{c+u*YNoHiEDnsiET z*TzHKIM$FYTM-PnPcLdkuz*n$BaO5jvD26g&zZ8GdHWJAD8>sf6oB#jT#UAUx8 zhhdD`AoP3fGi?Txnz)BiwMi!#ZD!O8pSyZ6^9ZBxHJk}2?~@H?!o@Jb6vYO!pvR=Y zX~V@b=r!qfWPhOy5{l?#T0QNd$Xi+&L{Ff&QOOl^xiW}1DWB26Fk$tvav1~|y$dI7 z4$B;pg{<>o@CNnhbbn+xwUYEw!g?r3x2rb$0o?`ZSER?NnOH>FUo_6Q6Qqq0Ni z^aU{5qz+w1nqbninpH1{sV22)4y3szd0n~OLZ~n)%_YJ@s5WW1mdjN@ok?Rf5h`H4 zNmrbnkX{KbCf;%OMcQgo4OU+TZ6?)=B2>YiFtMGm2rk~IM12uV!rvftlTNfw)Rw_Y zlU{ZW)|W%0N#`On^=fE0>7t&ehpHhCe|XS_n_ZW*YM5@)mwJJ|0vb&ElkU+Ug%c*F z$Pi#C9MaQQ8Qd2YxH`EejxTZB$%Fod1F_AJWyYeoOWJ1akHEkP`akiEjoOcOt;m0Y z4<*6k$UXQ{t8^8^FxVA&5Q@lm+7TE^_Q@Z?|H2yE6_`yHN8W%A%(;n~ihDkcV66&R zs}h*a2S^Dh!U!@Qma0XhfaN4%Z`(-{zTmf$d6@qasl@!Fq#7PkKS3>Z7enPRmRiSB z8&C<};~f=olNF6Cfwpu& z)hG~Jmq2uVAukZO9x3UB_Rz`ZQ$*IvS(1x+ipUaou{53fLoglO`c*#eek!gg+OcvS z40rs*C6P-`uWUgNfh6*YBSr3DCDo8;o$2Urma^p8WR5nU{~gIxM##S>+3tL~hU|2X zla~T5o@P#zJK+g!J4s`s%!6v%VtE*|4O?N{9>?feq$RQGqX zoh+A!i>FCnH&HH-SDcd4iFN9Ne6r-lFXd3zz$Y6Fol%m}L zGf*3uX9LT8hWWQM|4!zAj``b}zY}JJu)%Lx;4*W4&Qg1r=SxgY01Z7uOm)IZeF((D zdDKL>h3bPJQ8OXmIt21yHtHCtL@kCI)M?B=7j+Elp_w#8c0>oMg}v5esQayv+~?>9L$UMHESZXN27h)I)>R5Oq-d$!1OrN>r6-UwEz+2Jnf;JUk4EpP0Vfz z+amQhiPYc0><(skhZr0)m4>e|`x*=Ph!t=wf=IM6k!aM*Y%jA%OSKRkQI6`3=w|)| zg=Xf5)k5tBOdFZDGwo*jIa5$WG$}!4&6qA=+Q_t>X)2V%qi_qRlFQ^Dq=UQ1E#YhV zb^J#D8~!$*D@+&agihft;R$i8ct?zqR!G~WJ<^NPJJK2HymU#rB5jk;$QR`wWQUTh zXdcLlSWo?VrsNyheTfs z0?v!hihdF-M;-KRrDA?kji%zsd=|WKd|2$8_&#id_wk|s4d=)6Nj%=eqXmyI;GEb3 zABldrhUaVIHarMfED`c2JQm1=Y>>Zz#nM<}RkE=CdvL9*xMYgQ*7CEZG52Vw|o`wEap;IWy|Yd*cqh`B>JWzjt3WdTX2grt?O? zbYe&OJ63(31B(Fv z`r+I$*L?>o;g7dxCrDF!Ie|^92``-Ot zRd=`FChfP$woSsmO|yRNd2$#T?D^%x_D2Gk^)EPGZ{?H1q7W>(A7eo~?}^r5 z;zyDg{R4hv#4rqahNJl7P#m&1)h7E#=#sFW#OoV`syVcz>Rn_Ja??C{N{mFQ@cmr7b7+Qyb{T4i4H2t(c4$)g`7g>iK5^y#NgDLtoF@IP*M#sK- zA>1wwMTh{geiu66Q#$IgdVy3MM~j=i4m+^YDsVFIQCPpw6|etRno~IrQ&f(R6lnh? zj|ruj`ZSJ@`bVFIu4=MbVDV)J+`;gDp1s$MI*0%=He>QeD;6NiL|A>uIEOgJ$% zDbgQ`ntl>B+srH)WkhYlPr|BAW#Q<%VacD4bxUni0fgvSw)&n7+6Nh%2;P);2_#j2 zT04bWYgrXecSp5FRwCpup~fGnU$S(O$lxPkWkNWcVL5kzE|rX%<%s zbUaANS9+mqAY1nT6V8l7wW|WNJf(=7=)o-_u>qPEI&csZCf&JnM{;OhuxYrKx+CI0 zG}eOTO|nZ^{ke!ltp3M{-jF-oyVxF%?&l*LQrK#4$JGq~>1x_69y@?Hv=^M-EV~m6 zjE~C1dK#kKp?V^{G4@Dw_e4db`=zMvkUP#h&K`&Eg6J40odbUpl?v=Ljy4W=KvQ&X zXa?N5*XRtmG5KJ0F^Saw5}k*KCNpLci4X3K*}=KkUdmMoK=T@`K$YpP3KkCM31&=- z8%b1}p?XW`;n7!(D8`PwIbwD!+vF10X2Ycl?RW$$1AR>Vxe+YxjSuk z-OB~y(YGZ{Kz%RCgL*S5BfuKV{RQpxeTTIUduAM`d4E4n?8MNK??j=SQM8FEad6jd z9JXe9HvP|{;A{`O7xnK#&)xGFISj8ZX|CmG=t*`gM-`b? zSZU5fj^zPUHvGGFHR?Yz)lms7P@XWk;azOZ4d+lLX*%kh_7hYK1(FCAX+=8p9d$_9@ZO1944SbEBG8jZ9 zOviH6UdmIA5UBo!$2|xifgN=nhYvCEx#(ii`e(!ka6>~ctdZl*1p4ABb;C23G&2wD z+>|=thBXfh4d9E2($}^;vkdL{KB2S`Nr6^;FH!o7mS;A>lLqa=m>I4cl&?)Tt8imf zDD!)%*lYnU8EE?*u)s3cY=u+!1f!&>ezOzS;R}h<&y_ap`RfKHSUSv+Af$w1pIEn; zW8pTw4QM8(^qS)!3f}^h(!-uJyWtQ%{V5$151Nx;B0j|_B`5=C5BTs2j_r3qm3GoR z1}0|GU^lFAUN?`2H$oJ(E1W<&3^3}2EO$wnLW^N{n4BOD-6132~)G-!wI3- zfILdghoXE+z0hn+QzydSiIlooods}%Qh?!bxd2)USP+hw^VP{PY*L6Gu}w!>W>AJ! ziFDDR)7IIl4>n8=WuC&!LfB(aq-7z}>jqg_?0tjE7+ql$=mwXg0aFEEsG9HWloAaZ zH0O(j;JZhUVypmPf^^pQifhyJeQ8%Pw6GZ^{pU&tgJEcs6VyqoVo@uO> z0Q8YHYr)ue4x&P@{$k@!Fja`<}>Prz-#IybvCpb_&lQ>1|4T~fKd-zbY8>EtBgWx zI0wGDM^=~vfG=q}-kFLO9tO>z^J>0W4T%N~hL04gp@dOSR9_(cTeTV{Kfnqq6GR_Z z4aEle7*&P{M?YMyhFV7d1;?yT(_H8?s9N@M^Wc4h{)CG*558v9tCWY`Qs;rAjJD9L z{Mm9#T>!a^y5S8eFr+Sox)3VcH9@O|MuYk_6VfV!o>IfLI#_E^uj)kVG|27rarLm( zpcJPF^{~UBJk`f7f;|RJRYh0?`waTb5fjiF;1vVEbBsXxwLvR!^o!wbgIYxq7Q^un zv7N94pq$MbQj)d=R)+{GES2idV5dR9a*o%UV81~hglB2X;CBX{(+ae}GAP2&Cv?>| zInS%hV4XqNwdvZUu-Bm9YBAb!_|hPcT#i)xV5ppAuhLdPyFtes9qJ0`GpNC_fW|6m zW(Qo5mLa{z2-hB$eq{j8-jDD(qtNzR3D+5QLMv(3R>F4%9fTou75vqp8g58!25|;$ zq7!!TLuw0z88k&0QXhjzg9^xyx*FmQI*#SmKp>f6sKHi9H-ev$$F)|Nd|&KwC^2Hc z$Id(sa~Oq2u@>s@%UlahMrH~$YinV(L9ryDwZRhx?c)O4I_M7ES8zQ%Z3O>Hy0rE1 zvO(W)UD^|Hf>Ef!0DN>`xd2=+GH1h9EdbXHQjyx>YlCvQty%~C*`QVYR_*67G@~gr zZSlfZtrMh~A^IG8wGEJC&=J00>w*aeb#wh%Hxw`m&DutoZp1Eg2ege)bzf`~EHGjb z-1%Ud?>Bs4Gia{mkO+^2?}HR*aF#(P>AQ=@lf(LZMfuURqYbX3 zH~^YS?OA*x&DTdvtEt=vZ?Vq3#pF0 z$T?a35WAa?-zVv$l#)K@BK`QZgft)5L!y<(#FeDkwN|{sN?l>Y`x0&1pTmwr;3}sTP{2Ix2 zO_5iU9gY&Y5$GUkYNfmvo=|&93TtLQEVDMsnbg+*XZrBU!*GO5R?_4XWWD36e46Zb z{4d(cu0h#Gn&f=(1R3t)mDA)UhobDo1^9v6%a-a{@<(%xQiKD(#+PGlbc*qvpg&Zc z5TJX34q!eG@?&Kp8)`Y~1%4u1!Vb*e&Cy-y;~Lp}MF9aaO$sQGhpI8P!X&hvFx8|% zJd~iF2o+vz0AL#`9Ecz zi_CL{d9Gt-JgDdyXQ%^CXyYIj&Y&j1x2RtH{5cLXV2WiNA#an-Lyj zfqAG?Srwh66LQ1)Ni)1?If8o7atZZq3*nmKl!fP-urW80?Pp)`7l*_T-Kins`l zh7pODB@&IgneAqFq0|h~VRfhpVFSz`uh2}N5@0tI)moX-IQ$E1_e8R@+Axzr<{ls}Pg%TC3k40QwMa8QV)IGBPziz-{Dy!JXv>xd-?^@D;*yLZ&!doG&gH4~W;r zZ$z^+UMiFhNG^G{{Fr=3u2WVk>y-_uF^U*GSVl_+trxg^Ka#)oaQs`5gF2 zf2qt{@ew?Y-@Z8bic81)alB6A)rHqpI3;$$AH;OHjQ7jp(|8fmC=qfPuX>q~Zuu%S zO4CTVl7r<>!sTE>`OGM5OTzhQlKS*%+ix!YEUW#?tNMn9<&qfBDT)#tY&cDVCzg!o zc#mw+|9@#5XY&N38?Pyz+|-=xtnB)